程序目标FPGA板或SoC设备
若要配置或编程所连接的目标SoC设备或FPGA板,请使用IP核生成
在HDL工作流顾问中的工作流。
如何对目标设备进行编程
使用工作流顾问UI
打开HDL工作流顾问。右键单击包含要部署到目标FPGA上的算法的DUT子系统,并选择HDL代码>HDL工作流顾问.
在设置目标装置和合成工具任务,指定
IP核生成
随着目标工作流程,并指定目标平台除了通用Xilinx平台
或通用Altera平台
.右键单击程序目标设备任务和选择运行到所选任务.
在程序目标设备任务,指定编程方法,并运行此任务。
要了解关于HDL工作流顾问的更多信息,请参见开始使用HDL工作流顾问.
使用工作流顾问脚本
中指定目标工作流和目标平台之后,在命令行上对目标设备进行编程设置目标装置和合成工具任务,导出HDL工作流顾问设置到一个脚本。在HDL Workflow Advisor窗口中,选择文件>导出到脚本.该脚本创建和配置一个hdlcoder。WorkflowConfig
对象表示的中国
.
方法指定如何对目标硬件进行编程,然后再运行脚本ProgrammingMethod
的属性WorkflowConfig
对象。此代码片段显示了从HDL Workflow Advisor导出的示例脚本,当您使用默认值时下载
编程方法.运行程序目标设备任务,通过设置RunTaskProgramTargetDevice
属性WorkflowConfig
对象真正的
.
%该脚本使用以下参数值生成:%……设置与“RunTaskProgramTargetDevice”任务相关的属性中国。RunTaskProgramTargetDevice = true;中国。ProgrammingMethod = hdlcode .ProgrammingMethod. download;验证工作流配置对象hWC.validate;%%运行工作流hdlcoder.runWorkflow (“hdlcoder_led_blinking / led_counter”、中国);
运行构建FPGA位流任务时,Workflow Advisor为您提供了一个链接,用于生成为目标设备编程的Workflow脚本,而无需在Workflow Advisor中重新运行前面的任务。
点击链接在MATLAB中打开脚本®编辑器。此代码片段显示了由HDL Workflow Advisor生成的示例脚本。如果关闭HDL工作流顾问,您可以运行脚本来编程目标硬件,而不运行其他工作流任务。
%加载模型%……设置工作流任务运行中国。RunTaskGenerateRTLCodeAndIPCore = false;中国。RunTaskCreateProject = false;中国。RunTaskGenerateSoftwareInterface = false;中国。RunTaskBuildFPGABitstream = false;中国。RunTaskProgramTargetDevice = true;设置与“RunTaskProgramTargetDevice”任务相关的属性中国。ProgrammingMethod = hdlcode .ProgrammingMethod. download;验证工作流配置对象hWC.validate;
编程方法
下载
如果你使用的是Zynq的参考设计®和英特尔®SoC硬件平台,代码生成器采用下载
作为默认值编程方法.
当你使用下载
随着编程方法然后运行程序目标设备任务时,HDL Coder™将生成的FPGA位流、Linux设备树和系统初始化脚本复制到目标板上的SD卡上,然后将位流持久地保存在SD卡上。要使用这种编程方法,您不需要嵌入式Coder®许可证。属性可以创建SSH对象IP地址,SSH的用户名,SSH密码.HDL Coder使用SSH对象将比特流复制到SD卡并对板进行重编程。
建议您使用下载
方法,因为该方法在引导Linux系统之前对FPGA位流进行编程并加载相应的Linux设备树。因此,下载
方法更加健壮,不会导致内核panic或启动时内核挂起。在Linux重启过程中,FPGA位流从SD卡自动重新编程。指定下载
随着编程方法当您使用工作流顾问脚本运行工作流时,在运行脚本之前,请确保ProgrammingMethod
WorkflowConfig对象的属性,中国
,设置为下载
.
中国。ProgrammingMethod = hdlcode .ProgrammingMethod. download;
JTAG
当你指定JTAG
随着编程方法然后运行程序目标设备任务,HDL Coder使用JTAG电缆来编程目标SoC设备。使用这种方法来编程Intel和Xilinx®SoC设备和独立的FPGA板。
对于SoC设备的编程,建议使用下载
方法。的JTAG
模式不涉及ARM处理器,直接对板载FPGA进行编程。这种模式不会更新Linux设备树,当比特流与设备树不匹配时,会导致Linux系统崩溃或导致内核崩溃。要避免这种情况,请使用下载
方法对SoC器件进行编程。
独立的Intel和Xilinx FPGA板没有嵌入式ARM处理器。JTAG
是用于对FPGA板进行编程的默认方法。
指定JTAG
随着编程方法当您使用工作流顾问脚本运行工作流时,在运行脚本之前,请更改ProgrammingMethod
WorkflowConfig对象的属性,中国
,JTAG
.
中国。ProgrammingMethod = hdlcode .ProgrammingMethod. jtag;
自定义
要对目标设备进行编程,可以在创建自己的自定义参考设计时指定自定义编程方法。使用CallbackCustomProgrammingMethod
的hdlcoder。ReferenceDesign
类来为在运行时执行的回调函数注册函数句柄程序目标设备的任务。要定义回调函数,请创建一个定义MATLAB函数的文件,并将该文件添加到MATLAB路径中。
此示例代码片段显示了使用自定义编程方法的参考设计定义文件。要了解更多,请参见CallbackCustomProgrammingMethod
.
涂油礼hRD=plugin_rd ()%参考设计定义%……构造参考设计对象hRD = hdlcoder。ReferenceDesign(“SynthesisTool”,“Xilinx Vivado”);hRD。ReferenceDesignName =“参数回调自定义”;hRD。BoardName =“ZedBoard”;%工具信息hRD。SupportedToolVersion = {“2020.2”};%……hRD。CallbackCustomProgrammingMethod = @my_reference_design.callback_CustomProgrammingMethod;