查看: 3762|回復: 0
打印 上一主題 下一主題

基于Verilog HDL的FIR數字濾波器設計與仿真

[復制鏈接]
跳轉到指定樓層
樓主
發(fā)表于 2010-9-27 12:50:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)鍵詞: FIR , HDL , verilog , 濾波器
一、 引言

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

二、FIR數字濾波器

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


FIR濾波器又稱(chēng)為移動(dòng)均值濾波器,因為任何時(shí)間點(diǎn)的輸出均依賴(lài)于包含有最新的M個(gè)輸入樣值的一個(gè)窗。由于它的響應只依賴(lài)于有限個(gè)輸入,FIR濾波器對一個(gè)離散事件沖激有一個(gè)有限長(cháng)非零響應,即一個(gè)M階FIR濾波器對一個(gè)沖激的響應在M個(gè)時(shí)鐘周期之后為零。

FIR濾波器可用圖1所示的z域塊圖來(lái)描述。


其中每個(gè)標有z-1的方框都代表了有一個(gè)時(shí)鐘周期延時(shí)的寄存器單元。這個(gè)圖中標出了數據通道和必須由濾波器完成的操作。濾波器的每一級都保存了一個(gè)已延時(shí)的輸入樣值,各級的輸入連接和輸出連接被稱(chēng)為抽頭,并且系數集合{hk}稱(chēng)為濾波器的抽頭系數。一個(gè)M階的濾波器有M+1個(gè)抽頭。通過(guò)移位寄存器 用每個(gè)時(shí)鐘邊沿n(時(shí)間下標)處的數據流采樣值乘以抽頭,并且求和得到輸出yFIR[n]。濾波器的加法和乘法必須足夠快,在下一個(gè)時(shí)鐘來(lái)到之前形成y[n]。并且在每一級中都必須測量它們的大小以適應他們數據通道的寬度。在要求精度的實(shí)際應用中,Lattice結構可以減少有限字長(cháng)的影響,但增加了計算成本。一般的目標是盡可能快地濾波,以達到高采樣率。通過(guò)組合邏輯的最長(cháng)信號通路包括M級加法和一級乘法運算。FIR結構指定機器的每一個(gè)算術(shù)單元有限字長(cháng),并且管理運算過(guò)程中數據流。

三、FIR數字濾波器設計的實(shí)現

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

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

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

1、設計意圖

本例主要是在Stratix器件內實(shí)現基本有限脈沖響應濾波器。

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


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


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

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

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

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


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


表1:FIR濾波器的設計范例的端口列表


3、驗證仿真

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

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


五、結論

利用Verilog HDL設計數字濾波 器的最大優(yōu)點(diǎn)就是可使設計更加靈活。比較硬件電路圖設計,Verilog HDL語(yǔ)言設計的參數可以很容易在Verilog程序中更改,通過(guò)綜合工具的簡(jiǎn)化和綜合即可以得到電路圖,其效率要高出利用卡諾圖進(jìn)行人工設計許多。而且編譯過(guò)程也非常簡(jiǎn)單高效。優(yōu)秀編碼風(fēng)格能夠在綜合過(guò)程中節省芯片使用的單元,從而降低設計成本。
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页