定义自定义板和参考设计的Zynq工作流
这个例子展示了如何在Zynq®工作流中定义和注册自定义板和参考设计。
简介
您可以注册Digilent®Zybo Z7-10 Zynq开发板和定制参考设计的HDL工作流顾问为Zynq工作流。
本例使用的是Zybo Z7-10 Zynq板,但你也可以为其他Zynq平台定义和注册自定义板或自定义参考设计。
需求
Xilinx Vivado设计套件,所支持的版本列于HDL语言支持和支持的第三方工具和硬件
Digilent®Zybo Z7-10 Zynq™开发板和附件套件
Xilinx Zynq平台的HDL编码器支持包
Xilinx Zynq平台的嵌入式编码器支持包
注意:本例使用Digilent®Zybo Z7-10 Zynq-7000 ARM/FPGA SoC训练板。此示例可用于参考创建Zybo Z7-20定制板和参考设计。
设置Zybo板
要熟悉Zybo板的功能,请参阅Zybo Z7-10板参考手册.
1.设置Zybo Z7-10板。
2.确保您已经正确安装USB COM端口设备驱动程序在您的计算机上。
3.配置JP5
启动模式跳线,以支持从连接到连接器的microSD卡加载Zynq Linux映像阁下
.
4.配置JP7
电源选择跳线使用USB作为电源。
5.将Zybo板上共享的UART/JTAG USB端口连接到您的计算机。
6.使用以太网线将Zybo Z7-10板连接到计算机。默认的Zybo IP地址为192.168.1.110
.
7.下载Zybo Zynq Linux形象,解压Zip档案文件,并将内容复制到microSD卡。将microSD卡插入连接器阁下
.
8.使用以下命令设置Xilinx Vivado工具路径:
hdlsetuptoolpath (“ToolName”,“Xilinx Vivado”,“路径”,“C: \ Xilinx \ Vivado \ 2020.2 \ bin \ vivado.bat ');
执行命令时使用您自己的Xilinx Vivado安装路径。
9.使用以下命令建立Zynq硬件连接:
H = zynq();
在Xilinx Vivado工具中注册Zybo板
默认情况下,Vivado 2020.2工具没有预安装Zybo板文件。从。下载这些板文件Xilinx Board Store GitHub.解压内容并导航到Vivado的安装文件夹。复制更新的Zybo板文件到Xilinx Vivado工具。
C: \ Xilinx \ Vivado \ 2020.2 \ \董事会\ board_files数据
在创建特定于板的Vivado项目时,Zybo板部分被添加到开发板列表中。
注意:如果没有上述链接,请从Digilent网站获取Zybo板文件。
使用Xilinx Vivado创建和导出自定义参考设计
参考设计捕获了SoC设计的完整结构,定义了不同的组件及其互连。HDL Coder SoC工作流生成一个与参考设计集成的IP核,然后用来编写SoC板。该图显示了参考设计、HDL IP核和SoC板之间的关系。
要使用Xilinx Vivado IP Integrator环境创建和导出一个简单的参考设计,请遵循以下步骤。有关IP Integrator工具的更多信息,请参阅Xilinx文档。
1.通过使用板部件创建一个空的Xilinx Vivado RTL项目Zybo Z7-10
作为默认板。
2.创建一个空块设计并添加ZYNQ7处理系统
IP块。运行block automation为Zybo Z7-10设置一个预先设置的板,其中包含ZYNQ7处理系统IP相关的MIO配置、时钟配置和DDR配置的参数。
MIO外围设备根据Zybo板定义进行标记,作为应用板预置的结果。
3.完成块设计。
注意,块设计不包含任何关于HDL IP核的信息。
4.将完成的块设计导出为Tcl脚本design_led.tcl
如下图所示:
导出的Tcl脚本(design_led.tcl
)构成自订参考设计。在一个Xilinx Vivado项目中,使用Tcl脚本在HDL Coder SoC工作流中重新创建块设计,并将生成的HDL IP核与块设计集成。
在HDL工作流程顾问中注册Zybo Z7-10板
在HDL工作流程顾问中注册Zybo Z7-10板。
1.创建一个带有该名称的板注册文件hdlcoder_board_customization.m
并将其添加到MATLAB路径中。
单板注册文件包含单板插件列表。板插件是一个MATLAB包文件夹,包含板定义文件和所有与板相关的参考设计插件。
此代码描述了包含单板插件的单板注册文件的内容ZyboZ710Registration
在HDL工作流Advisor中注册Zybo板。
函数R = hdlcoder_board_customization单板插件注册文件% 1。任何在MATLAB路径上具有此名称的注册文件都将被获取% 2。的位置返回一个单元格数组%板插件% 3。板插件必须是一个包文件夹从MATLAB路径访问,%,包含一个板定义文件
R = {...“ZyboZ710Registration.plugin_board”,...};结束
2.创建板定义文件。
单板定义文件包含SoC单板的相关信息。
此代码描述了Zybo板定义文件的内容plugin_board.m
驻留在板插件内ZyboZ710Registration
.
有关FPGA I/O引脚位置的信息(“FPGAPin”
)及标准(“IOSTANDARD”
)从Digilent网站上的Zybo主约束文件中获取。
房地产BoardName
定义Zybo Z7-10板的名称为ZYBO Z7-10
在HDL工作流顾问。
函数hB = plugin_board()%董事会定义
%构造板对象hB = hdlcode . board;
hB。BoardName =“ZYBO Z7-10”;
% FPGA设备信息hB。FPGAVendor =“Xilinx”;hB。FPGAFamily =“Zynq”;hB。FPGADevice =“xc7z010”;hB。FPGAPackage =“clg400”;hB。FPGASpeed =' 1 ';
%工具信息hB。SupportedTool = {“Xilinx Vivado”};
% FPGA JTAG链位置hB。JTAGChainPosition = 2;
%%添加接口标准“外部端口”接口hB.addExternalPortInterface (...“IOPadConstraint”, {' iostandard = lvcmos33 '});
自定义单板外部I/O接口hB.addExternalIOInterface (...“InterfaceID”,“led通用”,...“InterfaceType”,“出”,...“PortName”,“发光二极管”,...“PortWidth”4...“FPGAPin”, {“M14”,“M15”,“八国”,“D18”},...“IOPadConstraint”, {' iostandard = lvcmos33 '});
hB.addExternalIOInterface (...“InterfaceID”,“按钮”,...“InterfaceType”,“在”,...“PortName”,“按钮”,...“PortWidth”4...“FPGAPin”, {“K18”,P16的,“K19”,“造成”},...“IOPadConstraint”, {' iostandard = lvcmos33 '});
hB.addExternalIOInterface (...“InterfaceID”,“滑动开关”,...“InterfaceType”,“在”,...“PortName”,“SlideSwitches”,...“PortWidth”4...“FPGAPin”, {“G15”,“P15”,“确实”,“t16.1”},...“IOPadConstraint”, {' iostandard = lvcmos33 '});
在HDL工作流顾问中注册自定义参考设计
在HDL工作流Advisor中注册自定义参考设计。
1.创建一个名为hdlcoder_ref_design_customization.m
包含与SoC板相关的参考设计插件列表。
参考设计插件是一个MATLAB包文件夹,包含参考设计定义文件和所有与SoC设计项目相关的文件。参考设计注册文件还必须包含相关板的名称。
这段代码描述了包含参考设计插件的Zybo参考设计注册文件的内容ZyboZ710Registration。Vivado2020_2
与董事会相关ZYBO Z7-10
.
函数[rd, boardName] = hdlcoder_ref_design_customization . [rd, boardName] = hdlcoder_ref_design_customization .%参考设计插件注册文件% 1。板插件文件夹中带有此名称的注册文件%将被拾取% 2。任何在MATLAB路径上具有此名称的注册文件也将被拾取% 3。的位置返回一个单元格数组%参考设计插件% 4。注册文件还返回与其关联的板名% 5。参考设计插件必须是一个可访问的包文件夹MATLAB的路径,并包含一个参考设计定义文件
Rd = {“ZyboZ710Registration.Vivado2020_2.plugin_rd”,...};
boardName =“ZYBO Z7-10”;结束
2.创建参考设计定义文件。
参考设计定义文件定义了自定义参考设计和由HDL Coder SoC工作流生成的HDL IP核之间的接口。
此代码描述了Zybo Z7-10参考设计定义文件的内容plugin_rd.m
与董事会相关ZYBO Z7-10
它驻留在参考设计插件中ZyboZ710Registration。Vivado2020_2
.房地产ReferenceDesignName
将参考设计的名称定义为演示系统
在HDL工作流顾问。
函数hRD = plugin_rd()%参考设计定义
构造参考设计对象hRD = hdlcoder。ReferenceDesign (“SynthesisTool”,“Xilinx Vivado”);
hRD。ReferenceDesignName =“演示系统”;hRD。BoardName =“ZYBO Z7-10”;
%工具信息hRD。SupportedToolVersion = {“2020.2”};
%添加自定义Vivado设计hRD.addCustomVivadoDesign (...“CustomBlockDesignTcl”,“design_led.tcl”,...“VivadoBoardPart”,“digilentinc.com: zybo-z7-10: part0:1.0”);
%%添加接口%添加时钟接口hRD.addClockInterface (...“ClockConnection”,“core_clkwiz / clk_out1”,...“ResetConnection”,“sys_core_rstgen / peripheral_aresetn”);
%增加AXI4和AXI4- lite从接口hRD.addAXI4SlaveInterface (...“InterfaceConnection”,“axi_cpu_interconnect / M00_AXI”,...“BaseAddress”,“0 x40010000”,...“MasterAddressSpace”,“sys_cpu /数据”);
hRD。DeviceTreeName =“devicetree_axilite.dtb”;
参考设计插件还必须包含SoC设计项目文件。
Zybo参考设计插件文件夹ZyboZ710Registration。Vivado2020_2
必须包含Tcl脚本吗design_led.tcl
之前从Xilinx Vivado项目导出。Zybo参考设计定义文件plugin_rd.m
通过以下语句标识SoC设计项目文件:
hRD.addCustomVivadoDesign (“CustomBlockDesignTcl”,“design_led.tcl”);
plugin_rd.m
还定义了定制参考设计和HDL IP核之间的接口连接,由以下语句表示:
hRD.addClockInterface (...“ClockConnection”,“core_clkwiz / clk_out1”,...“ResetConnection”,“sys_core_rstgen / peripheral_aresetn”);hRD.addAXI4SlaveInterface (...“InterfaceConnection”,“axi_cpu_interconnect / M00_AXI”,...“BaseAddress”,“0 x40010000”,...“MasterAddressSpace”,“sys_cpu /数据”);
请注意的“BaseAddress”
中的有效地址“MasterAddressSpace”
.该地址不能与自定义参考设计中的其他基于地址的外设产生任何地址冲突。
执行Zybo板的SoC工作流程
使用自定义板和参考设计注册系统生成HDL IP核,闪烁的led在Zybo Z7-10板上。所需的文件位于ZYBO文件夹中。
1.解压Zybo文件夹。
解压缩(“ZYBO”)
2.将Zybo板注册文件添加到MATLAB路径中。
目录(genpath (“ZYBO”));
3.打开实现LED闪烁的Simulink模型。
open_system (“hdlcoder_led_blinking_4bit”);
4.启动HDL工作流顾问hdlcoder_led_blinking_4bit / led_counter
通过右键单击led_counter
子系统和选择HDL代码>HDL工作流顾问.或者,您可以单击启动HDL工作流顾问框。
在设定目标>设置目标装置和合成工具任务,选择IP核生成为目标工作流程.ZYBO Z7-10
出现在下拉列表中目标平台.选择ZYBO Z7-10
作为一个目标平台.
5.点击运行此任务要完成设置目标装置和合成工具的任务。
6.在设定目标>设定目标参考设计任务,自定义参考设计演示系统
现在出现在参考设计字段。选择演示系统
并点击运行此任务.
7.Task 1.3设置目标接口,选择连接,然后单击运行此任务.
8.如需生成IP核并查看IP核生成报告,请执行步骤3和步骤4使用HDL工作流顾问生成一个HDL IP核的部分如何瞄准Xilinx Zynq平台.
9.要在参考设计中集成IP核并创建vivado项目,请遵循的步骤1将IP核与Xilinx Vivado环境集成的部分如何瞄准Xilinx Zynq平台.
10.完成创建项目下任务嵌入式系统集成,检查由SoC工作流创建的Xilinx Vivado项目。该图显示了SoC项目的块设计,其中突出显示了HDL IP Core。将此块设计与以前用于导出定制参考设计的块设计进行比较,以便更深入地理解定制参考设计与HDL IP Core之间的关系。
11.按照步骤2、3和4将IP核与Xilinx Vivado环境集成的部分如何瞄准Xilinx Zynq平台实例生成软件接口模型,生成FPGA位流,并分别对目标设备进行编程。
12.加载比特流后,Zybo Z7-10板上的led现在开始闪烁。通过在Zynq ARM处理器上执行软件接口模型,可以控制LED闪烁的频率和方向。指生成一个软件接口模型的部分如何瞄准Xilinx Zynq平台示例从生成的软件界面模型控制LED闪烁频率和方向。