Creating a Platform Component - 2023.2 English

Vitis Unified Software Platform Documentation: Application Acceleration Development (UG1393)

Document ID
Release Date
2023.2 English

A platform is the starting point of your AMD Vitis™ design. Vitis applications are built on top of the platforms.

An embedded platform includes a hardware platform and a software platform.

Hardware Platform

The hardware platform is the static, unchanging portion of your hardware design. It includes the Xilinx Support Archive (XSA) file exported from the AMD Vivado™ Design Suite.

Hardware platform is divided into two main categories: fixed hardware platform and extensible hardware platform.

The fixed platform contains the hardware specifications like processor configuration properties, peripheral connection information, address map, and device initialization code.

The extensible hardware platform contains the hardware specifications as well as the acceleration resources that can be used by acceleration applications, for example, Input and output interfaces, clocks, AXI buses, and interrupts. Vitis adds kernels and infrastructure modules to the hardware design as needed to facilitate data movement. Acceleration kernels can share data with platform IPs, but cannot change or modify them. For information about setting up the hardware platform, refer to Installing Xilinx Runtime and Platforms.

You can also create the hardware platform using the --part option without creating a complete platform design in the Vivado Design Suite. This is a recommended method when targeting devices for which evaluation boards or platforms are not yet available. Using this flow, you can start the development of any AI Engine components, and HLS components of your system design. The steps for the flow are as follows:

  1. Compile the AI Engine component with --part:
    v++ -c --mode aie --part ...
  2. Generate HLS component using part specified in the hls_config.cfg file:
    v++ --mode hls --config ...
  3. Link the system and generate an XSA using --part:
    v++ --link -t hw --part ... -o fixed.xsa
  4. Package the system and generate the XCLBIN from the fixed XSA:
    v++ --package --platform fixed.xsa ...

Software Platform

The software platform is the environment that runs the software to control acceleration kernels for acceleration applications. It includes the domain setup and boot components setup.

By default, all AMD pre-built platforms have a Linux domain that has enabled Xilinx Runtime (XRT) so that acceleration applications can run on this environment. The pre-built binaries for Linux kernel image and rootfs are located in a separate download file on the PetaLinux download page. See the "Common images for Embedded Vitis platforms" section of the Xilinx download center. Because the device tree is unique to each platform, it is provided as a component with the Linux XRT domain inside the platform.

Linux Domain Components must be provided when there is a Linux domain in the embedded platform. These components can be generated by PetaLinux, Yocto, or third-party frameworks. Because these components can be shared across all AMD demo boards for the given FPGA family, a common Linux component image generated by PetaLinux is provided for AMD Zynq™ 7000 SoC and AMD Zynq™ UltraScale+™ MPSoCs.

The following Linux images can be downloaded from the PetaLinux download page:

Root File System (RFS)
Includes binaries, libraries, and setups for a Linux file system. In the AMD-provided common rootfs, XRT has been installed so that acceleration application can run on this Linux environment.
Kernel Image
A compiled Linux kernel. The common kernel image provided by AMD includes most AMD peripheral drivers.
Used for cross compilation. It provides the libraries to be linked when compiling applications for a target system.
Note: Optionally, you can pack Linux domain components into embedded platforms. When creating a Linux application in the Vitis IDE, the Linux domain components in the platform setting will be the default and initial settings if they have been set in the platform. You can overwrite these settings with components installed elsewhere.

AMD pre-built embedded platforms and pre-built common Linux components are provided in separate download files. You can regenerate the common Linux components from the platform source files hosted on the Vitis Embedded Platform GitHub repository by setting the environment variable COMMON_RFS_KRNL_SYSROOT=FALSE before running make .