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