FPGA設計中,存儲器是必不可少的。FPGA中常見的存儲器件有RAM以及FIFO,RAM又可細分爲單端口RAM、僞雙端口RAM和雙端口RAM。之前對其基本概念與使用已經進行了介紹,現在只重點將他們進行比較:
目錄
一、比較
單端口RAM:對應IP核中的Single-Port RAM,只有一組控制信號線、地址線和數據線,不能同時讀寫,某時刻只能在控制信號作用下作爲數據輸入或輸出的一種;
雙端口RAM:對應IP核中的Dual-Port RAM,有兩組獨立的控制信號線、地址線和數據線,兩組之間互不影響,允許兩個獨立的系統同時對其進行隨機性的訪問。即共享式多端口存儲器,可以同時讀寫;
僞雙端口RAM:對應IP核中的Simple Dual-Port RAM,一個端口只讀,一個端口只寫;
注意:雙端口RAM同時對同一地址進行讀寫時,會出現仲裁;
FIFO:先進先出數據緩衝器,也是一個端口只讀,另一個端口只寫。但是FIFO與僞雙口RAM的不同,FIFO爲先入先出,沒有地址線,不能對存儲單元尋址;而僞雙口RAM兩個端口都有地址線,可以對存儲單元尋址。
二、FIFO與RAM聯繫:
如FIFO實現專題所述,FIFO既可以利用寄存器實現,也可以使用RAM實現;
實際上,規模較大的FIFO一般都是用RAM實現的(規模特別小的FIFO纔會使用寄存器實現)。
三、應用場合:
FIFO常用於數據傳輸緩存,避免數據丟失,如跨時鐘域的數據傳輸就需要用到異步FIFO。
RAM常用於暫存指令或中間數據,指令cache和數據cache就由RAM來實現。
四、參考文獻:
Xilinx官方文檔 LogiCORE IP Distributed Memory Generator v7.2