基于EPM1240的SDRAM控制器的設計
2.3 突發(fā)長度模塊
突發(fā)長度也使在模式寄存器中設置的,它的內(nèi)部實質(zhì)是4位遞增計數(shù)器,這一計數(shù)器監(jiān)視讀寫突發(fā)工作時的時鐘周期數(shù),原理與2位遞增計數(shù)器相同。
突發(fā)長度可以是1、2、4或者8,突發(fā)(Burst)是指在同一行中相鄰的存儲單元連續(xù)進行數(shù)據(jù)傳輸?shù)姆绞?,連續(xù)傳輸所涉及到存儲單元(列)的數(shù)量就是突發(fā)長度。
2.4 地址轉(zhuǎn)換模塊
地址發(fā)生器將微處理器提供的地址按照要求的格式映射到移動SDRAM設備上。命令模塊接收控制接口模塊輸入的解碼后的命令和刷新控制單元發(fā)出的刷新請求命令,產(chǎn)生合適的SDRAM操作命令。
該模塊包含一個簡單的仲裁邏輯單元,仲裁主接口和刷新單元發(fā)出的命令,刷新請求的優(yōu)先級最高。當刷新單元和主接口同時發(fā)出命令時,仲裁單元掛起主接口的命令直到刷新操作執(zhí)行完畢;若主接口發(fā)出的命令正在執(zhí)行時,仲裁單元掛起刷新命令直至正在處理的操作執(zhí)行結(jié)束。仲裁單元接收控制接口模塊發(fā)出的命令后,命令產(chǎn)生單元根據(jù)接收到的命令產(chǎn)生合適的SDRAM控制信號。命令產(chǎn)生單元基于三個移位寄存器產(chǎn)生正確的時序:第一個寄存器控制SDRAM激活命令的時序;第二個寄存器控制SDRAM讀寫時的時序;第3個用于產(chǎn)生命令延時,以便決定所請求的命令是否執(zhí)行完畢。它根據(jù)狀態(tài)分別產(chǎn)生塊和行列地址,并傳送到移動SDRAM設備上。
地址發(fā)生器的輸入輸出如下:
clk是系統(tǒng)的主時鐘輸入,addr是輸入的地址信號,pr_state是輸入的當前狀態(tài),這3個信號均由微控制器提供。地址發(fā)生器接收來自微控制器的命令,把命令轉(zhuǎn)換成SDRAM能夠理解的狀態(tài)信號,地址發(fā)生器根據(jù)狀態(tài)信號產(chǎn)生相應的地址選擇SDRAM的行或列進行操作。
3 系統(tǒng)的設計與實現(xiàn)
選擇ALTERA公司MAXⅡ系列的EPM1240芯片,用CPLD方式實現(xiàn)SDRAM接口。接口仿真時序圖如圖5所示。本文引用地址:http://cafeforensic.com/article/161059.htm
SDRAM接口仿真波形圖如圖5所示,其中sd_clk_97為操作SDRAM的時鐘,sd_cke_98,sd_csn_99,sd_casn_103,sd_rasn_105,sd_wen_106分別為時鐘使能信號,片選信號,列選通信號,行選通信號和讀寫使能信號。sd_ba是SDRAM的2位Bank地址線,sd_a_是SDRAM的13根地址線。data為SDRAM的16位輸入/輸出雙向數(shù)據(jù)線。
4 結(jié)論
在SDRAM的接口設計中,刷新的實現(xiàn)一直是一個關(guān)鍵問題。選用CPLD產(chǎn)生控制SDRAM的時序,實現(xiàn)對SDRAM的各種操作。應用Verilog語言和QuartusⅡ軟件實現(xiàn)了SDRAM的接口設計,在QuartusⅡ軟件環(huán)境下模擬了STM32系列單片機對SDRAM的讀寫操作時序,讀寫速度達到100MHz,可以在STM32系列單片機擴展64 MBit的SDRAM,其中SDRAM的地址線為13根(行地址線13根,列地址線9根),Bank地址線2根,數(shù)據(jù)線16根。
評論