0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

01

概述

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

02

具體操作步驟

新建一個(gè)matlab的腳本,鍵入下面兩行代碼,這里是直接調(diào)用matlab已經(jīng)定義好的“dspprogfirhdl”模型,然后在simulink工具中打開該系統(tǒng)模型。

modelname = ‘dspprogfirhdl’;open_system(modelname)

運(yùn)行上面兩行代碼后,會(huì)打開simulink并出現(xiàn)下圖:

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

上圖就是“dspprogfirhdl”模型的結(jié)構(gòu)圖, 圖中Host Behavioral Model 是用來產(chǎn)生可編程FIR濾波器的系數(shù)(低通或者高通濾波器系數(shù)),Programmable FIR via Registers 是我們要生成的可編程濾波器模塊,F(xiàn)IR Behavioral 是一個(gè)行為級(jí)的參考模塊,它用來和可編程濾波器模塊做結(jié)果的比對(duì)。

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

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

會(huì)出現(xiàn)下圖,這是programmable FIR via Registers模塊的內(nèi)部結(jié)構(gòu):

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

上圖中coeffs_registers 是一個(gè)FIR 濾波器的系數(shù)寄存器,當(dāng)‘write_enable’ 信號(hào)拉高寫FIR的系數(shù);當(dāng) ‘write_done’ 拉高,也就是寫完成時(shí), shadow registers 才會(huì)更新一次FIR的濾波器系數(shù),該模型生成的HDL代碼默認(rèn)是全并行的結(jié)構(gòu)實(shí)現(xiàn),可根據(jù)需要改為串行流水結(jié)構(gòu)。

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

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

會(huì)生成如下的仿真結(jié)果:

上圖中,filter_input是輸入的信號(hào),ref_out和dut output是參考模型和dut的輸出結(jié)果,error是二者的結(jié)果比對(duì)情況。

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

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

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

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

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

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

03

生成HDL代碼

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

方式一(腳本):

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

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

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

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

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

makehdltb(systemname,‘TargetDirectory’,workingdir);

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

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

方式二(界面):

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

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

出現(xiàn)下圖,按照如下圖操作1,2,3,然后點(diǎn)擊下方generate。

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

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

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

在configuration中選取testbench然后點(diǎn)擊生成testbench即可。

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

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

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

04

modelsim工具仿真

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

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

使用modelsim仿真后的結(jié)果如下:

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

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

文章出處:【微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • matlab
    +關(guān)注

    關(guān)注

    180

    文章

    2952

    瀏覽量

    229855
  • 濾波器
    +關(guān)注

    關(guān)注

    159

    文章

    7657

    瀏覽量

    177181

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

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    具有可編程FIR和IIR濾波器的Δ-Σ ADC的優(yōu)點(diǎn)

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

    FIR濾波器的工作原理和特點(diǎn)

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

    如何區(qū)分IIR濾波器FIR濾波器

    IIR(無限脈沖響應(yīng))濾波器FIR(有限脈沖響應(yīng))濾波器是數(shù)字信號(hào)處理領(lǐng)域中兩種非常重要的濾波器類型。它們?cè)谠S多應(yīng)用中都發(fā)揮著關(guān)鍵作用,如音頻處理、圖像處理、通信系統(tǒng)等。 1. 引言
    的頭像 發(fā)表于 07-19 09:44 ?1644次閱讀

    iir濾波器fir濾波器的優(yōu)勢(shì)和特點(diǎn)

    IIR濾波器FIR濾波器是數(shù)字信號(hào)處理領(lǐng)域中兩種非常重要的濾波器類型。它們各自具有獨(dú)特的優(yōu)勢(shì)和特點(diǎn),適用于不同的應(yīng)用場(chǎng)景。本文將介紹IIR濾波器
    的頭像 發(fā)表于 07-19 09:28 ?671次閱讀

    基于matlab FPGA verilog的FIR濾波器設(shè)計(jì)

    今天和大俠簡(jiǎn)單聊聊基于matlab FPGA verilog的FIR濾波器設(shè)計(jì),話不多說,上貨。 本次設(shè)計(jì)實(shí)現(xiàn)8階濾波器,9
    發(fā)表于 07-04 20:11

    matlab與FPGA數(shù)字信號(hào)處理系列 Verilog 實(shí)現(xiàn)并行 FIR 濾波器

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

    DSP教學(xué)實(shí)驗(yàn)箱_DSP算法實(shí)驗(yàn)_嵌入式教程:4-3 有限沖激響應(yīng)濾波器FIR)算法(CCS顯示)

    生成濾波器,另外種是純算法生成濾波器。本實(shí)驗(yàn)中是通過FIR
    發(fā)表于 05-16 09:30

    Matlab生成fir濾波器抽頭系數(shù)

    在Vivado調(diào)用fir濾波器時(shí),我們會(huì)遇到需要填充濾波器抽頭系數(shù)的問題,手工計(jì)算又不現(xiàn)實(shí),所以在此向大家介紹個(gè)
    發(fā)表于 04-30 16:17

    基于MATLABFIR半帶濾波器系數(shù)生成方法

    matlab設(shè)計(jì)濾波器時(shí),我們會(huì)使用到fdatool工具, 首先大概說下這個(gè)工具的使用。 假設(shè)我們需要設(shè)計(jì)個(gè)半帶抽取
    的頭像 發(fā)表于 04-23 15:49 ?1235次閱讀
    基于<b class='flag-5'>MATLAB</b>的<b class='flag-5'>FIR</b>半帶<b class='flag-5'>濾波器</b>系數(shù)<b class='flag-5'>生成</b>方法

    Vivado 使用Simulink設(shè)計(jì)FIR濾波器

    。 使用vivado的System Generator可以在simulink下快速的通過matlab的強(qiáng)大設(shè)計(jì)功能設(shè)計(jì)濾波器。這里使用fdatool設(shè)計(jì)了個(gè)15階的
    發(fā)表于 04-17 17:29

    Matlab生成fir濾波器抽頭系數(shù)的流程

    在Vivado調(diào)用fir濾波器時(shí),我們會(huì)遇到需要填充濾波器抽頭系數(shù)的問題,手工計(jì)算又不現(xiàn)實(shí),所以在此向大家介紹個(gè)
    的頭像 發(fā)表于 03-25 09:49 ?1203次閱讀
    <b class='flag-5'>Matlab</b><b class='flag-5'>生成</b><b class='flag-5'>fir</b><b class='flag-5'>濾波器</b>抽頭系數(shù)的流程

    如何在Matlab中實(shí)現(xiàn)不同窗低通濾波器的設(shè)計(jì)?

    Matlab中使用漢明窗設(shè)計(jì)低通濾波器可以通過fir1函數(shù)實(shí)現(xiàn)。漢明窗通常用于設(shè)計(jì)濾波器,可以提供更突出的頻率特性。
    的頭像 發(fā)表于 02-27 14:11 ?5110次閱讀
    如何在<b class='flag-5'>Matlab</b>中實(shí)現(xiàn)不同窗低通<b class='flag-5'>濾波器</b>的設(shè)計(jì)?

    維修斯坦福SR560可編程濾波器燒了overload

    近日某院校送修臺(tái)斯坦福可編程濾波器SR560,客戶反饋儀器燒了 overload,對(duì)儀器進(jìn)行初步檢測(cè),確定與客戶描述故障致。本期將為大家分享本維修案例。 下面就是斯坦福-SR560
    的頭像 發(fā)表于 01-09 15:58 ?384次閱讀
    維修斯坦福SR560<b class='flag-5'>可編程</b><b class='flag-5'>濾波器</b>燒了overload

    AD9866內(nèi)部的DAC包含插值濾波器,ADC包含三階可編程低通濾波器,兩個(gè)濾波器的相位特性是怎樣的?

    AD9866內(nèi)部的DAC包含插值濾波器,ADC包含三階可編程低通濾波器。 請(qǐng)問這兩個(gè)濾波器的相位特性是怎樣的?是線性的嗎? 多謝各位啦
    發(fā)表于 12-18 07:49

    請(qǐng)問AD9689中的可編程FIR濾波器起什么作用?

    請(qǐng)問下AD9689官方文檔中提到的可編程FIR濾波器有什么作用,為什么要在adc內(nèi)核輸出數(shù)字信號(hào)后加
    發(fā)表于 12-06 08:22