基于FPGA的可配置判決反饋均衡器的設計
1. 引言
本文引用地址:http://dyxdggzs.com/article/201706/349093.htm在移動(dòng)通信和高速無(wú)線(xiàn)數據通信中,多徑效應和信道帶寬的有限性以及信道特性的不完善性導致數據傳輸時(shí)不可避免的產(chǎn)生碼間干擾,成為影響通信質(zhì)量的主要因素,而信道的均衡技術(shù)可以消除碼間干擾和噪聲,并減少誤碼率。其中判決反饋均衡器(DFE)是一種非常有效且應用廣泛得對付多徑干擾得措施。目前DFE大致有以下幾種實(shí)現方法:1)采用多片通用數字濾波器集成電路級聯(lián)方式,但同時(shí)由與多片帶來(lái)的體積和功耗的增加,在實(shí)際中運用不多。2)采用DSP來(lái)實(shí)現,如Motorola SC140就是單片的可編程均衡器,采用軟件來(lái)實(shí)現算法,但由于受器件功能限制,在實(shí)時(shí)性要求極高的場(chǎng)合中受到限制。3)采用可編程邏輯器件實(shí)現,隨著(zhù)可編程邏輯器件邏輯門(mén)數量和速度的不斷增加,在單片上實(shí)現系統集成已經(jīng)成為可能,而且FPGA特別適合實(shí)現可配置的判決反饋均衡器。
2.判決反饋均衡器的基本原理
判決反饋均衡器(DFE)是一種非線(xiàn)性均衡器。如圖1所示,由前饋部分(由FIR濾波器組成)和反饋部分(由IIR濾波器組成)組成,前饋部分可以抵消在時(shí)間上超前的碼間干擾和在時(shí)間是滯后的碼間干擾(由中心抽頭的位置決定),反饋部分可以抵消在時(shí)間上滯后的碼間干擾。
均衡器的輸出為:
式中M,N分別為前饋濾波器和反饋濾波器的長(cháng)度。抽頭系數更新采用DD_LMS(direct decision least mean square)和CMA(constant modulus algorithm)算法,CMA是一種盲自適應算法,即不需要訓練序列,可以讓均衡器收斂到較低的MSE水平,但由于CMA的誤差量較大,從而步長(cháng)較小,CMA的跟蹤能力有限,因而,在DFE設計中,CMA常常作為均衡器的初始化算法,即對多徑信號的時(shí)延和幅度進(jìn)行粗略估計。而DD_LMS算法相對于CMA有更低的MSE水平,并且DD_LMS具有較低的誤差量,從而步長(cháng)更大,跟蹤能力強,因而,在DFE設計中,DD_LMS常常作為均衡器穩定后的自適應算法。
3.設計思想
由于我們設計的DFE是一個(gè)比較復雜的系統,我們在設計中根據功能塊自下而上分層次進(jìn)行,這樣可以節省設計時(shí)間,減少設計輸入的錯誤,消除重復的電路元件,并能簡(jiǎn)化校驗于進(jìn)行修改,在實(shí)際設計中,按照模塊的大小和功能分成三部分:如圖二所示,PART I包括接口和DFE均衡器,PART II包括判決器和誤差控制函數運算模塊,PART III為抽頭系數調整部分。
出于靈活性的考慮,系統采用類(lèi)似于集散控制而非集中控制的方案,也就是系統沒(méi)有一個(gè)中心控制器,這樣可以保持三個(gè)部分的相對獨立,若要改變設計,比如改變算法,只需要改變誤差控制函數運算模塊即可。各模塊的恰當分割大大增加了系統的靈活性。
4.各模塊的FPGA實(shí)現
4.1 接口模塊
本系統并未涉及具體的A/D器件,僅根據常用的A/D器件的工作信號設計系統接口模塊。
在轉換完成后,一般A/D器件輸出一個(gè)低電平信號作為A/D的允許信號。該信號在系統中為輸入信號ad_end,接口模塊系統時(shí)鐘始終監控ad_end的電平變化,當檢測到ad_end的低電平時(shí),接口模塊產(chǎn)生一個(gè)“開(kāi)始”脈沖作為允許信號,允許DFE的延遲環(huán)節接收輸入數據,并開(kāi)始移位。其實(shí)現如圖三所示。
4.2 DFE模塊
均衡器分為FFE(Feedforward Equalizer)和FBE(FeedBackward Equalizer)兩部分,結構類(lèi)似,前饋濾波器為32階的FIR濾波器,反饋濾波器為64階的IIR濾波器,濾波器系數寬度都為16位,精度為15位,輸入數據寬度為12位,精度為10位,判決器輸出數據為2位,精度為0位,該模塊主要由輸入移位寄存器和卷積模塊組成。
?。?)輸入移位寄存器
對于前饋濾波器,由于共有32階,因此輸入寄存器的長(cháng)度為32。定義一個(gè)32×12的二維數組FFF[32][12],復位信號有效時(shí),FFF清零。復位信號無(wú)效,而輸入使能信號有效時(shí),每來(lái)一個(gè)時(shí)鐘上升沿,就從輸入端進(jìn)入一個(gè)數據,上一時(shí)刻的數據分別前移一位,最前面的數據被第二個(gè)數據覆蓋。
對于反饋濾波器,由于有64階,因此輸入寄存器的長(cháng)度為64,定義一個(gè)64×12的二維數組FFF[64][12],數據輸入方式和前饋濾波器相同。
(2)卷積部分的實(shí)現
對于前饋濾波器,輸入數據寬度是12位,精度為10位,濾波器系數寬度為16位,精度為15位,輸入數據為帶符號數,數據的高位為符號位,為實(shí)現相乘運算,設計12×16位的乘法器,分別從前饋輸入移位寄存器和前饋系數移位寄存器中取出數據和系數作為12×16的輸入,這樣32個(gè)乘法器就分別得到32個(gè)乘積,乘積的寬度為11+15,精度為10和15的數據相乘后得到的數據精度為25位,因此結果的小數點(diǎn)在第25位和26位之間。為減少系統的硬件開(kāi)銷(xiāo),把乘法器的輸出結果進(jìn)行合理的截取,取精度為15位,低10位丟棄,這樣乘法器的輸出就變?yōu)閺牡?1位到第27位的數據,寬度為17位,精度為15位。反饋濾波器實(shí)現與之類(lèi)似。
4.3誤差控制函數運算模塊
誤差控制函數運算模塊主要完成判決輸出以及誤差控制函數的運算。不同的抽頭更新算法在于誤差控制函數的不同。判決器的功能是進(jìn)行誤差判決,判決器判決部分比較簡(jiǎn)單,由于二進(jìn)制數采用補碼表示,判決和誤差的計算都可以用組合電路來(lái)實(shí)現。
4.4抽頭系數調整模塊
本模塊完成抽頭系數的自適應調整,模塊主要由系數移位寄存器和系數調整運算模塊組成。
?。?)系數移位寄存器
對于前饋寄存器,相應的輸入移位寄存器有32節,則系數移位寄存器也有32節。設置一個(gè)初始系數裝入輸出端,32個(gè)系數輸入端,32個(gè)系數輸出端,復位信號有效時(shí),所有寄存器清零,初始系數串行裝入,裝入7個(gè)初始系數需要7個(gè)時(shí)鐘周期,在裝入使能有效時(shí),每來(lái)一個(gè)時(shí)鐘上升沿,裝入一個(gè)系數,先裝入的系數右移動(dòng)一個(gè)寄存器,如果系數調整使能有效,則每來(lái)一個(gè)時(shí)鐘上升沿就把來(lái)自系數調整運算模塊調整后的系數并行裝入到系數移位寄存器中。
對于反饋系數,移位寄存器有64節,移位原理同前饋濾波器。
?。?)系數運算調整
抽頭系數的調整可按上式來(lái)計算,其中 為 時(shí)刻前抽頭系數向量, 為 時(shí)刻反饋抽頭系數向量, 為輸入數據向量, 為判決器輸出向量, 為誤差控制函數計算模塊的輸出。
對于前饋抽頭系數,輸入的前一個(gè)時(shí)刻的系數來(lái)自前饋系數移位寄存器輸出的系數,每來(lái)一個(gè)時(shí)鐘,系數調整一次。 為寬度12位,精度為10位的數據, 為寬度為九位,精度為0位的數據,兩者輸入到一個(gè)12×9乘法器相乘后,得到寬度為11+8+1=20位,精度為10位的數據。由于在誤差控制模塊中計算 時(shí),只取了低9位,小數點(diǎn)右移了15位,現在把小數點(diǎn)左移15位得到寬度為26,精度為25的數據。截取高16位,得到寬度為16、精度為15的系數調整量。前一個(gè)時(shí)刻的系數和這個(gè)調整量輸入到一個(gè)16位減法器,這里系數極小,所以不必考慮進(jìn)位,得到一個(gè)寬度為16位、精度為15位的差,即調整后的系數,輸出到前饋系數移位寄存器。
對于反饋抽頭系數,輸入的前一個(gè)時(shí)刻的系數來(lái)自反饋系數移位寄存器輸出的系數。每來(lái)一個(gè)時(shí)鐘,系數調整一次。 為寬度為2、精度為0的數據, 為寬度9位、精度0位的數據,兩者輸入到一個(gè)2×9乘法器相乘后,得到寬度為1+8+1=10位、精度為0位的乘積。同樣把小數點(diǎn)左移15位,得到系數調整量。前一個(gè)時(shí)刻的系數和這個(gè)調整量輸入到一個(gè)16位減法器,得到一個(gè)調整后的系數,寬度16位、精度15位。
4.5 FPGA實(shí)現
整個(gè)設計全部用verilog HDL語(yǔ)言實(shí)現,FPGA芯片采用XC2VP70,采用Synplify Pro 7.7進(jìn)行綜合,ncverilog 5.0進(jìn)行功能仿真,ISE6.3生成布線(xiàn)文件。根據綜合結果對設計進(jìn)行了優(yōu)化,最后系統顯示最高頻率可到80M,上板測試功能正常,系統延遲控制在35us范圍以?xún)?,可以滿(mǎn)足絕大多數高速無(wú)線(xiàn)數據通訊系統對均衡器的要求。
5總結
本文作者創(chuàng )新點(diǎn):針對高速無(wú)線(xiàn)數據通訊的實(shí)時(shí)性要求,提出采用FPGA來(lái)實(shí)現可配置均衡器的設計,在設計過(guò)程中采用自頂而下劃分的設計方式,即方便了設計的需要,同時(shí)又滿(mǎn)足了性能的要求,在實(shí)際項目中收到很好的效果。
評論