Linking with the Vitis Integrated Flow - 2025.1 English - UG1701

Embedded Design Development Using Vitis User Guide (UG1701)

Document ID
UG1701
Release Date
2025-07-16
Version
2025.1 English

In the Vitis Integrated Flow, the linker automatically runs Vivado synthesis and implementation on the project (hence the name "Integrated"), and creates a fixed hardware platform (.xsa) for use by the Vitis packaging process as described in Packaging for Vitis Flow.

The following is an example command line to link a PL kernel (vadd.co) with an AI Engine graph (libadf.a) and a Versal adaptive SoC platform, using specific linking options (system.cfg):
v++ -t hw_emu --platform xilinx_vck190_base_202420_1 --link vadd.xo libadf.a --config ./system.cfg -o binary_container.xsa

This command contains the following arguments:

-t <arg>
Specifies the build target. When linking, you must use the same -t and --platform arguments specified when compiling the PL kernels and AI Engine graph application.
--platform <arg>
Specifies the platform to link with the system design. In the example command above the custom_vck190 platform is a custom platform designed to work with the --export_archive command.
--link
Link the kernels, graph, and platform into a system design.
<input>.xo
Specifies the input PL kernel object files (.xo) to link with the AI Engine graph and the target platform. This is a positional parameter.
libadf.a
Specifies the input compiled AI Engine graph application to link with the PL kernels and the target platform. This is a positional parameter. If your design uses multiple partitions, you need to specify each corresponding libadf file when linking the design. For detailed instructions on handling multiple partitions, refer to Compiling AI Engine Graph for Independent Partitions in the AI Engine Tools and Flows User Guide (UG1076) .
--config ./system.cfg
Specify a configuration file that is used to provide v++ command options for a variety of uses, including connectivity and debug options. Refer to Vitis Compiler Configuration File in the Vitis Reference Guide (UG1702) for more information on the --config option.
-o binary_container.xsa
Specifies the output file name. The output file in the link stage will be an .xsa file due to the use of a Versal platform. The default output name is a.xsa.
Tip: For AMD Zynq™ MPSoC based platforms, the output of the link command will be an .xclbin file rather than the .xsa.