基于XQ2V1000 FPGA的數(shù)字脈沖壓縮系統(tǒng)實
2.2.1 FFT處理單元的硬件復(fù)用
在系統(tǒng)中FFT處理單元通過使用軟核Fast Fourier Transform v3.O來實現(xiàn)的。該IP核提供3種結(jié)構(gòu)選擇。
(1)管線級,數(shù)據(jù)流水I/0。這種結(jié)構(gòu)將若干基-2蝶形單元級聯(lián)起來,使得數(shù)據(jù)的輸入、計算、輸出可以流水進行,從而可以達到很高的處理速度,但資源消耗較大;
(2)基-2,最少資源消耗。這種結(jié)構(gòu)采用單個基-2蝶形單元對輸入數(shù)據(jù)進行變換,運算消耗的時間較長;
(3)基-4,突發(fā)I/O;這種結(jié)構(gòu)采用單個基-4蝶形單元對輸入數(shù)據(jù)進行變換,并利用塊RAM來存儲旋轉(zhuǎn)因子,占用系統(tǒng)資源較少,在1個PRT內(nèi)可以完成脈壓結(jié)果的輸出,從而在資源和速度這兩者之間達到很好的平衡,也是設(shè)計中實際采用的結(jié)構(gòu)。
FFT處理單元主要包括2個過程:數(shù)據(jù)I/O和運算過程,但兩者不是流水執(zhí)行的。FFT啟動信號有效后,數(shù)據(jù)開始進行裝載,裝載完成后開始進行FFT運算;等待運算結(jié)束后,結(jié)果才可以輸出。在運算過程中,不發(fā)生數(shù)據(jù)的裝載或輸出。
在數(shù)字設(shè)計中,F(xiàn)FT和IFFT處理單元時可以采用相同的結(jié)構(gòu)來實現(xiàn)的。具體的方法是:在做IFFT運算前,先交換輸入數(shù)據(jù)的實部和虛部,然后送入FFT處理單元按照FFT的結(jié)構(gòu)進行運算,并交換FFT運算結(jié)果的實部和虛部,最后除以運算點數(shù)N,就可以得到IFFT的運算結(jié)果。
該IP核基于上面的方法同時具有進行IFFT運算的功能,通過實時配置端口FWD INV上的電平可以實現(xiàn)復(fù)用,分別完成FFT和IFFT運算。在FPGA設(shè)計中,利用結(jié)構(gòu)復(fù)用減少邏輯單元塊,不僅可以節(jié)約系統(tǒng)資源,而且能夠減少結(jié)構(gòu)間的硬連線及傳輸線時延,有利于提高系統(tǒng)的工作頻率。
2.2.2 脈沖壓縮模塊的時序設(shè)計
由于FFT和IFFT的邏輯運算功能已經(jīng)在IP核中實現(xiàn),因此時序設(shè)計便顯得尤為重要。在FFT(或IFFT)運算單元中,主要的狀態(tài)與時序控制信號及其功能描述如表1所示。
在采樣距離門有效期間,將樣本數(shù)據(jù)寫入FIFO中進行緩存。采樣結(jié)束后,通過FFT單元的寫使能信號(NFFT_WE和FWD_INV_WE)將NFFT=010 10及FWD_INV_WE=1寫入狀態(tài)控制寄存器設(shè)定工作模式,接著啟動START信號進行FFT運算,寫使能信號與sTART之間僅差1個時鐘周期。運算結(jié)束后,DONE信號有效1個時鐘周期,輸出使能信號UNLOAD與DONE同步,經(jīng)過7個時鐘周期后數(shù)據(jù)有效信號DV開始有效,F(xiàn)FT運算結(jié)果開始流水輸出,同時與匹配濾波器的系數(shù)相乘,并存入RAM中。由于乘法運算的固有延遲,寫使能RAM_EN延遲DV信號2個時鐘周期。存儲結(jié)束時,IFFT單元的寫使能信號同時有效,并設(shè)定NFFT=01010及FWD_INV_WE=0,接著啟動START信號進行IFFT運算。運算結(jié)束后,DONE信號(與UNLOAD同步)再次有效,IFFT運算輸出結(jié)果在DV信號有效期間直接寫入RAM中。單個PRT內(nèi)各控制信號的具體時序說明如圖4所示。
2.2.3 塊浮點數(shù)據(jù)格式
在數(shù)字信號處理系統(tǒng)中,數(shù)據(jù)表示格式可分為定點制、浮點制和塊浮點制,它們在實現(xiàn)時對系統(tǒng)資源的要求不同,工作速度也不同,有著不同的適用范圍。定點表示法使用最多,簡單且速度快,但動態(tài)范圍有限,需要用合適的溢出控制規(guī)則(如定比例法)適當(dāng)壓縮輸入信號的動態(tài)范圍,但這樣會降低輸出信號的信噪比。浮點表示法的優(yōu)點是動態(tài)范圍大,可避免溢出,能在很大的動態(tài)范圍內(nèi)達到很高的信噪比,主要缺點是系統(tǒng)實現(xiàn)復(fù)雜,硬件需求量大,成本和功耗高,而且速度較慢。
塊浮點表示法兼有定點法和浮點法的某些優(yōu)點,是以上2種表示法的結(jié)合。這種表示法首先對一組數(shù)據(jù)進行檢測,歸一化最大數(shù)的小數(shù)部分,再建立適當(dāng)?shù)闹笖?shù)。接著把剩下數(shù)據(jù)的小數(shù)部分轉(zhuǎn)化為合適的數(shù),使它們可以使用最大數(shù)的指數(shù)。塊浮點算法的主要優(yōu)點是:大動態(tài)范圍、低截斷(或舍入)噪聲,是一種有效的數(shù)據(jù)表示形式。從芯片實現(xiàn)角度上看,塊浮點表示法能夠保證較高的信號處理質(zhì)量,尤其適用于FFT運算的場合。脈壓模塊中的FFT核帶有塊浮點運算的功能,整個運算過程中的數(shù)據(jù)格式表示如圖5所示。
ADC輸入數(shù)據(jù)為14 b的二進制補碼形式,對其低位補零擴展為16 b(IP核要求的輸入精度)后送入FFT運算單元,輸出結(jié)果為16 b的定點數(shù)以及指數(shù)EXP1。復(fù)乘包括乘法和累加運算,即FFT結(jié)果與匹配系數(shù)進行16 b×16 b的乘法運算,所得結(jié)果再進行加法運算;在進行加法運算前,所有數(shù)據(jù)擴展為33 b以防止溢出的發(fā)生,最終數(shù)據(jù)截取高16 b送入IFFT處理單元,輸出為16 b的定點數(shù)和指數(shù)EXP2,將其與EXPl相加后
得到指數(shù)EXP。脈壓的最終結(jié)果即為IFFT后的16 b定點數(shù)以及指數(shù)EXP,兩者分別存儲在FPGA片內(nèi)RAM中。
2.3 脈沖壓縮模塊的測試
設(shè)輸入理想LFM信號參數(shù)如下:帶寬B=40 MHz;時寬T=6μs;系統(tǒng)樣本速率為60 MHz;使用海明窗加權(quán)。在上述條件下,脈沖壓縮系統(tǒng)的輸出結(jié)果對數(shù)圖如圖6所示。
在圖6中,橫軸代表距離采樣單元,即系統(tǒng)最小距離分辨率。通過系統(tǒng)實際處理結(jié)果與Madab仿真結(jié)果的對比驗證了設(shè)計的正確性和實用性。
3 結(jié)語
系統(tǒng)采用ADS5500完成14位、60 MSPS的數(shù)據(jù)采集,并在FPGA中實現(xiàn)1 024點的數(shù)字脈沖壓縮。設(shè)計采用并行流水方式提高工作速度,而塊浮點算法則充分保證運算的精度。IP核的復(fù)用大大降低硬件規(guī)模,從而使整個系統(tǒng)具有高速度、高精度和低功耗的特點。
評論