文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)07-0075-04
TD-LTE無線終端測試平臺以FPGA+DSP+ARM為核心,,TD-LTE系統(tǒng)中下行基帶OFDM信號生成在FPGA中處理,。考慮到FPGA要處理其他算法和邏輯控制,,且內(nèi)部存儲器容量有限,,所以大容量的基帶OFDM信號生成后,需要應(yīng)用DDR2 SDRAM存儲,,然后通過射頻發(fā)送,。下行物理信道的一般處理流程如圖1所示[1]。
圖1所示為下行物理信道的基帶信號生成一般流程:首先,,將物理信道上傳輸?shù)拿恳粋€碼字中的編碼比特進(jìn)行加擾,、調(diào)制、層映射,、預(yù)編碼后生成復(fù)值調(diào)制符號,,其次將其映射到資源粒子上,最后在每一個天線端口上產(chǎn)生時域OFDM基帶信號,。
以前的文獻(xiàn)大多以研究DDR2 SDRAM內(nèi)部指令處理和對接口信號完整性及內(nèi)部結(jié)構(gòu)進(jìn)行分析為主,,文獻(xiàn)[2]主要針對后期流水線視頻處理的DDR2 SDRAM控制器的設(shè)計,而在TD-LTE系統(tǒng)中DDR2 SDRAM控制器設(shè)計及優(yōu)化的文獻(xiàn)資料較少,。本文以TD-LTE無線綜合測試儀為平臺,,以研究DDR2 SDRAM 控制器的設(shè)計為基礎(chǔ),,實(shí)現(xiàn)DDR2 SDRAM正確轉(zhuǎn)存大容量數(shù)據(jù),并驗(yàn)證調(diào)試及優(yōu)化,。
1 系統(tǒng)框架
在TD-LTE無線終端綜合測試儀的基帶板設(shè)計中,ARM支持的接口比較豐富,,主要用于完成操作系統(tǒng)及協(xié)議,、應(yīng)用等功能;DSP芯片實(shí)現(xiàn)配置功能,,完成物理層流程及主要算法,,充分發(fā)揮其尋址方式靈活、通信機(jī)制強(qiáng)大的優(yōu)點(diǎn),;由FPGA芯片并行處理數(shù)據(jù)量大,、重復(fù)性強(qiáng)、速度要求高的數(shù)字信號,。TD-LTE物理層開發(fā)平臺中FPGA應(yīng)用框架如圖2所示,。
根據(jù)系統(tǒng)結(jié)構(gòu)中的邏輯任務(wù)劃分,Turbo譯碼,、同步控制,、解預(yù)編碼、Viterbi譯碼,、OFDM基帶信號生成和系統(tǒng)定時等算法都在FPGA中完成,,內(nèi)部運(yùn)用高級高性能總線(AHB)實(shí)現(xiàn)各個模塊連接。本文主要研究網(wǎng)絡(luò)端下行發(fā)送鏈路中DDR2 SDRAM的應(yīng)用,。首先,,DSP發(fā)送資源映射后的數(shù)據(jù),經(jīng)過多通道緩沖串口(McBSP)發(fā)送給FPGA,,在FPGA內(nèi)部,,按照TMS320C6455芯片的McBSP協(xié)議,利用Verilog HDL語言模擬一個McBSP接口,,完成數(shù)據(jù)接收,;然后,調(diào)用IFFT模塊生成基帶信號,,DDR2控制器模塊控制基帶信號寫入DDR2 SDRAM,;最后,在控制讀出使能信號拉高后,,從DDR2 SDRAM中控制讀出,,傳送到RF控制模塊,數(shù)據(jù)經(jīng)過數(shù)/模轉(zhuǎn)換,,從射頻發(fā)送出去,,這樣就完成了下行OFDM基帶信號的發(fā)送流程,。從射頻接收數(shù)據(jù),完成解基帶信號過程,,數(shù)據(jù)接收過程與發(fā)送基帶信號類似,,只是數(shù)據(jù)傳輸方向相反。
2 DDR2 SDRAM控制器的設(shè)計
2.1 DDR2 SDRAM特性
DDR2 SDRAM是JEDEC規(guī)范的一種新型高速率,、大容量的雙速率同步隨機(jī)存儲器,,在時鐘上升沿和下降沿,同時進(jìn)行數(shù)據(jù)的傳輸,。DDR2 SDRAM 雖然具有高帶寬,、低功耗和大容量特性,但對于控制器接口設(shè)計的時序和延遲提出了更高的要求,,使接收端的時序調(diào)整和信號完整性分析更加困難,。DDR2 SDRAM支持如下特性:
(1)片內(nèi)匹配終結(jié)(On-Die-Termination)。采用ODT技術(shù)將許多外部的匹配電阻移到芯片內(nèi)部,,不僅節(jié)省了大量的PCB板上面積,,而且可以避免信號間的干擾。
(2)突發(fā)長度(BL)為4或8,。突發(fā)長度(BL)是指在同一行中相鄰的存儲單元(列)連續(xù)數(shù)據(jù)傳輸?shù)臄?shù)量,。DDR2 SDRAM的讀/寫訪問是基于突發(fā)的,支持長度為4和8的突發(fā)長度,。
(3)列地址選通(CAS)時延,。DDR2 SDRAM支持3、4,、5的CAS時延(CL),。CL是讀指令和輸出數(shù)據(jù)的第一個輸出比特之間的時鐘延遲。
(4)Bank管理,。FPGA芯片內(nèi)部不同的Bank一般具有不同的電氣特性,。良好的Bank管理有利于資源的有效利用。
2.2 DDR2 SDRAM接口設(shè)計
DDR2 SDRAM控制器結(jié)構(gòu)主要包括用戶接口,、控制模塊,、數(shù)據(jù)通道、時鐘/復(fù)位模塊及時延控制模塊,,其結(jié)構(gòu)如圖3所示[3],。
用戶接口模塊中,主要包括指令邏輯模塊,、讀/寫地址FIFO,、讀/寫數(shù)據(jù)FIFO等模塊[5]。其中,,對DDR2 SDRAM讀/寫操作的轉(zhuǎn)換由指令邏輯模塊完成,。讀/寫數(shù)據(jù)FIFO和讀/寫地址FIFO用來完成數(shù)據(jù)的緩沖和同步,。
控制模塊產(chǎn)生DDR2 存儲接口和用戶接口所需的所有控制信號,控制操作由DDR2 SDRAM的內(nèi)部控制信號完成,??刂菩盘栔饕╠dr2_ras_n行地址選擇[2]、ddr2_cas_n列地址選擇,、ddr2_we_n寫使能信號等指令,。通過各種指令的組合完成相應(yīng)的指令,控制DDR2 SDRAM在各種狀態(tài)間跳轉(zhuǎn),,完成相應(yīng)的讀/寫操作和其他操作。
數(shù)據(jù)通道模塊主要完成與用戶接口及DDR2 SDRAM之間的數(shù)據(jù)交互,??刂颇K翻譯用戶指令,對存儲器觸發(fā)特定的指令,。例如,,當(dāng)app_af_cmd信號為000時,翻譯為寫指令,,從用戶接口進(jìn)入的輸入數(shù)據(jù),,通過寫通道寫入DDR2 SDRAM存儲器中。類似地,,當(dāng)app_af_cmd信號為001時,,翻譯為讀指令,DDR2 SDRAM存儲的數(shù)據(jù)依次通過讀通道,、用戶接口的輸出數(shù)據(jù)端口讀出,。
時鐘/復(fù)位模塊輸入的系統(tǒng)時鐘是差分時鐘,差分時鐘通過一個單端輸出的緩存器,,輸出的是相位相差90°的clk0和clk90,,輸出的復(fù)位信號至少持續(xù)25個時鐘[4]。時延控制模塊的主要作用是減小溫度,、電壓變化造成時鐘/復(fù)位信號不穩(wěn)定的影響,。
3 硬件實(shí)現(xiàn)及優(yōu)化
3.1 測試仿真
首先,利用 CORE Generator生成設(shè)計需要的MIG核,,選擇好芯片型號,,封裝和速度等級分別設(shè)定為ff136和-2,突發(fā)長度為4,。在MIG基本應(yīng)用的基礎(chǔ)上開發(fā)頂層程序,,根據(jù)TD-LTE無線綜合測試儀下行傳輸大容量基帶信號的設(shè)計要求,設(shè)計DDR2 SDRAM控制器,。對DDR2 SDRAM數(shù)據(jù)寫入仿真波形如圖4所示,。
圖4是在Modelsim SE 6.5中截取的數(shù)據(jù)寫入的仿真圖,,當(dāng)state處于0001狀態(tài),同時WRITE_EN拉高后,,app_af_cmd信號為000,,表明可以向DDR2 SDRAM中寫入數(shù)據(jù),地址信號app_af_addr每次累加4,,數(shù)據(jù)信號app_wdf_data交替發(fā)送測試數(shù)據(jù)0xedcb5432和0x1234abcd,,數(shù)據(jù)通過FPGA和DDR2 SDRAM之間的雙向數(shù)據(jù)線ddr2_dq寫入到DDR2 SDRAM中。
3.2 綜合實(shí)現(xiàn)
在Modelsim SE 6.5中完成測試仿真,,當(dāng)測試仿真準(zhǔn)確無誤后,,完成綜合實(shí)現(xiàn),生成的比特文件下載到FPGA芯片中,,進(jìn)行板級調(diào)試與驗(yàn)證,。通過在線邏輯分析儀,觀測到的DDR2 SDRAM控制器讀/寫時序如圖5,、圖6所示,。
圖5是在Chipscope中截取的一段DDR2 SDRAM寫操作的時序圖。在寫使能信號觸發(fā)的條件下,,app_wdf_wren信號拉高,,同時app_af_cmd信號為000指示寫操作,在app_af_wren的上升沿寫入地址,,由于BL=4,,地址每次累加4,“X”和“O”豎線分別對應(yīng)的是第一,、二個32 bit的數(shù)據(jù)(即4個16 bit數(shù)據(jù)),,每個地址對應(yīng)4個16 bit數(shù)據(jù)。由于選用的DDR2 SDRAM 具有2GB的存儲空間,,每一個TD-LTE下行幀的IFFT數(shù)據(jù)存儲完就發(fā)送一次,,數(shù)據(jù)量小于2GB,不用考慮會溢出的情況,。
圖6是在Chipscope中截取的一段DDR2 SDRAM讀操作的時序圖,。在讀使能信號觸發(fā)的條件下,app_af_wren信號拉高,,同時app_af_cmd信號為001指示讀操作,,每一個時鐘沿寫入一個讀地址,每次地址累加4,,在一段時延后,,rd_data_valid信號拉高,指示有效數(shù)據(jù)輸出,,rd_data_fifo_out輸出端口上依次輸出對應(yīng)地址的數(shù)據(jù),。“O”豎線處的數(shù)據(jù)對應(yīng)的就是“X”豎線處地址的第一個32 bit數(shù)據(jù),,也就是圖5中寫入的第一個數(shù)據(jù)。
3.3 設(shè)計優(yōu)化
針對DDR2 SDRAM控制器驗(yàn)證調(diào)試時出現(xiàn)的異常/錯誤現(xiàn)象進(jìn)行優(yōu)化和改進(jìn):
(1)時鐘觸發(fā)不穩(wěn)定,。TD-LTE系統(tǒng)設(shè)計中,,內(nèi)部模塊較多,由DSP提供一個100 MHz時鐘作為多個模塊的時鐘,,造成時鐘觸發(fā)不穩(wěn)定,,影響數(shù)據(jù)采樣的穩(wěn)定。
優(yōu)化方案:在時鐘觸發(fā)不穩(wěn)定的模塊前,,增加一個數(shù)字時鐘管理模塊(DCM),,達(dá)到穩(wěn)定時鐘、精確數(shù)據(jù)采樣的目的,。
(2)不同時鐘域之間數(shù)據(jù)傳輸,。由于IFFT模塊也在FPGA中完成,而IFFT模塊的輸出時鐘和DDR2 SDRAM 控制器輸入時鐘頻率相位不同,,造成數(shù)據(jù)采樣的錯誤。
優(yōu)化方案:在IFFT模塊和DDR2 SDRAM 控制器模塊之間增加一個異步FIFO模塊,,這樣OFDM基帶信號就能正確寫入到DDR2 SDRAM中,。
(3)抖動現(xiàn)象。由于實(shí)際板子的影響,,按下硬件信號復(fù)位時,,發(fā)生了明顯的抖動現(xiàn)象。
優(yōu)化方案:在代碼編寫過程中,,增加了去抖動程序,,使代碼更加優(yōu)化。例如高電平復(fù)位時,,將復(fù)位信號擴(kuò)展為10個全為1的比特(10’h3ff)進(jìn)行判斷,。
4 性能分析與結(jié)論
DDR2 SDRAM設(shè)計使用Xilinx公司的高性能軟件ISE10.1[6],選擇芯片為Xilinx公司Virtex-5系列的XC5SX95T(speed-2),,DDR2 SDRAM的型號為MT47H128M16,2GB存儲空間,。綜合實(shí)現(xiàn)時,利用Synplify Pro 9.6.1進(jìn)行邏輯優(yōu)化后,,運(yùn)行的最大時鐘頻率為281.021 MHz,,按照本文的設(shè)計實(shí)現(xiàn)方法,資源占用量得到很大程度的減少,,因而資源占用情況已比較合理,,詳細(xì)資源利用情況如表1所示。
從基帶板調(diào)試驗(yàn)證的結(jié)果看,,大容量的OFDM基帶信號存儲到DDR2 SDRAM中,,不僅節(jié)省了芯片內(nèi)部的RAM存儲空間,,而且大大提高了數(shù)據(jù)處理速度和精度。讀/寫操作的實(shí)現(xiàn)是由DDR2 SDRAM控制器內(nèi)部控制的,,從寫入數(shù)據(jù)和讀出數(shù)據(jù)的一致性看,,DDR2 SDRAM控制器的設(shè)計滿足要求,為下一步數(shù)據(jù)的正確處理提供了可靠保證,。該設(shè)計實(shí)例提供了仿真及實(shí)現(xiàn)具體流程,,對于大容量高速高性能系統(tǒng)開發(fā)具有良好的參考和應(yīng)用價值。
參考文獻(xiàn)
[1] 3GPP TS 36.211 v9.0.0:Physical Channnels and Modulation(Release 9).2009(12).
[2] Wang Xuzhi,,Ma Yanru.Design of DDR2 SDRAM Controller for Video Post Processing Pipeline[C].2009(12).
[3] Chen Shuangyan,,Wang Donghui.An Innovative Design of the DDR/DDR2 SDRAM Compatible Controller[C].2005(10).
[4] Xilinx Memory Interface Generator(MIG) User Guide[M].UG086(v2.1).2008(9).
[5] 須文波,胡丹.DDR2 SDRAM控制器的FPGA實(shí)現(xiàn)[J].江南大學(xué)學(xué)報,2006(4).
[6] 胡彬.Xilinx ISE Design Suite 10.x FPGA開發(fā)指南-邏輯設(shè)計篇[M].北京:人民郵電出版社,,2008.