摘 要: 采用并行分布式算法和MAC算法給出了FIR濾波器的FPGA實(shí)現(xiàn),。以32階FIR濾波器的設(shè)計(jì)為例,采用Altera公司Cyclone II系列的EP2C35F672C8 FPGA作為硬件平臺(tái),,通過(guò)Modelsim,、Quartus II、MATLAB軟件平臺(tái)對(duì)設(shè)計(jì)進(jìn)行了聯(lián)合仿真測(cè)試分析及驗(yàn)證,。結(jié)果顯示,,該設(shè)計(jì)達(dá)到了指標(biāo)要求,,功能正確,資源占用及處理速度均得到了優(yōu)化,。
關(guān)鍵詞: FPGA,;分布式算法;FIR濾波器
現(xiàn)場(chǎng)可編程門陣列FPGA(Field-Programmable Gate Array)在器件密度,、處理速度等達(dá)到片上系統(tǒng)的要求后,,其具有系統(tǒng)內(nèi)可重構(gòu)的特性成為實(shí)現(xiàn)DSP應(yīng)用的優(yōu)選方案之一。而且國(guó)外有許多院校和科研機(jī)構(gòu)都在研究FPGA與DSP的應(yīng)用,,實(shí)現(xiàn)了FPGA在電機(jī)轉(zhuǎn)子控制設(shè)備[1],、三相數(shù)字信號(hào)處理[2]、宇宙射線射頻干擾[3]等研究上的突破,。FPGA的DSP解決方案為數(shù)字信號(hào)處理開創(chuàng)了新的領(lǐng)域,,使得構(gòu)造的數(shù)字信號(hào)處理系統(tǒng)既能夠保持基于軟件解決方案的靈活性,又能接近ASIC的性能,。數(shù)字濾波器是數(shù)字信號(hào)處理的重要組成部分,,其實(shí)質(zhì)是用有限精度算法實(shí)現(xiàn)的離散線性時(shí)不變系統(tǒng)對(duì)數(shù)字信號(hào)進(jìn)行濾波處理[4]。數(shù)字濾波器根據(jù)其單位沖激響應(yīng)函數(shù)的時(shí)域特性可分為無(wú)限沖激響應(yīng)(IIR)濾波器和有限沖激響應(yīng)(FIR)濾波器兩類,。FIR濾波器是有限長(zhǎng)單位沖激響應(yīng)非遞歸型濾波器,。它可以在幅度特性隨意設(shè)計(jì)的同時(shí),保證精確嚴(yán)格的線性相位,,廣泛應(yīng)用于數(shù)字信號(hào)處理系統(tǒng)中,。
1 FIR濾波器基本原理
FIR濾波器是數(shù)字信號(hào)處理系統(tǒng)中最基本的元件,它可以在保證任意幅頻特性的同時(shí)具有嚴(yán)格的線性相頻特性,,同時(shí)其單位抽樣響應(yīng)是有限長(zhǎng)的,,其具有以下特點(diǎn)。
?。?)系統(tǒng)的單位沖激響應(yīng)h(n)在有限個(gè)n值處不為零,。
(2)系統(tǒng)函數(shù)H(z)在|z|>0處收斂,,極點(diǎn)全部在z=0處(因果系統(tǒng)),。
(3)結(jié)構(gòu)上主要是非遞歸結(jié)構(gòu),,沒有輸出到輸入的反饋,但有些結(jié)構(gòu)中(例如頻率抽樣結(jié)構(gòu))也包含有反饋的遞歸部分,。
本文基于MAC的FIR濾波器采用了32個(gè)寄存器,,分別寄存輸入的32個(gè)8位寬數(shù)據(jù),然后通過(guò)MAC結(jié)構(gòu)將數(shù)據(jù)與MATLAB計(jì)算的H(n)系數(shù)進(jìn)行乘法運(yùn)算,,將結(jié)果累加,,輸出累加和數(shù)據(jù)并向右移動(dòng)7位,,舍棄后7位,即縮小128倍,。出于FPGA不便于處理浮點(diǎn)型數(shù)據(jù),,在濾波器的參數(shù)上擴(kuò)大了128倍,而使得最終的MAC結(jié)構(gòu)輸出的數(shù)據(jù)都擴(kuò)大了相同的倍數(shù),,于是在這里舍棄后7位數(shù)據(jù),,從而實(shí)現(xiàn)縮小128倍的效果,使得輸出正確的輸出信號(hào),。
通過(guò)Modelsim導(dǎo)入在濾波器設(shè)計(jì)中MATLAB自動(dòng)產(chǎn)生的Modelsim的通用Testbench文件,,利用這個(gè)Testbench文件作為本文設(shè)計(jì)的FIR低通濾波器的測(cè)試激勵(lì)文件。仿真結(jié)果如圖4所示,,高頻部分被濾除,,保留了低頻信號(hào)部分。
通過(guò)綜合測(cè)試可知,,在資源占用方面,,本FIR濾波器僅占用556個(gè)邏輯單元(LE),216個(gè)寄存器資源以及203 bit的存儲(chǔ)資源,。資源占用皆不到5%,,占用面積極小。同時(shí)在速度方面,,本FIR濾波器能夠工作的最高頻率Fmax為195.73 MHz,,工作速度也能夠達(dá)到設(shè)計(jì)要求。
3 基于并行分布式算法的FIR濾波器
基于分布式算法(DA)的計(jì)算最顯然而直接的形式是位串行,,對(duì)基本算法的擴(kuò)展可消除這一潛在的吞吐能力限制[5],。位串行處理數(shù)據(jù)可得到適中的運(yùn)算速度。若輸入變量長(zhǎng)度為N位,,則需要N個(gè)時(shí)鐘周期來(lái)完成一次內(nèi)積計(jì)算,。提高運(yùn)算速度常見方法是將輸入字段分割成L個(gè)子字段,然后并行處理這些子字段,。該方法需要L倍的存儲(chǔ)查找表,,從而導(dǎo)致存儲(chǔ)需求和成本的直線上升。通過(guò)將輸入變量分解為一位子字段可獲得最大速度,。通過(guò)這種分解,,每一時(shí)鐘周期就可計(jì)算出一個(gè)新的輸出采樣。采用MATLAB的Filter Design HDL CODER工具箱的數(shù)字濾波器設(shè)計(jì)軟件模塊FDATool(Filter Design & Analysis Tool)進(jìn)行設(shè)計(jì),,設(shè)定指標(biāo)如下:Beta值為0.5的Kaiser窗函數(shù),,采樣頻率為5 MHz,截止頻率為1.5 MHz,,階數(shù)為32階,。得到FIR的濾波器系數(shù)H(n),,將H(n)擴(kuò)大128倍,再表示為8位二進(jìn)制補(bǔ)碼,,以便于作為該低通濾波器的系數(shù),,同時(shí)在濾波器的輸出,將輸出結(jié)果向右移動(dòng)7位,,以縮小128倍,,達(dá)到正確輸出結(jié)果。
采用MATLAB平臺(tái),,對(duì)FIR濾波器進(jìn)行建模,,并配置相應(yīng)濾波器參數(shù)。采用頻率為0.5 MHz的正弦波和一個(gè)隨機(jī)噪聲,,通過(guò)疊加合成后輸入到設(shè)計(jì)的FIR濾波器,,得到輸入輸出波形,該FIR濾波器能夠很好地去除高頻部分,,保留低頻信號(hào),,其結(jié)構(gòu)如圖5所示。
通過(guò)DSP Builder的交叉編譯平臺(tái),,在經(jīng)過(guò)分析綜合,、編譯仿真等流程后得到本設(shè)計(jì)的32階FIR濾波器在FPGA上的具體實(shí)現(xiàn)結(jié)構(gòu)。
編譯綜合后,,再次加入兩正弦波,,頻率分別為0.5 MHz和2 MHz,疊加合成后通過(guò)實(shí)例化后的FIR濾波器,,濾波結(jié)果如圖6所示,。可見,,本FIR濾波器成功濾除高頻信號(hào)成分,,保留了低頻信號(hào)。
通過(guò)Quartus II布局布線及綜合仿真,,F(xiàn)IR濾波器最終適配到FPGA中,,系統(tǒng)占用1 042個(gè)邏輯單元(LE),寄存器為274個(gè),??蛇_(dá)到的最大工作頻率Fmax為236.13 MHz,設(shè)計(jì)占用邏輯資源較少,,工作頻率較高,,完全符合設(shè)計(jì)目標(biāo)。
本文設(shè)計(jì)的FIR濾波器的兩種方案中,,濾波器的階數(shù)均為32階,,兩種方案均在Altera公司的Cyclone II系列EP2C35F672C8 FPGA芯片上實(shí)現(xiàn),采用Quartus II 11.1綜合布局布線后,,所占用的硬件資源總結(jié)如表1所示,。
從表1可知,本文與參考文獻(xiàn)[6]相比,,MAC結(jié)構(gòu)的硬件資源上要減少約29%,,DA算法的也減少了約73%;與參考文獻(xiàn)[7]相比,,MAC硬件資源減少約47%,,DA減少約9%,而在運(yùn)行速度方面,,MAC的增加了約8%,,DA的也增加了約25%;與參考文獻(xiàn)[8]相比,,MAC的硬件資源減少約13%,,DA的減少約43%。
本文采用FPGA平臺(tái)實(shí)現(xiàn)了FIR數(shù)字低通濾波器,,同一個(gè)濾波器,,實(shí)現(xiàn)結(jié)構(gòu)不同,所耗費(fèi)的資源和所能夠達(dá)到的速度完全不同,。本文采用流水線技術(shù)提高了濾波器的運(yùn)行速率,,同時(shí)運(yùn)用邏輯單元實(shí)現(xiàn)乘法運(yùn)算并復(fù)用該模塊以達(dá)到減少邏輯單元消耗,并通過(guò)適當(dāng)時(shí)序約束,,對(duì)布局布線進(jìn)行控制,,通過(guò)手動(dòng)布局,提高資源運(yùn)用率,。與其他同類型的濾波器相比,,本文的MAC結(jié)構(gòu)濾波器硬件資源占用減少了約30%,且運(yùn)行速度增加了約19%,;DA算法濾波器也減少了約41%,,運(yùn)行速度增加了約25%,不僅節(jié)約的硬件資源,,而且提高了系統(tǒng)處理速度,。
參考文獻(xiàn)
[1] MORALES-CAPORAL R, BONILLA-HUERTA E,, HERNANDEZ C,, et al. Transducerless acquisition of the rotor position for predictive torque controlled PM synchronous machines based on a DSP-FPGA digital system[C]. IEEE Transactions on Industrial Informatics, 2013,9(2): 799-807.
[2] NASCIMENTO P S B,, NEVES F A S,, DOMINGUES M A O. FPGA design methodology for DSP industrial applications A case study of a three phase positive sequence detector[C]. 2012 25th Symposium on Integrated Circuits and Systems Design (SBCCI), 2012:1-6.
[3] SZADKOWSKI Z,, FRAENKEL E D. FPGA/NIOS implementation of an adaptive FIR filter using linear prediction to reduce narrow band RFI for radio detection of cosmic rays[C]. Real Time Conference(RT),, 2012 18th IEEE-NPSS, 2012:1-8.
[4] 史明泉.基于DSP的FIR濾波器的C語(yǔ)言算法實(shí)現(xiàn)[J].無(wú)線電工程,,2011,,41(1):13-14.
[5] 岑光.基于FPGA的FIR數(shù)字濾波器研究與設(shè)計(jì)[D].西安:西安電子科技大學(xué),2011.
[6] 崔亮,,張芝賢.基于FPGA設(shè)計(jì)的FIR濾波器的實(shí)現(xiàn)與對(duì)比[J].電子設(shè)計(jì)工程,,2012,20(20):168-170.
[7] 李仙琴,,周盛,,計(jì)建軍,等.基于FPGA的兩種高速高階FIR濾波器的設(shè)計(jì)與比較[J].國(guó)際生物醫(yī)學(xué)工程雜志,,2008,,31(6):325-329.
[8] 李飛.低資源高速度FIR濾波器設(shè)計(jì)及其FPGA實(shí)現(xiàn)[D].湘潭:湘潭大學(xué),2011.