《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > DDR SDRAM控制器的FPGA實(shí)現(xiàn)

DDR SDRAM控制器的FPGA實(shí)現(xiàn)

2008-08-07
作者:施周淵, 戴慶元

  摘? 要: DDR SDRAM高容量和快速度的優(yōu)點(diǎn)使它獲得了廣泛的應(yīng)用,但是其接口與目前廣泛應(yīng)用的微處理器不兼容。介紹了一種通用的DDR SDRAM控制器的設(shè)計(jì),從而使得DDR SDRAM能應(yīng)用到微處理器中去。

  關(guān)鍵詞: DDR SDRAM控制器? 延時(shí)鎖定回路? FPGA

?

  DDR SDRAM是建立在SDRAM的基礎(chǔ)上的,但是速度和容量卻有了提高。首先,它使用了更多的先進(jìn)的同步電路。其次,它使用延時(shí)鎖定回路提供一個(gè)數(shù)據(jù)濾波信號(hào)。當(dāng)數(shù)據(jù)有效時(shí),存儲(chǔ)器控制器可使用這個(gè)數(shù)據(jù)濾波信號(hào)精確地定位數(shù)據(jù),每16位輸出一次,并且同步來自不同的雙存儲(chǔ)器模塊的數(shù)據(jù)。

  DDR SDRAM不需要提高時(shí)鐘頻率就能加倍提高SDRAM的速度,因?yàn)樗试S在時(shí)鐘脈沖的上升沿" title="上升沿">上升沿和下降沿讀寫數(shù)據(jù)。至于地址和控制信號(hào),還是跟傳統(tǒng)的SDRAM一樣,在時(shí)鐘的上升沿進(jìn)行傳輸。

  由于微處理器、DSP等不能直接使用DDR SDRAM,所以本文介紹一種基于FPGA的DDR SDRAM控制電路。

1 DDR SDRAM控制器的設(shè)計(jì)

1.1總體邏輯圖

  DDR SDRAM控制器的總體邏輯圖如圖1所示。主要由DDR控制模塊" title="控制模塊">控制模塊(Controller)、DDR接口模塊" title="接口模塊">接口模塊(ddr_interface)以及延時(shí)鎖定回路模塊(DLL)三部分組成。下面詳細(xì)介紹各個(gè)模塊的設(shè)計(jì)。

?

1.2 DDR控制模塊的設(shè)計(jì)

  DDR控制模塊包含了主要的狀態(tài)轉(zhuǎn)換。處理器通過sys_cmd對DDR控制模塊寫入命令,完成總線仲裁、解釋命令、時(shí)序分配等任務(wù)。當(dāng)DDR接口模塊對DDR SDRAR數(shù)據(jù)讀寫時(shí)便進(jìn)行控制。

  控制器的狀態(tài)機(jī)如圖2所示??刂破鏖_始設(shè)置在空閑(Idle)狀態(tài),接下去的狀態(tài)根據(jù)控制命令的不同可以是預(yù)充電(Precharge)、導(dǎo)入模式寄存器(Load Mode Register)、刷新(Refresh)、有效(Active)等狀態(tài)。要進(jìn)入讀寫數(shù)據(jù)狀態(tài),必須先經(jīng)過有效狀態(tài)。讀數(shù)據(jù)時(shí),狀態(tài)機(jī)由有效狀態(tài)轉(zhuǎn)換為讀準(zhǔn)備狀態(tài), 然后根據(jù)指令進(jìn)入讀狀態(tài)。控制模塊保持在讀狀態(tài)直到脈沖終止命令觸發(fā)或者數(shù)據(jù)讀完。寫的過程與讀類似,在后面的接口模塊中將詳細(xì)介紹。

?

1.3 DDR接口模塊

  DDR接口模塊負(fù)責(zé)維持外部信號(hào)、DDR控制器與DDR SDRAM之間的雙向數(shù)據(jù)總線信號(hào),保證數(shù)據(jù)和命令能送達(dá)DDR SDRAM。

圖3給出了讀寫操作的數(shù)據(jù)流框圖。對寫周期而言,128位的sys_data_i被fpga_clk2x分頻為64位的數(shù)據(jù),通過lac_clk選擇高低位。為了減小輸入輸出的延遲,數(shù)據(jù)在進(jìn)出模塊時(shí)都將被保存在輸入輸出寄存器中。ddr_write_en產(chǎn)生ddr_dq所需的三態(tài)信號(hào)。

?

  對于寫周期而言,64位的ddr_dq信號(hào)在輸入輸出寄存器被fpga_clk2x觸發(fā)裝配成128位的信號(hào),其中低位信號(hào)在下降沿時(shí)被裝配,高位信號(hào)在上升沿時(shí)被裝配。

  圖4給出了一個(gè)典型的寫操作的波形圖。在T1期間,寫命令、地址和第一個(gè)" title="第一個(gè)">第一個(gè)128位數(shù)據(jù)被分別置于sys_cmd、sys_addr和sys_data_i三個(gè)端口。在T2期間,控制器的狀態(tài)由空閑轉(zhuǎn)變?yōu)橛行А=酉聛韮蓚€(gè)周期,控制器給出ACTIVE命令以及行片選地址。再經(jīng)3個(gè)周期的延遲以后,控制器給出WRITEA命令和列片選地址。接下來,ddr_dq和ddr_dqs被設(shè)置成雙倍速率模式。

?

1.4 DLL模塊

  圖5示出了給FPGA以及DDR SDRAM提供時(shí)鐘信號(hào)" title="時(shí)鐘信號(hào)">時(shí)鐘信號(hào)的兩個(gè)DLL模塊的結(jié)構(gòu)圖。第一個(gè)DLL模塊,即DLL_EXT給DDR SDRAM提供ddr_clk及ddr_clkb兩個(gè)時(shí)鐘信號(hào),并且接收ddr_clk的反饋。第二個(gè)DLL模塊,即DLL_INT給FPGA提供兩個(gè)內(nèi)部時(shí)鐘信號(hào)fpga_clk和fpga_clk2x,它的反饋信號(hào)來自fpga_clk。兩個(gè)DLL有著相同的時(shí)鐘輸入,但是不同的反饋信號(hào)保證了輸入時(shí)鐘和FPGA時(shí)鐘以及DDR SDRAM時(shí)鐘之間的零延遲。

?

2 實(shí)現(xiàn)

  本設(shè)計(jì)選用XILINX公司的Vietex-E系列FPGA來實(shí)現(xiàn),因?yàn)檫@個(gè)系列內(nèi)嵌的DLL模塊和可選擇輸入輸出結(jié)構(gòu)的特點(diǎn)能極大地方便設(shè)計(jì)。仿真結(jié)果顯示,在133MHz的主頻下,最高能獲得1.6GB/s的速率。??????

  本文給出了基于FPGA的DDR SDRAM控制器的設(shè)計(jì)。從仿真中可以看出,這種結(jié)構(gòu)的DDR控制器有著很高的性能,因此將得到廣泛的應(yīng)用。

?

參考文獻(xiàn)

1 Guo Li.Implementation of DDR SDRAM Controllers via VHDL.The Journal of China?University of Posts and Telecommunication,?Mar 2002;9(1)

2 Synthesizable High Performance SDRAM Controller. XAPP134(v3.1). Xilinx Company,?February 1, 2000

3 Data book 2002, Altera Company of Defence Industry.Altera Company,2002

4 張 良.數(shù)字電路設(shè)計(jì)與Verilog HDL. 北京:人民郵電出版社,2001

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。