已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于FPGA的SDRAM控制器的設(shè)計和實現(xiàn)0引言隨著電子技術(shù)在工業(yè)、醫(yī)療、商業(yè)等領(lǐng)域的發(fā)展,人們對數(shù)據(jù)傳輸率的要求越來越高,傳統(tǒng)的單片機早已不能滿足這種高速數(shù)據(jù)傳輸?shù)囊?。與此同時,可編程的邏輯器件FPGA/CPLD以其強大的功能,開發(fā)過程投資小、周期短,可反復(fù)編程修改,開發(fā)工具智能化等特點,成為當今硬件設(shè)計的潮流;相比而言,F(xiàn)PGA即現(xiàn)場可編程門陣列,它的集成度高,可完成極其復(fù)雜的時序與組合邏輯電路功能,更適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計領(lǐng)域1。SDRAM即:同步動態(tài)隨即存儲器,與傳統(tǒng)的DRAM有很大區(qū)別。它可以與系統(tǒng)總線以同頻率工作,用同一個CPU時鐘周期即可完成數(shù)據(jù)的訪問和刷新,進而大大的提高了數(shù)據(jù)傳輸率,其速度遠大于DRAM。因而,SDRAM常作為數(shù)據(jù)緩存應(yīng)用于高速數(shù)據(jù)傳輸系統(tǒng)中。目前,許多嵌入式設(shè)備的大容量、高速度存儲器都采用SDRAM來實現(xiàn),而且大多都是用專用芯片完成其控制電路,這不但提高了設(shè)計成本,而且使系統(tǒng)的硬件電路變得復(fù)雜。隨著FPGA在嵌入式系統(tǒng)中的廣泛應(yīng)用,如果我們能夠結(jié)合具體的需要,利用FPGA來設(shè)計自己的SDRAM控制器,這些問題就迎刃而解了。然而,SDRAM的控制邏輯復(fù)雜、時序要求嚴格,常常困擾設(shè)計人員。有很多文章2,3,4,5詳細的介紹了SDRAM的工作原理、控制時序和指令特點,以及基于FPGA的SDRAM控制器的實現(xiàn)方法,但是并沒有詳細的給出控制器內(nèi)部結(jié)構(gòu)和指令時序的控制問題。因此。本文將介紹一種基于FPGA的通用SDRAM控制器,并著重介紹設(shè)計方案中各模塊的功能和實現(xiàn)方法。該控制器用VHDL語言程序?qū)崿F(xiàn),完成了SDRAM指令狀態(tài)轉(zhuǎn)換、信號仲裁判斷,并巧妙的用三個移位寄存器解決了指令的邏輯和時序的問題。1.SDRAM簡介SDRAM具有空間存儲量大、讀寫速度快、價格相對便宜的特點。但其控制邏輯復(fù)雜,需要周期性刷新操作、行列管理、不同延時和命令序列等。1.1SDRAM地址結(jié)構(gòu)SDRAM的存儲地址分為頁(bank)地址,行(row)地址和列(column)地址。例如一個8MByte的SDRAM,被分為4個bank,即1個bank為2MByte,每個bank包括12行8列。1.2SDRAM的指令SDRAM的一系列指令如表1所示,每個指令最終都是通過控制RAS、CAS、WE信號來實現(xiàn)。通常對SDRAM的操作過程如下:表1SDRAM命令(1)SDRAM初始化操作:上電后至少等待100ns,然后至少執(zhí)行1條空操作;對所有頁執(zhí)行預(yù)充電操作;向各頁發(fā)出兩條刷新操作指令;最后執(zhí)行SDRAM工作模式的設(shè)定LMR命令用來配置SDRAM工作模式寄存器,SDRAM工作寄存器如表2所示。其中A11A10是用戶保留位;A9用來配置寫突發(fā)模式;A8A7是操作模式,通常為“00”,代表標準操作模式;A6A4設(shè)置CAS延遲時間;A3決定突發(fā)操作模式是順序還是間隔型;最后的三位A2A0用來配置突發(fā)長度。表2SDRAM工作寄存器A11A10A9A8A7A6A5A4A3A2A1A0ReserveWriteburstmodeOperatingmodeLatencymodeBursttypeBurstlength(2)SDRAM讀、寫操作:根據(jù)實際應(yīng)用的需要,發(fā)出讀、寫指令。SDRAM可實現(xiàn)突發(fā)式讀寫,支持的突發(fā)長度可配置為1個、2個、4個、8個數(shù)據(jù)周期或者頁模式。并且突發(fā)的模式可以配置為順序或者間隔型。對SDRAM進行訪問的最主要操作就是讀RD和寫WR操作。SDRAM在進行讀寫操作時,必須要先進行頁激活A(yù)CT操作,以保證存儲單元是打開的,以便從中讀取地址或者寫入地址,關(guān)閉存儲單元通過預(yù)充電PHC命令實現(xiàn)。在進行寫操作時,內(nèi)部的列地址和數(shù)據(jù)就會被寄存;進行讀操作時,內(nèi)部地址被寄存,等待CAS延遲時間(通常為13個時鐘周期)后,讀出的數(shù)據(jù)出現(xiàn)在數(shù)據(jù)總線上,具體時序詳見SDRAM數(shù)據(jù)手冊,此處不再贅述。(3)操作終止:當SDRAM接收到讀、寫指令后,開始進行順次的讀寫操作,直到達到突發(fā)長度或者突發(fā)終止指令BT出現(xiàn)。2SDRAM控制器方案SDRAM控制器【6】針對SDRAM的指令操作特點,為SDRAM提供同步命令接口和時序邏輯控制,下面將以ALTERA公司的Cyclone系列FPGA為例,主機系統(tǒng)時鐘為100MHz,使用三星公司的K4S641632E,8MByteSDRAM【7】,介紹SDRAM控制器的具體設(shè)計方法。圖1為SDRAM控制器的接口原理圖。圖1SDRAM控制器接口原理圖接口信號介紹:(1)與主機接口信號:CLK:系統(tǒng)時鐘信號;RESET::系統(tǒng)復(fù)位信號;CMD2:0:譯碼指令,如表3所示;CMDACK:指令應(yīng)答信號,通知主機命令已被SDRAM執(zhí)行;ADDR:地址線,根據(jù)具體情況確定位數(shù),本例中為22位,A21、A20代表頁地址BA1,BA0;A19A8代表行地址;A7A0代表列地址;DATAIN/DATAOU:輸入、輸出數(shù)據(jù)總線;DM:數(shù)據(jù)掩碼;(2)與SDRAM接口信號:SADDR:12位地址線,在讀、寫操作時,地址線分時復(fù)用為行地址和列地址;BA:頁地址,BA0,BA1;CS:片選信號;CKE:時鐘使能信號;RAS、CAS、WE:命令控制信號;DQM:SDRAM數(shù)據(jù)掩碼;DQ:雙向數(shù)據(jù)線;SDRAM控制器作為頂層模塊,由3個主要模塊組成:接口控制模塊、命令生成模塊、數(shù)據(jù)路徑模塊。下面將詳細的介紹各個模塊的功能和關(guān)鍵設(shè)計的VHDL實現(xiàn)方法。表3CMD命令字2.1接口控制模塊接口控制模塊主要實現(xiàn)的功能包括:將CMD2:0翻譯成接口指令和對刷新計數(shù)器的控制,如圖2所示。首先通過狀態(tài)機來完成對CMD2:0的翻譯,在VHDL程序中聲明一個用戶自定義類型states,根據(jù)CMD2:0輸入來決定狀態(tài)的轉(zhuǎn)移,完成對CMD2:0的解碼,如下所示:typestatesis(nop,reada,writea,refresh,precharge,load_mode);signalstate:states;casecmdiswhen011=statestate=nop;SDRAM需要周期性刷新操作以保持數(shù)據(jù),數(shù)據(jù)手冊中通常會給出在一定的時間T內(nèi),SDRAM至少刷新X次,如果用戶使用頻率為FrMHz的時鐘,則刷新周期Tf可以通過下面的公式計算出:Tf(T*Fr)/X。例如,本例中數(shù)據(jù)手冊要求64ms內(nèi)至少刷新4096次,系統(tǒng)時鐘周期為100MHz,則刷新周期為(64ms*100MHz)/4096,得出結(jié)果等于1562.5,所以至多1562個時鐘周期的時間就必須對SDRAM刷新一次。刷新控制在程序中通過一個計數(shù)器來完成,當?shù)竭_規(guī)定的計數(shù)周期,就向SDRAM發(fā)出REF_REQ刷新請求,直到SDRAM完成刷新操作,發(fā)出REF_ACK刷新應(yīng)答信號,計數(shù)器才重新賦值開始下一次的計數(shù)。圖2接口控制模塊2.2命令生成模塊圖3是命令生成模塊,主要實現(xiàn)了對輸入的指令請求進行仲裁判斷,并將仲裁后要執(zhí)行的指令解碼成SDRAM需要的RAS、CAS等信號,從而實現(xiàn)對SDRAM的控制。圖3命令生成模塊之所以需要仲裁機制,是因為在指令執(zhí)行之前可能會發(fā)生以下情況:其它指令和刷新請求同時到來;刷新請求到來時,其它指令正在執(zhí)行。仲裁機制實現(xiàn)方法如下:(1)SDRAM在每一刻只有一個指令在執(zhí)行;(2)先到的指令先執(zhí)行,即:如果刷新請求到來時,其它命令正在執(zhí)行中,要等到當前命令執(zhí)行完成后,才能執(zhí)行刷新指令;(3)其它指令和刷新請求同時到來時刷新操作先執(zhí)行。經(jīng)過仲裁判斷后,指令將傳入命令生成器。命令生成器不僅要把指令解碼成可控制SDRAM的信號,同時還要用三個移位寄存器對命令執(zhí)行的延遲時間進行控制。第一個為指令延時寄存器,用來保證SDRAM有充足時間完成最終指令。例如,如果命令的執(zhí)行需要8各時鐘周期的時間,則指令延時寄存器com_delay的初值設(shè)為“11111111”,同時聲明一個內(nèi)部信號com_done,作為指令執(zhí)行完成的標志的。在指令執(zhí)行期間,每一個時鐘上升沿到來時,移位寄存器向右移位一次,com_delay0的移入com_done,同時“0”移入最高位com_delay7。當com_done為“0”時,就說明指令的延遲時間已到,即通過com_done的值,就可以判斷當前指令是否執(zhí)行完成。要注意的是:移位寄存器的位數(shù)和初值,應(yīng)該根據(jù)SDRAM的數(shù)據(jù)手冊中命令完成需要的時間和系統(tǒng)的時鐘周期來確定。下面得例程僅供參考。if(do_state=refreshordo_state=readaordo_state=writeaordo_state=prechargeordo_state=load_mode)thencommand_delay(7downto0)=11111111;-移位寄存器初值command_done=1;elsecommand_done=command_delay(0);-移位操作command_delay(6downto0)=command_delay(7downto1);command_delay(7)=0;endif;當輸入的指令為writea和reada指令,將引發(fā)一系列指令的執(zhí)行,和其它指令相比需要附加時間。所以,聲明第二個移位寄存器rw_shift,來計算這兩個指令的附加時間,其工作原理和第一個移位寄存器是一樣的。最后一個移位寄存器oe_shift用來為數(shù)據(jù)通道生成oe,即數(shù)據(jù)輸入、輸出使能信號。對于非頁模式的讀寫來說,oe保持有效的時間取決于突發(fā)長度。并且oe有效的起始時間對讀操作和寫操作時不同的:讀操作時,oe有效的起始時間取決于CAS延時時間,而對于寫操作時則在寫指令開始時oe就是有效的。23數(shù)據(jù)路徑模塊數(shù)據(jù)路徑模塊主要是在writea和reada命令期間處理數(shù)據(jù)的路徑操作。模塊的結(jié)構(gòu)圖如圖4所示。DQ是雙向數(shù)據(jù)線,用來傳輸從SDRAM讀出數(shù)據(jù)和向SDRAM寫入的數(shù)據(jù)。無論是數(shù)據(jù)在讀出還是寫入時,都是在oe有效,即oe為高電平時才能進行傳輸。DM是由主機輸出的數(shù)據(jù)掩碼,通過DQM輸出到SDRAM的LDQM和UDQM管腳,進而控制SDRAMI/O緩沖的低字節(jié)和高字節(jié)。圖4數(shù)據(jù)路徑模塊3總結(jié)本文結(jié)合SDRAM控制指令的特點,詳細的介紹了一種基于FPGA的通用SDRAM控制器的設(shè)計方案。本文所介紹的指令狀態(tài)的轉(zhuǎn)移、仲裁機制的實現(xiàn)和移位寄存器控制指令延遲時間的方法,提供了一種SDRAM控制器的設(shè)計思想,由于SDRAM的控制機制比較復(fù)雜,具有多種突發(fā)讀寫的工作模式,我們可以根據(jù)實際應(yīng)用中的需求情況來編寫程序,實現(xiàn)最基本的讀寫和刷新操作,不必要顧全到每一種情況。SDRAM作為高速數(shù)據(jù)緩存,在基于現(xiàn)場可編程門陣列FPGA的控制下,將在高速、高密度、高端的數(shù)字電路領(lǐng)域中得到更加廣泛的應(yīng)用。參考文獻1王誠,吳華,范麗珍,等.AlteraFPGA/CPLD設(shè)計(基礎(chǔ)篇).人民郵電出版社,2005,7.2田豐,鄧建國,李巍,賈治華.SDRAM的設(shè)計與VHDL實現(xiàn).電子技術(shù)應(yīng)用,2003,(31)2:74-77.3劉云清,佟首峰,姜會林.利用FPGA實現(xiàn)SDRAM控制器的設(shè)計.長春理工大學(xué)學(xué)報.2005,28(4):47-50.4宋一鳴,謝煜,李春茂.基于FPGA的SDRAM控制器設(shè)計.電子工程師,2003,29(9):10-13.5周正昆.基于FPGA的SDRAM控制器設(shè)計.現(xiàn)代電子技術(shù),2003,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人抵押借款簡單合同(2024版)
- 二零二五版電子數(shù)碼產(chǎn)品門店承包經(jīng)營合同4篇
- 2025年度紡織行業(yè)原材料電商直采服務(wù)合同3篇
- 馬鈴薯購銷2025版:年度種植收購合同2篇
- 二零二五版苗圃場技術(shù)員園藝栽培技術(shù)聘用合同4篇
- 情感溝通解決客戶投訴的關(guān)鍵技巧
- 長春科技學(xué)院《健“聲”》2023-2024學(xué)年第一學(xué)期期末試卷
- 長春工程學(xué)院《大學(xué)基礎(chǔ)讀寫4》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版車輛抵押反擔保車輛租賃擔保協(xié)議2篇
- 二零二五版房地產(chǎn)開發(fā)與文化藝術(shù)合作協(xié)議3篇
- 2023年版《安寧療護實踐指南(試行)》解讀課件
- AQ6111-2023個體防護裝備安全管理規(guī)范
- 2024年高考語文備考之常考作家作品(下):中國現(xiàn)當代、外國
- T-CSTM 01124-2024 油氣管道工程用工廠預(yù)制袖管三通
- 2019版新人教版高中英語必修+選擇性必修共7冊詞匯表匯總(帶音標)
- 新譯林版高中英語必修二全冊短語匯總
- 基于自適應(yīng)神經(jīng)網(wǎng)絡(luò)模糊推理系統(tǒng)的游客規(guī)模預(yù)測研究
- 河道保潔服務(wù)投標方案(完整技術(shù)標)
- 品管圈(QCC)案例-縮短接臺手術(shù)送手術(shù)時間
- 精神科病程記錄
- 閱讀理解特訓(xùn)卷-英語四年級上冊譯林版三起含答案
評論
0/150
提交評論