基于FPGA的級聯(lián)結構FFT處理器的優(yōu)化設計
2 蝶形運算核的實(shí)現
2.1 基-16蝶形運算核
如果直接將基-16蝶形運算公式轉換到硬件中實(shí)現基-16運算核,其結構將十分復雜的。因此,采用易實(shí)現的頻域抽選基-4算法來(lái)實(shí)現頻域抽選基-16蝶形運算核。由基-4蝶行運算單元實(shí)現的基-16蝶行運算單元如圖2所示。
采用并行流水結構實(shí)現的基-16運算核,一個(gè)數據時(shí)鐘可處理16個(gè)數據。而每次蝶形運算在一個(gè)數據時(shí)鐘內只需要計算出一個(gè)結果,這將造成資源浪費。因此,采用級聯(lián)結構實(shí)現的基-16蝶形運算核,用兩個(gè)基-4蝶形運算核分別復用4次來(lái)實(shí)現每一級中的四個(gè)蝶行運算,中間用一個(gè)串行出入/輸出的寄存器進(jìn)行連接,其結構框圖如圖3所示。
2.2 基-4蝶形運算核
基-4蝶形運算核的結構如圖4所示,其中加減模塊為兩級流水結構,一次可以計算4個(gè)數據。蝶形運算的四個(gè)串行輸入數據經(jīng)串/并轉換器轉換為四路并行數據,進(jìn)入加減運算單元。計算出的4個(gè)并行結果進(jìn)入并/串轉換器后,串行輸入復數乘法器和旋轉因子相乘然后輸出結果。因為圖1中最后一級的數據只需要進(jìn)行加減運算不需要再乘以旋轉因子,所以圖1中的基-4蝶形運算核是沒(méi)有復數乘法器的,數據從并/串轉換器中直接輸出給緩沖存儲器。
2.3 復數乘法器
雖然現在的高端產(chǎn)中已經(jīng)集成了可以完成乘法的DSP資源,但也是有限的。因此高效復數乘法器的設計對該設計來(lái)講仍然非常的重要。復數乘法的標準式如下:
R+jI=(A+jB)×(C+jD)=(AC-BD)+j(AD+BC)
式中:A,B分別為輸人數據的實(shí)部和虛部,C和D分別為旋轉因子的實(shí)部和虛部。按照這種標準表達式,執行一次復數乘法需要進(jìn)行4次實(shí)數乘法,2次實(shí)數加法和2次實(shí)數減法。將上述公式重新整理為:R=(C-D)?B+C(A-B),I=(C-D)A-C(A-B)優(yōu)化后的復數乘法器需要進(jìn)行3次實(shí)數乘法,2次實(shí)數加法和3次實(shí)數減法,相比傳統結構多了一個(gè)減法器,少了一個(gè)乘法器。在FPGA中,加減法模塊所占用的相對裸片面積要小于相同位數的乘法器模塊。這樣的優(yōu)化還是很有價(jià)值的,在FFT吞吐量不變的情況下,可減少25%的乘法器使用量,在乘法器數量一定的情況下可高FFT吞吐量。
評論