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