01
概述
本文通過matlab自帶的工具箱生成一個可編程FIR濾波器的硬件HDL代碼,可生成VHDL或者Verilog HDL兩種類型的代碼。
02
具體操作步驟
新建一個matlab的腳本,鍵入下面兩行代碼,這里是直接調(diào)用matlab已經(jīng)定義好的“dspprogfirhdl”模型,然后在simulink工具中打開該系統(tǒng)模型。
modelname = ‘dspprogfirhdl’;open_system(modelname)
運行上面兩行代碼后,會打開simulink并出現(xiàn)下圖:
上圖就是“dspprogfirhdl”模型的結(jié)構(gòu)圖, 圖中Host Behavioral Model 是用來產(chǎn)生可編程FIR濾波器的系數(shù)(低通或者高通濾波器系數(shù)),Programmable FIR via Registers 是我們要生成的可編程濾波器模塊,F(xiàn)IR Behavioral 是一個行為級的參考模塊,它用來和可編程濾波器模塊做結(jié)果的比對。
雙擊上圖中的 Programmable FIR via Registers 模塊或者運行如下腳本中:
systemname = [modelname ‘/Programmable FIR via Registers’];open_system(systemname);
會出現(xiàn)下圖,這是programmable FIR via Registers模塊的內(nèi)部結(jié)構(gòu):
上圖中coeffs_registers 是一個FIR 濾波器的系數(shù)寄存器,當‘write_enable’ 信號拉高寫FIR的系數(shù);當 ‘write_done’ 拉高,也就是寫完成時, shadow registers 才會更新一次FIR的濾波器系數(shù),該模型生成的HDL代碼默認是全并行的結(jié)構(gòu)實現(xiàn),可根據(jù)需要改為串行流水結(jié)構(gòu)。
開始執(zhí)行仿真,以及查看仿真波形,執(zhí)行如下代碼;
sim(modelname);open_system([modelname ‘/Scope’]);
會生成如下的仿真結(jié)果:
上圖中,filter_input是輸入的信號,ref_out和dut output是參考模型和dut的輸出結(jié)果,error是二者的結(jié)果比對情況。
也可以使用simulink工具中的 Logic Analyzer邏輯分析儀查看波形,點擊本文第一張圖中的wifi符號,如下圖:
最后會在 Logic Analyzer中生成如下的波形圖:
將filter濾波器輸入信號和輸出信號用模擬形式展開,如下圖:
03
生成HDL代碼
下面通過兩種方式生成HDL代碼
方式一(腳本):
腳本中鍵入如下代碼,生成HDL的dut代碼(默認生成.vhd的代碼):
workingdir = tempname;makehdl(systemname,‘TargetDirectory’,workingdir);
matlab命令行窗口中出現(xiàn)如下圖,表示成功FIR濾波器的DUT代碼:
腳本中鍵入如下代碼,生成HDL的tb代碼:
makehdltb(systemname,‘TargetDirectory’,workingdir);
matlab命令行窗口中出現(xiàn)如下圖,表示成功FIR濾波器的TB代碼:
方式二(界面):
在下圖中雙擊箭頭所示部分,會出現(xiàn)configration配置界面(生成.v格式的代碼):
出現(xiàn)下圖,按照如下圖操作1,2,3,然后點擊下方generate。
matlab的命令行出現(xiàn)下圖,表示成功生成FIR濾波器的DUT代碼:
在configuration中選取testbench然后點擊生成testbench即可。
matlab的命令行出現(xiàn)下圖,表示成功生成FIR濾波器的TB代碼:
04
modelsim工具仿真
經(jīng)過matlab工具生成可編程的FIR濾波器HDL代碼后,在工作目錄中會有如下的文件(包括:仿真用的數(shù)據(jù).dat文件,dut和tb文件,run.do腳本):
使用modelsim仿真后的結(jié)果如下:
原文標題:matlab工具生成可編程FIR濾波器的HDL代碼
文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責任編輯:haq
-
matlab
+關(guān)注
關(guān)注
181文章
2960瀏覽量
230032 -
濾波器
+關(guān)注
關(guān)注
160文章
7704瀏覽量
177489
原文標題:matlab工具生成可編程FIR濾波器的HDL代碼
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論