當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > FPGA技術(shù)江湖

DDR4 SDRAM(Double-Data-Rate Fourth Generation Synchronous Dynamic Random Access Memory,簡(jiǎn)稱為 DDR4 SDRAM),是一種高速動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器,它屬于 SDRAM 家族的存儲(chǔ)器產(chǎn)品,提供了相較于 DDR3 SDRAM 更高的運(yùn)行性能與更低的電壓,并被廣泛的應(yīng)用于計(jì)算機(jī)的運(yùn)行緩存。

1 DDR4 介紹

DDR4 芯片的行地址是 16bit 位寬,列地址是 10bit 位寬,而整個(gè)存儲(chǔ)區(qū)域分為兩個(gè) BANK 組,每個(gè) BANK 組又由 4 個(gè)子 BANK 組成,所以整片 DDR4 的容量就是2^16*2^10*8*16bit=512M*16bit。DDR4 相較于 DDR3 在指令引腳上也發(fā)生了變化,DDR4 取消了我們所熟悉的使能 WE、列激活 CAS 和行激活 RAS 這三個(gè)命令引腳,而是將這三個(gè)命令引腳和地址線 A14、A15 以及 A16 復(fù)用了。除此之外在尋址的時(shí)候也不再是直接去尋址 BANK,而是先尋址 BANK 組,然后再找到這個(gè) BANK 組中的某個(gè)子 BANK。整個(gè)數(shù)據(jù)的吞吐是 8 倍預(yù)取,因此用戶端數(shù)據(jù)在讀寫(xiě)的時(shí)候就是16bit*8=128bit 的數(shù)據(jù)量進(jìn)行吞吐(注意雖然是 8 倍預(yù)取,但是每一次 IO 引腳上的數(shù)據(jù)傳輸依舊是 16bit,因?yàn)閿?shù)據(jù)線就 16 根,至于為何可以達(dá)到 8 倍預(yù)取和 DDR4 內(nèi)部的雙沿采樣,F(xiàn)IFO 緩沖,寫(xiě)數(shù)據(jù)邏輯結(jié)構(gòu)有關(guān))。

2 MIG  IP介紹

MIG IP 核是 Xilinx 公司針對(duì) DDR 存儲(chǔ)器開(kāi)發(fā)的 IP,里面集成存儲(chǔ)器控制模塊,實(shí)現(xiàn) DDR 讀寫(xiě)操作的控制流程,下圖是 MIG IP 核結(jié)構(gòu)框圖。MIG IP 核對(duì)外分出了兩組接口,左側(cè)是用戶接口,就是用戶(FPGA)同 MIG 交互的接口,用戶只有充分掌握了這些接口才能操作 MIG;右側(cè)為 DDR 物理芯片接口,負(fù)責(zé)產(chǎn)生具體的操作時(shí)序,并直接操作芯片管腳,這一側(cè)用戶只負(fù)責(zé)分配正確的管腳,其他不用關(guān)心。

DDR4 的讀或者寫(xiě)都包含寫(xiě)命令操作,其中寫(xiě)操作命令(app_cmd)的值等于 0,讀操作 app_cmd 的值等于 1。首先來(lái)看寫(xiě)命令時(shí)序,如下圖所示。首先檢查 app_rdy,為高則表明此時(shí) IP 核命令接收處于準(zhǔn)備好狀態(tài),可以接收用戶命令,在當(dāng)前時(shí)鐘拉高 app_en,同時(shí)發(fā)送命令(app_cmd)和地址(app_addr),此時(shí)命令和地址被寫(xiě)入。

寫(xiě)數(shù)據(jù)的時(shí)序

寫(xiě)數(shù)據(jù)有三種情形均可以正確寫(xiě)入:

(1)寫(xiě)數(shù)據(jù)時(shí)序和寫(xiě)命令時(shí)序發(fā)生在同一拍;

(2)寫(xiě)數(shù)據(jù)時(shí)序比寫(xiě)命令時(shí)序提前一拍;

(3)寫(xiě)數(shù)據(jù)時(shí)序比寫(xiě)命令時(shí)序至多延遲晚兩拍;

寫(xiě)時(shí)序總結(jié)如下:首先需要檢查 app_wdf_rdy,該信號(hào)為高表明此時(shí) IP 核數(shù)據(jù)接收處于準(zhǔn)備完成狀態(tài),可以接收用戶發(fā)過(guò)來(lái)的數(shù)據(jù),在當(dāng)前時(shí)鐘拉高寫(xiě)使能(app_wdf_wren),給出寫(xiě)數(shù)據(jù)(app_wdf_data)。這樣加上發(fā)起的寫(xiě)命令操作就可以成功向 IP 核寫(xiě)數(shù)據(jù)。這里有一個(gè)信號(hào) app_wdf_mask,它是用來(lái)屏蔽寫(xiě)入數(shù)據(jù)的,該信號(hào)為高則屏蔽相應(yīng)的字節(jié),該信號(hào)為 0 默認(rèn)不屏蔽任何字節(jié)。

對(duì)于背靠背寫(xiě),其實(shí)也有三種情形,唯一點(diǎn)不同的是,它沒(méi)有最大延遲限制。

接著來(lái)看讀數(shù)據(jù)

讀時(shí)序比較簡(jiǎn)單,發(fā)出讀命令后,用戶只需等待數(shù)據(jù)有效信號(hào)(app_rd_data_valid)拉高,為高表明此時(shí)數(shù)據(jù)總線上的數(shù)據(jù)是有效的返回?cái)?shù)據(jù)。需要注意的是,在發(fā)出讀命令后,有效讀數(shù)據(jù)要晚若干周期才出現(xiàn)在數(shù)據(jù)總線上。下面是背靠背讀的情況。

需要注意的是,在連續(xù)讀的時(shí)候,讀到的數(shù)據(jù)順序跟請(qǐng)求的命令/地址是相對(duì)應(yīng)的。通常使用 DDR4 的時(shí)候,為了最大限度地提高 DDR4 效能,充分利用突發(fā)寫(xiě)的特點(diǎn),非背靠背很少用,而更多地采用背靠背操作。

END




本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉