《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于Verilog HDL的FIR數(shù)字濾波器設(shè)計與仿真
基于Verilog HDL的FIR數(shù)字濾波器設(shè)計與仿真
摘要: 本文主要分析了FIR數(shù)字濾波器的基本結(jié)構(gòu)和硬件構(gòu)成特點,,簡要介紹了FIR濾波器實現(xiàn)的方式優(yōu)缺點,;結(jié)合Altera公司的Stratix系列產(chǎn)品的特點,,以一個基于MAC的8階FIR數(shù)字濾波器的設(shè)計為例,給出了使用Verilog 硬件描述語言進行數(shù)字邏輯設(shè)計的過程和方法,,并且在QuartusII的集成開發(fā)環(huán)境下編寫HDL代碼,,進行綜合;利用QuartusII內(nèi)部的仿真器對設(shè)計做脈沖響應(yīng)仿真和驗證,。
關(guān)鍵詞: 開發(fā)工具 Verilog HDL FIR CPLD FPGA
Abstract:
Key words :

  引言:數(shù)字濾波器是語音與圖像處理,、模式識別,、雷達信號處理、頻譜分析等應(yīng)用中的一種基本的處理部件,,它能滿足波器對幅度和相位特性的嚴(yán)格要求,,避免模擬濾波器所無法克服的電壓漂移、溫度漂移和噪聲等問題,。有限沖激響應(yīng)(FIR)濾波器能在設(shè)計任意幅頻特性的同時保證嚴(yán)格的線性相位特性,。

  一、FIR數(shù)字濾波器

  FIR濾波器用當(dāng)前和過去輸入樣值的加權(quán)和來形成它的輸出,,如下所示的前饋差分方程所描述的,。

前饋差分方程

  FIR濾波器又稱為移動均值濾波器,因為任何時間點的輸出均依賴于包含有最新的M個輸入樣值的一個窗,。由于它的響應(yīng)只依賴于有限個輸入,,F(xiàn)IR濾波器對一個離散事件沖激有一個有限長非零響應(yīng),即一個M階FIR濾波器對一個沖激的響應(yīng)在M個時鐘周期之后為零,。

  FIR濾波器可用圖1所示的z域塊圖來描述,。

z域塊圖

  其中每個標(biāo)有z-1的方框都代表了有一個時鐘周期延時的寄存器單元。這個圖中標(biāo)出了數(shù)據(jù)通道和必須由濾波器完成的操作,。濾波器的每一級都保存了一個已延時的輸入樣值,,各級的輸入連接和輸出連接被稱為抽頭,并且系數(shù)集合{hk}稱為濾波器的抽頭系數(shù),。一個M階的濾波器有M+1個抽頭。通過移位寄存器

 

用每個時鐘邊沿n(時間下標(biāo))處的數(shù)據(jù)流采樣值乘以抽頭,,并且求和得到輸出yFIR[n],。濾波器的加法和乘法必須足夠快,在下一個時鐘來到之前形成y[n],。并且在每一級中都必須測量它們的大小以適應(yīng)他們數(shù)據(jù)通道的寬度,。在要求精度的實際應(yīng)用中,Lattice結(jié)構(gòu)可以減少有限字長的影響,,但增加了計算成本,。一般的目標(biāo)是盡可能快地濾波,以達到高采樣率,。通過組合邏輯的最長信號通路包括M級加法和一級乘法運算,。FIR結(jié)構(gòu)指定機器的每一個算術(shù)單元有限字長,并且管理運算過程中數(shù)據(jù)流,。

 

  二,、FIR數(shù)字濾波器設(shè)計的實現(xiàn)

  目前FIR濾波器的實現(xiàn)方法有三種:利用單片通用數(shù)字濾波器集成電路、DSP器件和可編程邏輯器件實現(xiàn),。單片通用數(shù)字濾波器使用方便,,但由于字長和階數(shù)的規(guī)格較少,不能完全滿足實際需要。使用DSP器件實現(xiàn)雖然簡單,,但由于程序順序執(zhí)行,,執(zhí)行速度必然不快。FPGA/CPLD有著規(guī)整的內(nèi)部邏輯陣列和豐富的連線資源,,特別適合于數(shù)字信號處理任務(wù),,相對于串行運算為主導(dǎo)的通用DSP芯片來說,其并行性和可擴展性更好,。但長期以來,,F(xiàn)PGA/CPLD一直被用于系統(tǒng)邏輯或時序控制上,很少有信號處理方面的應(yīng)用,,其原因主要是因為在FPGA/CPLD中缺乏實現(xiàn)乘法運算的有效結(jié)構(gòu),。

  現(xiàn)在的FPGA產(chǎn)品已經(jīng)能夠完全勝任這種任務(wù)了。其中Altera公司的Stratix系列產(chǎn)品采用1.5V內(nèi)核,,0.13um全銅工藝制造,,它除了具有以前Altera FPGA芯片的所有特性外,還有如下特點:芯片內(nèi)有三種RAM塊,,即512bit容量的小RAM(M512),、4KB容量的標(biāo)準(zhǔn)RAM(M4K) 、512KB的大容量RAM(MegaRAM),。內(nèi)嵌硬件乘法器和乘加結(jié)構(gòu)的DSP塊,,適于實現(xiàn)高速信號處理;采用全新的布線結(jié)構(gòu),,分為三種長度的行列布線,,在保證延時可預(yù)測的同時增加布線的靈活性;增加片內(nèi)終端匹配電阻,,提高信號完整性,,簡化PCB布線;同時具有時鐘管理和鎖相環(huán)能力,。

  FIR濾波器的Verilog HDL設(shè)計實例

  1,、設(shè)計意圖

  本例主要是在Stratix器件內(nèi)實現(xiàn)基本有限脈沖響應(yīng)濾波器。

  FIR的基本結(jié)構(gòu)包括一系列的乘法和加法,。FIR的運算可用式(1)的方程描述,,現(xiàn)重寫如下:

FIR的運算

  一個L=8的FIR設(shè)計如圖2,利用了輸入的8個樣本,。因此稱之為8抽頭濾波器,。該結(jié)構(gòu)是有一個移位寄存器,乘法器和加法器組成的,,可實現(xiàn)L=8階的FIR,。其數(shù)據(jù)通道必須足夠?qū)?,以適應(yīng)乘法器和加法器的輸出。這些采樣值被編碼為有限字長的形式,,然后通過M個寄存器并行移動,。可見用一個MAC級連鏈就可以構(gòu)成這種機器,。每個寄存器提供一個單位樣本內(nèi)延遲,。這些延遲輸入與各自的系數(shù)相乘,然后疊加得到輸出,。圖2所示為基于MAC的8階FIR數(shù)字濾波器結(jié)構(gòu)

基于MAC的8階FIR數(shù)字濾波器結(jié)構(gòu)

  在該設(shè)計中有八個抽頭,,各抽頭有18位輸入和濾波器系數(shù)。由于一個DSP塊可以支持4個18位輸入的分支,,所以設(shè)計需要2個DSP塊,。輸入數(shù)據(jù)串行加載到DSP塊中,DSP內(nèi)部的移入/移出寄存器鏈用于產(chǎn)生延遲,。濾波器系數(shù)從TriMatrix™ 的ROM存儲器中加載,。

  2、Verilog HDL代碼編寫風(fēng)格

  HDL代碼編寫應(yīng)該具有很好的易讀性和可重用性,,而自頂向下的分割方法可以幫助我們達到最佳的結(jié)果,。HDL代碼在達到功能的情況下要盡可能的簡潔,盡量避免使用帶有特殊庫單元的實例,,因為這樣會使得整個進程變得不可靠,。

  在本設(shè)計中,我們將設(shè)計劃分成一個頂級文件和三個次級文件,,并且調(diào)用了QuartusII中的MegaFunction功能輔助完成整個設(shè)計,。

 

  圖3顯示FIR濾波器的頂級方塊圖

FIR濾波器的頂級方塊圖

  表1:FIR濾波器的設(shè)計范例的端口列表

FIR濾波器的設(shè)計范例的端口列表

      3、驗證仿真

  完全可綜合設(shè)計的一個優(yōu)點就是同樣的HDL代碼能夠用于驗證和綜合,。在使用HDL代碼之前必須要驗證設(shè)計的功能,最好且最簡單的方法就是利用驗證工具,,其次是利用仿真工具作有目的的仿真,。

  QuartusII內(nèi)部帶有仿真器,只要通過建立正確的Vector Waveform File(向量波形文件)就可以開始仿真了,。圖4所示為QuartusII內(nèi)部仿真器得到的8階FIR的脈沖響應(yīng)波形,。

8階FIR的脈沖響應(yīng)波形

  五、結(jié)論

  利用Verilog HDL設(shè)計數(shù)字濾波

 

器的最大優(yōu)點就是可使設(shè)計更加靈活,。比較硬件電路圖設(shè)計,,Verilog HDL語言設(shè)計的參數(shù)可以很容易在Verilog程序中更改,通過綜合工具的簡化和綜合即可以得到電路圖,,其效率要高出利用卡諾圖進行人工設(shè)計許多,。而且編譯過程也非常簡單高效,。優(yōu)秀編碼風(fēng)格能夠在綜合過程中節(jié)省芯片使用的單元,從而降低設(shè)計成本,。

 

  參考文獻:

  [1]. 夏宇聞,。VerilogHDL數(shù)字系統(tǒng)設(shè)計教程,北京航空航天大學(xué)出版社,,北京. 2003.

  [2]. Altera Corporation. Introduction to QuartusII. 2003

  [3]. Michael D. Ciletti. Advanced Digital Design with Verilog HDL. Prentice Hall, NJ.2005.

  [4].彭保等.基于VerilogHDL的FPGA設(shè)計. 微計算機信息, 2004年第20卷第10期

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