微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 关于block ram

关于block ram

时间:10-02 整理:3721RD 点击:
我现在需要一块宽度为432bit,深度为54的存储器,xilinx平台。由于数据宽度很大,深度却很小,用block ram 或者分布式ram来存储的话,都比较浪费资源
请问有没有其他的存储方法来代替呢?

xilinx fpga里的block ram一个就能存32kbit了吧。block ram完全能胜任啊。直接用coregen生成一个432宽,54深的ram就行



   是可以,但是所使用的block ram数量和数据的宽度、深度都有关系,并不是说小于32k的数据量就一定只用一个block ram,   我这个宽度太大了,需要14个block ram拼凑,所以说很浪费资源。


试了下在virtex5上用coregen做,只要6个36kbit bram



   我上面说错了,我需要的是真双口的ram,应该是12个,而不是14个,如果是单口的话,是6个


哦xilinx fpga的片上存储资源只有block ram和lut作为分布式ram了,除此之外还真想不出有什么别的

只能用blockram了

block RAM资源紧张的话,FPGA时用寄存器做吧

如果你对数据的实时存储没那么急迫的话,可以考虑减少RAM宽度改用深度的方法啊,比如第一个32位放第一深度,第二个32位放第二个深度……读出来的时候再拼出来就行。
这样做的时候,要想个法子来寻找对齐点,以免在发生意外时借位了,比如简单的方法,设定第31bit为标志符,如果是第一个数据,就写1,其它的写0,你从RAM读出来解的时候根据这个来对齐。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top