丁培培(通訊作者),鄭 列,李 宏
(西安石油大學<電子工程學院> 陜西 西安 710065)
隨著現(xiàn)代科技的高速發(fā)展,在雷達、無線通信、圖像處理等領域需要高速傳輸大量的數(shù)據(jù),高速數(shù)據(jù)采集作為系統(tǒng)中比較關鍵的部分,對數(shù)據(jù)處理的速度、穩(wěn)定性、實時性以及功耗提出了更高的要求[1]。
從現(xiàn)有的存儲器來看,當DDR2內(nèi)核的工作頻率達到200MHz時,數(shù)據(jù)傳輸速率將提高到極限值800MHz[2]且不會再有顯著提升。由此可見,一般的存儲器已不能滿足目前高速度、高寬帶、大容量的數(shù)據(jù)存儲和訪問,并制約存儲器的發(fā)展和應用。DDR3作為一種雙倍數(shù)據(jù)速率的同步動態(tài)隨機存儲器,相比DDR2的不足,DDR3具有高帶寬、高可靠性、低功耗和低成本的特點,因此成為高速數(shù)據(jù)采集系統(tǒng)的首選方案[3]。
Xilinx公司推出新一代低成本Kintex-7系列FPGA與Virtex-6系列FPGA相比[4],其功耗和成本都降低了50%,而性價比卻提高了2倍。并且Kintex-7 FPGA可提供高密度邏輯、高性能收發(fā)器、存儲器、DSP以及靈活混合信號,通過這些功能可以提高數(shù)據(jù)采集速度、優(yōu)化圖像質(zhì)量。因此,在介紹DDR3的工作原理的基礎上,結合Kintex-7自帶的IP核,采用Verilog HDL描述語言來設計一種DDR3控制器接口的設計方案,并在Kintex-7系列FPGA平臺上實現(xiàn)。
本文選擇Micron公司提供的型號為MT8JFT12864AZ-1G4G1的DDR3作為研究對象,與鎂光公司其它型號DDR3相比,該型號DDR3具有數(shù)據(jù)傳輸速率快、內(nèi)存時鐘響應時間短的特點。單顆DDR3中,有14根行(Row)地址線,10根列(Column)地址線,8個Bank,而IO Buffer的對外通信則需要8組數(shù)位線(DQ0-DQ7)才能完成,故此單顆DDR3芯片的容量為2的14次方乘2的10次方乘8乘8,結果為1Gbit,因為1B包含8bit,1GB/8=128MB[2]。所以內(nèi)存條的容量為1GB時就需要有8顆這樣的DDR3內(nèi)存芯片,每顆芯片含8根數(shù)位線(DQ0-DQ7),則總數(shù)寬為64bit,這樣正好用一個Rank。
通過查看JEDEC協(xié)會所制定的規(guī)格,從技術層面來分析DDR3與DDR2的異同點[5]:DDR3擁有高頻率低功耗的特點,比DDR2運作時功耗降低30%,1.5V的電壓比DDR2的1.8V降低了7%;速度方面DDR3從800Mbps上升到1600Mbps時,速度是DDR2的2倍,數(shù)據(jù)傳輸量也是DDR2的2倍。由此可知,新一代存儲器DDR3 SDRAM在提高了帶寬的同時也大大降低了系統(tǒng)的功耗。表1總結了DDR,DDR2,以及DDR3的一些重要的區(qū)別。
表1 DDR3內(nèi)存的規(guī)格比較表
DDR3操作過程主要包括:讀命令、寫命令、預充電命令、刷新命令與激活命令,DDR3根據(jù)接收命令的不同順序執(zhí)行相應的操作。上電后,為使DDR3進入正常工作狀態(tài),需要初始化操作,并且必須按照預先設定的順序進行,與此同時,還需要對四種模式寄存器(MRS)進行配置,否則會引起未知錯誤。初始化后,DDR3進入有效工作狀態(tài),通過狀態(tài)機控制狀態(tài)跳變,并根據(jù)接收的命令執(zhí)行相應的操作。
本文中DDR3 SDRAM控制器采用Xilinx MIG IP核來設計,可以大大降低設計人員的開發(fā)周期和工作量。用戶需要在Xilinx ISE中MIG IP核的GUI圖形界面選擇DDR3芯片的型號,總線寬度和速度級別,并設置CAS延遲,突發(fā)長度,引腳分配等參數(shù),得到包含Verilog HDL代碼和UCF 約束文件控制器[6]。選用的FPGA芯片為Kintex-7,型號為XC7K70T,封裝為FBG484,速度等級-2。Xilinx Kintex-7系列FPGA的存儲器接口解決方案模型如圖1所示,用戶設計模塊通過用戶界面直接調(diào)用IP內(nèi)核來控制DDR3 SDRAM的讀寫。
圖1 Xilinx Kintex-7 FPGA內(nèi)存接口解決方案模型
該方案由用戶控制模塊,用戶接口模塊,內(nèi)存控制模塊和物理層接口模塊組成[7]。其中,內(nèi)存控制模塊位于用戶界面模塊和物理層接口模塊之間,前端為用戶界面模塊提供數(shù)據(jù)傳輸機制,后端從物理層接口接收并處理請求;物理層模塊直接與DDR3進行通信,其功能是捕獲由DDR3發(fā)送的數(shù)據(jù),并通過緩存發(fā)送和接收DDR3控制信號,地址信號和數(shù)據(jù)信號,同時確保命令和地址、數(shù)據(jù)保持信號同步[8-9]。
使用Xilinx ISE軟件的MIG工具生成基于Verilog HDL的DDR3控制器的IP核代碼,然后進行綜合優(yōu)化、綜合后仿真、布局布線和時序仿真,其軟件實現(xiàn)流程如圖2所示。
圖2 ISE下FPGA設計流程
利用Verilog HDL完成控制器和物理層中的代碼之后,需要對控制器進行功能性仿真驗證。在功能仿真時忽略電路中邏輯門的時延,著重驗證理想情況下電路的行為和設計思路的一致性[10]。
此次設計采用DDR3內(nèi)存核心頻率是200MHz,總線位寬數(shù)是64位,一次預讀取8位,根據(jù)內(nèi)存帶寬的計算公式:帶寬=內(nèi)存時鐘頻率×內(nèi)存總線位數(shù)×倍增系數(shù)/8[1]。DDR3的內(nèi)存帶寬可以達到12.5GB,傳輸速率可達到1600MB/s。由于數(shù)的傳輸速率非常快,采用Chipscope很難抓取到由控制器接口寫入到DDR3中的數(shù)據(jù),因此采用動態(tài)時序分析的方法來觀測寫入與讀出的數(shù)據(jù)是否正確。
其中,仿真工具使用Xilinx ISE 14.7編譯環(huán)境中自帶的仿真工具Simulate Behavioral Model,仿真驗證結果如圖3所示。
圖3 動態(tài)仿真結果
由圖3可知,c3_calib_done信號被設置為1,表示初始化完成,否則為0。只有rst_nr為高電平時,c3_p0_wr_en和c3_p0_rd_en才會有效。對于突發(fā)長度BL,將其值設置為8,地址位每增加64,數(shù)據(jù)端口就會同時寫入兩個256位數(shù)據(jù),可以通過c3_p0_wr_error和c3_p0_rd_error這兩個比較信號判斷DDR3控制器是否讀寫正確。從仿真結果看出比較信號c3_p0_wr_error和c3_p0_rd_error始終為低電平,表明從接口傳輸過來的數(shù)據(jù)能夠準確寫入到DDR3內(nèi)存中,且寫入的數(shù)據(jù)和讀取的數(shù)據(jù)相同,所以該測試模塊仿真通過。
該DDR3控制器已成功應用于遙感圖像壓縮系統(tǒng)中[11],選用Xilinx公司的Kintex-7系列型號為XC7K325T-2FGG900I的FPGA芯片,用ISE綜合圖像壓縮系統(tǒng)中的DDR3控制模塊,其資源占用情況如表2所示,該模塊占用很少的片上資源,在存儲速度和可移植性方面均能滿足要求。
表2 DDR3控制器模塊資源利用
通過比較分析DDR3 SDRAM的新特性及工作過程,給出基于FPGA的DDR3控制器的設計與實現(xiàn),并結合軟件仿真分析,證明該DDR3控制器能夠實現(xiàn)等效頻率高達1600MHz的數(shù)據(jù)讀寫操作。設計者根據(jù)用戶需求靈活改變參數(shù)設置來對DDR3內(nèi)存模塊進行管理,可以最大限度提高訪問內(nèi)存的速度和帶寬。由于DDR3具有存儲速度快、高帶寬等特點,該DDR3控制器在遙感圖像壓縮系統(tǒng)中有較好的應用效果,在未來的云計算、服務器和消費類電子上前景也更加廣泛。
[1]丁寧,馬游春,秦麗,等.基于FPGA的DDR3-SDRAM控制器用戶接口設計[J].科學技術與工程,2014,14(17):225-229.
[2]黃萬偉.XilinxFPGA應用進階:通用IP核詳解和設計開發(fā)[M].電子工業(yè)出版社,2014.
[3]劉天祥.基于片上標準總線接口的SDRAM控制器設計與驗證[D].西安電子科技大學,2015.
[4]孫俊杰.賽靈思7系列FPGA統(tǒng)一可擴展架構[J].中國電子商情:基礎電子,2010(8):30-31.
[5]楊軍.基于FPGA的DDR3控制器IP設計與驗證[D].南昌航空大學,2015.
[6]焦淑紅,程仁濤.基于FPGA的DDR3控制器設計[J].電子科技,2015,28(7):41-43.
[7]宋明,趙英瀟,林錢強.基于FPGA的DDR3SDRAM控制器的設計與優(yōu)化[J].電子科技,2016,29(11):47-50.
[8]夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[J].單片機與嵌入式系統(tǒng)應用,2003(6):51-51.
[9]吳進,劉路.同步動態(tài)隨機存儲器的控制器設計與實現(xiàn)[J].西安郵電大學學報,2012,17(5):78-80.
[10]陳芳,黃秋萍.基于多種EDA工具的ASIC設計[J].半導體行業(yè),2006(5):42-46.
[11]陳占良,金龍旭,陶宏江,等.高速圖像壓縮系統(tǒng)中DDR3控制器的實現(xiàn)[J].電光與控制,2016(8):85-88.