基于FPGA的多通道校準(zhǔn)算法的同步實現(xiàn)
數(shù)字信號處理模塊是接收機系統(tǒng)的核心部分,系統(tǒng)要求數(shù)字信號處理模塊能實時處理ADC變換后的數(shù)字信號,并用軟件的方法來實現(xiàn)大量的無線電功能,這些功能包括:多通道校準(zhǔn)、編解碼、調(diào)制解調(diào)、濾波、同步、盲均衡、檢測、數(shù)據(jù)加密、傳輸加密糾錯、跳擴頻及解擴和解跳、通信環(huán)境評估、信道選擇等,而單個DSP根本無法完成這些功能。目前可用的一些高速DSP的性能最快的也不超過5GIPS ,與實際需求相差巨大。這種處理資源的匱乏,被稱之為DSP 瓶頸[1],因此我們在本系統(tǒng)中主要采用Xilinx的FPGA芯片實現(xiàn)后端數(shù)字信號處理。
時鐘同步
FPGA硬件設(shè)計中,時鐘是整個設(shè)計最重要、最特殊的信號,異步信號輸入總是無法滿足數(shù)據(jù)的建立保持時間,所以需要把所有異步輸入都先進行同步化。時鐘同步的重要性如下:
● 系統(tǒng)內(nèi)大部分器件的動作都是在時鐘的跳變沿上進行,這就要求時鐘信號時延差要非常小,否則就可能造成時序邏輯狀態(tài)出錯;
● 時鐘信號通常是系統(tǒng)中頻率最高的信號;
● 時鐘信號通常是負載最重的信號,所以要合理分配負載。出于這樣的考慮在FPGA這類可編程器件內(nèi)部一般都設(shè)有數(shù)量不等的專門用于系統(tǒng)時鐘驅(qū)動的全局時鐘網(wǎng)絡(luò)。
對于一個設(shè)計項目來說,全局時鐘(或同步時鐘)是最簡單和最可預(yù)測的時鐘。只要可能就應(yīng)盡量在設(shè)計項目中采用全局時鐘。FPGA都具有專門的全局時鐘引腳,它直接連到器件中的每一個寄存器。這種全局時鐘提供器件中最短的時鐘到輸出的延時。
但在許多應(yīng)用中會出現(xiàn)兩個或兩個以上非同源時鐘,系統(tǒng)設(shè)計將面臨復(fù)雜的時間問題,數(shù)據(jù)的建立和保持時間很難得到保證。對于需要多時鐘的時序電路,最好將所有非同源時鐘同步化,即選用一個頻率是它們的時鐘頻率公倍數(shù)的高頻主時鐘。各個功能模塊要使用統(tǒng)一的復(fù)位電路。在使用帶時鐘的觸發(fā)器、計數(shù)器等有復(fù)位端的庫器件時,一般應(yīng)盡量使用有同步復(fù)位的器件。注意復(fù)位時應(yīng)保證各個器件都能復(fù)位,以避免某些寄存器的初始狀態(tài)不確定而引起系統(tǒng)工作不可靠。
基于以上分析,在本設(shè)計中,將64M的高頻時鐘作為系統(tǒng)時鐘,輸入到所有觸發(fā)器的時鐘端。時鐘使能信號Clk_en將控制所有觸發(fā)器的使能端。即原來接8M時鐘的觸發(fā)器,接64M時鐘,同時Clk_en將控制該觸發(fā)器使能;原接64M時鐘的觸發(fā)器, 還接64M時鐘,Clk_en也將控制該觸發(fā)器使能。這樣,就可以將任何非同源時鐘同步化。
多通道校準(zhǔn)同步算法
下面以M元陣為例來說明多通道校準(zhǔn)過程。接收機開機時,先將選擇開關(guān)S切換到位置2(見圖1),進入校準(zhǔn)狀態(tài)。注入信號s(t)經(jīng)功分器進入各陣元通道,陣元通道輸出為基帶數(shù)字信號xm(t)。將第一條通道作為參考通道,第一條通道的輸出延時τ后作為參考信號,與其他陣元通道的輸出一起送入相應(yīng)的自適應(yīng)校正濾波器。自適應(yīng)校正濾波器將會對陣元通道的傳輸特性進行補償,使各個陣元通道的傳輸特性趨近參考通道。這里采用LMS自適應(yīng)算法,待自適應(yīng)算法收斂后,穩(wěn)態(tài)權(quán)矢量將作為自適應(yīng)校正濾波器的系數(shù)固定下來,至此陣元通道的校正結(jié)束。最后,將選擇開關(guān)S切換到位置1就可進入正常通信狀態(tài)。
按圖1所示的模型可知,用L階橫向FIR濾波器模擬通道響應(yīng),通過在濾波器的系數(shù)上加上小的幅度擾動δ和相位擾動Φ來模擬通道間的失配,這樣可得第m個待校準(zhǔn)通道模擬濾波器的傳輸函數(shù)為:
設(shè)注入的信號是s(t),href(t)和hm(t)分別為參考通道和待校準(zhǔn)的第m條通道的沖激響應(yīng),hmc(t)為第m條通道的校準(zhǔn)濾波器的沖激響應(yīng),那么參考通道的輸出(暫不考慮延時τ)、第m條待校準(zhǔn)通道校準(zhǔn)前的輸出和校準(zhǔn)后的輸出分別為:
自適應(yīng)濾波器采用MMSE準(zhǔn)則,其中,準(zhǔn)則選擇是否合理決定了天線陣暫態(tài)響應(yīng)的速度和實現(xiàn)電路的復(fù)雜度。可以證明,這個準(zhǔn)則的結(jié)果可以分解為一個相同的線性矩陣濾波器和一個不同的標(biāo)量處理器的積,且都收斂于最優(yōu)維納解。因此,當(dāng)自適應(yīng)濾波器收斂到穩(wěn)態(tài)即最優(yōu)解后,最佳權(quán)值應(yīng)該為:
由,可得:
從而通道特性得到了校準(zhǔn)。
本文中的多通道校準(zhǔn)算法是在FPGA中實現(xiàn)的,選擇FPGA而不選擇DSP器件的原因是FPGA的引腳眾多且可以定制,這樣就可以在相對較低的工作頻率下做到很高的數(shù)據(jù)吞吐率,而這是DSP難以做到的。
FPGA實現(xiàn)
在本設(shè)計中應(yīng)該綜合考慮各方面因素,選擇一種最佳模塊結(jié)構(gòu)和模塊規(guī)模。本設(shè)計中的結(jié)構(gòu)化層次是由一個頂層模塊和若干個子模塊組成,每個子模塊根據(jù)需要再包含自己的子模塊,以此類推,共5層,如圖2所示。
本設(shè)計中,整個通道失配校準(zhǔn)模塊共需要90個乘法器。這些乘法器如果采用FPGA的邏輯資源直接構(gòu)建,不僅難以保證理想的運算速度,而且硬件開銷非常巨大。而FPGA芯片內(nèi)部已經(jīng)集成了18×18位的硬件乘法器模塊,其速度快,實現(xiàn)簡單,能有效節(jié)省FPGA的邏輯資源。由于系統(tǒng)設(shè)計時選用的FPGA芯片型號為Xilinx公司的xc2v8000ff1152-5,它集成了幾百個硬件乘法器,因此可以全部使用硬件乘法器來完成相應(yīng)的乘法運算。
采用VHDL語言編寫實現(xiàn)程序,開發(fā)環(huán)境為ISE 8.2i,綜合工具為Synplify Pro v8.1,仿真工具為ModelSim SE 6.3f。圖3所示的是程序經(jīng)Synplify Pro v8.1綜合后得到的LMS自適應(yīng)校正濾波器頂層模塊RTL視圖。RTL視圖即寄存器傳輸級視圖,該圖高度抽象為模塊化結(jié)構(gòu),它是在對源代碼編譯后再現(xiàn)設(shè)計的寄存器傳輸級原理圖。
所有算法模塊均在全局使能信號clk_en不同狀態(tài)的控制下進行工作,從而使算法運行達到8M周期,直至找到最佳權(quán)值,最終完成多通道校準(zhǔn)的任務(wù),實現(xiàn)多個通道的幅相一致性。
表1為多通道校準(zhǔn)算法的FPGA資源占用列表,從系統(tǒng)資源占用情況可以看出:多通道校準(zhǔn)算法FPGA實現(xiàn)過程中,如果再加上前后端處理程序一起編譯,則輸入輸出端口將減少,資源占用也將減少,并不影響系統(tǒng)實現(xiàn)。其它各種資源占用量都較少,完全符合FPGA設(shè)計要求。
FPGA布局布線后的仿真波形如圖4、圖5所示。
從仿真結(jié)果(圖4,圖5)和ISE 8.2i的綜合報告可知,該校正模塊的最高時鐘頻率達到102.5MHz。
最后,由MATLAB仿真和FPGA布局布線后仿真得到的權(quán)值,經(jīng)過MATLAB仿真形成新的方向圖,如圖6所示,可以看出,兩種方向圖基本一致。因此,基于FPGA的多通道校準(zhǔn)同步算法的實現(xiàn)完全符合系統(tǒng)要求。
結(jié)語
由于數(shù)據(jù)時鐘的同步是FPGA 芯片設(shè)計實現(xiàn)的一個常見問題,也是一個重點和難點,很多設(shè)計不穩(wěn)定都是源于數(shù)據(jù)時鐘的同步有問題。而本文提出了解決這一問題的時鐘同步方法,并在硬件上很好地實現(xiàn)了多通道校準(zhǔn)算法,極大提高了系統(tǒng)穩(wěn)定性。