基于Altera MegaCore實現(xiàn)FFT的方法
3 FFT運算器的實現(xiàn)
FFT 運算器采用FFT MegaCore 實現(xiàn),用Quartus Ⅱ仿真軟件設(shè)計時產(chǎn)生的FFT MegaCore 模塊圖如圖4 所示[5]。這里采用器件為Altera 公司的Stratix 系列,變化域長度設(shè)置為6 4 ,數(shù)據(jù)量精度為2 4 b i t ,旋轉(zhuǎn)因子量化精度為24bit。引擎結(jié)構(gòu)可以選四輸出,I/O數(shù)據(jù)流結(jié)構(gòu)選連續(xù)型[3]。在工程中,設(shè)計者也可以根據(jù)實際情況選擇其他的參數(shù)設(shè)置。
圖4 FFT MegaCore模塊
在F P G A 硬件設(shè)計中,一個乘法器占用的資源要遠(yuǎn)大于一個加法器占用的資源,而該模塊主要是完成復(fù)數(shù)乘法運算,我們則可以通過數(shù)學(xué)變換減少乘法器的數(shù)量。例如兩個復(fù)數(shù)a+jb 和c+jd 的乘積結(jié)果e+jf,其中e=ac-bd,f=ad+bc,變換得e=(a+b)c-b(c+d),f=(a+b)c-a(c-d),可以看出實際上是增加三個加法器來減少一個乘法器。
FFT MegaCore 端口定義如下。
clk:輸入,F(xiàn)FT 系統(tǒng)時鐘信號;
reset:輸入,F(xiàn)FT高有效同步復(fù)位信號,低時FFT工作;
master_sink_dav:輸入,指示主接收器數(shù)據(jù)有效信號;
master_sink_sop:輸入,輸入數(shù)據(jù)包起始位置指示信號;
inv_i:輸入,轉(zhuǎn)換方向控制信號,低有效時做FFT,高有效時做IFFT;
data_real_in[23..0]:輸入,輸入實部數(shù)據(jù);
data_imag_in[23..0]:輸入,輸入虛部數(shù)據(jù);
master_source_dav:輸入,指示FFT 模塊收到的數(shù)據(jù)是否有效;
master_sink_ena:輸出,指示數(shù)據(jù)是否寫入輸入緩存中;
fft_real_out[23..0]:輸出,輸出實部數(shù)據(jù);
fft_imag_out[23..0]:輸出,輸出虛部數(shù)據(jù);
master_source_ena:輸出,指示輸出數(shù)據(jù)是否有效;
master_source_sop:輸出,輸出數(shù)據(jù)包起始位置指示信號;
master_source_eop:輸出,輸出數(shù)據(jù)包結(jié)束位置指示信號;
exponent_out[5..0]:輸出,每一個數(shù)據(jù)輸出時的一個比例因子,用來保持?jǐn)?shù)據(jù)精度和內(nèi)部最大信噪比。工作流程:系統(tǒng)復(fù)位后,數(shù)據(jù)源將master_sink_dav 置位,表示有數(shù)據(jù)等待輸入;作為回應(yīng)FFT Core 將master_sink_ena 置位,表示可以接收數(shù)據(jù);數(shù)據(jù)源加在第一個復(fù)數(shù)數(shù)據(jù),同時master_sink_sop 置位,表示輸入數(shù)據(jù)包起始位置;下一個時鐘,master_sink_sop 被清零,輸入數(shù)據(jù)按順序加入,輸入數(shù)據(jù)達到設(shè)置值時,系統(tǒng)啟動FFT 運算。通過inv_i 信號的置位和清零可以改變單個數(shù)據(jù)包的FFT 轉(zhuǎn)換方向,inv_i必須與master_sink_sop嚴(yán)格同步。當(dāng)FFT轉(zhuǎn)換結(jié)束時master_source_ena置位,輸出運算結(jié)果;在輸出過程中master_source_sop和master_source_eop信號被置位,表示輸出數(shù)據(jù)包的起始位置和結(jié)束位置;e x p o n e n t_out 為比例因子,是IP Core 通過每一次參數(shù)的設(shè)定自動計算出來的,對于每個數(shù)據(jù)包來講,它產(chǎn)生的e x p o n e n t_out 的值是不同的。
4 結(jié) 論
本文介紹了一種采用Altera 公司的FFT MegaCore 實現(xiàn)快速傅里葉變換的方法,該方法非常簡單,能進一層次簡化開發(fā)的流程,縮短工程開發(fā)周期,節(jié)約成本,因此在實際工程中是一種很好的應(yīng)用。
評論