基于FPGA的可擴(kuò)展高速FFT處理器的設(shè)計與實現(xiàn)(2)

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

標(biāo)簽:FFT(71)FPGA(1779)可擴(kuò)展(9)

  3.RAM結(jié)構(gòu)及其級間數(shù)據(jù)混序用流水線讀/寫RAM地址發(fā)生器的設(shè)計

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

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

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

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

  4.8×4×2點組合數(shù)FFT處理器的實驗結(jié)果及其分析

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

  實驗驗證平臺

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

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

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

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

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

  實驗測試結(jié)果波形

  實驗測試結(jié)果波形

  四、結(jié)論

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

上一頁12