基于FPGA的數(shù)字脈沖壓縮系統(tǒng)實現(xiàn)
采樣數(shù)據(jù)首先存入FIFO中進行全局緩存,然后FFT單元從FIFO中讀取采樣數(shù)據(jù),緊接著進行FFT運算,結(jié)果在流水輸出時直接與匹配濾波器系數(shù)相乘,并將運算結(jié)果寫入塊RAMl中,最后IFFT單元從塊RAMl中讀取復(fù)乘后的數(shù)據(jù)進行IFFT(復(fù)用FFT運算IP核)運算,結(jié)果寫入塊RAMl后發(fā)送中斷信號,等待DSP讀取。
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所示。
評論