1. 程式人生 > >[轉]Bram和Dram的區別

[轉]Bram和Dram的區別

浪費 linx 延時 ron distrib async mem 固定 邏輯

選擇distributed memory generator和block memorygenerator標準:

Dram和bram區別:

1、bram 的輸出需要時鐘,dram在給出地址後既可輸出數據。

2、bram有較大的存儲空間,是fpga定制的ram資源;而dram是邏輯單元拼出來的,浪費LUT資源

3、dram使用更靈活方便些

補充:

在Xilinx Asynchronous FIFO CORE的使用時,有兩種RAM可供選擇,Block memory和Distributed memory。

差別在於,前者是使用FPGA中的整塊雙口RAM資源,而後者則是拼湊起FPGA中的查找表形成。

1、較大的存儲應用,建議用bram;零星的小ram,一般就用dram。但這只是個一般原則,具體的使用得看整個設計中資源的冗余度和性能要求
2、dram可以是純組合邏輯,即給出地址馬上出數據,也可以加上register變成有時鐘的ram。而bram一定是有時鐘的。
3、如果要產生大的FIFO或timing要求較高,就用BlockRAM。否則,就可以用Distributed RAM。

塊RAM是比較大塊的RAM,即使用了它的一小部分,那麽整個Block RAM就不能再用了。所以,當您要用的RAM是小的,時序要求不高的要用Distributed RAM,節省資源。

FPGA中的資源位置是固定的,例如BRAM就是一列一列分布的,這就可能造成用戶邏輯和BRAM之間的route延時比較長。舉個最簡單的例子,在大規模FPGA中,如果用光所有的BRAM,性能一般會下降,甚至出現route不通的情況,就是這個原因。

[轉]Bram和Dram的區別