shift_ram IP core的使用
在进行图像处理过程中通常会用到3*3窗口进行滤波,在FPGA中最好的方法就是使用IP核shift_ram,因此我就找到了Altera的用户手册,刚开始看确实有点不适应,我把我在自己的理解分享出来,供大家参考一下。
首先就是上面这句话,介绍了IP核的一个基本介绍,意思就是这个IP核支持一个周期的单bit和多bit的数据转移,可以设置数据位宽。
上图是一个12个数的移位寄存器,设置的行数为4行,每行的深度为3,shift_ram的工作方式是移位寄存,后一个数据将前一个数据往前推,当填满一行的时候,跳到下一行再继续移位存储,每一个周期移动一个数据。
通过上面的仿真图可以看出,假设我们在进行图像算法处理时,当填上第一行数据时,滤波也会同时进行,这时候输出的数据为0,进行滤波的话目标像素会是0,然后第二行一位存储完成时,进行第一行滤波,第三行没有数据,这时,滤波显然是不准确的,等到第三行数据填充完成,进行第二行滤波,此时的像素滤波才是准确的,因此在进行图像滤波时,边缘多少会有问题。
下面就来看看quatus里面怎么设置,假设我们要,设置33滤波模板,图片像素为**640480**,数据位宽8bits
最上面的8bit代表数据位宽,第二行2,说明有三行,分别taps0,taps1,taps2,其中640这个我是自己进行输入的。
至于用户手册我放在下面了,有需要自取
链接:https://pan.baidu.com/s/1xs8sBOEB6E0VfR7D-H9G6g
提取码:net5