完成 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++
命令可使用下表中的选项。
选项 | 描述 |
---|---|
--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 创建的输出文件。 |
|
对于 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]
节包含下表所述的选项。
选项 | 描述 |
---|---|
nk
|
指定 v++ 命令添加到平台 (XSA) 文件的内核实例或 CU 的数量。
多个内核实例指定为 |
sc
|
定义 AI 引擎 graph 的端口与 PL 内核的串流端口之间的 AXI4-Stream 连接。连接可定义为将某一个内核的串流输出连接到另一个内核的串流输入,或者连接到目标平台中实现的 IP 的串流输入端口。如需了解更多信息,请参阅
Vitis 统一软件平台文档:应用加速开发(UG1393) 中的 --connectivity 选项
。 示例 示例 |
在链接进程期间,Vitis 编译器会调用 Vivado Design Suite 来为目标平台生成平台文件 (XSA)。XSA 文件用于封装设计,并包含下列信息。
- PDI
- AI 引擎阵列的编程信息
- Debug data(调试数据)
- 构建中包含的调试信息
- Memory topology(存储器拓扑结构)
- 定义目标平台的存储器资源和结构
- IP Layout(IP 布局)
- 定义已实现的硬件设计的布局信息
- Metadata(元数据)
- 平台元数据的各种元素,用于支持工具在平台上加载和运行 XCLBIN 文件
如需了解有关 XRT 使用 XCLBIN 文件的更多信息,请参阅 XRT。