主要内容

开始使用HDL工作流命令行界面

这个例子展示了如何使用HDL工作流顾问从命令行运行HDL工作流出口到脚本选择。

简介

这个例子是一个循序渐进的指南,帮助您介绍HDL工作流程命令行接口。

使用HDL工作流命令行接口,您可以运行相同的步骤序列,并控制在HDL工作流顾问中可用的相同的配置设置,用于以下工作流:

  1. 通用ASIC / FPGA

  2. FPGA交钥匙

  3. IP核心代

  4. Simulink实时FPGA I/O

打开模型

在本例中,我们将使用hdlcoder_sfir_fixed_stream模型,但HDL工作流命令行接口可以用于任何模型,工作在上面列出的工作流。

open_system (“hdlcoder_sfir_fixed_stream”

确保所需的第三方工具包含在路径中。例如,要将安装在本地的Vivado包含在默认的windows位置,使用以下命令:

>> hdlsetuptoolpath('ToolName', 'Xilinx Vivado', 'ToolPath','C:\Xilinx\Vivado\2020.2\bin\ Vivado .bat');

接下来,启动工作流顾问并选择适当的子系统作为DUT。

设置工作流

使用HDL工作流顾问设置您的项目所需的设置,如合成工具和设备。首先将工作流更改为“通用ASIC/FPGA”,这样我们就可以用合成结果对模型进行注释。

您还可以为合成工具指定高级目标。例如,尝试将工具设置为“速度优化”。

另外,更改Run Implementation的“跳过此任务”复选框,以便导出的脚本也运行此步骤

出口到脚本

输入所有初始设置后,将您的工作流导出到一个脚本中,该脚本可以直接从命令行运行,以实现更快的设计迭代。

将文件保存为您喜欢的任何名称。默认值是"hdlworkflow.m"。导出的脚本如下所示:

%--------------------------------------------------------------------------% HDL工作流程脚本%由MATLAB 9.0 (R2016b预发布)在2015年12月31日10:40:45生成%该脚本使用以下参数值生成:% Filename: '/mathworks/devel/sandbox/cberry/work/demo/hdlworkflow.m'%覆盖:true%评论:真% Headers: true% DUT: ' hdcoder_sfir_fixed_stream /DUT'要查看修改工作流后的更改,运行以下命令:% > > hWC.export (DUT, hdlcoder_sfir_fixed_stream / DUT);%--------------------------------------------------------------------------版权所有The MathWorks, Inc.%%加载模型load_system (“hdlcoder_sfir_fixed_stream”);恢复模型为默认的HDL参数% hdlrestoreparams (hdlcoder_sfir_fixed_stream / DUT的);模型HDL参数设置模型'hdlcoder_sfir_fixed_stream' HDL参数hdlset_param (“hdlcoder_sfir_fixed_stream”“HDLSubsystem”“hdlcoder_sfir_fixed_stream / DUT”);hdlset_param (“hdlcoder_sfir_fixed_stream”“ReferenceDesign”“带有AXI4-Stream接口的默认系统”);hdlset_param (“hdlcoder_sfir_fixed_stream”“ResetType”“同步”);hdlset_param (“hdlcoder_sfir_fixed_stream”“SynthesisTool”“Xilinx Vivado”);hdlset_param (“hdlcoder_sfir_fixed_stream”“SynthesisToolChipFamily”“Zynq”);hdlset_param (“hdlcoder_sfir_fixed_stream”“SynthesisToolDeviceName”“xc7z020”);hdlset_param (“hdlcoder_sfir_fixed_stream”“SynthesisToolPackageName”“clg484”);hdlset_param (“hdlcoder_sfir_fixed_stream”“SynthesisToolSpeedValue”' 1 ');hdlset_param (“hdlcoder_sfir_fixed_stream”“TargetDirectory”“hdl_prj / hdlsrc”);%%工作流配置设置使用默认设置构造工作流配置对象中国= hdlcoder。WorkflowConfig (“SynthesisTool”“Xilinx Vivado”“TargetWorkflow”“通用ASIC / FPGA”);指定顶级项目目录中国。ProjectFolder =“hdl_prj”设置工作流任务运行中国。RunTaskGenerateRTLCodeAndTestbench = true;中国。RunTaskCreateProject = true;中国。RunTaskRunSynthesis = true;中国。RunTaskRunImplementation = false;中国。RunTaskAnnotateModelWithSynthesisResult = true;设置与“RunTaskGenerateRTLCodeAndTestbench”任务相关的属性中国。GenerateRTLCode = true;中国。GenerateRTLTestbench = false;中国。GenerateCosimulationModel = false;中国。CosimulationModelForUseWith =“导师图形ModelSim”;中国。GenerateValidationModel = false;设置与'RunTaskCreateProject'任务相关的属性中国。目标= hdlcoder.Objective.None;中国。AdditionalProjectCreationTclFiles =设置与“RunTaskRunSynthesis”任务相关的属性中国。SkipPreRouteTimingAnalysis = false;设置与'RunTaskRunImplementation'任务相关的属性中国。IgnorePlaceAndRouteErrors = false;设置“runtaskannotatemodelwithsynisresult”任务的相关属性中国。CriticalPathSource =“pre-route”;中国。CriticalPathNumber = 1;中国。ShowAllPaths = false;中国。ShowDelayData = true;中国。ShowUniquePaths = false;中国。ShowEndsOnly = false;验证工作流配置对象hWC.validate;%%运行工作流hdlcoder.runWorkflow (“hdlcoder_sfir_fixed_stream / DUT”、中国);

从脚本运行工作流

直接运行脚本将执行您的工作流,并输出一组紧凑的运行时消息到cmd窗口。如果您想查看详细的合成工具输出信息,请单击所需任务头下的相关“合成工具日志:”超链接,在MATLAB编辑器中打开该文件。

>> hdlworkflow ###工作流开始。### ++++++++++++++任务生成RTL代码而且Testbench++++++++++++++# # #生成高密度脂蛋白“hdlcoder_sfir_fixed_stream / DUT”。# # #开始高密度脂蛋白检查。# # #开始硬件描述语言(VHDL)代码一代“hdlcoder_sfir_fixed_stream”。# # #工作hdlcoder_sfir_fixed_stream / DUT / symmetric_fir作为hdl_prj \ hdlsrc \ hdlcoder_sfir_fixed_stream \ symmetric_fir.vhd。# # #工作hdlcoder_sfir_fixed_stream / DUT作为hdl_prj \ hdlsrc \ hdlcoder_sfir_fixed_stream \ DUT.vhd。# # #创建高密度脂蛋白代码一代检查报告DUT_report.html# # #高密度脂蛋白检查“hdlcoder_sfir_fixed_stream”完整的0错误、0警告和0消息。# # #高密度脂蛋白代码一代完成了。### ++++++++++++++任务创建项目++++++++++++++# # #生成赛灵思公司Vivado2014.4项目:hdl_prj \ vivado_prj \ DUT_vivado.xpr# # #合成工具日志:hdl_prj \ hdlsrc \ hdlcoder_sfir_fixed_stream \ workflow_task_CreateProject.log# # #任务“创建项目”成功的。### ++++++++++++++任务运行合成++++++++++++++# # #合成工具日志:hdl_prj \ hdlsrc \ hdlcoder_sfir_fixed_stream \ workflow_task_RunSynthesis.log# # #任务“快跑合成”成功的。### ++++++++++++++任务运行实现++++++++++++++# # #合成工具日志:hdl_prj \ hdlsrc \ hdlcoder_sfir_fixed_stream \ workflow_task_RunImplementation.log# # #任务“快跑实现”成功的。### ++++++++++++++任务注释模型合成结果++++++++++++++# # #解析时机文件...# # #匹配“hdlcoder_sfir_fixed_stream / DUT symmetric_fir / m3_out1 '# # #匹配目的地“hdlcoder_sfir_fixed_stream / DUT / y_out_data”# # #高亮显示CP1“hdlcoder_sfir_fixed_stream / DUT symmetric_fir / m3_out1 '“hdlcoder_sfir_fixed_stream / DUT / y_out_data”...# # #点击在这里重置突出显示。# # #的工作流程完成了。

运行工作流交互

HDL工作流命令行界面也可以交互使用。例如,在运行整个脚本或仅仅是“工作流配置设置”部分之后,WorkflowConfig对象hWC将被填充到工作区中:

> >中国=
GenericTurnkeyConfig属性:
合成工具:“Xilinx Vivado”TargetWorkflow:“通用ASIC/FPGA”ProjectFolder:“hdl_prj”
RunTaskGenerateRTLCodeAndTestbench: true RunTaskCreateProject: true RunTaskRunSynthesis: true RunTaskRunImplementation: true RunTaskAnnotateModelWithSynthesisResult: true
generatertlcodeandtestbench GenerateRTLCode: true GenerateRTLTestbench: false GenerateCosimulationModel: false CosimulationModelForUseWith: 'Mentor Graphics ModelSim' GenerateValidationModel: false
TaskCreateProject目标:hdlcode .Objective. speed optimized AdditionalProjectCreationTclFiles: "
TaskRunSynthesis SkipPreRouteTimingAnalysis:假
TaskRunImplementation IgnorePlaceAndRouteErrors:假
taskannotatemodelwithsynisresult CriticalPathSource: 'pre-route' CriticalPathNumber: 1 ShowAllPaths: false ShowDelayData: true showuniqueppaths: false ShowEndsOnly: false

您可以编辑此配置对象,然后使用修改后的设置运行工作流。例如,由于任务“Run Implementation”在前面的运行中被启用,我们可以将关键路径源更改为“post-route”,并重新运行annotation模型任务:

> > hWC.clearAllTasks;> >中国。RunTaskAnnotateModelWithSynthesisResult = true;> >中国。CriticalPathSource =“可支应”

然后使用hdlcode . runworkflow命令直接运行修改后的工作流配置:

> > hdlcoder.runWorkflow (“hdlcoder_led_blinking / led_counter”,中国)

导入脚本到HDL工作流顾问

您对导出脚本所做的任何更改也可以随时导入到HDL Workflow Advisor中。要做到这一点,确保加载的模型与脚本中使用的模型相同,并从File菜单中选择“Import from script”。

导入之后,所有的脚本设置都将填充到HDL Workflow Advisor中。

保存HDL工作流命令行界面编程脚本以备以后使用

在某些情况下,您可以避免重新运行HDL Workflow Advisor中的所有步骤,只是为了在Advisor中执行特定的任务。例如,在运行IP核生成工作流时,在生成FPGA位流后构建FPGA比特流任务时,Advisor提供一个链接,该链接生成要运行的脚本项目目标设备的任务。

点击链接hdlworkflow_ProgramTargetDevice.m构建FPGA比特流任务生成一个HDL工作流命令行界面脚本,该脚本将只执行项目目标设备任务从现有的hdl_prj目录。因此,您可以避免仅仅为了重新编程目标设备而运行工作流中的所有步骤。

生成的脚本是一个标准的HDL Workflow CLI脚本。当在命令行界面运行HDL工作流时项目目标设备任务可以独立于前面的任务运行,只要已经生成了FPGA位流。

作为一个相关的注意事项,如果您正在使用下载的编程方法项目目标设备任务时,HDL工作流顾问将生成的位流文件复制到Zynq或Intel SoC板上的SD卡上,因此您不需要重新运行项目目标设备任务下载比特流。在Linux启动过程中,FPGA位流将自动从SD卡重新加载。

总结

HDL工作流命令行界面为图形化的HDL工作流顾问提供了一个易于脚本化的替代方案。工作流可以最初使用HDL工作流顾问设置,然后导出到脚本进行迭代或自动使用。

Baidu
map