基于FPGA的DDR內存條的控制研究與設計
1 內存條的工作原理
DDR內存條是由多顆粒的DDR SDKAM芯片互連組成,DDR SDRAM是雙數據率同步動態隨機存儲器的縮寫。DDR SDRAM采用雙數據速率接口,也就是在時鐘的正沿或負沿都需要對數據進行采樣。在本設計中采用的內存是hynix公司的lGB的HYMD564M646CP6-J。內存條的工作原理與單顆粒內存芯片的工作原理一樣,主要的控制信號以及控制信號完成的主要功能如表1所示。
以上的控制信號及地址信號都是由差分時鐘信號中CK的正沿觸發。DDR SDRAM必須按照一定的工作模式來完成初始化,完成初始化后才能進入到讀寫過程。DDR SDRAM的控制流程如圖1所示。
初始化的過程為:(1)上電后,延時200us等待時鐘穩定,然后將CKE拉高,執行一次NOP或者DESELECT操作。(2)執行一次precharge all操作。(3)設置擴展模式寄存器(BAl為低電平BA0為高電平)使能DLL。(4)設置模式寄存器(BAl,BA0均為低電平)復位DLL。(5)執行一次pre-charge all指令。(6)再經過2個自刷新(Auto refresh)指令后再次設置模式寄存器設置操作模式。(7)延時200個周期才能進行讀操作。DDR SDRAM的擴展模式寄存器和模式寄存器的定義如圖2和圖3所示。
完成初始化后進入圖1中的IDEL狀態,此時可以進行讀寫操作。在進行寫操作時,首先要進入Row active狀態,此時選中要操作的bank與row。然后執行NOP操作等待tRCD的時間后可以進入寫狀態。
評論