快速實現(xiàn)基于FPGA的脈動FIR濾波器VHDL脈動陣列PE處理單元FIR濾波器_第1頁
快速實現(xiàn)基于FPGA的脈動FIR濾波器VHDL脈動陣列PE處理單元FIR濾波器_第2頁
快速實現(xiàn)基于FPGA的脈動FIR濾波器VHDL脈動陣列PE處理單元FIR濾波器_第3頁
快速實現(xiàn)基于FPGA的脈動FIR濾波器VHDL脈動陣列PE處理單元FIR濾波器_第4頁
快速實現(xiàn)基于FPGA的脈動FIR濾波器VHDL脈動陣列PE處理單元FIR濾波器_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、    快速實現(xiàn)基于FPGA的脈動FIR濾波器,VHDL,脈動陣列,PE處理單元,F(xiàn)IR濾波器引言目前,用FPGA(現(xiàn)場可編程門陣列)實現(xiàn)FIR(有限沖擊響應(yīng))濾波器的方法大多利用FPGA中LUT(查找表)的特點采用DA(分布式算法)或CSD碼等方法,將乘加運算操作轉(zhuǎn)化為位與、加減和移位操作。這些結(jié)構(gòu)需要占用器件較多的LE(邏輯元件)資源,設(shè)計周期長,工作頻率低,實時性差。本文提出一種基于Stratix系列FPGA器件的新的實時高速脈動FIR濾波器的快速實現(xiàn)方法。利用FGPA集成的DSP(數(shù)字信號處理器)乘加模塊定制卷積運算單元,利用VHDL(甚引言目前

2、,用FPGA(現(xiàn)場可編程門陣列)實現(xiàn)FIR(有限沖擊響應(yīng))濾波器的方法大多利用FPGA中LUT(查找表)的特點采用DA(分布式算法)或CSD碼等方法,將乘加運算操作轉(zhuǎn)化為位與、加減和移位操作。這些結(jié)構(gòu)需要占用器件較多的LE(邏輯元件)資源,設(shè)計周期長,工作頻率低,實時性差。本文提出一種基于Stratix系列FPGA器件的新的實時高速脈動FIR濾波器的快速實現(xiàn)方法。利 用FGPA集成的DSP(數(shù)字信號處理器)乘加模塊定制卷積運算單元,利用VHDL(甚高速集成電路硬件描述語言)元件例化語句快速生成脈動陣列結(jié)構(gòu)的FIR濾波器,設(shè)計周期短、可移植性強,設(shè)計采用全流水結(jié)構(gòu),能高速、無滯后地實現(xiàn)實時信號處

3、理。1 設(shè)計指標(biāo)及參數(shù)量化1.1 濾波器技術(shù)指標(biāo)本文依據(jù)以下技術(shù)指標(biāo)設(shè)計一個64階等波紋濾波器:Fs=4.092 MHz;Fpass=1.4 MHz,fstop=1.6 MHz;Wpass&lt;1 dB,Wstop<-50 dB。使用MATLAB中FDA-Tool工具獲得濾波器系數(shù)。1.2 參數(shù)量化從FDATool中得到的濾波器系數(shù)值是一組浮點小數(shù),必須量化為定點數(shù)才能在FPGA器件中實現(xiàn)。本文采用移位舍入的量化方法對濾波器系數(shù)進(jìn)行量化,MATLAB描述為:得到64階系數(shù)。濾波器系數(shù)預(yù)先存入器件內(nèi)部ROM中,通過修改coet.mif文件中的參數(shù)可以改變?yōu)V波器的類型或參數(shù)。使用a

4、ltera_mf庫中altsyncram元件可以直接調(diào)用ROM中保存的數(shù)據(jù)。其調(diào)用語句描述如下:2 FIR設(shè)計2.1 器件簡介Stratix系列FPGA內(nèi)部提供了豐富的硬功能模塊,如片內(nèi)RAM、PLL(鎖相環(huán))、DSP模塊等,充分理解這些模塊的結(jié)構(gòu)特點和工作原理,掌握其使用方法,可以充分利用器件資源,最大程度地發(fā)揮器件在整個系統(tǒng)設(shè)計中的作用,使系統(tǒng)設(shè)計最優(yōu)化。提供的DSP模塊集成了乘、加減累加、求和這幾種算術(shù)操作,支持符號數(shù)、無符號數(shù)和混合運算,并且在這些計算路徑中集成了可選的寄存器級和全局局部時鐘控制。一個DSP塊最多可以配置成8個9×9、4個18×18或者1個36

5、15;36的乘法器,可工作在簡單乘法器模式、乘累加模式、2乘加模式和4乘加模式,應(yīng)用這4種模式,可以實現(xiàn)高性能的DSP算法。本文選用Stratix器件,在Quartus開發(fā)環(huán)境下應(yīng)用4乘加模式生成脈動陣列PE(處理單元),用VHDL描述實現(xiàn)FIR濾波器設(shè)計。2.2 脈動陣列結(jié)構(gòu)沒計本文參考文獻(xiàn)6中陣列F結(jié)構(gòu)-扇入結(jié)果,輸入流動,權(quán)值存入PE,設(shè)計一種可實時更替權(quán)值的FIR脈動結(jié)構(gòu),如圖1所示。權(quán)值w從上流入各個PE中,輸入x門左向右流入PE。在這個陣列中,x值在每個單步時刻內(nèi)向右邊的PE移動一次。在每次計算中,各個PE同時進(jìn)行乘法,算出同一個y值的各乘積項,然后將乘積結(jié)果扇入至加法器中相加,得

6、到該y值的結(jié)果,實現(xiàn)FIR算法。2.3 PE設(shè)計DSP模塊集成的算術(shù)操作中,4乘加模式就是4個乘法器將乘積送出相加,輸出一個加減的結(jié)果。利用模塊內(nèi)部可選的寄存器,可使輸入數(shù)據(jù)在模塊內(nèi)部流動,實現(xiàn)移位寄存器功能,如圖2所示FPGA片內(nèi)DSP塊的結(jié)構(gòu)。若兩路輸入分別為輸入信號和濾波器系數(shù),則圖2所示的結(jié)構(gòu)恰好構(gòu)成一個4階FIR濾波器。本文選用DSP模塊構(gòu)成脈動陣列結(jié)構(gòu)FIR濾波器的PE卷積單元。具體方法是,采用基于Altera_mf庫的乘累加運算元件“ALTMULT_ADD”可以快速完成PE設(shè)計。通過Altera的IP工具M(jìn)egaWizard管理器(MegaWizard Plug-In Manag

7、er),定制算術(shù)單元(Arith-metic)中乘累加底層基本宏功能模塊的參數(shù),設(shè)置需要的乘法器個數(shù)、輸入輸出數(shù)據(jù)格式、流水線控制時鐘等參數(shù),即可完成4階卷積PE元件的設(shè)計。通過調(diào)用宏功能模塊生成元件的封裝文什,然后在設(shè)計代碼中調(diào)用該封裝文件。本文選擇16位符號數(shù)輸入、34位符號數(shù)輸出,設(shè)置分級流水線控制輸入、輸出、乘積結(jié)果和加法結(jié)果,選擇一路輸入內(nèi)部移位。第k個PE元件例化VHDL描述如下:元件中clk0clk1分別指向PE中各級寄存器建立時鐘。例如t-1時刻,x(t-I)x(t-4)參與PEk中計算;t時刻,數(shù)據(jù)x(t)流入PE時,PE 中 4個乘法單元中寄存的數(shù)據(jù)往前流動,x(t-4)從

8、shiftouta端門流向下級PE。3 FIR優(yōu)化設(shè)計將前述的例化的PE單元按圖1所示的脈動結(jié)構(gòu)連接起來,就完成了一個基本的脈動FIR濾波器設(shè)計,為提高系統(tǒng)性能,需要進(jìn)一步對設(shè)計進(jìn)行優(yōu)化。3.1 時序優(yōu)化設(shè)計對設(shè)計而言,提高工作頻率至關(guān)重要,更高的工作頻率意味著更強的處理能力。合理設(shè)計系統(tǒng)的時序?qū)μ岣哒麄€設(shè)計的工作頻率有著至關(guān)重要的作用。而整個系統(tǒng)中最核心和復(fù)雜的時序關(guān)系為PE內(nèi)部乘加時序。以下時序優(yōu)化以PE單元為例。本設(shè)計期望系統(tǒng)工作在200MHz以上。因此,對設(shè)計的tco(時鐘到輸出延時)、tsu(輸入建立時間)、tpd(引腳到引腳延時)分別約束為3 ns、2 ns、5 ns。編譯后從時序

9、分析報告(Timing Analyzer Report)可得到PE處理單元的基本時序關(guān)系。若使用單周期設(shè)計,從輸入數(shù)據(jù)到參與乘法、加法計算再到結(jié)果輸出,至少需要2.023+1.829+2.625+2.577=9.84 ns才能完成一次運算,達(dá)不到期望時鐘頻率。若應(yīng)用DSP模塊的流水線工作,合理設(shè)置PE單元各級觸發(fā)時鐘,則可使系統(tǒng)工作頻率昆著提高,系統(tǒng)最高可工作在356.13 MHz(相同速度等級的芯片,Altera公司提供的9位16階FIR IP核,參考工作頻率為217.15 MHz)??紤]系統(tǒng)完成后全天候工作,為保證系統(tǒng)長期穩(wěn)定,本設(shè)計最終選用208.33 MHz系統(tǒng)工作頻率,設(shè)計實際使用的

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

11、生成全流水結(jié)構(gòu)的加法模塊。其中第1級16個加法描述如下:END GENERATE;4 FIR實現(xiàn)上述的描述在Quartus開發(fā)工具中進(jìn)行編譯和布局布線,采用的目標(biāo)器件為EP2S601024C4芯片,系統(tǒng)內(nèi)部最高運算時鐘為356.13 MHz,如圖5所示。設(shè)計的其他性能參數(shù)如下:總邏輯單元1 037個;總寄存器單元1 070個;總存儲器容量2 048B;使用的9位DSP模塊128個;最差輸入引腳到寄存器延時1.750 ns;最差寄存器到輸出引腳延時2.615 ns。本設(shè)計經(jīng)過MATLAB與Modelsim聯(lián)合功能仿真,MATLAB與Quartus聯(lián)合時序仿真,兩種仿真結(jié)果與FPGA處理后的數(shù)據(jù)一致。5 結(jié)束語本文結(jié)合FPGA器件的結(jié)構(gòu)和特

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論