该示例示出了如何使用HDL编码器™命令行界面,以生成从MATLAB®代码,包括浮点到定点转换和FPGA编程文件生成HDL代码。
HDL代码生成与命令行界面具有以下基本步骤:
创建一个fixpt
编码器的配置对象。(可选的)
创建HDL
编码器的配置对象。
设置配置对象参数。(可选的)
运行代码生成命令生成的代码。
的HDL编码器命令行界面可以使用两个编码器的配置对象与代码生成命令。可选fixpt
编码器配置对象配置浮点到您的MATLAB代码定点的转换。该HDL
编码器配置对象提供配置HDL代码生成和FPGA编程选项。
在这个例子中,我们将探讨您可以配置浮点到定点的转换和代码生成不同的方式。
示例代码实现了离散时间积分器和它的测试台。
执行以下代码,设计和测试台文件复制到一个临时文件夹:
关所有;design_name ='mlhdlc_dti';testbench_name ='mlhdlc_dti_tb';mlhdlc_demo_dir =完整文件(matlabroot,'工具箱','hdlcoder','hdlcoderdemos','matlabhdlcoderdemos');mlhdlc_temp_dir = [TEMPDIR'mlhdlc_dti']。CD(TEMPDIR);[〜,〜,〜] =命令rmdir(mlhdlc_temp_dir,'S');MKDIR(mlhdlc_temp_dir);CD(mlhdlc_temp_dir);的CopyFile(完整文件(mlhdlc_demo_dir,[design_name,'.M *']),mlhdlc_temp_dir);的CopyFile(完整文件(mlhdlc_demo_dir,[testbench_name,'.M *']),mlhdlc_temp_dir);
您可以生成HDL代码,并使用默认设置从浮点到定点转换的设计。
你只需要你的设计的名字,mlhdlc_dti
和测试台的名字,mlhdlc_dti_tb
:
关所有;%创建“fixpt”使用默认设置配置fixptcfg = coder.config('fixpt');fixptcfg.TestBenchName ='mlhdlc_dti_tb';%创建一个“高密度脂蛋白”使用默认设置配置hdlcfg = coder.config(“高密度脂蛋白”);%#确定
设定完成后fixpt
和HDL
配置对象,运行以下CODEGEN命令来执行浮点到定点转换,并生成HDL代码。
代码生成-float2fixedfixptcfg-confighdlcfgmlhdlc_dti
如果你的设计已经使用定点类型和功能,你可以跳过定点转换:
hdlcfg = coder.config(“高密度脂蛋白”);%创建一个“高密度脂蛋白”使用默认设置配置hdlcfg.TestBenchName ='mlhdlc_dti_tb';代码生成-confighdlcfgmlhdlc_dti
这个例子中的其余部分介绍如何配置代码生成使用HDL
和fixpt
对象。
要执行浮点到定点的转换,你需要一个fixpt
配置对象。
创建一个fixpt
配置对象,并指定测试平台的名称:
关所有;fixptcfg = coder.config('fixpt');fixptcfg.TestBenchName ='mlhdlc_dti_tb';
代码生成器可以根据您的选择,要么字长或部分长度的提出定点类型。这两个选项是互斥的。
底座上的字长所提出的类型24
:
fixptcfg.DefaultWordLength = 24;fixptcfg.ProposeFractionLengthsForDefaultWordLength = TRUE;
或者,也可以基于分数长度所提出的定点类型。下面的代码配置编码器提出基于的一小部分长度类型10
:
fixptcfg.DefaultFractionLength = 10;fixptcfg.ProposeWordLengthsForDefaultFractionLength = TRUE;
代码生成器增加在其上由所述安全余量百分比立足其定点型提案的模拟数据范围。例如,默认的安全边际4
,这增加了由数据范围用于定点型提案的模拟4%
。
设置SafetyMargin到10%
:
fixptcfg.SafetyMargin = 10;
代码发生器运行与设计的测试台之前和浮点到定点转换之后。您可以启用模拟数据记录来绘制新的定点数据类型的量化效应。
启用数据记录fixpt
配置对象:
fixptcfg.LogIOForComparisonPlotting = TRUE;
配置代码生成器来启动型提案报告,一旦定点类型已经提出:
fixptcfg.LaunchNumericTypesReport = TRUE;
要生成代码,你必须创建一个HDL
配置对象,并设置您的测试台的名字:
hdlcfg = coder.config(“高密度脂蛋白”);hdlcfg.TestBenchName ='mlhdlc_dti_tb';
您可以生成VHDL或Verilog代码。HDL编码器默认生成VHDL代码。要生成Verilog代码:
hdlcfg.TargetLanguage ='Verilog的';
通过您的MATLAB®测试平台的HDL测试平台:
hdlcfg.GenerateHDLTestBench = TRUE;
如果你想使用HDL仿真器来模拟你的生成HDL代码,还必须生成HDL测试台。
启用HDL仿真和使用ModelSim仿真:
hdlcfg.SimulateGeneratedCode = TRUE;hdlcfg.SimulationTool =的ModelSim“;%或 'ISIM'
如果你有一个综合工具设置,您可以生成FPGA编程文件。使合成,指定一个合成工具,并指定一个FPGA:
%启用合成。hdlcfg.SynthesizeGeneratedCode = TRUE;%配置综合工具。hdlcfg.SynthesisTool =“赛灵思ISE”;%或 '的Altera的Quartus II';hdlcfg.SynthesisToolChipFamily ='Virtex7';hdlcfg.SynthesisToolDeviceName ='xc7vh580t';hdlcfg.SynthesisToolPackageName ='hcg1155';hdlcfg.SynthesisToolSpeedValue ='-2G';
现在,你有你fixpt
和HDL
配置对象建立,运行代码生成命令来执行浮点到定点转换,生成HDL代码,并生成FPGA编程文件:
代码生成-float2fixedfixptcfg-confighdlcfgmlhdlc_dti