摘要:紹了一種SDRAM通用控制器的FPGA模塊化解決方案。
關(guān)鍵詞: SDRAM控制器;FPGA;VHDL;狀態(tài)機(jī);仲裁機(jī)制
引言
同步動態(tài)隨機(jī)存儲器(sDRAM),在同一個CPU時鐘周期內(nèi)即可完成數(shù)據(jù)的訪問和刷新,其數(shù)據(jù)傳輸速度遠(yuǎn)遠(yuǎn)大于傳統(tǒng)的數(shù)據(jù)存儲器(DRAM),被廣泛的應(yīng)用于高速數(shù)據(jù)傳輸系統(tǒng)中。基于FPGA的SDRAM控制器,以其可靠性高、可移植性強(qiáng)、易于集成的特點,已逐漸取代了以往的專用控制器芯片而成為主流解決方案。然而,SDRAM復(fù)雜的控制邏輯和要求嚴(yán)格的時序,成為開發(fā)過程中困擾設(shè)計人員主要因素,進(jìn)而降低了開發(fā)速度,而且大多數(shù)的基于FPGA的SDRAM控制器都是針對特定的SDRAM芯片進(jìn)行設(shè)計,無法實現(xiàn)控制器的通用性。本文介紹一種通用SDRAM控制器的FPGA模塊化解決方案。
SDRAM及其控制過程
SDRAM控制邏輯復(fù)雜,命令種類多樣,需要周期性刷新操作、行列管理的等多重操作。
SDRAM首先要進(jìn)行初始化操作。在上電后等待lOOns,至少執(zhí)行1條空操作,然后對所有頁執(zhí)行預(yù)充電操作,接著向各頁發(fā)出兩條刷新操作指令,最后執(zhí)行SDRAM工作模式的設(shè)定LMR命令用來配置SDRAM工作模式寄存器。SDRAM工作寄存器可以根據(jù)具體應(yīng)用的需要進(jìn)行設(shè)置。
初始后的SDRAM在得到了RAS、CAS、WE的值后開始執(zhí)行相應(yīng)的命令。在對SDRAM進(jìn)行讀、寫過程中,必須要先進(jìn)行頁激活A(yù)CT操作,保證存儲單元是打開的,以便從中讀取地址或者寫入地址,然后通過預(yù)充電PHC命令實現(xiàn)來關(guān)閉存儲單元。在進(jìn)行寫操作時,內(nèi)部的列地址和數(shù)據(jù)都會被寄存,而進(jìn)行讀操作時,內(nèi)部地址被寄存,數(shù)據(jù)的存儲則發(fā)生在CAS延遲時間(通常為1~3個時鐘周期)后。……