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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于DSP Builder的16階FIR濾波器實現(xiàn)

          基于DSP Builder的16階FIR濾波器實現(xiàn)

          作者: 時間:2009-11-25 來源:網(wǎng)絡(luò) 收藏
          2.2.3 在Simulink中的仿真并生成VHDL代碼
          完成模型設(shè)計之后,可以先在Simulink中對模型進行仿真,可以通過Simulink中的示波器模塊查看各個步驟的中間結(jié)果。輸入信號采用800 Hz和1 600 Hz,幅值相同的兩個正弦信號的疊加。仿真結(jié)果如圖3所示。從仿真波形可以看出,通過之后,1 600 Hz的信號能夠被很好地濾除。

          本文引用地址:http://www.ex-cimer.com/article/188501.htm

          雙擊SignalCompiler可對以上的設(shè)計模型進行分析,選擇相應(yīng)的芯片,將以上設(shè)計模塊圖文件“翻譯”成VHDL語言。
          2.2.4 Modelsim的RTL仿真
          在Simulink中進行的仿真屬于系統(tǒng)驗證性質(zhì)的,是對mdl文件進行的仿真,并沒有對生成的VHDL代碼進行仿真。事實上,生成VHDL描述的是RTL級的,是針對具體的硬件結(jié)構(gòu),而在Matlab的Simulink中的模型仿真是算法級的,兩者之間有可能存在軟件理解上的差異,轉(zhuǎn)化后的VHDL代碼實現(xiàn)可能與mdl模型描述的情況不完全相符。這就需要針對生成的RTL級VHDL代碼進行功能仿真,仿真結(jié)果如圖4所示。

          仿真結(jié)果說明,在Modelsim中仿真結(jié)果和Simulink里的仿真結(jié)果基本一致,該有較好的濾波效果??梢钥闯?,輸入正弦波經(jīng)過數(shù)字化過程以后,能夠在Modelsim中還原出模擬波形.符合設(shè)計的要求,可以在QLtortusⅡ的環(huán)境下進行硬件設(shè)計。
          2.2.5 在FPGA上的實現(xiàn)
          在QuartusⅡ環(huán)境中,打開 建立的QuartusⅡ項目文件,在QuartusⅡ中再進行一次仿真,由此可以看到符合要求的時序波形。然后指定器件引腳,并進行編譯,最后下載到FPGA器件中,就可以對硬件進行測試,加上clok信號和使能信號,用信號發(fā)生器產(chǎn)生所要求的兩個不同頻率的正弦信號,就可以在示波器上看到濾波后的結(jié)果。需要設(shè)計不同的濾波器電路是僅修改濾波器模型文件就可以實現(xiàn),這樣不僅避免了繁瑣的VHDL語言編程,而且便于進行調(diào)整。

          3 結(jié) 語
          在利用FPGA進行數(shù)字濾波器開發(fā)時,采用作為設(shè)計工具,能加快進度。當然,在實際應(yīng)用中,受精度、速度和器件選擇方面的影響,可能對其轉(zhuǎn)化的VHDL進行進一步的優(yōu)化。


          上一頁 1 2 下一頁

          關(guān)鍵詞: Builder DSP FIR 濾波器

          評論


          相關(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); })();