<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

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

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

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

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

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

          表1: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程序中更改,通過綜合工具的簡化和綜合即可以得到電路圖,其效率要高出利用卡諾圖進(jìn)行人工設(shè)計許多。而且編譯過程也非常簡單高效。優(yōu)秀編碼風(fēng)格能夠在綜合過程中節(jié)省芯片使用的單元,從而降低設(shè)計成本。

            參考文獻(xiàn):

            [1]. 夏宇聞。數(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].彭保等.基于的FPGA設(shè)計. 微計算機(jī)信息, 2004年第20卷第10期


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();