开始瞄准Zynq UltraScale+ MPSoC平台

该示例示出了如何使用硬件软件协同设计工作流程在上赛灵思Zynq®的UltraScale +片上多核各种频率闪烁的LED。

介绍

这个例子是一个一步一步的指导,帮助您使用HDL编码器™软件来生成定制的HDL IP核心,闪烁在赛灵思ZYNQ的UltraScale +片上多核ZCU102评估套件的LED,并展示了如何使用嵌入式Coder®生成C代码,所述ARM®处理器上运行,以控制LED的闪烁频率。

您可以使用MATLAB®和Simulink®的进万博1manbetx行设计,仿真,并验证您的应用程序中,执行假设与算法的方案,并优化参数。然后,您可以决定哪些系统元件将用可编程逻辑来进行准备的硬件和软件实现对赛灵思的UltraScale ZYNQ +片上多核的设计,以及系统的元素将在ARM的Cortex-A53运行。

使用本实施例中示出的引导工作流,则自动生成用于使用HDL编码器,生成用于使用嵌入式编码ARM处理器的C代码可编程逻辑HDL代码,并执行赛灵思ZYNQ的UltraScale +片上多核平台上使用的设计。

在这个工作流程,请执行下列步骤:

  1. 设置您赛灵思的UltraScale ZYNQ +片上多核ZCU102五金工具。

  2. 将您的设计划分为硬件和软件实现。

  3. 生成HDL使用工作流顾问的HDL IP核。

  4. 集成IP核到赛灵思Vivado项目和方案赛灵思的UltraScale ZYNQ +片上多核硬件。

  5. 生成的软件接口模型。

  6. 生成软件界面模型C代码,在ARM的Cortex-A53处理器,运行它。

  7. 调参数和使用外部模式的ZYNQ硬件捕获结果。

要求

  1. 赛灵思Vivado设计套件,与支持的版本在上市万博1manbetxHDL编码文档

  2. 赛灵思的UltraScale ZYNQ +片上多核ZCU102评估套件

  3. HDL编码器支持包赛万博1manbetx灵思ZYNQ平台

  4. Xilinx Zynq平台的嵌万博1manbetx入式编码器支持包

设置您的Xilinx Zynq UltraScale+ MPSoC硬件和工具

1.建立Xilinx Zynq UltraScale+ MPSoC ZCU102评价试剂盒,如下图所示。有关ZCU102硬件设置的更多信息,请参阅Xilinx文档

1.1。确保送回开关被设置为显示在下面的图中,这样你就可以从SD卡启动的Linux。

1.2将计算机连接到使用Micro-USB电缆ZCU102的USB UART接口。确保您的USB设备驱动程序,如用于Silicon Labs的USB CP210X至UART桥接,安装正确。如果不是,搜索驱动器在线安装它们。

1.3使用以太网电缆将Xilinx Zynq UltraScale+ MPSoC板连接到您的计算机上。

2.安装HDL编码器和赛灵思ZYNQ平台的嵌入式编码器支持包,如果你还没有准备好。万博1manbetx

2.1在MATLAB选项卡中环境部分中,单击工具>附加组件管理加载项。

2.2在加载项管理器,点击设置按钮,嵌入式编码支持包赛灵思ZYNQ平台启动硬件安装过程。万博1manbetx

3.确保您使用由嵌入式编码支持包赛灵思ZYNQ平台提供的SD卡图像。万博1manbetx

4.成立了由MATLAB命令窗口输入以下命令ZYNQ硬件连接:

H = ZYNQ

ZYNQ在通过COM端口和运行在该硬件功能的日志使用ifconfig命令以获得板的IP地址。该功能还测试了以太网连接。

5.可以使用使用程序如腻子™以下配置任选测试串行连接。波特率:115200;数据位:8;停止位:1;平价:没有;流量控制:没有。您应该能够观察到串行控制台时重新打开电源片上多核板上的Linux启动日志。您必须关闭使用此之前,串行连接ZYNQ函数了。

6.在MATLAB命令窗口中使用以下命令设置Xilinx Vivado合成工具路径。运行该命令时,请使用自己的Vivado安装路径。

hdlsetuptoolpath( '工具名称', '赛灵思Vivado', '刀具路径', 'C:\赛灵思\ Vivado \ 2017.4 \ BIN \ vivado.bat');

您的分区设计的硬件和软件实现

所述ZYNQ硬件软件协同设计工作流程的第一个步骤是决定哪些设计的零件对可编程逻辑,和哪些部件实现向ARM处理器上运行。

你想集团所有块可编程逻辑落实到一个原子子系统。这种原子子系统是您的硬件软件分区的边界。所有这些子系统内的块将可编程逻辑来实现,并且该子系统之外的所有块将ARM处理器上运行。

在该示例中,子系统led_counter是硬件子系统。它的模型,闪烁在FPGA板上的指示灯的计数器。两个输入端口,Blink_frequencyBlink_direction,是决定LED闪烁频率和方向控制端口。所有子系统的外块led_counter用于软件实现。

在Si万博1manbetxmulink中,你可以使用滑块增益要么手动开关块以调节硬件子系统的输入值。在嵌入式软件,这意味着ARM处理器控制所生成的IP核心通过写入AXI接口访问的寄存器。硬件子系统的输出端口,发光二极管将连接到LED的硬件。输出端口,回过头再读,可用于读取的数据返回到所述处理器。

open_system(“hdlcoder_led_blinking”);

生成使用HDL流程顾问的HDL IP核

在HDL workflow Advisor中使用IP核心生成工作流可以使您从Simulink模型自动生成可共享和可重用的IP核心模块。万博1manbetx生成的IP核被设计成连接到FPGA设备上的嵌入式处理器。HDL编码器从Simulink块生成HDL代码,也为连接IP核和嵌入式处理器万博1manbetx的AXI接口逻辑生成HDL代码。HDL编码器将所有生成的文件打包到一个IP核心文件夹中。然后,您可以在Xilinx Vivado环境中将生成的IP核与更大的FPGA嵌入式设计集成在一起。

1.启动IP核生成流程。

1.1。从。打开HDL工作流顾问hdlcoder_led_blinking / led_counter通过右键单击led_counter子系统,并选择HDL代码>HDL工作流顾问

1.2。在里面设置目标>设定目标设备和综合工具任务,为目标工作流程中,选择IP核生成

1.3。目标平台中,选择赛灵思的UltraScale ZYNQ +片上多核ZCU102评估套件。如果没有此选项,请选择获取更多打开支持包安装程序。万博1manbetx在支持包安装程万博1manbetx序,选择赛灵思ZYNQ平台,并按照支持包安装程序提供完成安装的说明。

1.4。点击运行这个任务运行设定目标设备和综合工具任务。

1.5在里面设置目标>设置目标参考设计任务,选择系统默认

1.6。点击运行这个任务运行设置目标参考设计任务。

2.配置目标接口。

在DUT的每个端口映射到IP核心目标接口之一。在这个例子中,输入端口Blink_frequencyBlink_direction映射到AXI4-Lite接口,因此HDL编码器为它们生成可访问的AXI接口寄存器。的发光二极管输出端口映射到外部接口,一般用途[0:7],它连接到在ZYNQ板上的LED的硬件。

2.1在里面设置目标>设置目标接口任务,选择AXI4-精简版对于Blink_frequency,Blink_direction回过头再读

2.2选择一般用途[0:7]对于发光二极管

2.3在里面设置目标>设置目标频率任务,选择目标频率为50兆赫

3.生成IP核。

要生成IP核,请右键单击生成RTL代码和IP核任务并选择运行到选定的任务

4.生成和查看IP核报告。

在您生成自定义IP核,IP核文件是在智芯科技项目文件夹内的文件夹中。HTML自定义IP核报告与自定义IP核一起产生。报告中描述的行为和生成的自定义IP核的内容。

集成IP核与赛灵思Vivado环境

在这部分工作流程,您插入生成的IP核为嵌入式系统参考设计,生成FPGA比特流,与串流下载到ZYNQ硬件。

参考设计是一个预定义的Xilinx Vivado项目。它包含Xilinx软件将您的设计部署到Zynq平台所需的所有元素,但您生成的自定义IP内核和嵌入式软件除外。

1.与赛灵思Vivado环境整合,选择创建项目下任务嵌入式系统集成,然后单击运行这个任务。与IP集成嵌入式设计赛灵思Vivado项目中产生,并在对话窗口提供给项目的链接。您可以选择打开该项目来看一看。

2.如果你有一个嵌入式编码许可,您可以在接下来的任务生成软件界面模式,生成软件接口模型。软件界面模型的细节在这个例子中的下一节,“生成界面模型软件”。

3.中构建FPGA位流构建FPGA比特流任务。确保运行构建过程外选项被选中,所以赛灵思综合工具将在从MATLAB单独进程中运行。等待合成工具处理到结束在外部指令窗口中运行。

4.生成比特流后,选择计划目标设备任务。选择下载对于编程方法下载FPGA比特流到上赛灵思的UltraScale ZYNQ +片上多核板上的SD卡,让您的设计将自动重新加载时,重新打开电源ZYNQ板。点击运行这个任务到ZYNQ硬件编程。

在你对FPGA硬件编程之后,LED开始在你的Xilinx Zynq UltraScale+ MPSoC ZCU102板上闪烁。

接下来,将生成的C代码到ARM处理器上运行,以控制LED闪烁频率和方向。

生成软件界面模型

在HDL Workflow Advisor中,在生成IP核之后,可以在步骤4.1中创建一个vivado项目,也可以在嵌入式系统集成>生成软件接口模型任务。

软件接口模型包含在软件中运行的设计部分。它包括了HDL子系统外部的所有块,并用AXI驱动块替换了HDL子系统。如果您有嵌入式编码器许可证,您可以从软件接口模型中自动生成嵌入式C代码,构建它,并在ARM处理器上的Linux上运行可执行程序。所生成的嵌入式软件包括由AXI驱动块生成的控制HDL IP核心的AXI驱动代码。

运行生成软件接口模型任务,并查看生成的新模型。任务对话框显示了到模型的链接。

在所生成的软件接口的模型中,“led_counter”子系统被替换为生成的ARM处理器和FPGA之间的接口逻辑的AXI驱动程序块。

在Zynq ZCU102硬件上运行软件接口模型

在工作流的这一部分中,您配置生成的软件接口模型,自动生成嵌入式C代码,并在Zynq硬件的ARM处理器上以外部模式运行您的模型。

当你原型设计和开发的算法,它,而它在硬件上运行,以监控和调整算法是非常有用的。在Simulink外部模式功能,能够支持此功能。万博1manbetx在这种模式下,你的算法是先部署到ZYNQ硬件的ARM处理器,然后通过以太网连接的主机上的Simulink模型联系起来。万博1manbetx

Simulink模型的主要作用是调节和监视万博1manbetx在硬件上运行的算法。因为ARM处理器连接到通过AXI接口的HDL IP核心,则可以使用外部模式来调整参数,并捕获数据从FPGA。

  1. 在生成的模型中,打开配置参数对话框。

  2. 选择求解并将“停止时间”设置为“inf”。

  3. 从型号菜单中选择模拟>模式>外部

  4. 点击运行按钮上的模型工具栏。嵌入式编码器构建模型,下载ARM可执行文件到Xilinx Zynq UltraScale+ MPSoC ZCU102硬件,执行它,并将模型连接到运行在Zynq硬件上的可执行文件。

  5. 双击滑块增益块。改变滑块增益值和观察LED阵列闪烁在ZYNQ硬件的频率变化。双击手动开关块来切换发光二极管的方向。

  6. 双击连接范围回过头再读输出端口,观察FPGA IP核的输出数据被捕获并发送回Simulink作用域。万博1manbetx

  7. 当您完成改变模型参数,请点击停止该模型按钮。

摘要

这个例子说明了软硬件协同设计工作流程如何帮助您的MATLAB和Simulink设计的自动部署到赛灵思ZYNQ UltraScale架构+片上多核。万博1manbetx您可以探索的最佳途径分区,通过工作流迭代部署设计。

下图显示了工作流程的高级别画面通过你在这个例子中去。要了解有关硬件和软件协同设计工作流程,请参阅HDL编码文档