基于A(yíng)MBA-AHB總線(xiàn)的SDRAM控制器設計方案
4.2 總線(xiàn)地址譯碼
AHB 總線(xiàn)可以?huà)於鄠€(gè)從設備,如圖3 所示的從機A,從機B.因此在一次讀寫(xiě)操作中,需要對來(lái)自總線(xiàn)的讀寫(xiě)地址進(jìn)行譯碼,以判斷總線(xiàn)是對哪個(gè)從設備進(jìn)行訪(fǎng)問(wèn),并產(chǎn)生相應的內部片選信號。
4.3 SDRAM控制器
SDRAM 控制器由5個(gè)模塊組成:SDRAM 控制器模塊、控制接口模塊、命令解析模塊、地址數據復用總線(xiàn)模塊和數據通路模塊。SDRAM 控制器模塊是頂層模塊,通過(guò)例化其他4個(gè)子模塊將其連成一個(gè)整體。
4.3.1 控制接口模塊
控制接口模塊對來(lái)自AHB 總線(xiàn)信號和SDRAM 控制寄存器的信號解碼并寄存,傳送已經(jīng)解碼的NOP、WRITEA、READA、REFRESH、PRECHARGE 和LOAD_MODE命令和ADDR給命令解析模塊。
控制接口模塊還含有一個(gè)用于給命令解析模塊產(chǎn)生周期刷新命令的刷新電路,用于給命令模塊發(fā)送刷新請求。收到命令模塊的刷新請求后,減法計數器重新裝入數值,重復以上過(guò)程。
本設計所使用的MT48LC16M4A2 型號SDRAM 存儲器具有每64 ms刷新4 096次的要求,因此由64 ms/4 096=15.625 09 μs知,器件必須至少每15.625 09 μs刷新一次。假如存儲器和SDRAM控制器工作在100 MHz的時(shí)鐘周期下,那么刷新間隔周期的最大數值是15.625 μs/0.01 μs=1 562 d.
4.3.2 命令解析模塊
命令解析模塊接收控制接口模塊輸出的已經(jīng)解碼的命令和周期性輸出的刷新請求,產(chǎn)生合適的命令給SDRAM器件。從刷新控制邏輯電路發(fā)出的刷新請求比主機接口的命令的優(yōu)先級別高,因此模塊還含有一個(gè)簡(jiǎn)易的仲裁電路,用于仲裁主機的命令和刷新控制邏輯所產(chǎn)生的刷新請求。
在仲裁電路已經(jīng)接受主機命令后,命令被送到模塊的命令發(fā)生器部分,命令模塊使用3個(gè)移位寄存器來(lái)產(chǎn)生命令之間的時(shí)序,一個(gè)移位寄存器用于控制ACT 命令;第二個(gè)用于控制讀或寫(xiě)命令發(fā)出的時(shí)間;第三個(gè)用于對命令的持續時(shí)間定時(shí),這樣仲裁其就可以判斷最近請求的操作是否已經(jīng)完成。
命令解析模塊所產(chǎn)生的輸出信號OE用于控制數據通路模塊的輸入數據通路的三態(tài)緩沖。
4.3.3 地址數據復用總線(xiàn)模塊
該模塊實(shí)現SDRAM的地址復用,地址的行部分在A(yíng)CT(RAS)命令時(shí)復用到SDRAM輸出的A[11:0],地址的列部分在讀(CAS)或寫(xiě)命令時(shí)復用到SDRAM地址線(xiàn)上。
4.3.4 數據通路模塊
數據通路模塊提供了SDRAM和主機之間的數據接口,負責SDRAM控制器與外部SDRAM存儲器之間的數據交換,具體說(shuō)就是在對SDRAM寫(xiě)操作時(shí)將來(lái)自AHB總線(xiàn)的數據放到外部數據線(xiàn)上,在對SDRAM讀操作時(shí),將來(lái)自SDRAM的數據正確送到AHB總線(xiàn)上。
5 設計實(shí)現與仿真結果
本文使用Micron 公司提供的型號為MT48LC16M4A2 的Verilog 仿真模型進(jìn)行仿真驗證,證明了設計的正確性。仿真結果如圖4,圖5所示,圖4是SDRAM寫(xiě)操作的仿真時(shí)序圖,即將AHB總線(xiàn)控制操作轉化成SDRAM 寫(xiě)操作指令;圖5 表示的是將寫(xiě)入SDRAM的數據連續讀出的仿真時(shí)序。
6 結語(yǔ)
本方案設計了一個(gè)基于A(yíng)MBA-AHB 總線(xiàn)的SDRAM控制器,將AMBA-AHB 總線(xiàn)的控制操作轉化成了符合SDRAM 操作規范的控制指令,最后的仿真波形證實(shí)了該設計的正確性。
評論