系统链接 - 2022.1 简体中文

Versal ACAP AI 引擎编程环境 用户指南 (UG1076)

Document ID
UG1076
Release Date
2022-05-25
Version
2022.1 简体中文

完成 AI 引擎 graph 和 C/C++ 内核的编译并封装所有 RTL 内核后,Vitis v++ --link 命令会将其与目标平台加以链接,以构建平台文件 (XSA),用于对设计进行封装。如需了解更多信息,请参阅 Vitis 统一软件平台文档的“应用加速开发”流程中的链接内核

以下提供了 AI 引擎设计流程中的 Vitis 编译器链接命令示例。

v++ --link -t hw_emu --platform xilinx_vck190_base_202210_1 -g \
<pl_kernel1>.xo <pl_kernel2>.xo ../libadf.a -o vck190_aie_graph.xsa \
--config ../system.cfg --save-temps

v++ 命令可使用下表中的选项。

表 1. Vitis 编译器链接选项
选项 描述
--link 指定链接进程。
-t hw_emu 指定链接进程的构建目标。对于 AI 引擎内核流程,目标可设为 hw_emu 用于仿真和测试,或者设为 hw 用于构建系统硬件。
重要: v++ 编译命令和链接命令必须使用相同构建目标 (-t) 和相同目标平台 (--platform)。
--platform 指定到目标平台的路径。
-g 指定添加调试逻辑以启用调试(用于硬件仿真)和捕获波形数据。
<pl_kernel1>.xo <pl_kernel2>.xo 指定输入已编译的 PL 内核对象文件 (.xo),与 AI 引擎 graph 和目标平台相链接。
../libadf.a 指定输入已编译的 AI 引擎 graph 应用,与 PL 内核与目标平台相链接。
-o 指定平台 (XSA) 文件,此文件即链接进程的输出。
--config 指定配置文件,以定义部分编译或链接选项。 1
--save-temps 指示构建进程期间创建的临时文件应予以保留以供后续检验或使用。这包括由 Vitis HLS 和 Vivado Design Suite 创建的输出文件。
  1. --config 选项用于简化 v++ 命令行,方法是将含扩展语法的大量命令移入可从命令行指定的文件内。如需了解更多信息,请参阅 Vitis 统一软件平台文档:应用加速开发(UG1393) 中的 Vitis 编译器配置文件
提示: config 文件对于命令行的要求不同于 Vitis IDE 的要求,如 配置硬件链接工程 中所述。

对于 AI 引擎内核流程,Vitis 编译器需在配置文件中包含一个特殊小节:[connectivity]。以下是配置文件示例。

[connectivity]
nk=mm2s:1:mm2s
nk=s2mm:1:s2mm
stream_connect=mm2s.s:ai_engine_0.DataIn1
stream_connect=ai_engine_0.DataOut1:s2mm.s

配置文件的 [connectivity] 节包含下表所述的选项。

表 2. Connectivity 节的选项
选项 描述
nk 指定 v++ 命令添加到平台 (XSA) 文件的内核实例或 CU 的数量。

nk 选项可指定内核名称、实例数量或者该内核的 CU 数量以及每个实例的 CU 名称。在此示例中,nk=mm2s:1:mm2s 用于指定 mm2s 内核应仅包含 1 个实例,且该实例应名为 mm2s

多个内核实例指定为 nk=mm2s:2:mm2s_1.mm2s_2。这表示 mm2s 应包含 2 个 CU,分别名为 mm2s_1mm2s_2。如需了解更多信息,请参阅 Vitis 统一软件平台文档:应用加速开发(UG1393) 中的创建内核的多个实例

sc 定义 AI 引擎 graph 的端口与 PL 内核的串流端口之间的 AXI4-Stream 连接。连接可定义为将某一个内核的串流输出连接到另一个内核的串流输入,或者连接到目标平台中实现的 IP 的串流输入端口。如需了解更多信息,请参阅 Vitis 统一软件平台文档:应用加速开发(UG1393) 中的 --connectivity 选项

示例 stream_connect=mm2s.s:ai_engine_0.DataIn1 源自 config 文件,定义的是 mm2s PL 内核的串流输出与 AI 引擎 graph 的 DataIn1 输入之间的连接。

示例 stream_connect=ai_engine_0.DataOut1:s2mm.s 定义的是 AI 引擎 graph 的 DataOut1 输出端口到 PL 内核 s2mm 的输入端口 s 之间的连接。如需了解更多信息,请参阅 Vitis 统一软件平台文档:应用加速开发(UG1393) 中的在计算单元之间指定串流连接

在链接进程期间,Vitis 编译器会调用 Vivado Design Suite 来为目标平台生成平台文件 (XSA)。XSA 文件用于封装设计,并包含下列信息。

PDI
AI 引擎阵列的编程信息
Debug data(调试数据)
构建中包含的调试信息
Memory topology(存储器拓扑结构)
定义目标平台的存储器资源和结构
IP Layout(IP 布局)
定义已实现的硬件设计的布局信息
Metadata(元数据)
平台元数据的各种元素,用于支持工具在平台上加载和运行 XCLBIN 文件

如需了解有关 XRT 使用 XCLBIN 文件的更多信息,请参阅 XRT