新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于VerilogHDL的FIR數(shù)字濾波器設(shè)計與仿真

基于VerilogHDL的FIR數(shù)字濾波器設(shè)計與仿真

作者: 時間:2015-01-06 來源:網(wǎng)絡(luò) 收藏

  1、設(shè)計意圖

本文引用地址:http://2s4d.com/article/267752.htm

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

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

  

 

  x(n)表示輸入樣本序列, h(n)代表濾波器的系數(shù), L 是抽頭的數(shù)量。

  一個L=8 的FIR 設(shè)計如圖2, 利用了輸入的8 個樣本。因此稱之為8 抽頭濾波器。該結(jié)構(gòu)是有一個移位寄存器, 乘法器和加法器組成的, 可實(shí)現(xiàn)L=8 階的FIR。其數(shù)據(jù)通道必須足夠?qū)? 以適應(yīng)乘法器和加法器的輸出。這些采樣值被編碼為有限

  字長的形式, 然后通過M個寄存器并行移動??梢娪靡粋€MAC級連鏈就可以構(gòu)成這種機(jī)器。每個寄存器提供一個單位樣本內(nèi)延遲。這些延遲輸入與各自的系數(shù)相乘, 然后疊加得到輸出。圖2 所示為基于MAC 的8 階FIR 結(jié)構(gòu)。

  

 

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

  

 

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

  HDL 代碼編寫應(yīng)該具有很好的易讀性和可重用性, 而自頂向下的分割方法可以幫助我們達(dá)到最佳的結(jié)果。HDL 代碼在達(dá)到功能的情況下要盡可能的簡潔, 盡量避免使用帶有特殊庫單元的實(shí)例, 因?yàn)檫@樣會使得整個進(jìn)程變得不可靠。在本設(shè)計中, 我們將設(shè)計劃分成一個頂級文件和三個次級文件, 并且調(diào)用了QuartusII 中的MegaFunction 功能輔助完成整個設(shè)計。

  

 

  3、驗(yàn)證仿真

  完全可綜合設(shè)計的一個優(yōu)點(diǎn)就是同樣的HDL 代碼能夠用于驗(yàn)證和綜合。在使用HDL 代碼之前必須要驗(yàn)證設(shè)計的功能,最好且最簡單的方法就是利用驗(yàn)證工具, 其次是利用仿真工具作有目的的仿真。QuartusII 內(nèi)部帶有仿真器, 只要通過建立正確的Vector Waveform File( 向量波形文件) 就可以開始仿真了。圖4 所示為QuartusII 內(nèi)部仿真器得到的8 階FIR 的脈沖響應(yīng)波形。

  

 

  3 結(jié)論

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


上一頁 1 2 下一頁

關(guān)鍵詞: Verilog 數(shù)字濾波器

評論


相關(guān)推薦

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

關(guān)閉