赛灵思 Xilinx Versal 自适应计算加速平台嵌入式设计教程
Posted 游隼的技术博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了赛灵思 Xilinx Versal 自适应计算加速平台嵌入式设计教程相关的知识,希望对你有一定的参考价值。
https://zhuanlan.zhihu.com/p/390681171
Versal 嵌入式设计教程
本文档旨在提供有关将赛灵思 Vivado® Design Suite 流程应用于 Versal™ VMK180/VCK190 评估板的指示信息。所使用的工具为 Vivado Design Suite 和 Vitis™ 统一软件平台 2020.2 版。要安装 Vitis 统一软件平台,请参阅《Vitis 统一软件平台文档:嵌入式软件开发》(UG1400)。
注意:在本教程中,有关在硬件上启动 Linux 的指示信息仅适用于针对 2020.2 版发布的 PetaLinux 工具,这些工具将安装在 Linux 主机上用于实践本文档的 Linux 部分内容。
重要!VCK190/VMK180 评估板包含 Silicon Labs CP210x VCP USB-UART Bridge。请确保这些驱动均已完成安装。请参阅《Silicon Labs CP210x USB-to-UART 安装指南》(UG1033),以获取更多信息。
本文档中的示例是使用 Windows 10 64 位操作系统上运行的赛灵思工具、Vitis 软件平台和 Linux 64 位操作系统上的 PetaLinux 所创建的。使用其它 Windows 上运行的其它版本的工具进行安装所产生的结果可能与此处结果不尽相同。这些示例主要围绕嵌入式设计的以下方面来展开。
- Versal ACAP CIPS 和 NoC (DDR) IP 核配置:描述如何使用 Versal™ ACAP Control, Interfaces, and Processing System (CIPS) IP 核与 NoC 来创建设计,以及如何在 Arm® Cortex™-A72 和 Cortex™-R5F 处理器上运行简单的“Hello World”应用。本章提供了使用简单设计作为示例的软硬件工具简介。
- 使用 Vitis 软件平台进行调试:介绍赛灵思 Vitis 软件平台的调试功能。本章使用前述设计并在裸机(无操作系统)上运行软件以演示 Vitis IDE 的调试功能。本章还列出了 Versal ACAP 的调试配置。
- 启动和配置:显示集成组件以便为 Versal ACAP 配置并创建启动镜像。本章旨在帮助您了解如何集成和加载引导加载程序。
- 使用标量引擎和自适应引擎的系统设计示例:描述如何在 Versal ACAP 上使用可用工具和受支持的软件块来构建系统。本章演示了如何利用 Vivado 工具并使用 PL AXI GPIO 来创建嵌入式设计。其中还演示了如何在 Versal 器件上为基于 Arm Cortex-A72 核的 APU 配置并构建 Linux 操作系统。
本设计教程需使用多个赛灵思提供的文件。这些文件包含在 ZIP 文件内,此文件可从赛灵思网站下载。(请参阅入门指南)。本教程假定该 ZIP 文件的内容已解压至 C:\\edt
。
按设计进程浏览内容
赛灵思文档按一组标准设计进程进行组织,以便帮助您查找当前开发任务相关的内容。本文档涵盖了以下设计进程:
- 系统和解决方案规划:确认系统级别的组件、性能、I/O 和数据传输要求。包括解决方案到 PS、PL 和 AI 引擎的应用映射。
- 嵌入式软件开发:从硬件平台创建软件平台,并使用嵌入式 CPU 开发应用代码。还涵盖 XRT 和 Graph API。
- 硬件、IP 和平台开发:为硬件平台创建 PL IP 块、创建 PL 内核、子系统功能仿真以及评估 Vivado® 时序收敛、资源使用情况和功耗收敛。还涉及为系统集成开发硬件平台。本文档中适用于此设计进程的主题包括:
- 系统集成与验证:集成和验证系统功能性能,包括时序收敛、资源使用情况和功耗收敛。本文档中适用于此设计进程的主题包括:
入门指南
请确保您已正确安装所需工具,并且您的环境符合要求。
硬件要求
本教程对应目标为 Versal ACAP VCK190 和 VMK 180 评估板。本教程中的示例已使用 VCK190 ES1 评估板经过测试。要使用本教程,您需要具备以下硬件项,这些硬件项均随附于该评估板中:
- VCK 190/VMK 180 ES1 评估板
- 交流电源适配器 (12 VDC)
- USB Type-A 转 Micro USB 转接线(用于 UART 通信)
- Micro USB 线用于通过 USB-Micro JTAG 连接进行编程和调试
- SD-MMC 闪存卡,用于启动 Linux
- QSPI 子卡 X_EBM-01 REV_A01
- OSPI 子卡 X-EBM-03 REV_A02
安装要求
Vitis 集成设计环境和 Vivado Design Suite
请确保您已安装 Vitis 2020.2 软件开发平台。Vitis IDE 是赛灵思统一工具,以封装形式随附所有硬件和软件。安装 Vitis IDE 时,将自动获得 Vivado Design Suite 和 Vitis IDE。您无需在安装程序中执行任何其它选择。
注意:请访问 https://china.xilinx.com/support/download.html 以确认您的工具为最新版本。
如需获取有关安装 Vivado Design Suite 的更多信息,请参阅《Vitis 统一软件平台文档:嵌入式软件开发》(UG1400)。
PetaLinux 工具
安装 PetaLinux 工具,以便在本工具的 Linux 部分中运行这些工具。PetaLinux 工具在 Linux 主机系统下运行,此系统运行下列工具的任一版本:
- Red Hat Enterprise Workstation/Server 7.4、7.5、7.6、7.7、7.8(64 位)
- CentOS Workstation/Server 7.4、7.5、7.6、7.7、7.8(64 位)
- Ubuntu Linux Workstation/Server 16.04.5、16.04.6、18.04.1、18.04.02、18.04.3、18.04.4(64 位)
您可使用专用 Linux 主机,或者也可以使用在 Windows 开发平台上运行以上任一 Linux 操作系统的虚拟机。
在您所选系统上安装 PetaLinux 工具时,必须执行下列操作:
- 从赛灵思网站下载 PetaLinux 2020.2 软件。
- 下载相应的 BSP,欲知详情,请参阅工程示例:使用 PetaLinux 创建 Linux 镜像。
- 将常用系统封装和库添加到工作站或虚拟机上。如需了解更多信息,请参阅《PetaLinux 工具文档:参考指南》(UG1144) 中的“安装要求”以及 PetaLinux 版本说明:2020.2。
要求
- 8 GB RAM(针对赛灵思工具推荐的最低要求)
- 2 GHz CPU 时钟或同等频率(至少 8 核)。
- 100 GB 可用 HDD 空间
解压 PetaLinux 封装
PetaLinux 工具采用直通式安装。PetaLinux 工具将被直接安装到当前工作目录中,无附加选项。或者,您也可以指定安装路径。
例如,要将 PetaLinux 工具安装至 /opt/pkg/petalinux/<petalinux-version>
下,请执行以下操作:
$ mkdir -p /opt/pkg/petalinux/<petalinux-version> $ ./petalinux-v<petalinux-version>-final-installer.run --dir /opt/pkg/petalinux/<petalinux-version>
注意:切勿将安装目录权限更改为 CHMOD 775,否则将产生 BitBake 错误。这样即可将 PetaLinux 工具安装到 /opt/pkg/petalinux/<petalinux-version>
目录中。
如需了解更多信息,请参阅《PetaLinux 工具文档:参考指南》(UG1144)。
软件许可
赛灵思软件使用 FLEXnet 许可证。首次运行软件时,它会执行许可证验证流程。如果许可证验证并未找到有效许可证,那么“License”Wizard 会指导您逐步完成相应流程以获取许可证并确保该许可证可用于所安装的工具。如果您不需要完整版本的软件,则可使用评估许可证。如需了解安装指令和安装信息,请参阅《Vivado Design Suite 用户指南:版本说明、安装和许可》(UG973)。
教程设计文件
- 从赛灵思网站下载参考设计文件。
- 将 ZIP 文件内容解压至您具有可写权限的任何位置。
要查看 ZIP 文件的内容,请下载 ZIP 文件,并将其内容解压至 C:\\edt
。设计文件中包含 XSA 文件、源代码和预构建的镜像,适用于所有部分。
© 2020 年赛灵思公司版权所有。
Versal ACAP CIPS 和 NoC (DDR) IP 核配置
Versal ACAP CIPS IP 核允许您配置处理器系统和 PMC 块,包括启动模式、外设、时钟、接口和中断等。
本章描述了如何执行以下任务:
- 创建 Vivado® 工程以供 Versal™ ACAP 通过配置 CIPS IP 核来选择相应的启动器件和外设。
- 在 Arm® Cortex™-A72 的片上存储器 (OCM) 上创建并运行 Hello World 软件应用。
- 在 Arm Cortex- R5F 的紧密耦合内存 (TCM) 上创建并运行 Hello World 软件应用。
NoC IP 核可帮助配置 DDR 内存和跨 DDR 内存的数据路径,以及系统中的处理引擎(标量引擎 (Scalar Engine)、自适应引擎 (Adaptable Engine) 和 AI 引擎 (AI Engine))。
- 在 Arm Cortex-A72 上使用 DDR 作为内存来创建并运行 Hello World 软件应用。
- 在 Arm Cortex-R5F 上使用 DDR 作为内存来创建并运行 Hello World 软件应用。
要求
要创建并运行本章中所述 Hello World 应用,您需要安装 Vitis™ 统一软件平台。如需了解安装过程,请参阅《Vitis 统一软件平台文档:嵌入式软件开发》(UG1400)。
CIPS IP 核配置
创建 Versal ACAP 系统设计中包括配置 CIPS IP 核以选择相应的启动器件和外设。首先,如果 CIPS IP 核外设和可用的多路复用 I/O (MIO) 连接满足要求,则无需任何 PL 组件。本章将指导您逐步完成创建基于 CIPS IP 核的简单设计的过程。
使用 Versal ACAP 创建全新的嵌入式工程
对于本示例,请启动 Vivado® Design Suite 并创建顶层为嵌入式处理器系统的工程。
启动设计
- 启动 Vivado® Design Suite。
- 在 Tcl 控制台 (Tcl Console) 中,输入以下命令以启用 ES1 评估板:
enable_beta_device
按 Enter 键。 - 在 Vivado“Quick Start”页面中,单击“创建工程 (Create Project)”以打开“新建工程 (New Project)”Wizard。
- 使用下表中的信息在每个 Wizard 屏幕中选择相应选项。
表 1:系统属性设置
- 单击“完成 (Finish)”。这样即可关闭“New Project”Wizard,并在 Vivado 设计工具中打开您刚创建的工程。
注意:选择开发板时,请勾选版本号。对于 ES1 硅片,开发板版本为 1.0,对于量产硅片,开发板版本为 2.0。请根据开发板上的硅片选择相应的版本。
创建嵌入式处理器工程
要创建嵌入式处理器工程,请执行以下操作:
- 在 Flow Navigator 中的 IP integrator 下,单击“创建块设计 (Create Block Design)”。
这样即可打开“Create Block Design”Wizard。
- 在“Create Block Design”Wizard 中使用以下信息选择相应的选项。
表 2:系统属性设置
- 单击“确定 (OK)”。
这样会打开“框图 (Diagram)”窗口视图,并显示消息称此设计为空。首先,添加来自 IP 目录的 IP。 - 单击“添加 IP (Add IP)”按钮
。
- 在搜索框中,输入 CIPS 以查找 Control, Interfaces and Processing System。
- 双击“Control, Interface & Processing System IP”以将其添加到块设计中。CIPS IP 核会显示在“Diagram”视图中,如下图所示:
在 Vivado Design Suite 中管理 Versal ACAP CIPS IP 核
现在,您已将 Versal™ ACAP 的处理器系统添加到设计中,接下来即可开始管理可用选项。
- 双击“模块框图 (Block Diagram)”窗口中的 versal_cips_0。
- 在“开发板 (Board)”选项卡中选择“cips fixed io”,如下图所示。
- 单击“OK”。默认情况下,CIPS 中未启用任何控件或接口。应用开发板预设即可在 CIPS 上启用相应外设,在开发板上这些外设的 MIO 管脚均已连接。
- 双击“模块框图 (Block Diagram)”窗口中的 versal_cips_0。这样会打开“重新自定义 IP (Re-customize IP)”对话框,如下图所示。
- 展开“PS-PMC”下拉菜单。单击“IO 配置 (IO Configuration)”,如下图所示。这样会打开“IO Configuration”对话框。
I/O Configuration 会启用处理器系统中的外设,并允许为关联的 MIO 选择管脚分配。外设配置如下图所示:
注意:块自动化设置 (Block Automation) 不会显式运行。当“开发板接口 (Board interface)”从“定制 (Custom)”更改为“cips fixed io”时,会将其禁用。
- 单击“OK”以关闭 CIPS GUI。
验证设计并生成输出
要验证设计并生成输出文件,请执行以下步骤:
- 右键单击“Block Diagram”视图中的空白区域并选择“验证设计 (Validate Design)”。
或者,您可按 F6 键。这样会显示如下消息对话框:
- 在“Block Design”视图中,单击“源代码 (Sources)”选项卡。
- 单击“层级 (Hierarchy)”。
- 在“设计源代码 (Design Sources)”下,右键单击 edt_versal 并选择“创建 HDL 封装器 (Create HDL Wrapper)”。
这样会打开“Create HDL Wrapper”对话框。请使用此对话框来为处理器子系统创建 HDL 封装器文件。
提示:HDL 封装器是设计工具所需的顶层实体。 - 选择“让 Vivado 管理封装器并自动更新 (Let Vivado manage wrapper and auto-update)”,然后单击“OK”。
- 在“块设计源代码 (Block Design Sources)”窗口中的“Design Sources”下,展开 edt_versal_wrapper。
- 右键单击标题为 edt_versal_i: edt_versal 的顶层模块框图 (edt_versal.bd) 并选择“生成输出文件 (Generate Output Products)”。
这样会打开“Generate Output Products”对话框,如下图所示。
注意:如果在 Windows 上运行 Vivado® Design Suite,则“运行设置 (Run Settings)”下的选项可能与此处所示选项不同。在此情况下,请使用默认设置继续执行操作。
- 单击“生成 (Generate)”。
此步骤将为所选源代码构建所有必需的输出文件。例如,您无需手动为 IP 处理器系统创建约束。当您选中“Generate Output Products”时,Vivado 工具会自动为处理器子系统生成 XDC 文件。 - 当“Generate Output Products”进程完成后,请单击“OK”。单击底部窗口的“设计运行 (Design Runs)”选项卡,以查看“OOC 模块运行/综合/实现运行 (OOC Module Runs/Synthesis/Implementation runs)”。
- 在“Block Design Sources”窗口中,单击“IP 源代码 (IP Sources)”选项卡。您可在此处查看刚生成的输出文件,如下图所示。
综合、实现和生成器件镜像
请遵循以下步骤为设计生成器件镜像。
- 转至“Flow Navigator → 编程与调试 (Program and Debug)”,并单击“生成器件镜像 (Generate Device Image)”。
- 这样会显示“无实现结果可用 (No Implementation Results Available)”菜单。单击“Yes”。
- 这样会显示“启动运行 (Launch Run)”菜单。单击“确定 (OK)”。
当“Device Image Generation”完成后,会显示“器件镜像生成已完成 (Device Image Generation Completed)”对话框。 - 单击“取消 (Cancel)”关闭此窗口。
- 生成器件镜像后,请导出硬件。
注意:以下步骤为可选,您可跳过这些步骤并转至导出硬件部分。这些步骤提供了生成器件镜像的详细流程,包括先运行综合与实现,然后再生成器件镜像。如需了解生成器件镜像的流程,请遵循以下提供的步骤进行操作。
- 转至“Flow Navigator → 综合 (Synthesis)”、单击“运行综合 (Run Synthesis)”,然后单击“OK”。
- 如果 Vivado® 提示您在启动综合前保存工程,请单击“保存 (Save)”。
运行综合时,在右上角窗口中会显示其状态栏。在整个设计进程中,此状态栏会因各种原因而呈现假脱机状态。此状态栏表示进程正在后台运行。当综合完成后,会打开“综合已完成 (Synthesis Completed)”对话框。 - 选择“运行实现 (Run Implementation)”,然后单击“OK”。
当实现完成后,会打开“实现已完成 (Implementation Completed)”对话框。 - 选择“Generate Device Image”,然后单击“OK”。
当“Device Image Generation”完成后,会显示“器件镜像生成已完成 (Device Image Generation Completed)”对话框。 - 单击“取消 (Cancel)”关闭此窗口。
生成器件镜像后,请导出硬件。
导出硬件
- 在 Vivado 工具栏中,选择“文件 (File) → 导出 (Export) → 导出硬件 (Export Hardware)”。这样会打开“导出硬件 (Export Hardware)”对话框。
- 选择“包含器件镜像 (Include device image)”,然后单击“下一步 (Next)”。
- 为导出的文件提供名称(或者使用提供的默认名称)并选择导出位置。单击“下一步 (Next)”。
如果硬件模块 (Hardware Module) 已导出,则会显示一条警告消息。如果显示覆盖消息,则请单击“是 (Yes)”以覆盖现有 XSA 文件。 - 单击“完成 (Finish)”。
运行裸机 Hello World 应用
在此示例中,您将了解如何管理开发板设置、连接电缆、通过系统将电缆连接至开发板以及如何在赛灵思 Vitis 软件平台中通过 Arm Cortex-A72 上的片上存储器 (OCM) 和 Arm Cortex- R5F 上的紧密耦合存储器 (OCM) 来运行 Hello World 软件应用。
以下步骤演示了按要求连接电缆、通过系统将电缆连接至开发板以及启动 Vitis 软件平台的过程。
- 将电源线缆连接到开发板。
- 在 Windows 主机与目标开发板上的 USB JTAG 连接器之间连接 Micro USB 线。此线缆用于 USB 到串口之间的传输。
注意:请确保 SW1 开关设置为 JTAG 启动模式,如下图所示。
- 使用电源开关给 VMK180/VCK190 评估板上电,如下图所示。
注意:如果 Vitis 软件平台已运行,请跳转到步骤 6。
- 选择“工具 (Tools) → 从 Vivado 启动 Vitis IDE (Launch Vitis IDE from Vivado)”以启动 Vitis 软件平台,并设置工作空间路径,在此例中,路径为
C:\\edt\\edt_vck190
。
或者,您可打开含默认工作空间的 Vitis 软件平台,稍后再通过如下方式来将其切换至正确的工作空间:选择“文件 (File) → 切换工作空间 (Switch Workspace)”,然后选择工作空间。 - 打开对应系统上分配的 COM 端口的串行通信实用工具。Vitis 软件平台提供了 1 个串行终端实用工具,在本教程中均使用此工具,选择“窗口 (Window) → 显示视图 (Show View) → 赛灵思 (Xilinx) → Vitis 串口终端 (Vitis Serial Terminal)”即可将其打开。
- 单击 Vitis 终端上下文中的“连接到串口 (Connect to a serial port)”按钮
以设置串行配置并连接此端口。
- 在 Windows 器件管理器中验证此端口的详细信息。
UART-0 终端对应于含“Interface-0”的 Com-Port。对于此示例,默认已设置 UART-0 终端,因此对于 Com-Port,请选择含 interface-0 的端口。下图显示了 Versal™ ACAP 处理器系统的标准配置。
注意:您可使用外部终端串口控制台,如 Tera Term 或 Putty。您可在“控制面板 (Control Panel)”的“器件管理器 (Device Manager)”菜单中找到相关 COM 端口信息。
为 Arm Cortex-A72 上的 OCM 创建 Hello World 应用
以下步骤演示了为 Arm Cortex-A72 上的 OCM 创建 Hello World 应用的步骤。
- 选择“文件 (File) → 新建 (New) → 应用工程 (Application Project)”。这样会打开“新建应用工程 (Creating a New Application Project)”Wizard。如果这是首次启动 Vitis IDE,那么您可在“欢迎使用 (Welcome)”屏幕上选择“创建应用工程 (Create Application Project)”,如下图所示。
注意:或者,您也可以选中“下次跳过欢迎屏幕 (Skip welcome page next time)”,这样即可每次启动时跳过欢迎页面。
- 根据以下信息在 Wizard 屏幕中选择相应的选项。
表 3:系统属性设置
执行完上述步骤后,Vitis 软件平台就会为平台工程 (vck190_platform) 和系统工程 (helloworld_system) 创建开发板支持封装,其中包含名为 helloworld_a72 的应用工程,位于“Explorer”视图下。
- 右键单击 vck190_platform 并选择“Build Project”。或者,也可以单击
。
注意:如果无法看到 Project Explorer,请单击左侧面板上的复原图标
然后执行步骤 3。
修改 helloworld_a72 应用源代码
- 双击 helloworld_a72,然后双击 src 并选择 helloworld.c。
这样即可打开 helloworld_a72 应用的helloworld.c
源代码文件。 - 修改 print 命令中的实参:
print("Hello World from APU\\n\\r"); print("Successfully ran Hello World application from APU\\n\\r");
- 单击
以构建该工程。
在平台工程中添加新的 RPU 域
以下步骤演示了为 Arm Cortex-R5F 上的 TCM 创建裸机 Hello World 应用的过程。此应用需链接至域。创建应用工程前,请确保目标域软件环境可用。如果此环境不可用,请使用以下步骤将所需的域添加到您的平台中。
- 双击“Vitis Explorer”视图中的 platform.spr 文件。(在此示例中,即 vck190_platform → platform.spr)
- 单击主视图中的
按钮。
- 根据以下信息在“域 (Domain)”Wizard 屏幕中选择相应的选项。
表 4:新建域设置
- 单击“确定 (OK)”。这样即可完成配置新生成的 r5_domain。
注意:此时您会注意到在“Explorer”视图中的平台旁出现了“过期 (Out-of-date)”修饰器。 - 单击
图标以构建平台。“Explorer”视图会在平台工程内显示生成的镜像文件。
为 Arm Cortex-R5F 创建独立应用工程
以下步骤演示了为 Arm Cortex-R5F 创建 Hello World 应用的步骤。
- 选择“文件 (File) → 新建 (New) → 应用工程 (Application Project)”。这样会打开“新建应用工程 (Creating a New Application Project)”Wizard。如果这是首次启动 Vitis IDE,那么您可在“Welcome”屏幕上选择“Create Application Project”。
注意:或者,您也可以选中“下次跳过欢迎屏幕 (Skip welcome page next time)”,这样即可每次启动时跳过欢迎页面。 - 根据以下信息在 Wizard 屏幕中选择相应的选项。
表 5:系统属性设置
注意:这样即可在现有系统工程 helloworld_system 内生成独立应用 helloworld_r5。
- 右键单击 vck190_platform 并选择“Build Project”。或者,您也可以单击
以构建工程。
修改 helloworld_r5 应用源代码
- 展开 helloworld_r5 并双击 src,然后选择 helloworld.c 以打开 helloworld_r5 应用的
helloworld.c
源代码文件。 - 修改 print 命令中的实参:
print("Hello World from RPU\\n\\r"); print("Successfully ran Hello World application from RPU\\n\\r");
- 单击
以构建该工程。
为应用工程 helloworld_r5 修改应用连接器脚本
以下步骤演示了为应用工程 helloworld_r5 修改应用连接器脚本 (Application Linker Script) 的过程。
注意:Vitis 软件平台提供了连接器脚本生成器用于简化为 GCC 创建连接器脚本的任务。连接器脚本生成器 GUI 会检验目标硬件平台并确认可用的存储器部分。您只需将 ELF 文件中的不同代码和数据部分分配至不同存储器区域即可。
- 在“Vitis Explorer”视图中选择相应的工程 (helloworld_r5)。
注意:如果平台上存在 DDR 内存,则连接器将使用 DDR 内存,否则将默认使用片上存储器 (OCM)。 - 在
src
目录中,删除默认lscript.ld
文件。 - 右键单击 helloworld_r5 并单击“生成连接器脚本 (Generate Linker Script)”。或者,您也可以选择“Xilinx → Generate Linker Script”。
注意:在“Generate Linker Script”对话框中,左侧为只读,但“按如下方式修改工程构建设置 (Modify project build settings as follows)”字段中的“输出脚本名称 (Output Script name)”和工程构建设置除外。在右侧,有 2 个用于选择存储器分配方式的选项:“基本信息 (Basic)”选项卡或“高级 (Advanced)”选项卡。这 2 个选项执行的任务是相同的;但“Basic”选项卡粒度较低,将所有类型的数据都作为“数据”来处理,并将所有类型的指令都作为“代码”来处理。这通常足以完成大部分任务。使用“Advanced”选项卡可将软件块精准分配到各种类型的存储器中。
- 针对“Basic”选项卡下的 3 个部分,在其下拉菜单中选择 psv_r5_0_atcm_MEM_0,然后单击“生成 (Generate)”。
注意:这样将在应用工程的 src 文件夹中生成新的连接器脚本 (lscript.ld
)。
- 右键单击 helloworld _system,然后选择“构建工程 (Build Project)”,或者单击
。这样即可在 helloworld_r5 工程的 Debug 文件夹内生成工程的 elf 文件。
在 Vitis 软件平台中使用系统调试器以 JTAG 模式运行应用
要运行应用,则必须创建“运行配置 (Run configuration)”以采集用于执行应用的设置。您可为整个系统工程创建一种运行配置,或者也可以为各独立应用创建不同运行配置。
为系统工程创建运行配置
- 右键单击系统工程 helloworld_system 并选择“运行方式 (Run As) → 运行配置 (Run Configurations)”。这样会打开“Run configuration”对话框。
- 双击“系统工程调试 (System Project Debug)”以创建“Run Configuration”。
Vitis 软件平台会创建新的运行配置,其名为:SystemDebugger_helloworld_system。对于其余选项,请参阅下表。
表 6:创建、管理和运行配置设置
- 单击“运行 (Run)”。
注意:如果存在现有启动配置,则会显示 1 个对话框,询问您是否要终止此流程。单击“Yes”。这样会在终端上显示以下日志。
为系统工程内的单一应用创建运行配置
您可通过 2 种方式来为系统工程内的单一应用创建运行配置:
方法 I
- 右键单击系统工程 helloworld_system 并选择“运行方式 (Run As) → 运行配置 (Run Configurations)”。这样会打开“Run configuration”对话框。
- 双击“系统工程调试 (System Project Debug)”以创建“Run Configuration”。
Vitis 软件平台会创建新的运行配置,其名为:SystemDebugger_helloworld_system_1。将其重命名为 SystemDebugger_helloworld_system_A72。对于其余选项,请参阅下表。
表 7:创建、管理和运行配置设置
- 单击“应用 (Apply)”。
- 单击“运行 (Run)”。
注意:如果存在现有运行配置,则会显示 1 个对话框,询问您是否要终止此流程。单击“Yes”。这样会在终端上显示以下日志。
注意:APU 和 RPU 应用都会打印在相同控制台上,因为这两种应用使用的都是 UART0。应用软件会针对 APU 和 RPU 向 PS 部分的 UART0 外设发送 hello world 字符串。这些 hello world 字符串将从 UART0 逐字节发送到主机上运行的串行终端应用,在主机上会将其显示为字符串。
方法 II
- 右键单击应用工程 hello_world_r5 并选择“Run As → Run Configurations”。这样会打开“Run configuration”对话框。
- 双击“单工程调试 (Single Project Debug)”以创建运行配置。
Vitis 软件平台会创建新的运行配置,其名为:Debugger_helloworld_r5-Default。对于其余选项,请参阅下表。
表 8:创建、管理和运行配置设置
- 单击“应用 (Apply)”。
- 单击“运行 (Run)”。
注意:如果存在现有运行配置,则会显示 1 个对话框,询问您是否要终止此流程。单击“Yes”。这样会在终端上显示以下日志。
NoC(和 DDR)IP 核配置
本章节描述了 NoC(和 DDR)配置以及搭配本章前文中配置的 CIPS 使用所需的相关连接的信息。Versal™ ACAP CIPS IP 核允许您配置 2 个基于多核 Arm® Cortex™-A72 的超标量 APU、2 个 Arm Cortex™-R5F RPU、1 个平台管理控制器 (PMC) 和 1 个 CCIX PCIe® 模块 (CPM)。NoC IP 核支持配置 NoC 并启用 DDR 内存控制器。
在现有工程内配置 NoC IP 核
对于此示例,请启动 Vivado® Design Suite 和工程,并按工程示例:使用 Versal ACAP 创建全新的嵌入式工程中所示完成该工程的基本 CIPS 配置。
配置设计
要配置设计,请执行以下步骤:
- 打开工程示例:使用 Versal ACAP 创建全新的嵌入式工程中创建的设计
edt_versal.xpr
。 - 然后打开块设计
edt_versal.bd
。 - 在 Vivado Design Suite 的 Tcl 控制台中输入以下命令:
apply_bd_automation -rule xilinx.com:bd_rule:versal_cips -config apply_board_preset 0 configure_noc Add new AXI NoC num_ddr 1 pcie0_lane_width None pcie0_mode None pcie0_port_type Endpoint Device pcie1_lane_width None pcie1_mode None pcie1_port_type Endpoint Device pl_clocks None pl_resets None [get_bd_cells versal_cips_0] - 按 Enter 键。
- 打开 AXI NoC IP。
- 在“开发板 (Boards)”选项卡中,按下图所示配置设置,然后单击“OK”。
- 单击设计中的 sys_clk_0_0 管脚。
- 在“外部接口属性 (External Interface Properties)”窗口中,选择“属性 (Properties) → 配置 (CONFIG) → FREQ_HZ”,将频率更改为 200 MHz。
这样即可添加 AXI NoC IP 以供 DDR 访问。
验证设计并生成输出
要验证设计并生成输出,请执行以下步骤:
- 右键单击“Diagram”窗口的空白区域,并选择“Validate Design”。或者,您可按 F6 键。这样会打开含以下消息的对话框:
- 单击“OK”以关闭此
以上是关于赛灵思 Xilinx Versal 自适应计算加速平台嵌入式设计教程的主要内容,如果未能解决你的问题,请参考以下文章