1. 程式人生 > >BRAM和DRAM的區別

BRAM和DRAM的區別

Xilinx的FPGA開發板可以直接呼叫RAM,其中包括了BRAM和DRAM。經過網上查詢資料發現,這兩者的區別在於:
選擇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不通的情況,就是這個原因。