基于Stratix III的DDR3 SDRAM控制器設(shè)計
1 引言
DDR3 SDRAM是由JEDEC(電子設(shè)備工程聯(lián)合委員會)制定的全新下一代內(nèi)存技術(shù)標(biāo)準(zhǔn),具有 速度更快、功耗更低、效能更高以及信號質(zhì)量更好等優(yōu)點,對于解決高速系統(tǒng)(例如某些高速圖 像處理系統(tǒng))設(shè)計中由于存儲器的處理速度和帶寬所產(chǎn)生的瓶頸,改善和提高系統(tǒng)性能提供了更 好的解決方案。
本文在分析DDR3 SDRAM的特點和基本控制方式的基礎(chǔ)上,給出了采用Altera公司最新的 ALTMEMPHY高速存儲器接口方案設(shè)計的DDR3 SDRAM控制器,并在Altera公司的StratixIII系列 FPGA上完成了驗證和實現(xiàn)。目前,使用該控制器的DDR3 SDRAM已經(jīng)在某真三維立體顯示器項目 中作為高速圖像緩存得到了實際應(yīng)用。
2 DDR3 SDRAM的特點
與上一代器件相比,DDR3內(nèi)存技術(shù)仍然采用了在時鐘的上升沿和下降沿同時進行數(shù)據(jù)傳輸 的基本方式,工作原理與控制方式基本相同,但又有著一些不同的新特點:擁有兩倍于DDR2的 8bit預(yù)取(prefetch)能力;突發(fā)長度(Burst Length,BL)固定為8,且增加了突發(fā)突變(Burst Chop)模式;新增了重置(Reset)功能,可以使DDR3達到功耗最小的狀態(tài)等[1]。
與其它SDRAM一樣,DDR3 SDRAM的操作指令主要通過RAS(行地址選擇)、CAS(列地址選擇)、 WE(寫使能信號)、CS(片選信號)以及CKE(時鐘使能信號)的高低電平組合來實現(xiàn)。但基于 其自身特點,DDR3指令集內(nèi)不但對原有的指令做了很多改動,同時也增加了一些新的指令,時 序方面也有一定的差別。
在讀寫操作方面,與DDR2一樣,讀操作時由內(nèi)存給出一個與數(shù)據(jù)同步的DQS信號,它的邊沿 與讀數(shù)據(jù)一致;寫操作時,控制器同樣給出一個與數(shù)據(jù)同步的數(shù)據(jù)濾波信號DQS,它的邊沿處于寫數(shù)據(jù)當(dāng)中.DDR3具有on-the-fly突發(fā)模式,允許用戶在此模式下選擇4或8的突發(fā)長度。圖1 給出了DDR3內(nèi)存典型的讀/寫操作時序圖[2]。
3 DDR3 SDRAM控制器的設(shè)計
DDR3 SDRAM控制器的設(shè)計方法采用了Altera推薦的ALTMEMPHY+用戶自定義控制器的結(jié)構(gòu)。 與傳統(tǒng)SDRAM控制器相比,此結(jié)構(gòu)加入了ALTMEMPHY接口部分。ALTMEMPHY宏功能是Altera開發(fā)的 能夠動態(tài)自校準(zhǔn)的數(shù)據(jù)通路,允許用戶在Stratix III等器件中快速建立物理層接口(physical layer interface),連接FPGA內(nèi)部控制邏輯和外部存儲器。使用ALTMEMPHY的的突出優(yōu)點是可 以通過訓(xùn)練模式和校準(zhǔn)功能來消除FPGA和存儲器在制造工藝中的偏差。在工作過程中,它利用 跟蹤機制來跟蹤并補償FPGA內(nèi)部的電壓或者溫度變化,而且不會中斷數(shù)據(jù)傳輸。DDR3 SDRAM控 制器的邏輯框圖如圖2所示,主要包括ALTMEMPHY和用戶自定義控制器兩部分。
為了簡化內(nèi)部邏輯設(shè)計,提高系統(tǒng)性能,控制器設(shè)計采用半速率方案。所謂半速率方案, 就是將雙倍數(shù)據(jù)速率(DDR)轉(zhuǎn)換為時鐘頻率減半,并且只在時鐘上升沿進行數(shù)據(jù)采集的半數(shù)據(jù) 速率(HDR)。采用半速率方案后,內(nèi)部邏輯頻率為外部存儲器接口頻率的一半,但是內(nèi)部數(shù)據(jù) 總線的寬度是外部數(shù)據(jù)總線寬度的4倍。在內(nèi)部頻率受限,外部引腳數(shù)給定時,半速率方案比全 速率方案支持的帶寬加倍。
3.1 ALTMEMPHY設(shè)計
ALTMEMPHY是可配置參數(shù)的宏功能,用戶可根據(jù)設(shè)計需要配置相應(yīng)參數(shù)[3]。ALTMEMPHY主要 包括時鐘與復(fù)位管理、地址與指令通路、讀數(shù)據(jù)通路、寫數(shù)據(jù)通路、自校準(zhǔn)等組成模塊。
時鐘與復(fù)位管理模塊主要負責(zé)時鐘信號的產(chǎn)生與移相,以及時鐘網(wǎng)絡(luò)類型的控制;地址與 指令通路負責(zé)接收控制器輸出的地址和指令信號,并將其從半速率時鐘轉(zhuǎn)換為全速率時鐘;讀 數(shù)據(jù)通路是采集從存儲器讀出的數(shù)據(jù),并將其再同步到系統(tǒng)時鐘域;寫數(shù)據(jù)通路將控制器輸出 的半速率數(shù)據(jù)轉(zhuǎn)換為雙倍速率(DDR)信號,以寫入DDR3器件;自校準(zhǔn)模塊用于系統(tǒng)上電時自動 校準(zhǔn)DDR3器件的過程變量,以獲得最大的時序余量,消除來自讀數(shù)據(jù)通路的不確定因素,提高 系統(tǒng)高頻工作下的穩(wěn)定性。圖3所為Stratix III器件中讀數(shù)據(jù)通路的結(jié)構(gòu)框圖,由圖中可以看 出DDR與HDR轉(zhuǎn)換的過程中數(shù)據(jù)總線寬度及時鐘頻率的變化。
3.2 自定義控制器設(shè)計
用戶自定義控制器部分主要由以下模塊組成:主控模塊、地址與指令譯碼、數(shù)據(jù)緩沖、時 鐘同步、初始化與刷新請求等[4]。 主控模塊主要由有限狀態(tài)機實現(xiàn),完成系統(tǒng)從上電開始所有狀態(tài)間的轉(zhuǎn)換、任務(wù)調(diào)度、總 線仲裁、時序同步等,并對其他模塊產(chǎn)生相應(yīng)的控制信號,協(xié)調(diào)各模塊工作;地址與指令譯碼 模塊在主控模塊的控制下,完成對系統(tǒng)各種訪問指令和訪問地址的解碼與匹配;數(shù)據(jù)緩沖負責(zé) 在與ALTMEMPHY進行數(shù)據(jù)傳輸過程中對數(shù)據(jù)進行FIFO緩沖和同步;時鐘同步模塊采用了PLL鎖相 環(huán)電路設(shè)計,為ALTMEMPHY提供參考時鐘,同時接收ALTMEMPHY輸出的同步時鐘phy_clk作為系統(tǒng) 時鐘,完成各模塊之間的同步;初始化與刷新請求模塊完成SDRAM器件的初始化及自刷新操作。
3.3 設(shè)計注意事項
本系統(tǒng)工作頻率高,任何微小的時序錯誤都可能導(dǎo)致系統(tǒng)不能正確工作。雖然ALTMEMPHY 結(jié)構(gòu)可以在一定程度上減小時序錯誤,但在設(shè)計過程中仍要做好代碼的優(yōu)化,盡量采用同步電 路設(shè)計方法,消除競爭冒險現(xiàn)象,保證數(shù)據(jù)接口的同步等。
另外,在設(shè)計中要遵照Altera提供的設(shè)計規(guī)范進行設(shè)計,如時鐘信號要從片上PLL專用的全 局時鐘引腳輸入以減小時鐘傾斜;各種時鐘分別配置于各自獨立的時鐘局域網(wǎng)絡(luò)內(nèi)以避免相位 攪動;對周期、建立、保持時間等關(guān)鍵參數(shù)添加相應(yīng)的約束等等,以提高設(shè)計的工作頻率,增 強系統(tǒng)的穩(wěn)定性。
4 DDR3 SDRAM控制器的實現(xiàn)
設(shè)計采用的FPGA為Stratix III系列中的EP3SL150F1152-C2。Stratix III是Altera公司剛剛面市高端FPGA系列,也是目前少數(shù)支持DDR3接口的FPGA之一。Stratix III系列提供讀寫均衡、 DQ去斜移I/O延時、動態(tài)片內(nèi)匹配等功能,并且使用可配置鎖相環(huán)(PLL)來補償電壓和溫度變化, 以充分發(fā)揮DDR3存儲器的優(yōu)勢。Stratix III器件支持最大時鐘速率400 MHz、最大數(shù)據(jù)速率800 Mbps的DDR3[5]。軟件設(shè)計在Altera公司的Quartus II 7.2平臺上,運用自頂向下的設(shè)計思想, 采用VHDL語言加電路圖混合設(shè)計的方法完成。測試讀寫仿真時序如圖4所示。
本設(shè)計采用Samsung公司的1Gb容量DDR3 SDRAM芯片K4B1G0846C-ZCF7予以實現(xiàn)。該芯片組織 結(jié)構(gòu)為16Mbit x 8 I/Os x 8banks,速率為800Mbps。通過仿真和工作實測,系統(tǒng)穩(wěn)定工作頻率 達到400MHz,8位數(shù)據(jù)總線帶寬最大傳輸率達到800MB/s[6]。 從設(shè)計的仿真及實現(xiàn)結(jié)果可以看出,這種結(jié)構(gòu)的控制器具有很高的傳輸速度和穩(wěn)定的性能 表現(xiàn),可以作為下一代存儲設(shè)備廣泛運用于各種高速高性能系統(tǒng)設(shè)計中。同時,該設(shè)計為相關(guān) 控制器的開發(fā)和研制提供了實例,具有良好的參考和應(yīng)用價值。
本文作者創(chuàng)新點:提出了一種基于Stratix III的DDR3 SDRAM控制器的設(shè)計方法,采用 ALTMEMPHY宏功能結(jié)合自定義控制器的結(jié)構(gòu),即保證了系統(tǒng)在高速運行時的穩(wěn)定性,又可以根據(jù) 用戶需要靈活改變參數(shù)設(shè)置,可廣泛應(yīng)用于各種相關(guān)高速數(shù)字系統(tǒng)。