使用Verilog實(shí)現基于FPGA的SDRAM控制器(圖)
關(guān)鍵詞:sdram;控制器;verilog;狀態(tài)機
引言
---在基于fpga的圖象采集顯示系統中,常常需要用到大容量、高速度的存儲器。而在各種隨機存儲器件中,sdram的價(jià)格低、體積小、速度快、容量大,是比較理想的器件。但sdram的控制邏輯比較復雜,對時(shí)序要求也十分嚴格,使用很不方便,這就要求有一個(gè)專(zhuān)門(mén)的控制器,使系統用戶(hù)能很方便地操作sdram。為此,本文提出了一種基于fpga的sdram控制器的設計方法,并用verilog給于實(shí)現,仿真結果表明通過(guò)該方法設計實(shí)現的控制器可以在fpga芯片內組成如圖1所示的sdram接口,從而使得系統用戶(hù)對sdram的操作非常方便。
sdram簡(jiǎn)介
---sdram器件的管腳分為控制信號、地址和數據三類(lèi)。通常一個(gè)sdram中包含幾個(gè)bank,每個(gè)bank的存儲單元是按行和列尋址的。由于這種特殊的存儲結構,sdram有以下幾個(gè)工作特性。
● sdram的初始化
---sdram在上電100~200μs后,必須由一個(gè)初始化進(jìn)程來(lái)配置sdram的模式寄存器,模式寄存器的值決定著(zhù)sdram的工作模式。
● 訪(fǎng)問(wèn)存儲單元
---為減少i/o引腳數量,sdram復用地址線(xiàn),所以在讀寫(xiě)sdram時(shí),先由active命令激活要讀寫(xiě)的bank,并鎖存行地址,然后在讀寫(xiě)指令有效時(shí)鎖存列地址。一旦bank被激活后只有執行一次預充命令后才能再次激活同一bank。
● 刷新和預充
---sdram的存儲單元可以理解為一個(gè)電容,總是傾向于放電,因此必須有定時(shí)的刷新周期以避免數據丟失。刷新周期可由(最小刷新周期
評論