关于Xilinx芯片中Block RAM和Distributed RAM 的区别

 块RAM 和 分布式RAM

① Xilinx 的FPGA结构主要由CLB、IOB、IR、Block RAM组成,其中CLB是最最重要的资源。
② 以V5为例,1个CLB包括的2个Slice,每个Slice包括4个6输入查找表,4个FlipFlop和相关逻辑。在这里需要注意的是Slice分两种,SliceM和SliceL,它们都包括前面的东西,但是很特别的是SliceM还增加了基于查找表的分布式RAM和移位寄存器。
③ 每个CLB中都包含SliceL,但并不是每个CLB中都包含SliceM,整个一块V5芯片中SliceM和SliceL的比例为1:3。SliceM的放置有一定的规则,这里不做阐述。
④ Xilinx的FPGA中有 分布式RAM 和 Block RAM 两种存储器。用分布式RAM 时其实要用到其所在的SliceM,所以要占用其中的逻辑资源;而Block RAM 是单纯的存储资源,但是要一块一块的用,不像分布式RAM 想要多少bit都可以。
⑤ 用户申请存储资源,FPGA先提供Block RAM ,当Block RAM 数量不够时再用分布式RAM补充。
来源:http://www.eefocus.com/zpshao/blog/11-01/201525_d33fc.html

区别:
1.Bram 的输出需要时钟,Dram在给出地址后既可输出数据。
2.Dram使用根灵活方便些
3.Bram有较大的存储空间,Dram浪费LUT资源

补充:
1.物理上看,Bram是fpga中定制的ram资源,Dram就是用逻辑单元拼出来的。
2.较大的存储应用,建议用Bram;零星的小ram,一般就用Dram。但这只是个一般原则,具体的使用得看整个设计中资源的冗余度和性能要求
3.Dram可以是纯组合逻辑,即给出地址马上出数据,也可以加上register变成有时钟的ram。而Bram一定是有时钟的。
来源:http://blog.sina.com.cn/s/blog_50133f9b0100bhwq.html
展开阅读全文

没有更多推荐了,返回首页