DDR控制模塊IP——MIG
轉(zhuǎn)自Vivado中MIG核中DDR的讀寫控制吻商。
Memory Interface Generator菱属,簡(jiǎn)稱MIG,是Vivado中的DDR控制IP单山。該IP的總體架構(gòu)如下圖所示逸爵。
其中各信號(hào)時(shí)序如下所示。
控制信號(hào)
需要注意的是士嚎,只有當(dāng)app_rdy有效時(shí)呜魄,讀寫命令才會(huì)被控制器接收。
寫操作時(shí)序
由圖可知莱衩,在向DDR寫數(shù)據(jù)時(shí)爵嗅,需要提供寫命令app_cmd、地址app_addr笨蚁、數(shù)據(jù)app_wdf_data等信號(hào)睹晒,且寫入的數(shù)據(jù)最多可以比app_cmd提前一個(gè)時(shí)鐘周期有效趟庄,最遲可以比app_cmd晚兩個(gè)時(shí)鐘周期有效。
【特別注意】在寫數(shù)據(jù)的時(shí)候必須檢測(cè)app_rdy和app_wdf_rdy信號(hào)是否同時(shí)有效伪很,否則寫入命令無法成功寫入到DDR控制器的命令FIFO中岔激,從而導(dǎo)致寫操作失敗。
讀操作時(shí)序
時(shí)鐘
轉(zhuǎn)自基于MIG控制器的DDR3讀寫控制詳解是掰。
在使用MIG IP控制DDR3讀寫數(shù)據(jù)的時(shí)候總會(huì)遇到關(guān)于MIG控制器的時(shí)鐘問題虑鼎,幾個(gè)時(shí)鐘總是搞得人暈頭轉(zhuǎn)向,為了進(jìn)一步說明清楚其之間的相互關(guān)系键痛,繪制了上圖所示的時(shí)鐘模塊圖(其中各時(shí)鐘具體參數(shù)是根據(jù)黑金AX7350(XILINX 7035)系列FPGA開發(fā)板配置炫彩,不同的硬件平臺(tái)其具體參數(shù)不同,但是時(shí)鐘結(jié)構(gòu)類似)絮短。
如上圖所示江兢,MIG控制器一共可以分為三個(gè)部分:第一個(gè)是USER模塊,在這里可以理解為top模塊丁频;第二個(gè)是MIG控制器杉允,由于DDR3控制過程過去繁瑣,xilinx提供了一個(gè)可以讀寫DDR3的核席里,這個(gè)核也就是MIG控制器叔磷;第三個(gè)模塊也就是DDR3物理存儲(chǔ)芯片。
首先DDR3作為物理存儲(chǔ)介質(zhì)奖磁,一定是需要時(shí)鐘的改基,所以MIG給了DDR3一個(gè)時(shí)鐘,也就是圖中的clk_ddr3咖为。那么MIG也不可能平白無故的能產(chǎn)生時(shí)鐘秕狰,所以它也需要一個(gè)外部輸入時(shí)鐘,也就是圖中的clk_input躁染,是由用戶端輸送給MIG控制器內(nèi)部的時(shí)鐘分頻模塊鸣哀。MIG內(nèi)部的時(shí)鐘模塊將輸入的時(shí)鐘分成兩路輸出,一路clk_ddr3接到物理DDR3芯片中吞彤,另一路clk_user輸送到user模塊中的DDR_CTRL中我衬。一般情況下,clk_ddr3:clk_user=4:1备畦,如圖中所示低飒,clk_ddr3取值為800M,那么clk_user的值為200M懂盐。