基于FPGA的移位寄存器流水線(xiàn)結構FFT處理器設計與實(shí)
由頻域抽取的基-2算法可知,運算結果需要倒序輸出??梢韵葘⒔Y果存儲到RAM中,然后使用O~255的二進(jìn)制數倒序產(chǎn)生RAM讀取地址,依次將結果讀出,其中實(shí)現一個(gè)8位二進(jìn)制數倒序的算法如下:
(1)將8位數字的相鄰兩位交換位置;
(2)將相鄰的兩位看作1組,相鄰兩組交換位置;
(3)將相鄰的4位看作1組,相鄰兩組交換位置。
經(jīng)過(guò)這樣的交換位置后,輸出即為原來(lái)8位二進(jìn)制數的倒序。
舉例對于8位二進(jìn)制數10110110來(lái)說(shuō),第一次交換位置的結果是01111001,第二次交換位置的結果是11010110,最后交換位置的結果是01101101??梢?jiàn)正好是原來(lái)數字的倒序。
另外,由于設計的是兩路數據同時(shí)寫(xiě)入,一路數據讀出,所以讀取的頻率是寫(xiě)入頻率的2倍,使用PLL實(shí)現原始時(shí)鐘的二倍頻,用來(lái)讀取RAM。倒序模塊仿真結果如圖8所示。本文引用地址:http://dyxdggzs.com/article/191644.htm
最終生成的FFT處理器模塊圖如圖9所示。
4 仿真結果
各級間數據時(shí)序情況如圖10所示,設計的FFT處理器仿真結果如圖1l所示。采用一路階梯遞增信號和另一路:XXXX信號進(jìn)行仿真,通過(guò)與Matlab計算結果進(jìn)行對比,結果基本一致,可以滿(mǎn)足系統要求。系統總的延時(shí)由延時(shí)最大的第一級決定,為第一級運算的延時(shí)加上倒序輸出的延時(shí),總共是(256+128)×clk,相對于一般流水線(xiàn)結構(256×讀入周期+7×128×蝶算周期+128×讀入周期),系統延時(shí)大為減少。
通過(guò)仿真可知,系統最大頻率由蝶形運算模塊的最大工作頻率決定。使用QuartusⅡ軟件時(shí)序仿真后,得到處理器的工作頻率為72 MHz。
5 結語(yǔ)
通過(guò)采用移位寄存器流水線(xiàn)結構,可以有效地提高FFT處理器中蝶形運算單元的效率,減少寄存器的使用數量,并且簡(jiǎn)化了地址控制,提高處理器的工作頻率,具有良好的可擴展性,同時(shí)可以實(shí)現兩路數據的同時(shí)輸入,從而增大了一倍的數據吞吐量。對于工作頻率要求較高,數據吞吐量較大,尤其對于需要兩路數據輸入的場(chǎng)合,比如兩天線(xiàn)的MIMO-OFDM系統,具有很大的實(shí)用價(jià)值。
評論