那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何用matlab生成一個可編程FIR濾波器的硬件HDL代碼?

FPGA之家 ? 來源:SoWhat1412 ? 作者:SoWhat1412 ? 2021-05-03 09:37 ? 次閱讀

01

概述

本文通過matlab自帶的工具箱生成一個可編程FIR濾波器的硬件HDL代碼,可生成VHDL或者Verilog HDL兩種類型的代碼。

02

具體操作步驟

新建一個matlab的腳本,鍵入下面兩行代碼,這里是直接調用matlab已經定義好的“dspprogfirhdl”模型,然后在simulink工具中打開該系統模型。

modelname = ‘dspprogfirhdl’;open_system(modelname)

運行上面兩行代碼后,會打開simulink并出現下圖:

4ef7597c-a2d1-11eb-aece-12bb97331649.jpg

上圖就是“dspprogfirhdl”模型的結構圖, 圖中Host Behavioral Model 是用來產生可編程FIR濾波器的系數(低通或者高通濾波器系數),Programmable FIR via Registers 是我們要生成的可編程濾波器模塊,FIR Behavioral 是一個行為級的參考模塊,它用來和可編程濾波器模塊做結果的比對。

雙擊上圖中的 Programmable FIR via Registers 模塊或者運行如下腳本中:

systemname = [modelname ‘/Programmable FIR via Registers’];open_system(systemname);

會出現下圖,這是programmable FIR via Registers模塊的內部結構:

4fbbb812-a2d1-11eb-aece-12bb97331649.png

上圖中coeffs_registers 是一個FIR 濾波器的系數寄存器,當‘write_enable’ 信號拉高寫FIR的系數;當 ‘write_done’ 拉高,也就是寫完成時, shadow registers 才會更新一次FIR的濾波器系數,該模型生成的HDL代碼默認是全并行的結構實現,可根據需要改為串行流水結構。

開始執行仿真,以及查看仿真波形,執行如下代碼;

sim(modelname);open_system([modelname ‘/Scope’]);

會生成如下的仿真結果:

上圖中,filter_input是輸入的信號,ref_out和dut output是參考模型和dut的輸出結果,error是二者的結果比對情況。

也可以使用simulink工具中的 Logic Analyzer邏輯分析儀查看波形,點擊本文第一張圖中的wifi符號,如下圖:

4fe0e970-a2d1-11eb-aece-12bb97331649.png

最后會在 Logic Analyzer中生成如下的波形圖:

500a484c-a2d1-11eb-aece-12bb97331649.jpg

將filter濾波器輸入信號和輸出信號用模擬形式展開,如下圖:

5023bab6-a2d1-11eb-aece-12bb97331649.jpg

03

生成HDL代碼

下面通過兩種方式生成HDL代碼

方式一(腳本):

腳本中鍵入如下代碼,生成HDL的dut代碼(默認生成.vhd的代碼):

workingdir = tempname;makehdl(systemname,‘TargetDirectory’,workingdir);

matlab命令行窗口中出現如下圖,表示成功FIR濾波器的DUT代碼:

502cd038-a2d1-11eb-aece-12bb97331649.jpg

腳本中鍵入如下代碼,生成HDL的tb代碼:

makehdltb(systemname,‘TargetDirectory’,workingdir);

matlab命令行窗口中出現如下圖,表示成功FIR濾波器的TB代碼:

505b0458-a2d1-11eb-aece-12bb97331649.png

方式二(界面):

在下圖中雙擊箭頭所示部分,會出現configration配置界面(生成.v格式的代碼):

509bdbc2-a2d1-11eb-aece-12bb97331649.jpg

出現下圖,按照如下圖操作1,2,3,然后點擊下方generate。

50d60180-a2d1-11eb-aece-12bb97331649.png

matlab的命令行出現下圖,表示成功生成FIR濾波器的DUT代碼:

50ded9a4-a2d1-11eb-aece-12bb97331649.png

在configuration中選取testbench然后點擊生成testbench即可。

51252bf2-a2d1-11eb-aece-12bb97331649.jpg

matlab的命令行出現下圖,表示成功生成FIR濾波器的TB代碼:

5162db82-a2d1-11eb-aece-12bb97331649.png

04

modelsim工具仿真

經過matlab工具生成可編程的FIR濾波器HDL代碼后,在工作目錄中會有如下的文件(包括:仿真用的數據.dat文件,dut和tb文件,run.do腳本):

516dd690-a2d1-11eb-aece-12bb97331649.png

使用modelsim仿真后的結果如下:

51779f68-a2d1-11eb-aece-12bb97331649.png

原文標題:matlab工具生成可編程FIR濾波器的HDL代碼

文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • matlab
    +關注

    關注

    185

    文章

    2981

    瀏覽量

    231017
  • 濾波器
    +關注

    關注

    161

    文章

    7862

    瀏覽量

    178948

原文標題:matlab工具生成可編程FIR濾波器的HDL代碼

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ADS7066有可編程濾波器,請問使用該濾波器時,是否可以簡化設計抗混疊濾波的截止頻率?

    我看ADS7066有可編程濾波器,請問使用該濾波器時,是否可以簡化設計抗混疊濾波的截止頻率?是否會有像SD ADC樣的過采樣效果? 例如
    發表于 11-25 07:29

    基于FPGA實現FIR數字濾波器

    在數字信號處理系統中,有限脈沖響應(finite impulse response,FIR)數字濾波器非常重要的基本單元。近年來,由于FPGA具有高速度、高集成度和高可靠性的特點
    的頭像 發表于 11-05 16:26 ?937次閱讀
    基于FPGA實現<b class='flag-5'>FIR</b>數字<b class='flag-5'>濾波器</b>

    利用可編程可變電阻濾波器提高分辨率的ADS7138

    電子發燒友網站提供《利用可編程可變電阻濾波器提高分辨率的ADS7138.pdf》資料免費下載
    發表于 09-23 11:38 ?0次下載
    利用<b class='flag-5'>可編程</b>可變電阻<b class='flag-5'>濾波器</b>提高分辨率的ADS7138

    具有可編程FIR和IIR濾波器的Δ-Σ ADC的優點

    電子發燒友網站提供《具有可編程FIR和IIR濾波器的Δ-Σ ADC的優點.pdf》資料免費下載
    發表于 09-03 11:48 ?0次下載
    具有<b class='flag-5'>可編程</b><b class='flag-5'>FIR</b>和IIR<b class='flag-5'>濾波器</b>的Δ-Σ ADC的優點

    FIR濾波器的工作原理和特點

    FIR(Finite Impulse Response)濾波器,即有限長單位沖激響應濾波器,又稱為非遞歸型濾波器,是數字信號處理系統中最基本的元件之
    的頭像 發表于 08-05 16:33 ?1450次閱讀
    <b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>的工作原理和特點

    如何區分IIR濾波器FIR濾波器

    IIR(無限脈沖響應)濾波器FIR(有限脈沖響應)濾波器是數字信號處理領域中兩種非常重要的濾波器類型。它們在許多應用中都發揮著關鍵作用,如音頻處理、圖像處理、通信系統等。 1. 引言
    的頭像 發表于 07-19 09:44 ?5249次閱讀

    iir濾波器fir濾波器的優勢和特點

    IIR濾波器FIR濾波器是數字信號處理領域中兩種非常重要的濾波器類型。它們各自具有獨特的優勢和特點,適用于不同的應用場景。本文將介紹IIR濾波器
    的頭像 發表于 07-19 09:28 ?1831次閱讀

    基于matlab FPGA verilog的FIR濾波器設計

    今天和大俠簡單聊聊基于matlab FPGA verilog的FIR濾波器設計,話不多說,上貨。 本次設計實現8階濾波器,9
    發表于 07-04 20:11

    matlab與FPGA數字信號處理系列 Verilog 實現并行 FIR 濾波器

    rst_n 低電平進行復位; (2)獲取濾波器系數 h0 ~ h7; 按照 第講 通過matlab的fdatool工具箱設計FIR濾波器
    發表于 05-24 07:48

    DSP教學實驗箱_DSP算法實驗_嵌入式教程:4-3 有限沖激響應濾波器FIR)算法(CCS顯示)

    生成濾波器,另外種是純算法生成濾波器。本實驗中是通過FIR
    發表于 05-16 09:30

    Matlab生成fir濾波器抽頭系數

    在Vivado調用fir濾波器時,我們會遇到需要填充濾波器抽頭系數的問題,手工計算又不現實,所以在此向大家介紹
    發表于 04-30 16:17

    Vivado 使用Simulink設計FIR濾波器

    。 使用vivado的System Generator可以在simulink下快速的通過matlab的強大設計功能設計濾波器。這里使用fdatool設計了15階的
    發表于 04-17 17:29

    Matlab生成fir濾波器抽頭系數的流程

    在Vivado調用fir濾波器時,我們會遇到需要填充濾波器抽頭系數的問題,手工計算又不現實,所以在此向大家介紹
    的頭像 發表于 03-25 09:49 ?1555次閱讀
    <b class='flag-5'>Matlab</b><b class='flag-5'>生成</b><b class='flag-5'>fir</b><b class='flag-5'>濾波器</b>抽頭系數的流程

    Vivado經典案例:使用Simulink設計FIR濾波器

    FIR(Finite Impulse Response)濾波器:有限長單位沖激響應濾波器,又稱為非遞歸型濾波器,是數字信號處理系統中最基本的元件,它可以在保證任意幅頻特性的同時具有嚴格
    的頭像 發表于 03-25 09:18 ?2267次閱讀
    Vivado經典案例:使用Simulink設計<b class='flag-5'>FIR</b><b class='flag-5'>濾波器</b>

    如何在Matlab中實現不同窗低通濾波器的設計?

    Matlab中使用漢明窗設計低通濾波器可以通過fir1函數實現。漢明窗通常用于設計濾波器,可以提供更突出的頻率特性。
    的頭像 發表于 02-27 14:11 ?7277次閱讀
    如何在<b class='flag-5'>Matlab</b>中實現不同窗低通<b class='flag-5'>濾波器</b>的設計?
    百家乐官网筹码500| 太阳城大酒店| 百家乐2号技术| 玛多县| 金臂百家乐开户送彩金| 舟山星空棋牌游戏大厅下载| 网上百家乐官网赌博网| 大发888游戏平台dafa888 gw| 百家乐官网网上漏洞| 大发888怎么玩能赢| 长方形百家乐筹码| 澳门百家乐官网官方网站| 竹山县| 威尼斯人娱乐网反| 电玩百家乐官网的玩法技巧和规则| bet365 金融| 百家乐官网游戏如何玩| 女优百家乐的玩法技巧和规则 | 大发888是什么软件| 卢克索百家乐官网的玩法技巧和规则 | 最佳场百家乐官网的玩法技巧和规则 | 百家乐看单技术| 开心8百家乐官网娱乐城| 大发888娱乐城帝豪| 乐天百家乐官网的玩法技巧和规则| 网上投注| 百家乐法则| 百家乐体育nba| 澳门娱乐城官网| 百家乐博娱乐网赌百家乐| 中国百家乐官网技巧| 朝阳区| 大发888怎么玩| 百家乐真人游戏娱乐平台| 澳门百家乐官网网上赌| 百家乐官网视频对对碰| 百家乐官网游戏高手| bet365 app| bet365取消提款| 澳门金盛国际娱乐| 德州扑克边池|