《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA CFGLUT5的可變FIR濾波器的實(shí)現(xiàn)
基于FPGA CFGLUT5的可變FIR濾波器的實(shí)現(xiàn)
2015年電子技術(shù)應(yīng)用第11期
朱述偉1,黃銳敏1, 楊清河2
(1.華僑大學(xué) 信息科學(xué)與工程學(xué)院,福建 廈門361021;2.邁韋通信技術(shù)有限公司,福建 泉州362000)
摘要: 為實(shí)現(xiàn)系數(shù)可變FIR濾波器,以31階FIR濾波器為例,在分布式算術(shù)結(jié)構(gòu)的可變FIR濾波器基礎(chǔ)上,利用FPGA可重構(gòu)單元CFGLUT5的動(dòng)態(tài)配置功能實(shí)現(xiàn)可重用結(jié)構(gòu)共享,減少資源消耗,提高可變?yōu)V波器的硬件效率,在Xilinx Spartan6的器件上實(shí)現(xiàn)并驗(yàn)證了該可變FIR濾波器結(jié)構(gòu)。結(jié)果表明,在滿足工作模式切換性能的同時(shí)可以減少約25倍的占用資源(LUT),并明顯提高了系統(tǒng)的速度。
中圖分類號: TP274;TN713
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2015.11.016

中文引用格式: 朱述偉,黃銳敏, 楊清河. 基于FPGA CFGLUT5的可變FIR濾波器的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2015,41(11):58-60,64.
英文引用格式: Zhu Shuwei,Huang Ruimin,Yang Qinghe. The variable FIR filter implement based on FPGA CFGLUT5[J].Application of Electronic Technique,2015,41(11):58-60,64.
The variable FIR filter implement based on FPGA CFGLUT5
Zhu Shuwei1,Huang Ruimin1,Yang Qinghe2
1.College of Information Science and Engineering,Huaqiao University,Xiamen 361021,China; 2.Mai Wei Communication Technology Incorporated Company,Quanzhou 362000,China
Abstract: In order to realize the variable coefficient FIR filter this paper uses a distributed arithmetic architectural 31st-order variable FIR filter as basic example, exploits the dynamic configuration capabilities of FPGA reconfigurable unit-CFGLUT5 to achieve the reusable structure sharing, thus reduce resource consumption and improve variable filter hardware efficiency, the proposed variable FIR filter structure was implemented and verified by using Xilinx Spartan6 devices, the results show that the proposed structure can meet the performance of operation-mode switching while reducing the footprint of about 25 times (LUT) and distinguished improve the speed of the system.
Key words : FIR filter;CFGLUT5;lockup talbe;distributed arithmetic

 

0 引言

  在現(xiàn)代軟件無線電的數(shù)字信號處理系統(tǒng)中,例如脈沖壓縮體制雷達(dá)[1],需要在不同的工作模式下切換。不同工作模式對應(yīng)著不同的頻率響應(yīng)特性,對應(yīng)一組濾波器系數(shù);因此在實(shí)現(xiàn)結(jié)構(gòu)上要求濾波器可以動(dòng)態(tài)變化。如果把每種模式的濾波器單獨(dú)實(shí)現(xiàn),不但需要占用大量的面積,而且會(huì)使得系統(tǒng)結(jié)構(gòu)松散、資源浪費(fèi)和時(shí)序難以一致。然而,該系統(tǒng)不同的工作模式具有相同的實(shí)現(xiàn)結(jié)構(gòu)和數(shù)據(jù)通路,且輸入數(shù)據(jù)是一致的,因此可以作為一個(gè)整體實(shí)現(xiàn),即將其設(shè)計(jì)為由一個(gè)輸入數(shù)據(jù)端口、多套系數(shù)存儲(chǔ)器以及一個(gè)數(shù)據(jù)輸出端口組成的可變?yōu)V波器。它的優(yōu)點(diǎn)是不用離線重新設(shè)計(jì)一個(gè)新的濾波器便可獲得動(dòng)態(tài)可變的濾波特性。本文將介紹如何在傳統(tǒng)可變?yōu)V波器基礎(chǔ)上利用Xilinx FPGA CFGLUT5的動(dòng)態(tài)配置功能實(shí)現(xiàn)可重用結(jié)構(gòu)共享來減少資源的消耗,提高可變?yōu)V波器的硬件效率,達(dá)到通過簡單的控制實(shí)現(xiàn)軟件無線電系統(tǒng)不同工作模式之間的切換。

1 傳統(tǒng)的可變FIR濾波器設(shè)計(jì)方法

  可變FIR濾波器一般可以分為4個(gè)模塊:輸入數(shù)據(jù)緩存模塊、濾波器系數(shù)存儲(chǔ)模塊、運(yùn)算模塊及控制模塊。輸入數(shù)據(jù)緩存模塊及運(yùn)算模塊在整個(gè)系統(tǒng)中可以共享以便節(jié)省資源,同時(shí)為了保證采樣頻率與系統(tǒng)時(shí)鐘頻率之間關(guān)系的一致,設(shè)定每組濾波器的系數(shù)長度相同,為此將長度較短的濾波器系數(shù)補(bǔ)零。整個(gè)可變FIR濾波器的結(jié)構(gòu)框圖如圖1。

001.jpg

  濾波器系數(shù)存儲(chǔ)模塊設(shè)計(jì)原則是根據(jù)濾波器基本結(jié)構(gòu)[2]如串行、并行盡可能少的占用存儲(chǔ)資源,同時(shí)便于讀系數(shù)的設(shè)計(jì),為此設(shè)計(jì)方法采用分段存取。例如有4套濾波器系數(shù),每組濾波器系數(shù)長度均為16,則存儲(chǔ)空間深度可以定義為64。0~15號地址存儲(chǔ)第一套濾波器,16~31號存儲(chǔ)第二套濾波器系數(shù),32~47號存儲(chǔ)第三套濾波器系數(shù),48~63號存儲(chǔ)第四套濾波器系數(shù)。這樣,濾波器系數(shù)地址可以由一個(gè)模值為16的4位計(jì)數(shù)器和2位控制位共6位構(gòu)成。當(dāng)控制位為00時(shí),地址變化范圍為0~15,為01時(shí)地址變化范圍為16~31,當(dāng)控制位為10時(shí),選中地址范圍為32~47,當(dāng)控制位為11,選中地址范圍為48~63。

  控制模塊完成的主要工作是系數(shù)的切換,輸入數(shù)據(jù)的讀取與寫入。不同的結(jié)構(gòu)需要不同的控制數(shù)據(jù)。

2 改進(jìn)的可變FIR濾波器設(shè)計(jì)方法

  2.1 DA算法結(jié)構(gòu)濾波器

  基于FPGA的DA算法[3]是一種以實(shí)現(xiàn)乘加運(yùn)算為目的的運(yùn)算方法,由于傳統(tǒng)的乘加運(yùn)算消耗較多的硬件資源,轉(zhuǎn)而改進(jìn)采用基于FPGA的LUT查找表[4]和移位相加來實(shí)現(xiàn)。由于FPGA基本模塊正是由LUT構(gòu)成,而且移位和相加算法實(shí)現(xiàn)起來更加容易有效。所以DA算法可以極大地減少硬件電路的規(guī)模, 提高電路的工作執(zhí)行速度。其主要原理如下。

  1.png

  式(1)中x[n]是二進(jìn)制補(bǔ)碼表示的有符號輸入信號,表示x的第n次采樣值,輸入的數(shù)據(jù)位寬為M=B+1位。xb[n]表示x[n]的第b位。假設(shè)濾波器系數(shù)為序列h[n],濾波器輸出為y[n],得到濾波器輸出可以表示為:

  2.png

  將式(2)展開,重新分別求和得

  3.png

  式(3)的h[k]xm[n-k](m取B或b)的部分可以通過查找表映射來計(jì)算出。對于長度為N的FIR濾波器,只需構(gòu)造一個(gè)深度為N的存儲(chǔ)器查找表,通過M次查找表運(yùn)算,M-1次移位運(yùn)算和M-1次加法運(yùn)算即可完成整個(gè)乘加運(yùn)算。這種結(jié)構(gòu)極易使用流水線結(jié)構(gòu),且運(yùn)算速度受限于加法和查找表運(yùn)算速度,與乘加運(yùn)算的數(shù)據(jù)長度沒有關(guān)系。

  本文采用Xilinx公司的XC6SLX75T器件為例,設(shè)計(jì)長度為32的線性相位可變FIR數(shù)字濾波器。利用線性相位的對稱性可以將濾波器系數(shù)減半為16個(gè)濾波器系數(shù),假定濾波器輸入信號位寬為11位,濾波器的系數(shù)量化為12位,濾波器輸出數(shù)據(jù)位寬30位,共有4套濾波器系數(shù)。為防止濾波器系數(shù)相加溢出則需要15位寬的存儲(chǔ)器。4套濾波器系數(shù)需要控制位為2位。由此得到濾波器系數(shù)存取模塊如圖2所示。

002.jpg

  2.2 CFGLUT5的基本原理


003.jpg

  FPGA內(nèi)部資源CFGLUT5[5]是一個(gè)5輸入的動(dòng)態(tài)可重構(gòu)查找表,能夠在電路運(yùn)行時(shí)改變電路的LUT的邏輯功能。其結(jié)構(gòu)圖如圖3所示。采用CDI輸入引腳,一個(gè)新的初始值可以同步串行移位輸入存儲(chǔ)到CFGLUT5中。CE為使能輸入CDI的接口,O5、O6為輸出邏輯值,大小基于當(dāng)前加載到查找表的初始值和當(dāng)前選定的I0~I4輸入引腳。同時(shí)可以分別將O5、O6輸出形成兩個(gè)不同的子集,共享輸入分時(shí)復(fù)用,形成雙通道的查找表。CDO接口是擴(kuò)展初始值接口,作為級聯(lián)CFGLUT5單元使用,每個(gè)單元的CDO引腳接入到下一個(gè)CFGLUT5單元的CDI輸入接口。這將允許一個(gè)單一的串行數(shù)據(jù)鏈(每個(gè)單元32位)來重新配置多個(gè)LUT,可以來擴(kuò)展輸入數(shù)據(jù)的位數(shù)。

  2.3 改進(jìn)DA算法的可變FIR濾波器

  許多FPGA芯片都具有可重構(gòu)的LUT基本單元,例如Xilinx FPGA的重構(gòu)模塊CFGLUT5。本文通過使用CFGLUT5來改進(jìn)傳統(tǒng)DA算法[6],從而實(shí)現(xiàn)動(dòng)態(tài)可重構(gòu)的可變FIR濾波器,利用可以動(dòng)態(tài)重配置的LUT可以將多套濾波器系數(shù)查找表共享為一套查找表。只需要32個(gè)工作時(shí)鐘即可以完成濾波器系數(shù)查找表的一次重構(gòu),減少了資源的占用,降低了成本。現(xiàn)對上述傳統(tǒng)DA算法改進(jìn),設(shè)計(jì)上述同樣的可變FIR濾波器結(jié)構(gòu)如圖4所示。

004.jpg

  圖4中M(0)~M(15)為濾波器對稱系數(shù)的輸入信號相加后信號,經(jīng)過數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換,得到M(0)~M(15)的最低位組成16位的數(shù)據(jù),作為查找表的尋位地址,并依次再取M(0)~M(15)的次低位,這樣一直取到最高位。由于輸入數(shù)據(jù)為11位,則對稱相加后數(shù)據(jù)M位寬12位,共 12次查找運(yùn)算,所以取計(jì)數(shù)器count為12進(jìn)制。其中M(0)(count)~M(15)(count)分別表示M(0)~M(15)的第count位(count取值為0~11的整數(shù))。為改進(jìn)傳統(tǒng)DA算法所占用的ROM資源,采用分割查找表的方式,將傳統(tǒng)DA算法16位ROM地址線,改為4個(gè)4輸入地址線的CFGLUT5模塊Y0~Y3來存儲(chǔ)。令所有CFGLUT5的I4為高電平,則濾波器前8個(gè)系數(shù)的查找表Y0、Y1如表1所示。濾波器后8個(gè)系數(shù)同樣按表1存儲(chǔ)Y3、Y4。

005.jpg

  濾波器系數(shù)量化為12位,則O5/O6輸出值為保證不溢出則需要14位存儲(chǔ)如圖3所示,同時(shí)將數(shù)據(jù)拆分為從高位到低位存儲(chǔ),例如當(dāng)Y0的地址位為1000時(shí)Y0(0)~Y0(13)分別表示存儲(chǔ)值h[3] 的二進(jìn)制補(bǔ)碼數(shù)據(jù)最高位到最低位。在將Y0、Y1、Y2、Y3的每個(gè)可重構(gòu)CFGLUT5的輸出值相加后,為防止數(shù)據(jù)相加后溢出增加兩位位寬來存儲(chǔ)相加值,再送入移位寄存器。每送入一次相加后的數(shù)據(jù),移位寄存器向左增加一位移位,直到向左移動(dòng)11位后又回到向左移動(dòng)0位,不斷循環(huán)。控制器控制重構(gòu)CFGLUT5的映射表的更新,當(dāng)切換濾波器系數(shù)時(shí),控制CFGLUT5的CE和CDI信號,在經(jīng)過32個(gè)CLK時(shí)鐘后,查找表Y0、Y1完成更新,對應(yīng)為切換的濾波器系數(shù)。累加器由控制器控制使其經(jīng)過11次累加和1次減法后輸出濾波器數(shù)據(jù),并清零,則Y[n]為濾波器輸出數(shù)據(jù)。

  為便于切換濾波器的簡單操作,同樣還需要一個(gè)濾波器系數(shù)存儲(chǔ)模塊,存儲(chǔ)方式不同于傳統(tǒng)DA算法的存儲(chǔ)結(jié)構(gòu)查找表,按照傳統(tǒng)的串行結(jié)構(gòu)存儲(chǔ),同時(shí)在控制器中加入濾波器系數(shù)轉(zhuǎn)換運(yùn)算電路。將按順序存儲(chǔ)的濾波器系數(shù),通過簡單加法運(yùn)算轉(zhuǎn)化為CFGLUT5查找表的結(jié)構(gòu)的系數(shù)。

3 性能分析及實(shí)驗(yàn)結(jié)果

  取線性可變FIR濾波器的系數(shù)長度為N,輸入數(shù)據(jù)位寬為W1,濾波器量化位數(shù)為W2,濾波器套數(shù)為L,則可以估算消耗資源如下:

  傳統(tǒng)DA算法結(jié)構(gòu)存儲(chǔ)占ROM大小:

  456.jpg

  設(shè)計(jì)上述實(shí)驗(yàn)可變FIR濾波器傳統(tǒng)DA算法消耗ROM大小為4×16×216=4 Mb,而當(dāng)采用改進(jìn)DA算法結(jié)構(gòu)只需要增加56個(gè)CFGLUT5和濾波器系數(shù)轉(zhuǎn)換運(yùn)算消耗的68個(gè)加法器可以將ROM消耗減少到4×12×16=0.75 Kb,容易工程實(shí)現(xiàn)?,F(xiàn)在Xilinx公司的XC6SLX75T器件上采用分布式ROM實(shí)現(xiàn)上述可變FIR濾波器,綜合分析得到如表2所示實(shí)驗(yàn)數(shù)據(jù)。

006.jpg

  從表2的實(shí)驗(yàn)數(shù)據(jù)可以看出改進(jìn)傳統(tǒng)DA算法后實(shí)現(xiàn)上述濾波器LUT的消耗減少了約25倍。最大工作時(shí)鐘提高了近6倍左右。

4 結(jié)論

  本文介紹了可變FIR濾波器的設(shè)計(jì),并在傳統(tǒng)DA算法結(jié)構(gòu)上對資源消耗及工作速度進(jìn)行了改善和優(yōu)化?;贔PGA的CFGLU5的DA算法實(shí)現(xiàn)了對稱結(jié)構(gòu)FIR濾波器動(dòng)態(tài)可重構(gòu)設(shè)計(jì),這種算法相比于傳統(tǒng)DA算法的優(yōu)勢就是在運(yùn)行中動(dòng)態(tài)可重構(gòu)FIR濾波器,共享了一套可重構(gòu)查找表的方法從而實(shí)現(xiàn)可變FIR濾波器的功能,同時(shí)利用CFGLUT5的O5/O6不同輸出接口,也可實(shí)現(xiàn)FIR濾波器的雙通道功能,可同時(shí)處理2路不同信號,在節(jié)約資源的同時(shí),可以增加實(shí)現(xiàn)的靈活性。最后通過FPGA仿真分析了CFGLUT5的DA算法的可變FIR濾波器,其結(jié)果表明在滿足工作模式切換性能的同時(shí)可以明顯減少占用的邏輯資源(LUT)和提高系統(tǒng)速度。

參考文獻(xiàn)

  [1] 潘林.基于FPGA的雷達(dá)脈沖壓縮系統(tǒng)的研究與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2008.

  [2] Uwe Meyer-Baese.Digital signal processing with field programmable gate arrays[M].BerLin:Springer,2007.

  [3] 李?yuàn)锟思?一種基于FPGA的分布式FIR數(shù)字濾波器設(shè)計(jì)[J].電聲技術(shù),2012(10):28-32.

  [4] 閆永鵬,于海勛.一種基于LUT的改進(jìn)FIR濾波器的設(shè)計(jì)[J].微電子學(xué),2010,40(5):694-696.

  [5] Xilinx,Inc.Spartan-6 Libraries Guide for HDL Designs[J/OL].Xilinx,2013.http://www.xilinx.com/support/documenta-tion/sw_manuals/xilinx14_7/spartan6_hdl.pdf.

  [6] KUMM M,MOLLER K,ZIPF P.Dynamically reconfigurable FIR filter architectures with fast reconfiguration[C].Darmstadt:IEEE,2013.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。