快速實(shí)現(xiàn)基于FPGA的脈動FIR濾波器
引言
目前,用FPGA(現(xiàn)場可編程門陣列)實(shí)現(xiàn)FIR(有限沖擊響應(yīng))濾波器的方法大多利用FPGA中LUT(查找表)的特點(diǎn)采用DA(分布式算法)或CSD碼等方法,將乘加運(yùn)算操作轉(zhuǎn)化為位與、加減和移位操作。這些結(jié)構(gòu)需要占用器件較多的LE(邏輯元件)資源,設(shè)計周期長,工作頻率低,實(shí)時性差。本文提出一種基于Stratix系列FPGA器件的新的實(shí)時高速脈動FIR濾波器的快速實(shí)現(xiàn)方法。利 用FGPA集成的DSP(數(shù)字信號處理器)乘加模塊定制卷積運(yùn)算單元,利用VHDL(甚高速集成電路硬件描述語言)元件例化語句快速生成脈動陣列結(jié)構(gòu)的FIR濾波器,設(shè)計周期短、可移植性強(qiáng),設(shè)計采用全流水結(jié)構(gòu),能高速、無滯后地實(shí)現(xiàn)實(shí)時信號處理。
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<1 dB,Wstop<-50 dB。使用MATLAB中FDA-Tool工具獲得濾波器系數(shù)。
1.2 參數(shù)量化
從FDATool中得到的濾波器系數(shù)值是一組浮點(diǎn)小數(shù),必須量化為定點(diǎn)數(shù)才能在FPGA器件中實(shí)現(xiàn)。本文采用移位舍入的量化方法對濾波器系數(shù)進(jìn)行量化,MATLAB描述為:
得到64階系數(shù)。濾波器系數(shù)預(yù)先存入器件內(nèi)部ROM中,通過修改coet.mif文件中的參數(shù)可以改變?yōu)V波器的類型或參數(shù)。使用altera_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)特點(diǎn)和工作原理,掌握其使用方法,可以充分利用器件資源,最大程度地發(fā)揮器件在整個系統(tǒng)設(shè)計中的作用,使系統(tǒng)設(shè)計最優(yōu)化。提供的DSP模塊集成了乘、加/減/累加、求和這幾種算術(shù)操作,支持符號數(shù)、無符號數(shù)和混合運(yùn)算,并且在這些計算路徑中集成了可選的寄存器級和全局/局部時鐘控制。一個DSP塊最多可以配置成8個9
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論