前图显示了通过链接进程的 2 条路径,从使用 v++ --link
命令开始。第一条路径是 Vitis 集成流程,其中,v++
命令用于链接系统元素、自动启动 Vivado 工具用于实现设计、并输出 .xclbin
或 .xsa
文件。第二条路径是 Vitis 导出到 Vivado 流程,其中,v++
命令用于链接系统元素并输出 .vma 文件,以供您在 Vivado 工具内用于综合、实现及时序收敛。这两条路径如下所述。
Vitis 集成流程
如前图所示,内核可使用 C/C++ 或 RTL 语言来编写,无论使用何种语言,PL 内核编译进程都会生成对象 (.xo
) 文件。在链接阶段中,一个或多个 PL 内核会与可扩展平台相链接,以创建 FPGA 二进制容器文件 (.xclbin)。对于 Versal 自适应 SoC 器件,链接进程还包含 AI 引擎计算图应用 (libadf.a),并且会创建固定硬件平台 (.xsa) 以供 Vitis 封装进程使用,如 封装系统 中所述。
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。
Vitis 导出到 Vivado 流程
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)。
链接进程定义了系统设计的重要架构详细信息。具体来说,在此进程中,还可以启用设计剖析或调试、指定要例化到硬件中的计算单元 (CU) 的数量、向 SLR 分配 CU,并定义从 PL 内核端口到全局存储器或 AI 引擎应用的连接。以下章节探讨了其中部分构建选项。