16 IP设计(Shift Ram)
本项目介绍Shift RAM(移位寄存器)IP核的使用过程及功能原理。在进行图像处理算法中,往往需要生成图像像素矩阵。对于C语言来说可以直接用数组表示,但是对于verilog来说便不是那么容易了,这是由于硬件描述语言不比软件,它的核心不再算法,而是在于设计思想,加速硬件。在进行图像的滤波算法时,需要生成3x3矩阵,而用Shift RAM IP核便是可以很方便的产生3x3矩阵。下面通过对一副二值化图像进行腐蚀算法运算的案例来说明Shift RAM的功能及实现3x3矩阵过程。在实现腐蚀算法时,我们需要用到连续几行的图像数据,但在FPGA中,图像数据通常是一个一个像素得到的,即FPGA先得到第一行的第一个像素,然后是第二个,直到第一行的640个,接下来是第二行的第一个、第二个......
为此,FPGA必须保存连续几行的数据,然后再从中取每行的几个数据,从而得到运算的矩阵,通过shift ram这个IP核可以轻松实现这个功能。
本工程实现一个3x3矩阵的腐蚀算法。该模块具有如下功能:
1)模块内部包含一个shift ram,用于存储2行的图像数据,从而得到3X3矩阵所需要的像素值。2)为设计方便,在运算一帧图像的前面两行的图像时,由于得不到3X3个数据,所以固定为0。3)为设计方便,在运算一帧图像的前面两列的图像时,由于得不到3X3个数据,所以固定为0.4)输入的图像是二值化后的640*480的图像,每个像素1比特。
Shift RAM IP核的具体功能介绍在下面的文档里有相关的数据手册,里面有非常详尽的讲解。
以下是本工程的工程文件
以下是本工程的相关文档
P核设计(Shift Ram)说明文档.pdf(待上传)
RAM-Based_Shift_Register_(ALTSHIFT_TAPS)Megafunction_User_Guide.pdf(待上传)
欢迎大家在此帖子里讨论本案例的问题。
页:
[1]