双口RAM之IP核使用与验证
上篇在FPGA器件结构资源中提到存储器结构是由一列列的M9K存储器模块组成的,通过对这些M9K存储器模块进行配置,可以实现各种存储器功能,如RAM,ROM,移位寄存器以及fifo缓冲器,具体IP核设置如下图所示
1.在第一个缓冲周期,将输入的数据流缓存到“数据缓冲模块1”中。
2.在第二个缓冲周期,“输入数据流选择单元”模块将输入数据流缓存到“数据缓冲模块2”中,同时,“输出数据选择单元”将“数据缓冲模块1”中第一周期缓存到的数据送到“数据流运算处理模块”进行后续数据处理。
3.在第三个缓冲周期中,同第二个缓冲周期一致,是将数据流缓存到“数据缓冲模块1”中,同时取出“数据缓冲模块2”在第二缓冲周期缓存的数据,送到“数据流运算处理模块”中
4.如此不断循环。
上面的步骤利用了乒乓操作对数据的无缝缓冲和处理。乒乓操作可以通过对“输入数据选择单元”和“输出数据选择单元”的按节拍,相互配合地进行无缝切换,可以将经过缓冲的数据流没有停顿的送到“数据流运算处理模块”中。
双口RAM之IP核设置
(1)首页
首先IP核设置首页如下图所示
(2)第二页
上篇提到一个M9K存储器最多有8192个存储位,因此下图8192刚好使用一个M9K存储器,一旦超过该位数,就会使用其他的查找表逻辑来选择多余的寄存器。
(4)第四页
在这一页可以看出输入数据,写请求,写地址,读地址以及读使能都默认选择的寄存器,而输出数据q的寄存器是可选的,,一般我们选择输出数据通过寄存器进行寄存。
(6)第六页
为此,我们将读地址位初始化一个不用的常值,进行仿真,仿真图如下

对照上图,看出设置的双口RAM的IP核正常工作。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!