文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)06-0033-03
當(dāng)前在信息與通信領(lǐng)域,無論是為了解決能源問題還是滿足產(chǎn)品本身的需要,,如何設(shè)計(jì)低功耗通信電子產(chǎn)品已成為當(dāng)前國際上的研究熱點(diǎn)之一,。數(shù)字濾波器是各類電子系統(tǒng)中重要的組成部分,從實(shí)現(xiàn)的網(wǎng)絡(luò)結(jié)構(gòu)上可分為有限沖激響應(yīng)(FIR)濾波器和無限沖激響應(yīng)(IIR)濾波器,。對同樣的設(shè)計(jì)要求,,F(xiàn)IR濾波器通常比IIR濾波器需要更高的階數(shù),但FIR濾波器較IIR濾波器更為優(yōu)化和簡單,,且能保證絕對穩(wěn)定和線性相位,,因此在語音圖像處理、數(shù)字電視系統(tǒng)等領(lǐng)域都得到了極廣泛的應(yīng)用[1-2],。數(shù)字濾波器實(shí)質(zhì)上是一系列包括加法,、乘法和數(shù)據(jù)傳輸在內(nèi)的運(yùn)算,最終要用物理器件來實(shí)現(xiàn),。當(dāng)把這些設(shè)計(jì)好的數(shù)字濾波器用現(xiàn)場可編程門陣列(FPGA)器件來實(shí)現(xiàn)時[3],,通常用綜合后的邏輯單元LE(Logic Element)數(shù)來衡量硬件消耗。子項(xiàng)空間技術(shù)利用濾波器系數(shù)之間的子項(xiàng)共享,,可以有效減少濾波器實(shí)現(xiàn)時加法器的個數(shù)[4-8],,從而降低實(shí)現(xiàn)復(fù)雜度,節(jié)省硬件資源,。
1 子項(xiàng)空間及子項(xiàng)共享
圖1(a)為FIR濾波器的轉(zhuǎn)置型結(jié)構(gòu),。在這種結(jié)構(gòu)中,輸入信號與濾波器的各個常系數(shù)h(k)(k=0,,1,,…,N-1)相乘并送入延時單元,,這種操作通常被稱為多常數(shù)乘法MCM(Multiple Constants Multiplication)問題[9],,可以用移位寄存器和加法器網(wǎng)絡(luò)來實(shí)現(xiàn)。因此,,加法器可以進(jìn)一步分為延遲單元的結(jié)構(gòu)加法器SA(Structural Adders)和常數(shù)乘法單元的加法器MBA(Multiplier Block Adders),,如圖1(b)所示。當(dāng)濾波器階數(shù)固定后,,延時單元和SA的數(shù)量相對固定(除非有些系數(shù)為0,,SA會有所減少),因此FIR濾波器的實(shí)現(xiàn)復(fù)雜度主要決定于MBA的個數(shù),。
一個離散子項(xiàng)空間中的元素可以通過下式構(gòu)建[4]:
不論是單個系數(shù)內(nèi)部,,還是多個系數(shù)之間,,用來實(shí)現(xiàn)公共子項(xiàng)的加法器都可以共享,從而達(dá)到減少加法器個數(shù)的目的,。下面舉例說明:(1)假設(shè)某個系數(shù)用二進(jìn)制序列表示為1010101,,如果直接實(shí)現(xiàn),則需要3個加法器,,如圖2(a)所示,;如果將公共子項(xiàng)101提取出來先實(shí)現(xiàn),則只需要2個加法器,,如圖2(b)所示,。(2)假設(shè)某兩個系數(shù)用二進(jìn)制序列表示分別為100101和10101,若兩個系數(shù)獨(dú)立實(shí)現(xiàn),,則每個系數(shù)都需要2個加法器,,即總共需要4個加法器,如圖3(a)所示;而將公共子項(xiàng)101提取出來先實(shí)現(xiàn),,則每個系數(shù)只需要增加1個額外的加法器,,即總共需要3個加法器,如圖3(b)所示,。因此,,合理利用子項(xiàng)共享,可有效降低數(shù)字濾波器的硬件消耗 [4],。
2 FPGA內(nèi)部結(jié)構(gòu)及綜合特點(diǎn)
硬件描述語言HDL(Hardware Description Language)支持行為級(Behavioral Level),、寄存器傳輸級RTL(Register Transfer Level)和門級(Gate Level)3個不同級別的設(shè)計(jì),目前普遍使用寄存器傳輸級源代碼進(jìn)行設(shè)計(jì),。綜合是把設(shè)計(jì)轉(zhuǎn)化為可制造器件的轉(zhuǎn)移過程,,而該器件能執(zhí)行預(yù)期的功能。
FPGA是專用集成電路(ASIC)領(lǐng)域中的一種半定制電路,,應(yīng)用非常廣泛,,經(jīng)常作為高階數(shù)字濾波器的實(shí)現(xiàn)器件。Altera公司的FPGA器件一般由二維的行列結(jié)構(gòu)來實(shí)現(xiàn)用戶自定義邏輯,,內(nèi)部最小的邏輯單元LE可以高效地實(shí)現(xiàn)用戶邏輯函數(shù)[10],。一個LE主要由一個4輸入查找表、一個寄存器及進(jìn)位和互連邏輯組成,。查找表簡稱為LUT,,LUT本質(zhì)上是一個RAM,。當(dāng)用戶通過原理圖或HDL語言描述了一個邏輯電路后,,F(xiàn)PGA開發(fā)軟件會自動計(jì)算邏輯電路所有可能的結(jié)果,并把結(jié)果事先寫入RAM,,這樣每輸入一個信號進(jìn)行邏輯運(yùn)算就等于輸入一個地址進(jìn)行查表,,找出地址所對應(yīng)的內(nèi)容后輸出即可,。也可以把LE當(dāng)作一個4輸入的函數(shù)發(fā)生器,能夠?qū)崿F(xiàn)4變量輸入的所有邏輯[10],。由于RTL級設(shè)計(jì)不涉及具體的工藝,,不同的綜合工具、不同的器件類型可能會產(chǎn)生不同的綜合結(jié)果,,即所需要的LE數(shù)量會有差異,。因此,在同一種綜合工具,、同一種器件類型的前提下對不同的實(shí)現(xiàn)方法進(jìn)行比較,。
3 基于Verilog HDL的RTL級實(shí)現(xiàn)
Verilog HDL是目前廣泛使用的IEEE標(biāo)準(zhǔn)硬件描述語言,可以用不同的工具進(jìn)行綜合和驗(yàn)證,。本文基于子項(xiàng)空間共享技術(shù),,采用Verilog HDL進(jìn)行FIR數(shù)字濾波器的RTL級描述。下面舉例介紹具體的實(shí)現(xiàn)方法,。以參考文獻(xiàn)[4]中的較低階濾波器S1為例,,下面給出濾波器S1的系數(shù),其中,,h(n)=h(24-n),,13≤n≤24;通帶增益為485.268 2,。
h(12)=3×26-1×20,;h(11)=5×25-1×24;h(10)=3×24,;
h(9)=-3×23,;h(8)=-1×25;h(7)=-3×20,;h(6)=1×24,;
h(5)=5×21;h(4)=-1×22,;h(3)=-1×23,;h(2)=-1×21;
h(1)=3×20,;h(0)=1×21,。
由上可知,S1對應(yīng)基組為{3,,5},,此基組的階數(shù)等于2,即產(chǎn)生基組需要2個加法器,由基組產(chǎn)生濾波器系數(shù)需要2個加法器,,因此,,MBA的個數(shù)為4,系數(shù)都不為零,;SA的個數(shù)為24,。
(1)子項(xiàng)基組的產(chǎn)生
assign x3={x_n,1'b0}+ x_n,; //x_n為輸入信號
assign x5={x_n,,2'b00}+x_n;
(2)MBA的實(shí)現(xiàn)
利用已經(jīng)產(chǎn)生的基組,,參照S1的系數(shù),,就可以得到MBA部分各常系數(shù)乘法的值,部分程序段如下:
assign MBA12={x3,6'b000000}-x_n,; //實(shí)現(xiàn)h[12]×x_n
……
assign MBA0 = {x_n,1'b0},; //實(shí)現(xiàn)h[0]×x_n
(3)延時單元和SA的實(shí)現(xiàn)
例S1中不存在值為0的系數(shù),且考慮到線性相位FIR濾波器系數(shù)對稱,,因此程序段如下:
Delay_SA0 <= MBA0,;
Delay_SA1 <= Delay_SA0 + MBA1;
……
Delay_SA11 <= Delay_SA10 + MBA11,;
Delay_SA12 <= Delay_SA11 + MBA12,;
Delay_SA13 <= Delay_SA12 + MBA11;
……
Delay_SA23 <= Delay_SA22 + MBA1,;
Delay_SA24<= Delay_SA23 + MBA0,;
(4)輸出的實(shí)現(xiàn)
考慮到S1的系數(shù)在有限字長實(shí)現(xiàn)時單位脈沖響應(yīng)乘以512(=29)倍,因此在輸出時要進(jìn)行截短處理,,即去掉低9位,。
4 綜合結(jié)果
本節(jié)將選取參考文獻(xiàn)[4]中的4個例子分別在FPGA上進(jìn)行綜合比較。4個例子的性能指標(biāo)如表1所示,。
參考文獻(xiàn)[4]中基于子項(xiàng)共享進(jìn)行系數(shù)離散化得到的結(jié)果如表2所示,,具體的濾波器系數(shù)參見參考文獻(xiàn)[4]。
如前所述,,F(xiàn)PGA實(shí)現(xiàn)硬件資源的消耗可以通過綜合后LE的數(shù)量來衡量,。分別選擇Cyclone系列的EP1-
C12Q240C8和APEX20KE系列的 EP20K600EBC652-3兩種型號的FPGA對4個濾波器兩種不同的實(shí)現(xiàn)方法(子項(xiàng)共享實(shí)現(xiàn)和直接實(shí)現(xiàn))進(jìn)行綜合,綜合工具選用Quartus II,,結(jié)果如表3所示,。
從表3可以看出,基于子項(xiàng)共享的實(shí)現(xiàn)可以有效減少FPGA中LE的消耗數(shù)量,,且濾波器階數(shù)越高,,共享的機(jī)會越大,,效果越好。
本文通過Verilog HDL編程在FPGA上實(shí)現(xiàn)了子項(xiàng)共享的FIR數(shù)字濾波器設(shè)計(jì),。子項(xiàng)空間共享技術(shù)可以有效地減少FIR濾波器實(shí)現(xiàn)時加法器的個數(shù),從而使得綜合后消耗的LE數(shù)量明顯減少,,有利于數(shù)字系統(tǒng)的低成本,、低功耗設(shè)計(jì),具有實(shí)際的應(yīng)用意義,。
參考文獻(xiàn)
[1] 唐博,,李錦明,李士照.基于FPGA的高階FIR濾波器強(qiáng)抗干擾數(shù)據(jù)采集系統(tǒng)[J].電子技術(shù)應(yīng)用,,2012,,38(9):89-92.
[2] 林志典,張方佩,,袁國順.基于FPGA的高速FIR濾波器的設(shè)計(jì)與實(shí)現(xiàn)[J].微電子學(xué),,2013,43(4):200-202.
[3] 惠鵬飛,,姚仲敏,,夏穎,等.基于FPGA的無線傳感網(wǎng)絡(luò)信道波形整形濾波器[J].電子技術(shù)應(yīng)用,,2013,,39(7):35-37.
[4] YU Y J,LIM Y C.Design of linear phase FIR filters in subexpression space using mixed integer linear programming[J].IEEE Trans.Circuits Syst.I,,2007,,54(10):2330-2338.
[5] YU Y J,LIM Y C.Optimization of linear phase FIR filters in dynamically expanding subexpression space[J].Circuit Syst.Signal Process.,,2010,,29(1):65-80.
[6] SHI D,YU Y J.Design of linear phase FIR filters with high probability of achieving minimum number of adders[J].IEEE Trans.Circuits Syst.I,,2011,,58(1):126-136.
[7] POTKONJAK M,SHRIVASTA M B,,CHANDRAKASAN A P.Multiple constant multiplication:Efficient and versatile framework and algorithms for exploring common subexpression elimination[J].IEEE Trans.Comput.Aided,,1996,15(2):151-165.
[8] Xu Fei,,CHANG C H,,JONG C C.Design of low-complexity FIR filters based on signed-powers-of-two coefficients with reusable common subexpressions[J].IEEE Trans.Comput.Aided,2007,,26(10):1898-1907.
[9] WANG Y,,ROY K.CSDC:A new complexity reduction technique for multiplierless implementation of FIR filters[J].IEEE Trans.Circuits Sysm.I,2005,52(9):1845-1853.
[10] Altera公司.Cyclone2系列器件數(shù)據(jù)手冊:Cyclone device handbook,,volume 1[Z].2007.