package_xo Command


package_xo  -kernel_name <arg> [-force] [-kernel_xml <arg>] [-design_xml <arg>]
            [-ip_directory <arg>] [-parent_ip_directory <arg>]
            [-kernel_files <args>] [-kernel_xml_args <args>]
            [-kernel_xml_pipes <args>] [-kernel_xml_connections <args>]
            -xo_path <arg> [-quiet] [-verbose]


The package_xo command is a Tcl command within the Vivado Design Suite. Kernels written in RTL are compiled in the Vivado tool using the package_xo command line utility which generates a Xilinx object file (.xo) which can subsequently used by the v++ command, during the linking stage.

Table 1. Arguments
Argument Description
-kernel_name <arg> Required. Specifies the name of the RTL kernel.
-force (Optional) Overwrite an existing .xo file if one exists.
-kernel_xml <arg> (Optional) Specify the path to an existing kernel XML file. The Vivado tool will create a kernel.xml file for the .xo file if one is not specified.
-design_xml <arg> (Optional) Specify the path to an existing design XML file
-ip_directory <arg> (Optional) Specify the path to the kernel IP directory.
-parent_ip_directory (Optional) If the kernel IP directory specified contains multiple IPs, specify a directory path to the parent IP where its component.xml is located directly below.
-kernel_files (Optional) Kernel file name(s).
-kernel_xml_args <args> (Optional) Generate the kernel.xml with the specified function arguments. Each argument value should use the following format:
Note: memSize is optional.
-kernel_xml_pipes <args> (Optional) Generate the kernel.xml with the specified pipe(s). Each pipe value use the following format:
-kernel_xml_connections <args> (Optional) Generate the kernel.xml file with the specified connections. Each connection value should use the following format:
-xo_path <arg> (Required) Specifies the path and file name of the compiled object (.xo) file.
-quiet (Optional) Execute the command quietly, returning no messages from the command. The command also returns TCL_OK regardless of any errors encountered during execution.
Note: Any errors encountered on the command-line, while launching the command, will be returned. Only errors occurring inside the command will be trapped.
-verbose (Optional) Temporarily override any message limits and return all messages from this command.
Note: Message limits can be defined with the set_msg_config command.


The following example creates the specified .xo file containing an RTL kernel of the specified name, and creates the kernel.xml file because one has not been specified:
package_xo -xo_path Vadd_A_B.xo -kernel_name Vadd_A_B -ip_directory ./ip
The following example creates the .xo file using the specified kernel.xml file:
package_xo -xo_path Vadd_A_B.xo -kernel_name Vadd_A_B -kernel_xml kernel.xml -ip_directory ./ip