多路讀寫SDRAM接口設(shè)計(jì)
(2)SDRAM接口電路的時(shí)序控制
高速數(shù)據(jù)流的速率為3M字節(jié)/秒,采用的系統(tǒng)時(shí)鐘為20倍的字節(jié)時(shí)鐘。送入SDRAM的時(shí)鐘為60MHz系統(tǒng)時(shí)鐘。在一個(gè)字節(jié)時(shí)鐘內(nèi)對(duì)SDRAM的操作最多有5次(1次讀,4次寫),而且為了滿足刷新的要求,每個(gè)字節(jié)時(shí)鐘進(jìn)行一次刷新操作。根據(jù)SDRAM的時(shí)序要求,這樣的操作是難以實(shí)現(xiàn)的。因而要通過多bank操作,盡量做到時(shí)分復(fù)用來實(shí)現(xiàn)。圖6給出了在一個(gè)字節(jié)時(shí)鐘周期的內(nèi)數(shù)據(jù)流1進(jìn)行讀寫操作,其它3路數(shù)據(jù)進(jìn)行讀操作的命令排序時(shí)序圖。可以看出通過多bank操作,時(shí)分復(fù)用,在20個(gè)系統(tǒng)時(shí)鐘節(jié)拍內(nèi)所需的讀寫操作命令剛好很緊湊地排開。
一個(gè)字節(jié)時(shí)鐘內(nèi)對(duì)SDRAM讀寫操作是隨機(jī)的,這與數(shù)據(jù)流的復(fù)用比例有在。為了滿足時(shí)序,根據(jù)上面的說明,需要把一個(gè)字節(jié)時(shí)鐘周期內(nèi)對(duì)SDRAM的命令合理排序,然后按照排好的順序執(zhí)行命令。這樣就需要把一個(gè)字節(jié)時(shí)鐘周期內(nèi)對(duì)SDRAM的操作進(jìn)行緩存,然后在下一個(gè)字節(jié)時(shí)鐘周期內(nèi)進(jìn)行排序、與SDRAM命令相對(duì)應(yīng)、將命令譯碼產(chǎn)生相應(yīng)的控制信號(hào)線,完成操作。緩存排序過程如圖7所示。
(3)SDRAM接口電路
SDRAM接口電路中需要專門操作緩沖區(qū)存儲(chǔ)一個(gè)字節(jié)時(shí)鐘周期內(nèi)的操作,以備下一字節(jié)時(shí)鐘的排序。為了方便處理,對(duì)每路數(shù)據(jù)的緩沖操作內(nèi)容(或讀或?qū)?放在一個(gè)緩沖區(qū)。由于數(shù)據(jù)流的連續(xù)性,排序的同時(shí)仍然會(huì)有操作要求,因此每路的操作內(nèi)容緩沖區(qū)分為兩塊。對(duì)一塊緩沖區(qū)寫入時(shí),讀出另一塊緩沖區(qū)中的操作內(nèi)容,進(jìn)行排序、譯碼、執(zhí)行。根據(jù)字節(jié)時(shí)鐘切換對(duì)緩沖區(qū)的讀寫,從而避免沖突。對(duì)于從SDRAM讀出的數(shù)據(jù),每路數(shù)據(jù)寫入相應(yīng)的讀出數(shù)據(jù)緩沖區(qū)。同樣每路的讀出數(shù)據(jù)緩沖區(qū)也分為兩塊,根據(jù)字節(jié)時(shí)鐘切換讀寫。
由于一個(gè)字節(jié)時(shí)鐘周期內(nèi),每路所需的操作最多有2次,每路的操作內(nèi)容緩沖區(qū)只需兩個(gè)單元(每個(gè)單元存儲(chǔ)了此次的讀寫使能信號(hào)、寫入數(shù)據(jù)、地址)即可。對(duì)于讀出數(shù)據(jù)緩沖區(qū),由于一個(gè)字節(jié)時(shí)鐘每路數(shù)據(jù)最多執(zhí)行一次讀操作,所以讀出數(shù)據(jù)緩沖區(qū)只需要一個(gè)字節(jié)。這兩類緩沖區(qū)容量都小,因此人部用寄存器來實(shí)現(xiàn),控制簡單。
整個(gè)接口電路的結(jié)構(gòu)框圖如圖8所示。
4 SDRAM接口的實(shí)現(xiàn)結(jié)果
針對(duì)MT48LC8M8A2的SDRAM,采用同步設(shè)計(jì)方法,用Verilog HDL硬件描述語言建立模型,接口電路已經(jīng)調(diào)試通過,規(guī)模為2100門(NAND)。整個(gè)解復(fù)用電路也已經(jīng)調(diào)試通過。
評(píng)論