一、FIR數字濾波器
FIR濾波器用當前和過去輸入樣值的加權和來形成它的輸出,如下所示的前饋差分方程所描述的。
FIR濾波器又稱為移動均值濾波器,因為任何時間點的輸出均依賴于包含有的M個輸入樣值的一個窗。由于它的響應只依賴于有限個輸入,FIR濾波器對一個離散事件沖激有一個有限長非零響應,即一個M階FIR濾波器對一個沖激的響應在M個時鐘周期之后為零。
FIR濾波器可用圖1所示的z域塊圖來描述。
二、FIR數字濾波器設計的實現
目前FIR濾波器的實現方法有三種:利用單片通用數字濾波器集成電路、DSP器件和可編程邏輯器件實現。單片通用數字濾波器使用方便,但由于字長和階數的規格較少,不能完全滿足實際需要。使用DSP器件實現雖然簡單,但由于程序順序執行,執行速度必然不快。FPGA/CPLD有著規整的內部邏輯陣列和豐富的連線資源,特別適合于數字信號處理任務,相對于串行運算為主導的通用DSP芯片來說,其并行性和可擴展性更好。但長期以來,FPGA/CPLD一直被用于系統邏輯或時序控制上,很少有信號處理方面的應用,其原因主要是因為在FPGA/CPLD中缺乏實現乘法運算的有效結構。
現在的FPGA產品已經能夠完全勝任這種任務了。其中Altera公司的Stratix系列產品采用1.5V內核,0.13um全銅工藝制造,它除了具有以前Altera FPGA芯片的所有特性外,還有如下特點:芯片內有三種RAM塊,即512bit容量的小RAM(M512)、4KB容量的標準RAM(M4K) 、512KB的大容量RAM(MegaRAM)。內嵌硬件乘法器和乘加結構的DSP塊,適于實現高速信號處理;采用全新的布線結構,分為三種長度的行列布線,在保證延時可預測的同時增加布線的靈活性;增加片內終端匹配電阻,提高信號完整性,簡化PCB布線;同時具有時鐘管理和鎖相環能力。
FIR濾波器的Verilog HDL設計實例
1、設計意圖
本例主要是在Stratix器件內實現基本有限脈沖響應濾波器。
FIR的基本結構包括一系列的乘法和加法。FIR的運算可用式(1)的方程描述,現重寫如下:
2、Verilog HDL代碼編寫風格
HDL代碼編寫應該具有很好的易讀性和可重用性,而自頂向下的分割方法可以幫助我們達到的結果。HDL代碼在達到功能的情況下要盡可能的簡潔,盡量避免使用帶有特殊庫單元的實例,因為這樣會使得整個進程變得不可靠。
在本設計中,我們將設計劃分成一個文件和三個次級文件,并且調用了QuartusII中的MegaFunction功能輔助完成整個設計。
圖3顯示FIR濾波器的方塊圖
表1:FIR濾波器的設計范例的端口列表
完全可綜合設計的一個優點就是同樣的HDL代碼能夠用于驗證和綜合。在使用HDL代碼之前必須要驗證設計的功能,且簡單的方法就是利用驗證工具,其次是利用仿真工具作有目的的仿真。
QuartusII內部帶有仿真器,只要通過建立正確的Vector Waveform File(向量波形文件)就可以開始仿真了。圖4所示為QuartusII內部仿真器得到的8階FIR的脈沖響應波形。
利用Verilog HDL設計數字濾波器的優點就是可使設計更加靈活。比較硬件電路圖設計,Verilog HDL語言設計的參數可以很容易在Verilog程序中更改,通過綜合工具的簡化和綜合即可以得到電路圖,其效率要高出利用卡諾圖進行人工設計許多。而且編譯過程也非常簡單高效。編碼風格能夠在綜合過程中節省芯片使用的單元,從而降低設計成本。
參考文獻:
[1]. 夏宇聞。VerilogHDL數字系統設計教程,北京航空航天大學出版社,北京. 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設計. 微計算機信息, 2004年第20卷第10期