关于block ram“零存整取”的问题
时间:10-02
整理:3721RD
点击:
我看到的block ram都是一个地址一个地址的读写数据的,也就是说在一个时钟内只能读或者写一个地址对应的空间,能不能“零存整取”呢?就是一个地址一个地址的写数据,一片地址的读数据(在一个时钟内读取一片地址的空间)。如果知道的话,麻烦给出思路和代码的写法。
假设ram是32bit宽,可以每周期写入4bit data,用寄存器寄存,类似“串转并”,之后32bit一次写入ram。
不知道符合你的问题不。
这起码得用8个周期吧,我是想在一个周期搞定。
不是你要一个地址一个地址的写数据,一片地址的读数据么。
哦。差点误解你的意思啊。对对,你的思路没错,但是我的实际情况是这样:要存的数据量高达两千多个字节(这也是我为什么用RAM的原因,用的是块RAM,不占用Slice),如果写入RAM之前将数据暂存在寄存器中的话,会要求申明一个很大的寄存器,也就会占用很多的Slice。所以,我觉得暂存在寄存器里的方法也行不通,因为这违背了我使用RAM的初衷了。
如果你要求读取的一片地址不多的话,可以试试这样!如果这一片地址的数量是N,你可以例化N个RAM,在写操作时,分别对这N个RAM写数据;而读数据时,给这N个RAM的读地址相同,则可以同时输出N个数据
这个方案可行。
