3.2 模塊的解析
(1)接收和存放模塊
數(shù)據(jù)從中頻分I、Q兩路數(shù)據(jù)輸出,接收模塊采用2片32 bit寄存器組存放。mem0[31:16]存放0~159的實部,mem0[15:0]存放0~159的虛部。mem1[31:16]存放2 048~2 207的實部,mem1[15:0]存放2 048~2 207的虛部。
(2)乘法模塊
圖2中,a對應的是0~159的實部,b對應的是0~159的虛部,c對應的是2 048~2 207的實部,d對應的是2 048~2 207的虛部。乘法模塊實現(xiàn)了一個復數(shù)的相乘。一對共軛復數(shù)需要4個乘法器(a+bj)×(c-dj)=(ac+bd)+(bc-ad)j。由于需要320個復數(shù)對應相乘,為了更快地完成同步,同時又要考慮資源的情況,一次采用多少乘法器,需要根據(jù)后面的測試和評估情況做出選擇。在權衡資源與速度后,本設計一次使用20個乘法器。
(3)存儲模塊
存儲模塊的作用是把上一個模塊數(shù)據(jù)相乘后的320數(shù)據(jù)存儲起來。為了方便后面求和模塊的取值,此處采用了4個RAM。圖2中,Re1存放乘法模塊輸出的0~159的實部,Re2存放乘法模塊輸出的160~319的實部,Im1存放乘法模塊輸出的0~159的虛部,Im2存放乘法模塊輸出的160~319的虛部。對應的RAM 的輸入和輸出地址是根據(jù)程序中標志位來控制的,對應的RAM 的輸入值與采用乘法器的個數(shù)有關,采用多個乘法器時輸入值采用位拼接的方式存入輸入端。當給出輸出端地址時,讀出的數(shù)據(jù)也是很多個數(shù)據(jù)的位拼接,對應取出需要的位數(shù)即可。
(4)求和模塊
由于未采用滑動相關的方案,所以需要對得出的數(shù)據(jù)進行加減,才能完成滑動相關求和的過程?;瑒哟螖?shù)為0及滑動次數(shù)為1時,乘法器的數(shù)據(jù)相乘部分有159個數(shù)據(jù)是重復相乘。所以可以采用sre<=sum_re+re2[0]-re1[0]求和。其中,sre相對于滑動一次的實部數(shù)據(jù)和,sum_re是未滑動數(shù)據(jù)的實部和,re2[0]是第160個實部(已完成了ad+bc即是一個復數(shù)和對應的復數(shù)相乘后的實部), re1[0]是第0個實部(已完成了ad+bc是一個復數(shù)和對應的復數(shù)相乘后的虛部)。對應的虛部也是這樣操作。實部和虛部分別需要完成160次,即:
(6)比較模塊
比較由開方模塊出來的max和temp出來的數(shù)據(jù)大小,找出對應的位置max_position輸出delete_cp信號,為后面數(shù)據(jù)送到CP、FFT模塊做指示。
4 FPGA實現(xiàn)結果及分析
圖3是FPGA設計的仿真圖,max_position是用ML算法找到的最大值,即為CP的起始位置值。delete_cp為標志位,是為了給后面數(shù)據(jù)輸送到CP模塊、FFT模塊的開始標志。仿真程序中設置了同步的噪聲為33個,max_position的值是33。仿真中,噪聲設為任意一個小于160的數(shù)X,max_position的值是X。說明ML算法在數(shù)據(jù)相關性很好的情況下,能準確地實現(xiàn)同步。圖4是連接項目板子后,用Xilinx ISE10.1中的ChipScope Pro采集到的圖樣。ChipScope Pro主要是在板級調試過程中,觀察FPGA芯片內部的信號。可以看出max_position的值是50,之所以和仿真圖的值不一樣,因為這個數(shù)據(jù)是真實的數(shù)據(jù)?;贛L算法,可以通過板級調試,成功地實現(xiàn)定時同步。圖5是聯(lián)機調試(FPGA、DSP與協(xié)議棧一起調試)中用Agilent的示波器采集到的波形。B1總線值為50(即max_position的值)。數(shù)字線14中的信號代表delete_cp信號。可以看出,圖5采集到的信號和圖4的一樣,證明在聯(lián)機調試中,能夠成功實現(xiàn)同步。從圖3、4、5中觀察到的現(xiàn)象看,方案3的設計能正確實現(xiàn)ML算法,能夠準確地實現(xiàn)上行同步。
ML算法的程序已通過Xilinx ISE10.1[6]的編譯、仿真驗證、板級驗證和聯(lián)機驗證。其結果和理論值一致,可以精確到LTE系統(tǒng)要求。該算法滿足了硬件對算法的模塊化、規(guī)則化的要求,因此,它可以充分發(fā)揮硬件的優(yōu)勢,利用硬件的資源和速度,從而實現(xiàn)硬件與算法相結合的一種優(yōu)化方案。在FPGA設計中,使速度與面積達到了很好的平衡,主要體現(xiàn)在乘法模塊。此外,在實現(xiàn)過程中采取了一次做20次乘法的方案,使整個同步的過程完成只需要1 000多個周期,時間比較短,且占用資源很?。⊿lice LUT=7%)。由于該算法的FPGA實現(xiàn)在這個項目的聯(lián)機調試中,性能穩(wěn)定,所以該算法的FPGA實現(xiàn)已經應用到國家科技重大專項項目“TD-LTE無線終端綜合測試儀表”開發(fā)中。
評論