Platforms - 2023.2 English - UG1393

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 English

A platform provides design context to integrate AI Engine design and PL kernels. Platform hardware is represented by an XSA container built using the Vivado Design Suite, and a platform software that includes a board support package (BSP) as well as operating systems, boot files, drivers, libraries, and file systems to link application software and build boot images. The Vitis SDK and PetaLinux tools can be used to build BSPs, in addition to system and application software customized to your implemented hardware that includes AI Engine and PL kernels.

Types of Platforms

There are three type of hardware platforms: DFX, Flat design or BDC (Block Design Container) based. These are encapsulated as XSA files built in Vivado and can support Dynamic Function eXchange (DFX) or represent a flat design. In BDC-based design, AI Engine and AI Engine connected PL subsystem can be placed in the block design and should be added under the top BD as you do in DFX. In DFX platforms, the AI Engine will reside in the reconfigurable partition that the v++ linker will compile into a reconfigurable module. They share the same connectivity abstractions for CPU control, external memory, streaming I/O, and clocking:

Extensible Platform
An extensible platform contains a pre-synthesized block design into which the Vitis v++ compiler configures the AI Engine hardware. The AI Engine hardware configuration is extracted by the v++ compiler from the libadf.a file that is the result of a compilation of the AI Engine applicable. The v++ compiler also integrates the PL kernels into the platform's hardware design context. The hardware design context provides connectivity abstractions for CPU control, external memory, streaming I/O, and clock networks. When targeting an extensible hardware platform, the AI Engine libadf.a influences the hardware implementation including interfaces between the AI Engine, PL kernels, and platform hardware. For information related to Versal platform clocking, see the Versal AI Core Series Data Sheet: DC and AC Switching Characteristics (DS957).

The Tcl command to export an extensible xsa is: write_hw_platform -force <filename.xsa>. If you don't specify any switch with write_hw_platform, the Vivado tool generates an extensible XSA.

A base platform is an extensible platform provided by AMD that targets an AMD board such as the VCK190, for example, xilinx_vck190_base_202310_1.xsa (flat) or xilinx_vck190_base_dfx_202310_1.xsa (DFX). For a flat platform, a generated XSA contains the full PL bitstream. Targeting a DFX platform results in two (or more) generated fixed XSAs, one for the static region that is used to boot the device and remains resident and active at runtime, and one (or more) partial XSAs that represent the partial bitstream and metadata associated with the implemented dynamic region.

A custom platform is an extensible XSA that is built using the Vivado Design Suite. Like a base platform, a custom platform is a Vivado hardware design containing a dynamic region block design in which PFM connectivity attributes have been declared. This platform is generated using the write_hw_platform function provided in Vivado. You can build a custom platform starting from a pre-existing Vivado project, from source files provided by AMD for a base platform, or from scratch. For more information, see Creating Embedded Platforms in Vitis.

Fixed Platform
A fixed hardware platform encapsulates an implemented hardware design built by the v++ linker using the Vivado Design Suite. When targeting a fixed hardware platform, the AI Engine compiler must conform to the AI Engine / PL interface constraints defined by the hardware.

The Tcl command to export fixed XSA from Vivado is: write_hw_platform -fixed <fixed.xsa>

In this chapter, the base platform xilinx_vck190_base_202310_1 is used to show command usage. For targeting the DFX platform xilinx_vck190_base_dfx_202310_1, see Packaging for DFX Platforms.

Platform Clocking

Platforms have a variety of clocking: processor, PL, and AI Engine clocking. The following table explains the clocking for each.

Table 1. Platform Clocks
Clock Description
AI Engine Can be configured in the platform in the AI Engine IP.
Processor Can be configured in the platform in the CIPS IP.
Programmable Logic (PL) Can have multiple clocks and can be configured in the platform.
NoC Device dependent and can be configured in the platform in the CIPS and NoC IP.
  1. These clocks are derived from the platform and are affected by the device, speed grade, and operating voltage.

For information on Versal device clocks, see Versal AI Core Series Data Sheet: DC and AC Switching Characteristics (DS957).