链接系统 - 2023.2 简体中文

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文
提示: 运行工具前,请按 设置 Vitis 环境 中所述方式设置命令 shell 或窗口。
图 1. 链接系统设计

前图显示了通过链接进程的 2 条路径,从使用 v++ --link 命令开始。第一条路径是 Vitis 集成流程,其中,v++ 命令用于链接系统元素、自动启动 Vivado 工具用于实现设计、并输出 .xclbin.xsa 文件。第二条路径是 Vitis 导出到 Vivado 流程,其中,v++ 命令用于链接系统元素并输出 .vma 文件,以供您在 Vivado 工具内用于综合、实现及时序收敛。这两条路径如下所述。

注释: 当前仅限 Versal 定制平台支持导出至 Vivado 流程。

Vitis 集成流程

如前图所示,内核可使用 C/C++ 或 RTL 语言来编写,无论使用何种语言,PL 内核编译进程都会生成对象 (.xo) 文件。在链接阶段中,一个或多个 PL 内核会与可扩展平台相链接,以创建 FPGA 二进制容器文件 (.xclbin)。对于 Versal 自适应 SoC 器件,链接进程还包含 AI 引擎计算图应用 (libadf.a),并且会创建固定硬件平台 (.xsa) 以供 Vitis 封装进程使用,如 封装系统 中所述。

注释:  集成流程会在后台自动运行 Vivado 综合与实现,故称之为“集成”。这是主要差异。
以下命令行示例演示了如何将 vadd 内核 (.xo) 与 libadf.a 计算图存档和 Versal 自适应 SoC 平台相链接,并指定 .xsa 文件作为输出:
v++ -t hw_emu --platform xilinx_vck190_base_202310_1 --link vadd.xo libadf.a \
--config ./system.cfg -o binary_container.xsa

此命令包含以下实参:

-t <arg>
指定构建目标。链接时,您必须使用在编译 PL 内核与 AI 引擎计算图应用时所指定的 -t 实参和 --platform 实参。
--platform <arg>
指定要与系统设计相链接的平台。在以上命令示例中,custom_vck190 平台是旨在搭配 --export_archive 命令一起运行的定制平台。
--link
将内核、计算图与平台链接到系统设计中。
<input>.xo
指定输入 PL 内核对象文件 (.xo),与 AI 引擎计算图和目标平台相链接。这是定位参数。
libadf.a
指定输入已编译的 AI 引擎计算图应用,与 PL 内核与目标平台相链接。这是定位参数。
--config ./system.cfg
指定配置文件用于提供不同用途的 v++ 命令选项。如需了解有关 --config 选项的更多信息,请参阅 Vitis 编译器配置文件
-o binary_container.xsa
指定输出文件名。由于使用 Versal 平台,链接阶段的输出文件为 .xsa 文件。默认输出名称是 a.xsa
提示: 对于 Alveo 加速器卡或基于 AMD Zynq™ MPSoC 的平台,link 命令的输出将是 .xclbin 文件,而不是 .xsa 文件。

Vitis 导出到 Vivado 流程

(可选)对于特意设计为支持该功能特性的 Versal 定制平台,v++ --link --export_archive 会创建 Vitis 元数据存档 (.vma) 文件,以供导出到 Vivado Design Suite。该流程允许您在 Vivado 工具中打开已链接的系统设计,用于进行更多定向综合、布局布线和时序收敛。
注释: 在此导出流程中,连接器会停止预综合。
命令示例如下所示:
v++ --platform custom_vck190 --link vadd.xo libadf.a --config ./system.cfg \
--export_archive -o hw-vadd.vma
重要: --export_archive 命令无法搭配 --target(或 -t)命令一起使用。否则将返回错误。

此命令与前述命令相似,差异如下:

--export_archive
指定创建 .vma 文件以导出到 Vivado Design Suite。该选项会停止 v++ 自动运行 Vivado 综合与布局布线的操作,改为由您手动启动和指令设计的实现和时序收敛,如 Vitis 导出到 Vivado 流程 中所述。
--platform custom_vck190
--export_archive 命令只能用于以该设计流程所需的块设计容器 (BDC) 设计的 Versal 定制平台。如需了解更多信息,请参阅 Vivado Design Suite 用户指南:采用 IP integrator 设计 IP 子系统(UG994)中的“块设计容器简介”章节。
-o hw-vadd.vma
指定由 --export_archive 命令生成的 .vma 文件的输出文件名。

链接后

完成链接步骤后,此进程中生成的任何报告都会收集到 <kernel_name>.link_summary 内。此报告集合可通过打开 Vitis 分析器的“Analysis”(分析)视图中的 link_summary 来查看,包括“Summary”(汇总)报告、可提供时序和资源估算信息的“System Estimate”(系统估算)报告、可提供用于改善链接和系统性能的建议的“System Guidance”(系统指南)报告。如需了解更多信息,请参阅 使用“Analysis”视图 (Vitis Analyzer)

提示: 请参阅 v++ 命令的输出目录 以了解各输出文件的位置。

链接进程定义了系统设计的重要架构详细信息。具体来说,在此进程中,还可以启用设计剖析或调试、指定要例化到硬件中的计算单元 (CU) 的数量、向 SLR 分配 CU,并定义从 PL 内核端口到全局存储器或 AI 引擎应用的连接。以下章节探讨了其中部分构建选项。