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