新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于FDATool的FIR濾波器設(shè)計(jì)方法(一)

基于FDATool的FIR濾波器設(shè)計(jì)方法(一)

作者: 時(shí)間:2014-07-14 來源:網(wǎng)絡(luò) 收藏

  FIR根據(jù)輸入數(shù)據(jù)速率的不同可分為串行結(jié)構(gòu)、半并行結(jié)構(gòu)和全并行結(jié)構(gòu)。串行結(jié)構(gòu)的FIR是將并行數(shù)據(jù)串行輸入,所需的DSP資源較少,但是數(shù)據(jù)吞吐率較低;而全并行結(jié)構(gòu)的FIR數(shù)據(jù)是并行輸入,濾波系數(shù)的個(gè)數(shù)就決定了所需DSP資源的個(gè)數(shù),資源耗用較多,但是吞吐率可以做到很大。在大多數(shù)應(yīng)用中,如無線數(shù)字中頻處理,所需數(shù)據(jù)吞吐率一般都較高,因此采用的是全并行結(jié)構(gòu)的FIR濾波器。

本文引用地址:http://www.butianyuan.cn/article/249651.htm

  全并行FIR濾波器根據(jù)實(shí)現(xiàn)結(jié)構(gòu)不同可分為:直接型(Transverse)、轉(zhuǎn)置型(Transpose)和脈動型(Systolic),這一節(jié)主要講解直接型FIR濾波器設(shè)計(jì)。

  (一)直接型

  直接型FIR濾波器在上一節(jié)中也有介紹,如圖1所示,數(shù)據(jù)x(n)移入并寄存,如果有11個(gè)抽頭,因此直接型FIR濾波器需要11個(gè)乘加模塊。

  

 

  圖1

  FPGA實(shí)現(xiàn)時(shí),直接采用上圖中結(jié)構(gòu),不對中間數(shù)據(jù)寄存,則關(guān)鍵路徑是x(n)h(0)+x(n-1)h(1)…x(n-N+1)h(N-1),以階數(shù)10的FIR濾波器為例,如下為抽頭系數(shù):

  coe_0 = -1241

  coe_1 = -650

  coe_2 = 1300

  coe_3 = 4739

  coe_4 = 8126

  coe_5 = 9544

  coe_6 = 8126

  coe_7 = 4739

  coe_8 = 1300

  coe_9 = -650

  coe_10 = -1241

  數(shù)據(jù)輸入時(shí)打了一拍,輸出時(shí)打了一拍。綜合后結(jié)果如下:

  Number of Slice Registers: 2

  Number of Slice LUTs: 19

  Number of DSP48E1s: 11

  關(guān)鍵路徑中數(shù)據(jù)路徑延時(shí)報(bào)告如圖2所示,數(shù)據(jù)路徑延時(shí)包括乘法器延時(shí)Tdspcko PCOUT AREG MULT (3.001ns)+ 10個(gè)級聯(lián)加法器延時(shí)Tdspdo PCIN PCOUT(1.219),數(shù)據(jù)路徑延時(shí)總共15.017ns,因此fmax最大不過66.273MHz??梢园l(fā)現(xiàn)綜合器自動將乘法器和加法器在 DSP48E1中實(shí)現(xiàn)。

  

 

  圖2

  加法樹實(shí)現(xiàn):

  直接型FIR濾波器的一般實(shí)現(xiàn)方法關(guān)鍵路徑中有較多級的加法器,所有加法器延時(shí)累加后導(dǎo)致關(guān)鍵路徑延時(shí)較大,對整個(gè)FIR濾波器的性能造成了很大影響。為了解決加法器延時(shí)累加的問題,可采用加法樹結(jié)構(gòu),如圖3所示為采用了加法數(shù)的直接型FIR濾波器結(jié)構(gòu),這種層次化的樹型結(jié)構(gòu),使加法器邏輯由級聯(lián)結(jié)構(gòu)轉(zhuǎn)化成并行結(jié)構(gòu),這樣整個(gè)路徑的延時(shí)減小。

  

 

  圖3

  流水線實(shí)現(xiàn):

  雖然直接型FIR濾波器采用加法樹結(jié)構(gòu)后優(yōu)化了關(guān)鍵路徑,但是時(shí)序還是不夠理想,因?yàn)殛P(guān)鍵路徑上至少有一個(gè)乘法器和一個(gè)加法器的延時(shí),如果想竟可能的優(yōu)化時(shí)序,可以分隔乘法器和加法器邏輯,中間加一級寄存器,即采用流水線實(shí)現(xiàn)。

  那如何有效地分割邏輯呢?可以在圖3中加法樹結(jié)構(gòu)的基礎(chǔ)上分割,在原先的關(guān)鍵路徑上,乘法器延時(shí)3.001ns,加法器延時(shí)1.219ns,因此可以將邏輯分割成如下**:

  第1級:乘法器

  第2級:2級加法器

  第3級:3個(gè)數(shù)累加即2級加法器

  如圖4所示為流水線實(shí)現(xiàn)的FIR濾波器,邏輯分割后的關(guān)鍵路徑是乘法器那一級,理論分析得到的延時(shí)只有3.001ns,如果時(shí)鐘約束到250MHz可滿足時(shí)序要求。

  

 

  圖4

  實(shí)際得到綜合結(jié)果如下:

  Number of Slice Registers: 105

  Number of Slice LUTs: 124

  Number of DSP48E1s: 11

  Minimum period: 3.037ns{1} (Maximum frequency: 329.272MHz)

  fmax能達(dá)到329.272MHz,延時(shí)基本與預(yù)期的差不多,F(xiàn)IR濾波器能達(dá)到這樣的性能基本能滿足大多數(shù)應(yīng)用了。

  線性相位FIR濾波器:

  FIR濾波器有一特征:線性相位,直接表現(xiàn)在抽頭系數(shù)上,抽頭系數(shù)為偶對稱或者奇對稱,在這節(jié)實(shí)例中,系數(shù)是偶對稱的,即 h(0)=h(10),h(1)=h(9),h(2)=h(8),h(3)=h(7),h(4)=h(6),直接型FIR結(jié)構(gòu)優(yōu)化后如圖5所示,輸入數(shù)據(jù)在與系數(shù)相乘之前,因系數(shù)對稱,可以先將相同系數(shù)對應(yīng)的數(shù)據(jù)進(jìn)行預(yù)加操作,然后再與系數(shù)相乘,如此做法的好處是是乘法器資源減少了近一半,此例中DSP資源由原先需要11個(gè)到現(xiàn)在只需6個(gè)。而且,在Xilinx FPGA中的DSP48E1資源專門為線性相位FIR濾波器應(yīng)用提供了預(yù)加pre-adder結(jié)構(gòu),即預(yù)加和乘法都可以在1個(gè)DSP48E1中完成,這樣大大縮短了數(shù)據(jù)路徑的延時(shí),有利于時(shí)序收斂。

  

 

  圖5

  實(shí)際得到綜合結(jié)果如下:

  Number of Slice Registers: 184

  Number of Slice LUTs: 173

  Number of DSP48E1s: 6

  Minimum period: 2.854ns{1} (Maximum frequency: 350.385MHz)

  fmax能達(dá)到350.385MHz,由于采用了加法樹結(jié)構(gòu),避免了加法器級聯(lián)延時(shí),并且分了3級流水線實(shí)現(xiàn)。關(guān)鍵路徑數(shù)據(jù)延時(shí)報(bào)告如圖6所示,路徑是從 DSP48E1輸出端到dout_d,但是光從代碼中看DSP48E1端到dout_d中間應(yīng)該還有一級加法器的寄存,原來這個(gè)加法器采用了 DSP48E1中的累加器實(shí)現(xiàn)了。

  

 

  圖6

濾波器相關(guān)文章:濾波器原理


濾波器相關(guān)文章:濾波器原理


電源濾波器相關(guān)文章:電源濾波器原理


高通濾波器相關(guān)文章:高通濾波器原理
數(shù)字濾波器相關(guān)文章:數(shù)字濾波器原理

上一頁 1 2 下一頁

關(guān)鍵詞: Matlab FDATool 濾波器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉