多路讀寫的SDRAM接口設(shè)計
(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ù)流進入解復(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ù)實際上是以高速率集中寫入,然后以低速率均勻讀出。
(2)SDRAM接口電路的時序控制
高速數(shù)據(jù)流的速率為3M字節(jié)/秒,采用的系統(tǒng)時鐘為20倍的字節(jié)時鐘。送入SDRAM的時鐘為60MHz系統(tǒng)時鐘。在一個字節(jié)時鐘內(nèi)對SDRAM的操作最多有5次(1次讀,4次寫),而且為了滿足刷新的要求,每個字節(jié)時鐘進行一次刷新操作。根據(jù)SDRAM的時序要求,這樣的操作是難以實現(xiàn)的。因而要通過多bank操作,盡量做到時分復(fù)用來實現(xiàn)。圖6給出了在一個字節(jié)時鐘周期的內(nèi)數(shù)據(jù)流1進行讀寫操作,其它3路數(shù)據(jù)進行讀操作的命令排序時序圖??梢钥闯鐾ㄟ^多bank操作,時分復(fù)用,在20個系統(tǒng)時鐘節(jié)拍內(nèi)所需的讀寫操作命令剛好很緊湊地排開。
(3)SDRAM接口電路
SDRAM接口電路中需要專門操作緩沖區(qū)存儲一個字節(jié)時鐘周期內(nèi)的操作,以備下一字節(jié)時鐘的排序。為了方便處理,對每路數(shù)據(jù)的緩沖操作內(nèi)容(或讀或?qū)懀┓旁谝粋€緩沖區(qū)。由于數(shù)據(jù)流的連續(xù)性,排序的同時仍然會有操作要求,因此每路的操作內(nèi)容緩沖區(qū)分為兩塊。對一塊緩沖區(qū)寫入時,讀出另一塊緩沖區(qū)中的操作內(nèi)容,進行排序、譯碼、執(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)試通過。
評論