基于FPGA的可擴(kuò)展高速FFT處理器的設(shè)計(jì)與實(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)及其級(jí)間數(shù)據(jù)混序用流水線讀/寫RAM地址發(fā)生器的設(shè)計(jì)

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

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

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

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

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

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

  實(shí)驗(yàn)驗(yàn)證平臺(tái)

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

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

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

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

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

  實(shí)驗(yàn)測試結(jié)果波形

  實(shí)驗(yàn)測試結(jié)果波形

  四、結(jié)論

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

上一頁12