快速實(shí)現基于FPGA的脈動(dòng)FIR濾波器

發(fā)布時(shí)間:2010-8-4 22:57    發(fā)布者:conniede
關(guān)鍵詞: FIR , FPGA , 濾波器 , 脈動(dòng)
引言
  
目前,用FPGA(現場(chǎng)可編程門(mén)陣列)實(shí)現FIR(有限沖擊響應)濾波器的方法大多利用FPGA中LUT(查找表)的特點(diǎn)采用DA(分布式算法)或CSD碼等方法,將乘加運算操作轉化為位與、加減和移位操作。這些結構需要占用器件較多的LE(邏輯元件)資源,設計周期長(cháng),工作頻率低,實(shí)時(shí)性差。本文提出一種基于Stratix系列FPGA器件的新的實(shí)時(shí)高速脈動(dòng)FIR濾波器的快速實(shí)現方法。利 用FGPA集成的DSP(數字信號處理器)乘加模塊定制卷積運算單元,利用VHDL(甚高速集成電路硬件描述語(yǔ)言)元件例化語(yǔ)句快速生成脈動(dòng)陣列結構的FIR濾波器,設計周期短、可移植性強,設計采用全流水結構,能高速、無(wú)滯后地實(shí)現實(shí)時(shí)信號處理。

1 設計指標及參數量化

1.1 濾波器技術(shù)指標
  
本文依據以下技術(shù)指標設計一個(gè)64階等波紋濾波器:Fs=4.092 MHz;Fpass=1.4 MHz,fstop=1.6 MHz;Wpass<1 dB,Wstop<-50 dB。使用MATLAB中FDA-Tool工具獲得濾波器系數。

1.2 參數量化
  
從FDATool中得到的濾波器系數值是一組浮點(diǎn)小數,必須量化為定點(diǎn)數才能在FPGA器件中實(shí)現。本文采用移位舍入的量化方法對濾波器系數進(jìn)行量化,MATLAB描述為:


  
得到64階系數。濾波器系數預先存入器件內部ROM中,通過(guò)修改coet.mif文件中的參數可以改變?yōu)V波器的類(lèi)型或參數。使用Altera_mf庫中
altsyncram元件可以直接調用ROM中保存的數據。其調用語(yǔ)句描述如下:



2 FIR設計

2.1 器件簡(jiǎn)介
  
Stratix系列FPGA內部提供了豐富的硬功能模塊,如片內RAM、PLL(鎖相環(huán))、DSP模塊等,充分理解這些模塊的結構特點(diǎn)和工作原理,掌握其使用方法,可以充分利用器件資源,最大程度地發(fā)揮器件在整個(gè)系統設計中的作用,使系統設計最優(yōu)化。提供的DSP模塊集成了乘、加/減/累加、求和這幾種算術(shù)操作,支持符號數、無(wú)符號數和混合運算,并且在這些計算路徑中集成了可選的寄存器級和全局/局部時(shí)鐘控制。一個(gè)DSP塊最多可以配置成8個(gè)9×9、4個(gè)18×18或者1個(gè)36×36的乘法器,可工作在簡(jiǎn)單乘法器模式、乘累加模式、2乘加模式和4乘加模式,應用這4種模式,可以實(shí)現高性能的DSP算法。本文選用StratixⅡ器件,在QuartusⅡ開(kāi)發(fā)環(huán)境下應用4乘加模式生成脈動(dòng)陣列PE(處理單元),用VHDL描述實(shí)現FIR濾波器設計。

2.2 脈動(dòng)陣列結構沒(méi)計
  
本文參考文獻[6]中陣列F結構--扇入結果,輸入流動(dòng),權值存入PE,設計一種可實(shí)時(shí)更替權值的FIR脈動(dòng)結構,如圖1所示。權值w從上流入各個(gè)PE中,輸入x門(mén)左向右流入PE。在這個(gè)陣列中,x值在每個(gè)單步時(shí)刻內向右邊的PE移動(dòng)一次。在每次計算中,各個(gè)PE同時(shí)進(jìn)行乘法,算出同一個(gè)y值的各乘積項,然后將乘積結果扇入至加法器中相加,得到該y值的結果,實(shí)現FIR算法。

2.3 PE設計
  
DSP模塊集成的算術(shù)操作中,4乘加模式就是4個(gè)乘法器將乘積送出相加,輸出一個(gè)加/減的結果。利用模塊內部可選的寄存器,可使輸入數據在模塊內部流動(dòng),實(shí)現移位寄存器功能,如圖2所示FPGA片內DSP塊的結構。若兩路輸入分別為輸入信號和濾波器系數。
  
本文選用DSP模塊構成脈動(dòng)陣列結構FIR濾波器的PE卷積單元。具體方法是,采用基于A(yíng)ltera_mf庫的乘累加運算元件“ALTMULT_ADD”可以快速完成PE設計。通過(guò)Altera的IP工具M(jìn)egaWizard管理器(MegaWizard Plug-In Manager),定制算術(shù)單元(Arith-metic)中乘累加底層基本宏功能模塊的參數,設置需要的乘法器個(gè)數、輸入輸出數據格式、流水線(xiàn)控制時(shí)鐘等參數,即可完成4階卷積PE元件的設計。
  
通過(guò)調用宏功能模塊生成元件的封裝文什,然后在設計代碼中調用該封裝文件。本文選擇16位符號數輸入、34位符號數輸出,設置分級流水線(xiàn)控制輸入、輸出、乘積結果和加法結果,選擇一路輸入內部移位。第k個(gè)PE元件例化VHDL描述如下:

 
  
元件中clk0~clk1分別指向PE中各級寄存器建立時(shí)鐘。例如t-1時(shí)刻,x(t-I)~x(t-4)參與PEk中計算;t時(shí)刻,數據x(t)流入PE時(shí),PE 中 4個(gè)乘法單元中寄存的數據往前流動(dòng),x(t-4)從shiftouta端門(mén)流向下級PE。

3 FIR優(yōu)化設計
  
將前述的例化的PE單元按圖1所示的脈動(dòng)結構連接起來(lái),就完成了一個(gè)基本的脈動(dòng)FIR濾波器設計,為提高系統性能,需要進(jìn)一步對設計進(jìn)行優(yōu)化。

3.1 時(shí)序優(yōu)化設計
  
對設計而言,提高工作頻率至關(guān)重要,更高的工作頻率意味著(zhù)更強的處理能力。合理設計系統的時(shí)序對提高整個(gè)設計的工作頻率有著(zhù)至關(guān)重要的作用。而整個(gè)系統中最核心和復雜的時(shí)序關(guān)系為PE內部乘加時(shí)序。以下時(shí)序優(yōu)化以PE單元為例。
  
本設計期望系統工作在200 MHz以上。因此,對設計的tco(時(shí)鐘到輸出延時(shí))、tsu(輸入建立時(shí)間)、tpd(引腳到引腳延時(shí))分別約束為3 ns、2 ns、5 ns。編譯后從時(shí)序分析報告(Timing Analyzer Report)可得到PE處理單元的基本時(shí)序關(guān)系。若使用單周期設計,從輸入數據到參與乘法、加法計算再到結果輸出,至少需要2.023+1.829+2.625+2.577=9.84 ns才能完成一次運算,達不到期望時(shí)鐘頻率。若應用DSP模塊的流水線(xiàn)工作,合理設置PE單元各級觸發(fā)時(shí)鐘,則可使系統工作頻率昆著(zhù)提高,系統最高可工作在356.13 MHz(相同速度等級的芯片,Altera公司提供的9位16階FIR IP核,參考工作頻率為217.15 MHz)?紤]系統完成后全天候工作,為保證系統長(cháng)期穩定,本設計最終選用208.33 MHz系統工作頻率。

3.2 加法優(yōu)化設計
  
設計一個(gè)64階的濾波器,需要使用16個(gè)PE,即需要對16個(gè)乘加結果進(jìn)行加操作,如果采用圖1所示的加法運算,如圖4(a)所示,計算一次y值需要15個(gè)時(shí)鐘周期才能完成,而且在15個(gè)周期內各個(gè)加法輸入不能變化,若設計中PE能達到300 MHz的工作頻牢,加法也只能工作在20 MHz,必然阻礙設計的高速實(shí)現,成為制約系統性能的瓶頸。
  
采用流水線(xiàn)的加法運算是解決這個(gè)瓶頸的最好方法。如圖4(b)所示。clk1~clk5與PE計算時(shí)鐘同步,無(wú)需延長(cháng)加法計算時(shí)鐘,第5級流水的加法器使能后就能實(shí)時(shí)得到y結果。通過(guò)LPM(參數化模塊庫),直接在代碼中實(shí)例化LPM加法運算,就能快速生成全流水結構的加法模塊。其中第1級16個(gè)加法描述如下:

 
END GENERATE;

4 FIR實(shí)現
  
上述的描述在QuartusⅡ開(kāi)發(fā)工具中進(jìn)行編譯和布局布線(xiàn),采用的目標器件為EP2S601024C4芯片,系統內部最高運算時(shí)鐘為356.13 MHz。
  
設計的其他性能參數如下:總邏輯單元1 037個(gè);總寄存器單元1 070個(gè);總存儲器容量2 048B;使用的9位DSP模塊128個(gè);最差輸入引腳到寄存器延時(shí)1.750 ns;最差寄存器到輸出引腳延時(shí)2.615 ns。
  
本設計經(jīng)過(guò)MATLAB與Modelsim聯(lián)合功能仿真,MATLAB與Quartus聯(lián)合時(shí)序仿真,兩種仿真結果與FPGA處理后的數據一致。

5 結束語(yǔ)
  
本文結合FPGA器件的結構和特點(diǎn),利用DSP模塊及其內部寄存器實(shí)現FIR脈動(dòng)濾波器,不僅性能高,同時(shí)節約了LE資源和布線(xiàn)資源。通過(guò)MegaWizard宏模塊編輯器,可以快速定制核心的處理單元實(shí)現脈動(dòng)結構,對不同結構的濾波器只需修改定制處理單元參數和ROM中系數,就可以迅速設計出新的濾波器。采用全流水加法結構,使用最少的邏輯單元,達到最高的工作頻率,完成對信號的實(shí)時(shí)、高速處理。
本文地址:http://selenalain.com/thread-19240-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页