基于FPGA的可擴展高速FFT處理器的設計與實現(2)

2012年05月25日 10:18 來源:互聯網 作者:秩名 我要評論(0)

標簽:FFT(71)FPGA(1779)可擴展(9)

  3.RAM結構及其級間數據混序用流水線讀/寫RAM地址發生器的設計

  設計的RAM,每個存儲單元為32 bit,高16位為復數的實部,低16位為復數的虛部。輸入輸出數據接口用RAM設計為乒乓結構,用兩塊相同的RAM交替讀出或交替寫入數據,這樣就放寬了對I/O操作速度的要求,使得外圍電路可以不必工作于FPGA系統時鐘。

  級與級之間數據混序用RAM設計為讀/寫RAM,對RAM同一存儲單元用兩個時鐘完成一次讀/寫操作,即用流水線讀/寫同一塊RAM來實現級與級之間的數據混序。此結構取代了用兩塊RAM完成數據混序的乒乓結構的傳統方法,不涉及存儲器之間的讀寫切換,控制邏輯非常簡單,而且消耗的存儲器資源節省一半,這是實現結構可靈活擴展的高速FFT處理器的關鍵和難點。可以通過理論推導,求得第i級FFT與第i-1級FFT級間混序用RAM的奇次讀/寫地址為

  第i級FFT與第i-1級FFT級間混序用RAM的奇次讀/寫地址

  的基礎上向左循環移位,位長為Li-Li-1位;同時,后者又表示在前者的基礎上向左循環移位,位長為Li-Li-1位,從而形成地址的循環移位規律。把Li-1=Li和Li-1FFT以及混合基FFT級間數據混序用流水線讀/寫RAM地址發生器。

  4.8×4×2點組合數FFT處理器的實驗結果及其分析

  我們利用FPGA實現的各功能模塊按圖1實現結構組裝了8×4×2點組合數FFT處理器,通過仿真驗證了其設計的正確性后,又在FPGA實驗板上對它進行了硬件驗證,其實驗驗證平臺如圖4所示。

  實驗驗證平臺

  硬件驗證時采取的實驗方法是,用相同的抽樣頻率fs等間隔地抽取不同頻率單頻正弦信號相同點數64點,即固定FFT的頻率分辨率fr,利用設計的64點FFT處理器計算其幅度譜,觀察其幅度譜中直流分量譜線和諧波分量譜線間隔大小的變化,把實驗結果和理論分析結果進行對照,以確認FFT處理器工作的正常與否。

  系統時鐘工作在 40.861 MHz 時,抽樣頻率為 40.861/2=20.4305 MHz,抽樣周期為1/20.4305 MHz=“48”.9 ns,抽取64個點的時間是48.9×64=3.13μs。因為每個采樣數據間隔時間是48.9μs,所以用設計的流水線方式工作的6

  4點FFT處理器計算其幅度譜的譜線間隔也為48.9 ns。當輸入單頻正弦信號的頻率約為638.454 kHz時,其周期為1/638.454 kHz=1.567μs。用20.4305 MHz頻率抽樣,3.13μs時間內剛好在正弦信號的2個周期內抽取64點,輸入單頻正弦信號的頻率是頻率分辨率319.227 kHz的2倍,直流分量為幅度譜的第1根譜線,一次諧波分量為幅度譜的第3根譜線,其理論計算結果波形如圖5所示,實驗測試結果波形及其的局部放大波形如圖6和圖7所示。

  從示波器上可以看出,橫坐標單元格間隔為1μs,FFT變換周期間隔約為3格,即約為3μs,抽取了信號波形的2個周期,64點FFT計算時間也約為3μs。

  輸入單頻正弦信號的頻率是頻率分辨率319.227 kHz的2倍,直流分量為幅度譜的第1根譜線,一次諧波分量為幅度譜的第2根譜線。由于幅度譜的譜線間隔為48.9 ns,也就是說,直流分量和一次諧波分量間隔約為100 ns。從示波器上可以看出,橫坐標單元格間隔為100 ns,直流分量和一次諧波分量間隔約為100 ns,和理論分析結果一致。

  實驗測試結果波形

  實驗測試結果波形

  四、結論

  本文以高組合數混合基DFT算法為基礎,設計并用FPGA實現了變換點數可靈活擴展的流水線FFT處理器。輸入/輸出數據速率為20 MHz時,讀/寫RAM工作在40 MHz時鐘,計算出1 024點FFT的運算時間約為52μs。本設計采用模塊化設計結構,便于系統調試和實現,而且各設計模塊可以重復利用,避免重復相同的設計,從而縮短芯片設計開發時間,更易于FFT處理器的結構擴展。整個FFT設計結構新穎,實現容易,具有一定實用價值。

上一頁12