摘? 要: 介紹SDRAM的主要控制信號" title="控制信號">控制信號和基本命令時序,提出一種應(yīng)用于解復(fù)用" title="復(fù)用">復(fù)用的支持多路讀寫的SDRAM接口設(shè)計,為需要大容量存儲器的電路設(shè)計提供了新思路。?
關(guān)鍵詞: SDRAM? 解復(fù)用? 接口?
?
存儲器是大容量數(shù)據(jù)處理電路的重要組成部分。隨著數(shù)據(jù)處理技術(shù)的進(jìn)一步發(fā)展,對于存儲器的容量和性能提出了越來越高的要求。同步動態(tài)隨機(jī)存儲器SDRAM(Synchronous Dynamic Random Access Memory)因其容量大、讀寫速度快、支持突發(fā)式讀寫及相對低廉的價格而得到了廣泛的應(yīng)用。SDRAM的控制比較復(fù)雜,其接口電路" title="接口電路">接口電路設(shè)計是關(guān)鍵。?
本文首先介紹SDRAM的主要控制信號和基本命令;然后介紹接口電路對SDRAM的主要操作路徑及操作過程,應(yīng)用于解復(fù)用的SDRAM接口電路的設(shè)計方法;最后給出了實現(xiàn)結(jié)果。?
1 SDRAM的主要控制信號和基本命令?
SDRAM的主要控制信號為:?
?
SDRAM的基本命令及主要控制信號見表1。?
?

?
所有的操作控制信號、輸入輸出數(shù)據(jù)都與外部時鐘同步。?
2 接口電路對SDRAM的主要操作路徑及操作過程?
一個完備的SDRAM接口很復(fù)雜。由于本文的SDRAM接口應(yīng)用于解復(fù)用,處理的事件相對來說比較簡單,因而可以簡化設(shè)計而不影響性能。接口電路對SDRAM的主要操作可分為:初始化操作、讀操作、寫操作、自動刷新操作。?
(1)初始化操作?
SDRAM上電一段時間后,經(jīng)過初始化操作才可以進(jìn)入正常工作過程。初始化主要完成預(yù)充電、自動刷新和模式寄存器的配置。操作過程如圖1所示。?
(2)讀寫操作" title="讀寫操作">讀寫操作?
讀寫操作主要完成與SDRAM的數(shù)據(jù)交換。讀操作過程如圖2所示,寫操作過程如圖3所示。?
(3)刷新操作?
動態(tài)存儲器(Dynamic RAM)都存在刷新問題。這里主要采用自動刷新方式,每隔一段時間向SDRAM發(fā)一條刷新命令。刷新過程如圖4所示。?
?

?
3 接口電路的設(shè)計?
(1)解復(fù)用電路?
本解復(fù)用電路主要完成將1路高速數(shù)據(jù)流解復(fù)用為4路數(shù)據(jù)流,其結(jié)構(gòu)框圖如圖5所示。1路數(shù)據(jù)流進(jìn)入解復(fù)用器后,經(jīng)過SDRAM緩沖,解復(fù)用為4路數(shù)據(jù)流。?
?

?
由于要解復(fù)用為4路數(shù)據(jù)流,為了充分利用時隙,滿足高速的要求,采用4個bank的SDRAM,各路數(shù)據(jù)緩沖對應(yīng)不同的bank。為簡化設(shè)計,數(shù)據(jù)流1的緩沖區(qū)定為bank0,數(shù)據(jù)流2的緩沖區(qū)定為bank1,數(shù)據(jù)流3的緩沖區(qū)定為bank2,數(shù)據(jù)流4的緩沖區(qū)定為bank3。對于每路數(shù)據(jù)實際上是以高速率集中寫入,然后以低速率均勻讀出。?
由于進(jìn)行的是解復(fù)用,因此寫入的數(shù)據(jù)只有1路,但是有可能4路數(shù)據(jù)同時都要讀出。所以對于4路數(shù)據(jù)流,其讀寫地址和讀寫使能信號是分開的。?
(2) SDRAM接口電路的時序控制?
高速數(shù)據(jù)流的速率為3M字節(jié)/秒,采用的系統(tǒng)時鐘為20倍的字節(jié)時鐘。送入SDRAM的時鐘為60MHz系統(tǒng)時鐘。在一個字節(jié)時鐘內(nèi)對SDRAM的操作最多有5次(1次讀,4次寫),而且為了滿足刷新的要求,每個字節(jié)時鐘進(jìn)行一次刷新操作。根據(jù)SDRAM的時序要求,這樣的操作是難以實現(xiàn)的。因而要通過多bank操作,盡量做到時分復(fù)用來實現(xiàn)。圖6給出了在一個字節(jié)時鐘周期" title="時鐘周期">時鐘周期內(nèi)數(shù)據(jù)流1進(jìn)行讀寫操作,其它3路數(shù)據(jù)進(jìn)行讀操作的命令排序時序圖??梢钥闯鐾ㄟ^多bank操作,時分復(fù)用,在20個系統(tǒng)時鐘節(jié)拍內(nèi)所需的讀寫操作命令剛好很緊湊地排開。?
?

?
一個字節(jié)時鐘內(nèi)對SDRAM讀寫操作是隨機(jī)的,這與數(shù)據(jù)流的復(fù)用比例有關(guān)。為了滿足時序,根據(jù)上面的說明,需要把一個字節(jié)時鐘周期內(nèi)對SDRAM的命令合理排序,然后按照排好的順序執(zhí)行命令。這樣就需要把一個字節(jié)時鐘周期內(nèi)對SDRAM的操作進(jìn)行緩存,然后在下一個字節(jié)時鐘周期內(nèi)進(jìn)行排序、與SDRAM命令相對應(yīng)、將命令譯碼產(chǎn)生相應(yīng)的控制信號線,完成操作。緩存排序過程如圖7所示。?
?

?
注:命令排序的結(jié)果如圖6。?
(3)SDRAM接口電路?
SDRAM接口電路中需要專門操作緩沖區(qū)存儲一個字節(jié)時鐘周期內(nèi)的操作,以備下一字節(jié)時鐘的排序。為了方便處理,對每路數(shù)據(jù)的緩沖操作內(nèi)容(或讀或?qū)?放在一個緩沖區(qū)。由于數(shù)據(jù)流的連續(xù)性,排序的同時仍然會有操作要求,因此每路的操作內(nèi)容緩沖區(qū)分為兩塊。對一塊緩沖區(qū)寫入時,讀出另一塊緩沖區(qū)中的操作內(nèi)容,進(jìn)行排序、譯碼、執(zhí)行。根據(jù)字節(jié)時鐘切換對緩沖區(qū)的讀寫,從而避免沖突。對于從SDRAM讀出的數(shù)據(jù),每路數(shù)據(jù)寫入相應(yīng)的讀出數(shù)據(jù)緩沖區(qū)。同樣每路的讀出數(shù)據(jù)緩沖區(qū)也分為兩塊,根據(jù)字節(jié)時鐘切換讀寫。?
由于一個字節(jié)時鐘周期內(nèi),每路所需的操作最多有2次,每路的操作內(nèi)容緩沖區(qū)只需兩個單元(每個單元存儲了此次的讀寫使能信號、寫入數(shù)據(jù)、地址)即可。對于讀出數(shù)據(jù)緩沖區(qū),由于一個字節(jié)時鐘每路數(shù)據(jù)最多執(zhí)行一次讀操作,所以讀出數(shù)據(jù)緩沖區(qū)只需要一個字節(jié)。這兩類緩沖區(qū)容量都小,因此全部用寄存器來實現(xiàn),控制簡單。?
整個接口電路的結(jié)構(gòu)框圖如圖8所示。?
?

?
4 SDRAM接口的實現(xiàn)結(jié)果?
針對MT48LC8M8A2的SDRAM,采用同步設(shè)計方法,用Verilog HDL硬件描述語言建立模型,接口電路已經(jīng)調(diào)試通過,規(guī)模為2100門(NAND)。整個解復(fù)用電路也已經(jīng)調(diào)試通過。?
參考文獻(xiàn)?
1 MICRON. SDRAM Data Sheets. http://www.micron.com/?
2 Tomasz Szymanski. SDRAM controller for real time digital image processing systems. CADSM 2001 proceeding?
3 孫 玉. 數(shù)字復(fù)接技術(shù)(修訂本).北京:人民郵電出版社,1991