固定平台对比可扩展平台 - 2023.2 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文

平台可提供设计上下文用于集成 AI 引擎设计与 PL 内核。平台硬件由使用 Vivado Design Suite 构建的 XSA 容器来表示,平台软件包含板级支持包 (BSP) 以及操作系统、启动文件、驱动程序、库和文件系统,用于链接应用软件和构建启动镜像。Vitis SDK 和 PetaLinux 工具可用于构建 BSP 以及系统和应用软件,此类软件是根据您已实现的硬件(包括 AI 引擎与 PL 内核)而定制的。平台分如下所述两种类型。

传统固定平台设计

固定平台设计是在 Vivado Design Suite 中完成的硬件设计。您可使用 Vivado IP integrator 功能特性在块设计中将 IP 拼接在一起,或者可以在 RTL 中描述硬件系统。您可以使用 Vitis HLS 在 C++ 中创建硬件函数,并生成 Vivado IP 以添加到自己的硬件设计中。

您将使用 write_hw_platform -fixed 命令创建已完成的硬件设计的赛灵思 Shell 存档 (.xsa) 文件;使用 Vitis IDE 或赛灵思软件命令行工具 (XSCT) 来定义平台工程、导入固定 .xsa 并为固定平台配置和定义处理器域或 BSP。在传统嵌入式软件设计流程中,固定平台 (.xpfm) 可用于为 Versal 自适应 SoC 器件或 Zynq MPSoC 器件创建嵌入式应用。

嵌入式处理器的软件应用开发需要使用硬件驱动程序,此硬件驱动程序是包含在导出的硬件容器 (.xsa) 内一并交付的。您必须管理和使用这些驱动程序从软件应用访问硬件设计。如需获取有关此传统嵌入式软件设计流程的完整描述,请参阅 Vitis 统一软件平台文档:嵌入式软件开发(UG1400)

基于可扩展平台的设计

可扩展平台同样始于 Vivado Design Suite,它会定义可扩展硬件设计 (.xsa) 以支持添加可编程组件(如 AI 引擎及 PL 内核与子系统功能特性),从而快速改变生成的嵌入式系统设计。可扩展 .xsa 作为容器,可以提供硬件设计基础,以便 v++ 连接器通过更新设计的动态区域进行扩展。此可扩展平台允许嵌入式系统设计师轻松扩展可扩展硬件基础的功能。

对于嵌入式系统设计,只要可以并行开发异构系统的不同要素,就可以使用并行开发进程。应用团队从 AMD 基础平台(例如,VCK190 或 ZCU104)开始着手开发系统的可编程组件。使用可用平台意味着可使用已知有效的系统来对应用进行独立开发和测试。与此同时,平台团队可以致力于构建和确认定制硬件平台。我们强烈建议您使用现有平台设计作为参考来设计自己的定制平台。在 Vitis 安装中可以找到当前 AMD 嵌入式平台,在 GitHub 上的 Vitis 嵌入式平台源码仓库中可以找到其源代码。

可扩展平台的硬件部分是 Vivado 工程,其中包含所有必要的 IP(如,中断控制器和时钟向导),以及您要实现到硬件设计中的任何其他功能特性。如 在 Vitis 中创建嵌入式平台 中所述,可扩展平台设计具有具体的要求,例如,用于将 PL 内核链接到系统中的 AXI-4 接口、存储器控制器、一个或多个时钟信号和复位信号以及单个中断。如需了解有关所需接口的更多信息,请参阅 添加硬件接口

提示: Versal 自适应 SoC 设计指南(UG1273) 中所述,您必须使用 IP integrator 来配置和连接所需 IP(例如,CIPS IP、NoC/DDRMC IP 和硬件调试 IP),以便在构建和更新硬件设计时,充分利用块设计自动化功能。但您可使用 IP integrator 功能特性来配置和连接这些关键的 Versal 自适应 SoC IP,然后将生成的分层模块例化到更高层次的 RTL 设计中。
图 1. 创建固定平台或可扩展平台

用户导出固定 XSA 的 Tcl 命令是 write_hw_platform -fixed <.xsa>,用于导出可扩展 XSA 的命令是 write_hw_platform -force <.xsa>。从 Vivado 导出固定 XS 前,必须先运行综合与实现。

硬件设计文件 (.xsa) 是使用 write_hw_platform 命令从 Vivado 工程导出的,并导入 Vitis IDE 或 XSCT 中的平台工程。在平台工程中,软件组件(处理器域、设备树和操作系统)作为硬件 (.xsa) 封装在一起,以创建定制可扩展嵌入式处理器平台 (.xpfm):

  • 操作系统包括独立(或裸机)操作系统、FreeRTOS 或 Linux。对于运行 XRT 的系统,Linux 是必需的。
  • 处理器会指定用于指定操作系统域的 Arm 核。所选操作系统决定了可供配置的处理器。
    提示: 初始平台工程设置允许您配置一个处理器域,但建立该工程后,IDE 就能允许您配置其他域。DFX 平台之类的平台的高级设置必须通过 XSCT 来访问。

构建完平台后,会在工程层级内添加 export 文件夹,并在该工程内添加平台 .xpfm 文件以及 ./hw./sw 文件夹。新平台会被添加到 $PLATFORM_REPOSTORY_PATHS 环境变量中,此平台可用于通过 Vitis 工具来进行应用开发。

基于 Vitis 平台的设计流程能扩展标准 Vivado 嵌入式设计方法论,用于构建嵌入式系统硬件,它采用 Vitis 通过 v++ 命令将 PL 内核及 AI 引擎计算图应用与可扩展的硬件平台相链接。该流程促进了系统不同元件的并发开发,并加快了异构系统的集成进程。

重要: 基于平台的嵌入式系统设计流程有助于硬件平台复用以及将加速器和 AI 引擎子系统从已预确认的平台重定向到定制平台。此流程能广泛使用,对于 Versal AI Core 器件上的 AI 引擎计算图应用和为采用 Xilinx Runtime (XRT) 的软件应用提供硬件支持而言,此流程是必需的。

通过使用 v++ --link 命令将 PL 内核 (.xo) 以及 AI 引擎计算图应用 (libadf.a) 链接到硬件设计,即可对可扩展平台硬件进行灵活自定义。设计可扩展平台时,您对硬件结构和内容拥有较大的控制权。如 生成 XSA 文件 中所述,CPU 控制、存储器和时钟设置都存在关联的最低要求;除此以外,您可以控制对平台设计中的具体任务所采用的最佳工具。

最小硬件平台是 AI 引擎与 PL 内核子系统开发的理想选择,通过对齐平台 PFM 接口,您只需对自己的源代码进行最低限度的更改,甚至无需更改,即可将此类子系统重定向至更完整的系统平台。