主要内容

动态创建参考设计仅主人或奴隶只有AXI4-Stream接口

这个例子演示了如何自定义动态参考设计通过使用一个回调函数的基础上,参考设计参数的选择。同时,这个例子展示了如何定制AXI4-Stream接口通道的数量在你的参考设计只有AXI4-Stream主界面,只有AXI4-Stream奴隶接口或接口。

先决条件

要运行这个示例,您必须安装以下软件和硬件和设置:

  • 高密度脂蛋白编码器为金宝appXilinx Zynq平台支持包

  • 嵌入式编码器为Xilinx Z金宝appynq平台支持包

  • Xilinx Vivado设计套件,支持版本中列出金宝appHDL语言支持,支持第三方金宝app工具和硬件

  • Xilinx zynq - 7000 SoC ZC706评估工具

  • 最新SD形象是支持包安装向导金宝app

介绍

而不是创建多个具有不同接口的参考设计选择,数据宽度或I / O插件现在你有一个选项创建一个参考设计的不同接口的选择或数据宽度作为参数。您可以使用CustomizeReferenceDesignFcn参考方法的回调函数的接口或数据宽度不同的选择你的参考设计。例如,您可以创建一个参考设计和选择参考设计参数选择只有AXI4-Stream大师或AXI4-Stream奴隶或AXI4-Stream大师和AXI4-Stream奴隶接口而不是创建三个独立的参考设计。

创建参考设计定义文件和回调函数

对于这个演示,您可以考虑Xilinx Zynq ZC706 AXI4-Stream参考设计由两个Xilinx AXI对于从处理器处理数据传输到FPGA使用AXI4-Stream主人和奴隶的接口,反之亦然。在这个例子中,您定制的数量AXI4-Stream接口通道与一个参考设计通过创建一个回调函数。不同的接口通道的回调代码所示使用不同的设备树。类似地,您可以修改您创建参考设计定义文件,选择不同的参考设计参数选择使用回调函数。

下面的图片显示了Stream_Channel参考设计参数和接口的选择AXI4-Stream接口与河道的选择使用指定的参考设计addParameter方法。的CustomizeReferenceDesignFcn方法名称callback_CustomizeReferenceDesign引用一个回调函数。

下面的代码显示了回调函数callback_CustomizeReferenceDesign有AXI4-Stream主人或奴隶通过指定渠道或渠道addAXI4StreamInterface方法。的DeviceTreeName所示的回调方法来指定设备树文件,这是不同的不同的河道。

函数callback_CustomizeReferenceDesign (infoStruct)%参考设计调运行的任务设定目标参考设计
% infoStruct:结构格式的信息% infoStruct。ReferenceDesignObject:当前设计注册对象的引用% infoStruct。BoardObject:当前板登记对象% infoStruct。ParameterStruct:自定义参数的参考设计、结构格式% infoStruct。高密度脂蛋白DUT HDLModelDutPath:块路径子系统% infoStruct。ReferenceDesignToolVersion:参考设计工具版本设定在1.2任务
hRD = infoStruct.ReferenceDesignObject;paramStruct = infoStruct.ParameterStruct;
%的参考设计参数值ParamValue = paramStruct.StreamChanel;
%设计接口的引用添加到表制定接口列表%参考设计参数值
如果比较字符串(ParamValue“主人和奴隶”)%添加自定义Vivado设计hRD.addCustomVivadoDesign (“CustomBlockDesignTcl”,“system_top.tcl”,“VivadoBoardPart”,“xilinx.com: zc706: part0:1.0”);hRD.addAXI4StreamInterface (“MasterChannelEnable”,真的,“SlaveChannelEnable”,真的,“MasterChannelConnection”,“axi_dma_s2mm / S_AXIS_S2MM”,“SlaveChannelConnection”,“axi_dma_mm2s / M_AXIS_MM2S”,“MasterChannelDataWidth”32岁的“SlaveChannelDataWidth”32岁的“HasDMAConnection”,真正的);hRD。DeviceTreeName =“devicetree_axistream_iio.dtb”;
elseif比较字符串(ParamValue“只有大师”)%块设计TCl大师只参考设计hRD.addCustomVivadoDesign (“CustomBlockDesignTcl”,“system_top_masteronly.tcl”,“VivadoBoardPart”,“xilinx.com: zc706: part0:1.0”);
hRD.addAXI4StreamInterface (…“MasterChannelEnable”,真的,…“SlaveChannelEnable”,假的,…“MasterChannelConnection”、“axi_dma_s2mm / S_AXIS_S2MM’,……“MasterChannelDataWidth”, 32岁的……“HasDMAConnection”,真正的);hRD。DeviceTreeName =“devicetree_axistream_MasterOnly_iio.dtb”;
elseif比较字符串(ParamValue“奴隶只有”)%块设计TCl奴隶只参考设计hRD.addCustomVivadoDesign (“CustomBlockDesignTcl”,“system_top_slaveonly.tcl”,“VivadoBoardPart”,“xilinx.com: zc706: part0:1.0”);
hRD %添加AXI4-Stream奴隶只有接口。addAXI4StreamInterface (…“MasterChannelEnable”,假的,…“SlaveChannelEnable”,真的,…“SlaveChannelConnection”、“axi_dma_mm2s / M_AXIS_MM2S’,……“SlaveChannelDataWidth”, 32岁的……“HasDMAConnection”,真正的);hRD。DeviceTreeName =“devicetree_axistream_SlaveOnly_iio.dtb”;结束结束

所以,创建回调函数如上所示和infoStruct参数传递给回调函数。结构参数包含参考设计定制信息格式。保存参考设计文件夹中创建回调函数如下所示或您可以保存并添加文件到MATLAB路径。

只产生高密度脂蛋白IP核心只有AXI4-Stream主/ AXI4-Stream奴隶接口

1。设置Xilinx Vivado合成工具路径使用以下命令在MATLAB命令窗口。使用自己的Vivado安装路径,当你运行该命令。

hdlsetuptoolpath (“ToolName”,“Xilinx Vivado”,“路径”,“C: \ Xilinx \ Vivado \ 2019.2 \ bin \ vivado.bat ');

2。MATLAB演示参考设计文件夹添加到路径使用以下命令:

目录(fullfile (matlabroot,“工具箱”,“hdlcoder”,“hdlcoderdemos”,“customboards”,“ZC706”));

3所示。只开放AXI4-Stream主模型使用以下命令:

open_system (“hdlcoder_AXI4StreamMaster”);

DUT是硬件子系统针对FPGA结构。在这个DUT,高密度脂蛋白计数器子系统作为主人。此计数器计数从1到50和连接yout_data输出信号映射到AXI4-Stream主界面。

您还可以使用AXI4奴隶只模型。使用以下命令打开模型:

open_system (“hdlcoder_AXI4StreamSlave”);

如上所示DUT有一个双端口RAM它充当奴隶使用AXI4-Stream奴隶和接收数据接口axis_data_in输入信号。

4所示。开始的高密度脂蛋白工作流顾问DUT子系统,hdlcoder_AXI4StreamMaster / DUT仅供AXI4-Stream大师演示。同样开放HDL工作流顾问DUT的子系统,hdlcoder_AXI4StreamSlave / DUT仅供AXI4-Stream奴隶演示。

目标接口设置已经保存ZC706在这些模型中,所以任务1.1到1.3的设置是自动加载。在任务1.1中,IP核心代选择目标工作流和Xilinx Zynq ZC706评估工具选择目标平台。在任务1.2中,AXI4-Stream接口与河道的选择选定为参考设计。选择河道参考设计参数选择主只AXI4-Stream主只演示和选择奴隶只作为参数选择AXI4-Stream奴隶只演示。

如上图所示,你可以自定义参考设计只AXI4-Stream主人或奴隶或AXI4-Stream主人和奴隶通过选择河道参考设计参数的选择。回调函数与相应的Tcl被评估的设置目标参考设计的任务。

5。如果参数选择选为主只,然后在任务界面选择1.3显示AXI4流主。这里,AXI4-Stream接口通信在主模式和发送数据AXI4_Stream从IPyout_data信号。类似地,如果奴隶只选择参数的选择,然后选择显示的接口AXI4流奴隶。在奴隶,AXI4-Stream接口通信模式,通过接待数据axis_data_in信号如下所示。

6。右键单击任务4.1,创建项目,并选择选择任务运行生成的IP核心插入AXI4-Stream接口与河道的选择参考设计。参考设计包含Xilinx AXI DMA IP处理FPGA织物和处理器之间的数据流,反之亦然基于参考设计接口只有AXI4-Stream大师或只有AXI4-Stream奴隶。

下面的图显示生成的vivado项目AXI4-Stream大师只接口的选择,你可以看到高密度脂蛋白之间的联系编码器生成DUT IP和内存映射的奴隶Xilinx AXI DMA IP。在这个参考设计,从FPGA IP DMA控制器读取数据。

类似地,以下图显示生成的vivado项目AXI4-Stream奴隶只接口的选择,FPGA IP接待流数据从DMA控制器。

7所示。在高密度脂蛋白工作流顾问,运行的其他任务生成软件界面模型,并建立和下载FPGA比特流。

生成的手臂执行使用AXI4-Stream驱动程序块AXI4-Stream主只参考设计

4.2软件界面模型生成的任务,生成软件界面模型,如以下图片所示。

AXI4-Stream IIO驱动程序块不能在软件界面模型自动生成一个标量端口yout_data映射到AXI4-Stream界面“AXI4-Stream大师”。之前你从软件界面模型生成代码,添加AXI4-Stream IIO读取驱动程序块的嵌入式编码器为Xilinx Z金宝appynq平台支持包图书馆在模型库浏览器。金宝app

更新后的软件界面模型AXI4-Stream大师只提供参考设计:hdlcoder_AXI4StreamMaster_sw.slx连续数据数0到50在这个模型中,使用和连接到AXI4流DMA驱动程序块。

单击监视和优化按钮硬件仿真软件将来发金宝app布的标签。嵌入式程序员构建模型,下载的手臂可执行Zc706硬件。现在的硬件和软件部分的设计都是Zynq硬件上运行。FPGA IP发送源数据通过DMA控制器和AXI4-Stream接口。ARM处理器接收到FPGA IP的数据,并将结果数据通过外部模式仿真软件。金宝app观察Zynq硬件的输出时间y_out范围。

生成的手臂执行使用AXI4-Stream司机块AXI4-Stream奴隶只参考设计

更新后的软件界面模型只有AXI4-Stream奴隶提供参考设计:hdlcoder_AXI4StreamSlave_sw.slx在这个模型中,一个计数器生成1到50增量数据块连接到AXI4-Stream写DMA驱动程序块。这意味着DMA控制器将流计算样本数据的高密度脂蛋白通过AXI4-Stream奴隶接口IP核。

单击监视和优化按钮将来发布的硬件选项卡上模型。嵌入式程序员构建模型,下载的手臂可执行Zc706硬件。现在的硬件和软件部分的设计都是Zynq硬件上运行。ARM处理器发送FPGA IP的源数据,通过DMA控制器和AXI4-Stream接口。观察从Zynq IP核心硬件的输出时间y_out范围。