xilinx spartan3an系列fpga: 一个CLB包含4个SLICE,其中左边两个SLICE可用于存储、移位寄存器和逻辑配置,称为SLICEM;右边的两个SLICE只能用于逻辑组合,称为SLICEL。每个SLICE中有2个LUT,2个存储单元,多路复用器,进位链等。一个LUT和一个存储单元称为一个LOGIC CELL,因此通常一个SLICE等效于2.25个LOGIC CELL。 1、bram 的输出需要时钟,dram在给出地址后既可输出数据。 2、bram有较大的存储空间,是fpga定制的ram资源;而dram是逻辑单元拼出来的,浪费LUT资源 3、dram使用更灵活方便些 补充: 1、较大的存储应用,建议用bram;零星的小ram,一般就用dram。但这只是个一般原则,具体的使用得看整个设计中资源的冗余度和性能要求 2、dram可以是纯组合逻辑,即给出地址马上出数据,也可以加上register变成有时钟的ram。而bram一定是有时钟的。 3、如果要产生大的FIFO或timing要求较高,就用BlockRAM。否则,就可以用Distributed RAM。 在Xilinx Asynchronous FIFO CORE的使用时,有两种RAM可供选择,Block memory和Distributed memory。差别在于,前者是使用FPGA中的整块双口RAM资源,而后者则是拼凑起FPGA中的查找表形成。 转自:http://bianzhenglan.spaces.eepw.com.cn/articles/article/item/80291 =============================================== Block RAM 和 Distributed RAM 的区别 =====楼主===== 如果要产生大的FIFO或timing要求较高,就用BlockRAM。否则,就可以用Distributed RAM。 在Xilinx Asynchronous FIFO CORE的使用时,有两种RAM可供选择,Block memory和Distributed memory。差别在于,前者是使用FPGA中的整块双口RAM资源,而后者则是拼凑起FPGA中的查找表形成。 恩,笔记一下。 这么看来调用distributed RAM还不如直接调用Reg了吧,写起来还方便一点,而且效果是一样的。 不知道这个理解正确否。 =====三楼===== 在Xilinx中,有两种LUT,一种是可以作为分布式RAM的,另一种只能作为LUT的。 块RAM是比较大块的RAM,即使用了它的一小部分,那么整个Block RAM就不能再用了。 所以,当您要用的RAM是小的,时序要求不高的要用Distributed RAM,节省资源。 我的一点理解。 至以,说到的用REG作为RAM,太多了也不合算的吧,一个LUT中就那么这个REG的。
|
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |