根据参考设计参数动态自定义参考设计
定义自己的自定义参考设计时,您可以通过使用Customizerefendedesignfcn
方法的方法hdlcoder.sefercedesign
班级。
为什么自定义参考设计
通过自定义参考设计参数,而不是维护具有不同接口选择,数据宽度或I/O插件的独立参考设计,而是创建一个具有不同接口选择或数据宽度作为参数的参考设计。然后您可以使用Customizerefendedesignfcn
引用对接口或数据宽度有不同选择的回调函数的方法。
例如,您可以参数化数据宽度,然后创建一个参考设计参数,而不是创建具有不同数据宽度的独立参考设计。当您运行IP核心生成
工作流程,您可以使用参数选择要使用的数据宽度。同样,您可以创建一个仅具有AXI4-Stream Master或AXI4-Stream从属或AXI4-Stream Master和Axi4-Stream从属从属界面的参考设计,而不是使用多个参考设计。
参考设计定制如何工作
定义回调函数:
在里面
Plugin_RD
文件,定义您要使用的参考设计参数addParameter
方法。创建一个MATLAB®定义回调函数的文件。您可以为回调功能使用任何任意名称。
将回调函数保存在与同一文件夹中
plugin_rd.m
文件。在参考设计定义中注册回调函数的功能句柄
Plugin_RD
通过使用Customizerefendedesignfcn
方法。
使用不同的参考设计自定义:
打开HDL工作流顾问。在里面设置目标设备和合成工具任务,选择
IP核心生成
作为目标工作流程然后选择您创建自己的自定义参考设计的目标板目标平台。在里面设定目标参考设计任务,当您选择要自定义目标板的自定义参考设计时,HDL Coder™将填充参考设计参数。根据参数选择,例如您指定的接口类型,评估了回调函数。运行此任务。
选择设置目标接口任务。根据您在上一步中选择的参数,目标接口选择在目标平台接口表中填充。
可自定义的参考设计参数
在回调功能中,您可以自定义这些参考设计参数。请勿在Plugin_RD
文件。
块设计TCL文件
%...%如果〜Isempty(Parmvalue)hrd.addcustomvivadodesign(...'CustomBlockDesigntCl',,,,'system_top.tcl',,,,...'Vivadoboardpart',,,,'xilinx.com:zc706:part0:1.0'};%...
参考设计接口和参考设计接口属性
例如,您可以参数化AXI4-Stream Master通道的数据宽度。在这种情况下,使用
Addaxi4StreamInterface
回调函数中的方法Plugin_RD
文件。%...%通过参数化数据宽度添加Axi4-stream界面datawidth = hrd.getParamValue(paramvalue)如果〜Isempty(datawidth)hrd.addaxi4streaminteraminefterface(“ Masterchannelenable”,,,,'真的',,,,...“ slavechannelenenable”,,,,'真的',,,,...“ MasterChannelConnection”,,,,'bypass_0.axi4_stream_slave',,,,...“ slavechannelconnection',,,,'Bypass_0.axi4_stream_master',,,,...“ Masterchanneldatawidth”,datawidth,...“ slavechanneldatawidth”,datawidth);结尾%...
IP存储库
在回调函数中,您必须在添加IP存储库时指定块设计TCL文件。
%...%%添加IP存储库hrd.addiprepository(...'iplistFunction',,,,'Mathworks.hdlcoder.vivado.hdlcoder_video_iplist',,,,“ NOTEXISTMESSAGE”,,,,“未找到IP存储库”);%%添加自定义设计文件hrd.addcustomvivadodesign(...'CustomBlockDesigntCl',,,,'system_top.tcl',,,,...'Vivadoboardpart',,,,'em.avnet.com:zed:part0:1.0');%...
笔记
您无法在回调功能中修改参考设计名称,板名和受支持的工具版本。万博1manbetx这些参数用于设置目标设备和合成工具在选择目标参考设计时评估回调函数之前的任务设定目标参考设计任务。
示例:仅创建主或仅从属或既有从属和主参考设计
您可以创建一个仅具有AXI4-Stream Master或AXI4-Stream从属或AXI4-stream Master和Axi4-Stream从属从属界面的参考设计,而不是使用多个参考设计。此示例显示了如何自定义您在定位自己的参考设计时要使用的Axi4-stream接口频道Xilinx Zynq ZC706评估套件
。
此代码显示参考设计的参考设计参数和接口选择my_reference_design
通过使用addParameter
方法中的方法Plugin_RD
文件。这Customizerefendedesignfcn
方法参考具有名称的回调函数CustomCallback_axistreamChannel
。
功能hrd = plugin_rd()%参考设计定义%版权2017-2019 The Mathworks,Inc。%构造参考设计对象hrd = hdlcoder.trefendedesign(“合成”,,,,'xilinx vivado');hrd.sratecrededesignname =“ Vivado自定义参考设计”;HRD.BoardName ='Xilinx Zynq ZC706评估套件';%工具信息hrd.万博1manbetxsupportedToolversion = {'2019.1'};%...%...调用AXI4主的参数%界面从打回来功能HRD.AddParameter...((“ parameterId”,,,,'stream_channel',,,,...'显示名称',,,,“流渠”,,,,...'默认值',,,,“主人和奴隶”,,,,...'parametertype',hdlcoder.parametertype.dropdown,...'选择',{“主人和奴隶”,,,,“只有主人”,,,,“只奴隶”});%参考回调功能。hrd.customizereferendedesignfcn = @my_reference_design.customcallback_axistreamChannel;%...
创建回调函数时,通过信息
对功能的论点。该参数包含参考设计和董事会信息结构体
格式。此代码显示回调函数CustomCallback_axistreamChannel
具有AXI4-Stream Master或从属通道或通过使用该通道指定的两个通道Addaxi4StreamInterface
方法。
%控制Axi Master或从“从频道”选择使用回调功能功能CustomCallback_axistreamChannel(InfoScruct)%%参考设计回调在任务集目标参考设计结束时运行%%信息:结构格式的信息%infoscruct.dercrededesignobject:当前参考设计注册对象%infoscruct.boardObject:当前板注册对象%infoscruct.parametersstruct:当前参考设计的自定义参数,结构格式%infoscruct.hdlmodeldututpath:通往HDL DUT子系统的块路径%infoscruct.dereccedesigntoolversion:参考设计工具版本1.2任务中的设置paramStruct = infoscruct.parametersstruct;如果〜Isempty(paramStruct)paramidcell = fieldNames(paramStruct);paramvalue ='';为了II = 1:长度(ParamidCell)paramid = paramidcell(ii);如果strcmp(paramid,“主人和奴隶”)paramvalue = paramStruct.paramid;休息;Elseifstrcmp(paramid,“只有主人”)paramvalue = paramStruct.paramid;休息;Elseifstrcmp(paramid,“只奴隶”)paramvalue = paramStruct.paramid;休息;结尾结尾结尾interface_type = str2double(paramvalue);如果〜isempty(interface_type)如果strcmp(interface_type,“主人和奴隶”)%添加自定义Vivado设计hrd.addcustomvivadodesign(...'CustomBlockDesigntCl',,,,'system_top.tcl',,,,...'Vivadoboardpart',,,,'xilinx.com:zc706:part0:1.0');HRD.ADDAXI4StreamInterface(...“ Masterchannelenable”,,,,'真的',,,,...“ slavechannelenenable”,,,,'真的',,,,...“ MasterChannelConnection”,,,,'axi_dma_s2mm/s_axis_s2mm',,,,...“ slavechannelconnection',,,,'axi_dma_mm2s/m_axis_mm2s',,,,...“ Masterchanneldatawidth”,32,...“ slavechanneldatawidth”,32);Elseifstrcmp(interface_type,“只有主人”)%添加自定义Vivado设计hrd.addcustomvivadodesign(...'CustomBlockDesigntCl',,,,'system_top.tcl',,,,...'Vivadoboardpart',,,,'xilinx.com:zc706:part0:1.0');HRD.ADDAXI4StreamInterface(...“ Masterchannelenable”, 真的,...“ MasterChannelConnection”,,,,'axi_dma_s2mm/s_axis_s2mm',,,,...“ Masterchanneldatawidth”,32);%...
将回调函数保存在与同一文件夹中Plugin_RD
文件。
当您运行IP核心生成
工作流程Xilinx Zynq ZC706评估套件
作为目标平台,您看到参数流通道显示在设定目标参考设计任务。
您可以指定要使用的参考设计类型,然后运行工作流以指定目标平台接口,然后生成HDL IP核心,然后将IP核心集成到参考设计中。
也可以看看
hdlcoder.board
|hdlcoder.sefercedesign