Check Integrity, Assign Properties, and Package IP - 2023.1 English

Vitis Tutorials: Hardware Acceleration (XD099)

Document ID
Release Date
2023.1 English
  1. Under the Packaging Steps, Select Review and Package. This displays the Review and Package window. You are now ready to package the IP. However, first check that an archive file will be generated when packaging the IP. This is the default behavior when Package for Vitis is enabled.

  2. Look in the After Packaging section of the Review and Package window. If you see that an archive will not be generated, then you should enable the archive by selecting Edit packaging settings. This displays the Settings dialog box with the IP Package section displayed.

    • Under the After Packaging section of the dialog box, enable Create archive of IP as shown below, and click OK. You should see the Review and Package window change to reflect that an archive will now be created.

      Enable Archive

  3. Click Package IP.

    After packaging the IP you should see dialog box indicating that the IP packaged successfully.

With Package for Vitis enabled, the tool automatically runs the package_xo command to create the Vitis kernel (.xo) file. The package_xo command also packages the IP files and the kernel.xml file into the generated .xo file. You can examine the Tcl Console window to see that the package_xo command has been run.

package_xo -xo_path <tutorial_path>/rtl_kernel/rtl_kernel.srcs/sources_1/imports/src/xo/Vadd_A_B.xo -kernel_name Vadd_A_B -ip_directory <tutorial_path>/rtl_kernel/rtl_kernel.srcs/sources_1/imports/src/IP -ctrl_protocol user_managed


  • package_xo: Command name to create a compiled object file (.xo) from the Vivado IP.

  • -xo_path: Path and name of the xo file.

  • -kernel_name: Name of the kernel to create, and should match the RTL module name.

  • -ip_directory: Path to look for the packaged Vivado IP.

  • -ctrl_protocol: Specifies the control protocol the kernel implements.

After the package_xo command returns, navigate to the reference-files/rtl_kernel/rtl_kernel.srcs/sources_1/imports folder where you can see the IP folder and the xo folder. Look at the Vadd_A_B.xo file in the xo folder. The .xo file contains the IP representation of the kernel, as well as the kernel.xml file used by the Vitis compiler to link the kernel into the device binary (.xclbin).

You will use the .xo file in the Vitis application acceleration flow as explained later in this tutorial.