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