1. 程式人生 > >FPGA實踐筆記(六)— FPGA內部SRAM資源

FPGA實踐筆記(六)— FPGA內部SRAM資源

 FPGA內部的CLB分為SLICE L和SLICE M,SLICE M與SLICE L大同小異,只是SLICE M裡的LUT可以作為RAM來儲存而已。說起RAM,不得不提起FPGA內部的重要資源-SRAM。筆者使用的Xilinx Virtex 6系列的SRAM被稱為M18K,即每個Block RAM的資源為18K bits,有時候也以兩個M18K組成一個M36K來稱呼FPGA內部的SRAM基本組成單元。

    那麼什麼叫做SRAM呢?RAM大家都明白,那麼這個“S”是什麼意思?"S"事實上是Synchronous即同步的意思,意思就是對這種RAM的操作(讀,寫)都是以時鐘為基準,而且對於內部的儲存陣列來說,都是一個時鐘週期就可以把資料寫入,一個時鐘週期就可以把資料讀出。其時序圖如下圖所示:

co100qf23434-2.jpg

    如上圖所示,跟clk時鐘訊號同步,wr_en有效兩個週期,此時wr_en有效時的datain被寫入到sram此時的addr對應的地址中。當rd_en有效時(有效兩個週期),此時rd_en有效時對應的地址資料裡的內容被讀出(讀出需要一個時鐘週期的延時)。

    在高速設計中,一般使用block ram而非基於LUT的分散式ram,其中一個重要原因就是block ram在一般情況下更容易跑高時鐘頻率。