Linking with the Vitis Export to Vivado Flow - 2025.2 English - UG1701

Embedded Design Development Using Vitis User Guide (UG1701)

Document ID
UG1701
Release Date
2025-11-20
Version
2025.2 English

In the Vitis Export to Vivado flow, the linker stops before running RTL synthesis and outputs a project archive (VMA file) for export to the Vivado Design Suite. This flow lets you open the Vitis archive in the Vivado tools for directed synthesis, place and route, and timing closure. The Vitis Export to Vivado flow requires custom Versal platforms designed specifically to support this feature.

An example command follows:

v++ --target hw --platform custom_vck190 --link vadd.xo libadf.a --config ./system.cfg \
--export_archive -o hw-vadd.vma
Important: The --export_archive command cannot be used with the --target hw_emu (or -t) command. An error will be returned.

This command is similar to the prior command, with the following differences:

--export_archive
Specifies the creation of the .vma file to export to the Vivado Design Suite. This option stops v++ from automatically running Vivado synthesis and place and route, and instead lets you manually launch and direct the implementation and timing closure of the design as described in Vitis Export to Vivado Flow.
--platform custom_vck190
The --export_archive command can only be used with a custom platform compatible with the Vitis export to Vivado flow.
-o hw-vadd.vma
Specifies the output file name for the .vma file produced by the --export_archive command.

The .vma file is imported into the original extensible platform project in the Vivado Design Suite using the vitis::import_archive Tcl procedure. Development can then continue in the Vivado project, including additional design modifications, simulation, synthesis, and implementation.

After implementation and timing closure, the write_hw_platform -fixed command has been enhanced to encapsulate the XRT metadata from the .vma file into the output .xsa. You can also export the XSA for the hardware emulation target from the Vivado tool and run emulation in the Vitis tool.

If the .vma is updated or iterative design methodology is used, the previously imported VMA needs to be removed using vitis::remove_archive_hierarchy before the updated VMA is imported.

Vitis Export to Vivado Flow Detailed Example further explains the flow.