DDR4 SDRAM(Double-Data-Rate Fourth Generation Synchronous Dynamic Random Access Memory,簡稱為 DDR4 SDRAM),是一種高速動態(tài)隨機存取存儲器,它屬于 SDRAM 家族的存儲器產(chǎn)品,提供了相較于 DDR3 SDRAM 更高的運行性能與更低的電壓,并被廣泛的應(yīng)用于計算機的運行緩存。
1 DDR4 介紹
DDR4 芯片的行地址是 16bit 位寬,列地址是 10bit 位寬,而整個存儲區(qū)域分為兩個 BANK 組,每個 BANK 組又由 4 個子 BANK 組成,所以整片 DDR4 的容量就是2^16*2^10*8*16bit=512M*16bit。DDR4 相較于 DDR3 在指令引腳上也發(fā)生了變化,DDR4 取消了我們所熟悉的使能 WE、列激活 CAS 和行激活 RAS 這三個命令引腳,而是將這三個命令引腳和地址線 A14、A15 以及 A16 復(fù)用了。
除此之外在尋址的時候也不再是直接去尋址 BANK,而是先尋址 BANK 組,然后再找到這個 BANK 組中的某個子 BANK。整個數(shù)據(jù)的吞吐是 8 倍預(yù)取,因此用戶端數(shù)據(jù)在讀寫的時候就是16bit*8=128bit 的數(shù)據(jù)量進行吞吐(注意雖然是 8 倍預(yù)取,但是每一次 IO 引腳上的數(shù)據(jù)傳輸依舊是 16bit,因為數(shù)據(jù)線就 16 根,至于為何可以達到 8 倍預(yù)取和 DDR4 內(nèi)部的雙沿采樣,F(xiàn)IFO 緩沖,寫數(shù)據(jù)邏輯結(jié)構(gòu)有關(guān))。
2 MIG ?IP介紹
MIG IP 核是 Xilinx 公司針對 DDR 存儲器開發(fā)的 IP,里面集成存儲器控制模塊,實現(xiàn) DDR 讀寫操作的控制流程,下圖是 MIG IP 核結(jié)構(gòu)框圖。MIG IP 核對外分出了兩組接口,左側(cè)是用戶接口,就是用戶(FPGA)同 MIG 交互的接口,用戶只有充分掌握了這些接口才能操作 MIG;右側(cè)為 DDR 物理芯片接口,負責(zé)產(chǎn)生具體的操作時序,并直接操作芯片管腳,這一側(cè)用戶只負責(zé)分配正確的管腳,其他不用關(guān)心。
DDR4 的讀或者寫都包含寫命令操作,其中寫操作命令(app_cmd)的值等于 0,讀操作 app_cmd 的值等于 1。首先來看寫命令時序,如下圖所示。首先檢查 app_rdy,為高則表明此時 IP 核命令接收處于準(zhǔn)備好狀態(tài),可以接收用戶命令,在當(dāng)前時鐘拉高 app_en,同時發(fā)送命令(app_cmd)和地址(app_addr),此時命令和地址被寫入。
寫數(shù)據(jù)的時序
寫數(shù)據(jù)有三種情形均可以正確寫入:
(1)寫數(shù)據(jù)時序和寫命令時序發(fā)生在同一拍;
(2)寫數(shù)據(jù)時序比寫命令時序提前一拍;
(3)寫數(shù)據(jù)時序比寫命令時序至多延遲晚兩拍;
寫時序總結(jié)如下:首先需要檢查 app_wdf_rdy,該信號為高表明此時 IP 核數(shù)據(jù)接收處于準(zhǔn)備完成狀態(tài),可以接收用戶發(fā)過來的數(shù)據(jù),在當(dāng)前時鐘拉高寫使能(app_wdf_wren),給出寫數(shù)據(jù)(app_wdf_data)。這樣加上發(fā)起的寫命令操作就可以成功向 IP 核寫數(shù)據(jù)。這里有一個信號 app_wdf_mask,它是用來屏蔽寫入數(shù)據(jù)的,該信號為高則屏蔽相應(yīng)的字節(jié),該信號為 0 默認不屏蔽任何字節(jié)。
對于背靠背寫,其實也有三種情形,唯一點不同的是,它沒有最大延遲限制。
接著來看讀數(shù)據(jù)
讀時序比較簡單,發(fā)出讀命令后,用戶只需等待數(shù)據(jù)有效信號(app_rd_data_valid)拉高,為高表明此時數(shù)據(jù)總線上的數(shù)據(jù)是有效的返回數(shù)據(jù)。需要注意的是,在發(fā)出讀命令后,有效讀數(shù)據(jù)要晚若干周期才出現(xiàn)在數(shù)據(jù)總線上。下面是背靠背讀的情況。
需要注意的是,在連續(xù)讀的時候,讀到的數(shù)據(jù)順序跟請求的命令/地址是相對應(yīng)的。通常使用 DDR4 的時候,為了最大限度地提高 DDR4 效能,充分利用突發(fā)寫的特點,非背靠背很少用,而更多地采用背靠背操作。