Create Vitis Platforms for Zynq UltraScale+ MPSoC - 2023.2 English

Vitis Tutorials: Vitis Platform Creation (XD101)

Document ID
Release Date
2023.2 English

Version: Vitis 2023.2 and Vivado 2023.2

In this module, you will create a custom Vitis embedded platform for ZCU104 capable of running Vitis acceleration applications. Additionally, this platform is versatile enough to support general embedded software applications. The diagram below illustrates the structure of this example system.

2PLHardwareSoftwareARM Trusted FirmwareCortexR5 Dual CortexA53CortexA53CortexA53CortexA53AXI interruptDPU……EthernetSD/EMMCUARTSPI FlashUSBDPHDMISATAButtonLEDSWITCHGPIO DriverZOL/XRT DriverInterrupt DriverUSB DriverSD DriverI2C DriverEthernet DriverQSPI DriverDDR Driver XRTVector AdditionAPP XCZU7EVClockgeneratorUserKernelSTEP3STEP2STEP1ARM resourcesPL resourcesData & control stream ZCU104DDR4DPU is kernel added and linked by V++ in step3. Bottom left is the platform created with step1 and step2.

Since ZCU104 is a validated AMD Evaluation Board and the AMD Vivado™ Design Suite includes its processing system presets, you can skip validating the board and start to build the full hardware and generate XSA.

To prepare the software components, follow these steps:

  1. Use the common image and create the DTB file according to the XSA file exported from step1.

  2. Package the platform.

  3. Run several test applications including Vitis AI applications on this customized platform to test it.

Custom Platform Planning

The platform should be able to run the following applications:

  • Vitis acceleration examples like Vector Addition

  • Vitis AI applications

Vadd application requires 1x clock, 1x interrupt, 1x M_AXI for kernel control, and 1x S_AXI for memory access.

On the software side, the platform should provide XRT and ZOCL packages. The host application can use the XRT OpenCL API to control the kernel. ZOCL is the kernel module that communicates with acceleration kernels. It needs a device tree node, so it should be added. The common image provided by AMD is loaded with these features. Besides these common features, you can also add GCC compilers for application native compilation. Additionally, you can replace the dropbear with openssh so that the network speed can be faster.

Step-by-Step Tutorial

The following sections will introduce the platform creation steps. Each section describes one major step in the platform creation process.

Start from step 1: Create the Hardware Platform.

Change Log


  • Vitis Unified IDE becomes the default IDE.


  • createdts add user’s device tree file support


  • From this version, the pre-built Linux common image is used instead of building Linux components with PetaLinux because the pre-built common image provides the most common features for Vitis acceleration and it can help expedite the platform creation process. If you wish to leverage the PetaLinux tool to customize your system, refer to the PetaLinux Customization Tutorial.

  • Simplify the device tree generation flow by using the newly introduced createdts XSCT command.


  • The Vivado project exports the XSA for hardware and hardware emulation separately. When creating the platform in step3, it is recommended that you provide separate XSA for hardware and hardware emulation.


Copyright © 2020–2023 Advanced Micro Devices, Inc

Terms and Conditions