基于EPM1240的SDRAM控制器的設(shè)計(jì)
摘要:SDRAM的讀寫(xiě)邏輯復(fù)雜,最高時(shí)鐘頻率達(dá)100 MHz以上,普通單片機(jī)無(wú)法實(shí)現(xiàn)復(fù)雜的SDRAM控制操作,復(fù)雜可編程邏輯器件CPLD具有編程方便,集成度高,速度快,價(jià)格低等優(yōu)點(diǎn)。因此選用CPLD設(shè)計(jì)SDRAM接口控制模塊,簡(jiǎn)化主機(jī)對(duì)SDRAM的讀寫(xiě)控制。通過(guò)設(shè)計(jì)基于CPLD的SDRAM控制器接口,可以在STM系列、ARM系列、STC系列等單片機(jī)和DSP等微處理器的外部連接SDRAM,增加系統(tǒng)的存儲(chǔ)空間。
關(guān)鍵詞:SDRAM;接口;Verilog;CPLD
數(shù)據(jù)采集處理技術(shù)是現(xiàn)代信號(hào)處理的基礎(chǔ),廣泛應(yīng)用于雷達(dá)、聲納、軟件無(wú)線電、瞬態(tài)信號(hào)測(cè)試等領(lǐng)域。隨著信息科學(xué)的飛速發(fā)展,人們面臨的信號(hào)處理任務(wù)越來(lái)越繁重,對(duì)數(shù)據(jù)采集處理系統(tǒng)的要求也越來(lái)越高。近年來(lái)復(fù)雜可編程邏輯器件(Complex Programable Logic Dev ice,CPLD)由于其設(shè)計(jì)靈活性、更強(qiáng)的適應(yīng)性及可重構(gòu)性,結(jié)合同步動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器(Synchronous Dynamic Random Access Memory,SDRAM)的高速、大容量、價(jià)格優(yōu)勢(shì),在設(shè)計(jì)高速實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)時(shí)受到了廣泛的關(guān)注。SDRAM(同步動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器)具有價(jià)格低廉、密度高、數(shù)據(jù)讀寫(xiě)速度快的優(yōu)點(diǎn),從而成為數(shù)據(jù)緩存的首選存儲(chǔ)介質(zhì)。
1 SDRAM的基本操作
SDRAM稱(chēng)為同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,同步是指其時(shí)鐘頻率與CPU前端總線的系統(tǒng)時(shí)鐘頻率相同,SDRAM可以使所有的輸入輸出信號(hào)保持與系統(tǒng)時(shí)鐘同步,并且內(nèi)部的命令的發(fā)送與數(shù)據(jù)的傳輸都以它為基準(zhǔn);動(dòng)態(tài)是指存儲(chǔ)陣列需要不斷刷新來(lái)保證數(shù)據(jù)不丟失;隨機(jī)是指數(shù)據(jù)不是線性依次存儲(chǔ),而是自由指定地址進(jìn)行數(shù)據(jù)的讀寫(xiě)。由于SDRAM為了提高存儲(chǔ)容量,采用硅片電容來(lái)存儲(chǔ)信息,隨著時(shí)間的推移,必須給電容重新充電和刷新來(lái)保持電容里的數(shù)據(jù)信息。
在對(duì)SDRAM進(jìn)行存取數(shù)據(jù)操作之前,首先要對(duì)其初始化,即設(shè)置SDRAM的普通模式寄存器和擴(kuò)展模式寄存器,確定SDRAM的工作方式,這些設(shè)置包括突發(fā)長(zhǎng)度、突發(fā)類(lèi)型、CAS潛伏期和工作模式的設(shè)置。在SDRAM芯片內(nèi)部有一個(gè)邏輯控制單元,并且有一個(gè)模式寄存器為其提供控制參數(shù)。因此,每次開(kāi)機(jī)時(shí)SDRAM都要先對(duì)這個(gè)控制邏輯核心進(jìn)行初始化。初始化過(guò)程如圖1所示。
1.1 模式寄存器的設(shè)置
Mode Register Set:模式寄存器設(shè)置,是指對(duì)SDRAM的工作方式做一定義,對(duì)寄存器的設(shè)置,可以在每次系統(tǒng)啟動(dòng)時(shí),也可以在每次存取之間進(jìn)行,當(dāng)SDRAM掉電時(shí),系統(tǒng)重新啟動(dòng)后必須重寫(xiě)模式寄存器。其空間安排如下表1所示:
Burst Length:決定當(dāng)接受到一個(gè)讀寫(xiě)信號(hào)時(shí)可以讀取的最大的列數(shù)目,對(duì)于連續(xù)讀取模式,其值可以為1,2,4,8或整頁(yè)(full page),當(dāng)為隔行讀取模式是,其值為1,2,4,8。
Burst Type:決定讀取模式為連續(xù)方式還是隔行方式。
CAS Latency:決定當(dāng)一個(gè)讀信號(hào)有效到第一個(gè)數(shù)值在數(shù)據(jù)線上有效時(shí)之間的間隔延遲時(shí)間,延遲時(shí)間可以設(shè)定為1,2或3個(gè)時(shí)鐘周期。例如:如果延遲時(shí)間為m,讀信號(hào)在n時(shí)刻有效,那么數(shù)據(jù)將在第m+n個(gè)時(shí)鐘信號(hào)有效,如果相應(yīng)的讀取時(shí)間適合的話(huà),而在m+n-1時(shí)刻數(shù)據(jù)線傳送數(shù)據(jù)。
Operation Mode:A7-A8表示操作的模式。
Write Burst Mode:當(dāng)A9=0時(shí),有A0-A2決定的Burst Length適合于讀和寫(xiě)兩種操作。而當(dāng)A9=1時(shí),Write只能讀取單一的單元,而不能支持塊操作。
Reserved:A10,A11是保留位,為以后的擴(kuò)展使用。
評(píng)論