matlab工具生成可編程FIR濾波器的HDL代碼

01概述

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

 

02 具體操作步驟

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

modelname = 'dspprogfirhdl';open_system(modelname)

 

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

上圖就是"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模塊的內部結構:

上圖中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符號,如下圖:

 

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

 

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

 

03生成HDL代碼

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

  • 方式一(腳本):

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

workingdir = tempname;makehdl(systemname,'TargetDirectory',workingdir);

 

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

 

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

makehdltb(systemname,'TargetDirectory',workingdir);

 

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

 

  • 方式二(界面):

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

 

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

 

 

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

 

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

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

 

04

modelsim工具仿真

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

 

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

 

05 

總結

 

參考資料:

https://ww2.mathworks.cn/help/dsp/examples/generate-hdl-code-for-programmable-fir-filter.html

Filter Design HDL Coder™User's Guide

獲取代碼:

關注公衆號回覆:“fir”,即可獲取。

 

關注“芯設計"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章