The AI Engine compiler generates output in the form of a library file, libadf.a, which contains ELF and CDO files, as well as tool-specific data and metadata, for hardware and hardware emulation flows. To create a loadable image binary, this data must be combined with PL-based configuration data, boot loaders, and other binaries. The AMD Vitis™ packager performs this function, combining information from libadf.a and the Vitis linker generated XSA file.
This requires the use of the Vitis packaging command (v++
--package
) as described in
V++ Command in the
Vitis Unified Software Platform
Documentation: Application Acceleration Development
(UG1393).
For Versal adaptive SoCs, the
programmable device image (PDI) file is used to boot and program the hardware
device. For hardware emulation the --package
command adds the PDI, EMULATION_DATA sections and the XSA file, and outputs a
XCLBIN file. For hardware builds, the package process creates a XCLBIN file
containing ELF files and graph configuration data objects (CDOs) for the AI Engine application. The XCLBIN file includes the
following information:
- PDI
- Programming information for the AI Engine array
- Debug data
- Debug information when included in the build
- Memory topology
- Defines the memory resources and structure for the target platform
- IP Layout
- Defines layout information for the implemented hardware design
- Metadata
- Various elements of platform meta data to let the tool load and run the XCLBIN file on the target platform
In the Vitis IDE, the package
process is automated and the tool creates the required files based on the build
target, platform, and OS. However, in the command line flow, you must specify the
Vitis packaging command (v++ --package
) with the correct options for the
job.