Workspace Structure in the Vitis Software Platform - 2025.2 English - UG1400

Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400)

Document ID
UG1400
Release Date
2025-11-20
Version
2025.2 English

There are two project types in Vitis unified workspace:

Figure 1. Vitis Software Platform Project Types
Workspace
When you open the Vitis unified software platform, you need to create a workspace. A workspace is a directory location used by the Vitis unified software platform to store project data and metadata. You must provide an initial workspace location when the Vitis software platform launches.
XSA
The tool exports XSAs from the Vivado Design Suite. The XSA has hardware specifications such as processor configuration properties, peripheral connection information, address map, and device initialization code. You have to provide the XSA when creating a platform project.
SDT
The System Device Tree (SDT) is:
  • Generated based on the XSA using the SDTGEN utility upon the Platform Creation.
  • Contains all the processor and respective memory mapped IP for each processor.
  • For capturing and maintaining the HW metadata from the XSA. Does not deploy on the target.
The Lopper Utility is for extracting HW metadata. The metadata can include the processor list, xparameters.h generation, linker script generated, BSP creation, and so on.
Platform
The target platform is a combination of hardware components (XSA) and software components (domains/BSPs, boot components such as FSBL, and so on). Platforms in the repository are not editable. Platforms in the workspace are editable, and are referred to as platform components.
Platform Component
A platform component is a project in Vitis Unified IDE to define a platform.
Domain
  • A domain is a board support package (BSP) or operating system (OS) with a collection of software drivers.
  • You can build your application on the domain.
  • The created software image contains only the portions of the AMD library you use in your embedded design.
  • You can create multiple applications to run on the domain.
  • A domain ties to a single processor or a cluster of isomorphic processors (such as A53_0 or A53) in the platform.
System Project
  • A system project groups together applications that run simultaneously on a device.
  • Two standalone applications for the same processor cannot exist together in a system project.
  • Two Linux applications can exist together in a system project.
  • A workspace can contain multiple system projects.
Application (Software Project)
An application contains the source and header files to compile and generate a binary output (ELF) file. A system project can contain multiple applications. Each application must have a corresponding domain.
The Vitis platform has different configurations to support different use cases, outlined as follows:
Embedded
Embedded platforms are fixed platforms. This platform only supports embedded software development for Arm® processors and MicroBlaze™ processors. The Vitis tool cannot modify the hardware design.
Embedded Acceleration
This type of platform supports embedded software development and application acceleration. The platform provides clocks, bus interfaces, and interrupt controllers for the acceleration kernel.
Data Center Acceleration
You can develop acceleration kernels and x86 host applications on this platform. The kernel uses a PCIe® bus.
Note: The Vitis software platform can:
  • Extend the hardware design of extensible platforms.
  • Add acceleration kernels (PL or AI Engine) to the original hardware design.
You can use this type of platform for software development.

The following is an example of a typical Vitis software development workspace for AMD Zynq™ UltraScale+™ MPSoC.

Figure 2. Vitis Software Development Workspace Example for Zynq UltraScale+ MPSoC
  • You can create Linux domains for Arm® Cortex®-A53 SMP clusters. You can compile Linux applications and link them against libraries. The Linux domain's sysroot provides these libraries.
  • Arm Cortex-A53 core 0 and Arm Cortex®-R5F core 0 can run hello world applications at the same time. You can group these applications into one system project.
  • The bare metal build-in-self-test application on Arm Cortex-A53 core 0 can work in its own system project. The bare metal build-in-self-test application can have its own BSP settings.
  • The system project manages multiple application components. Adding multiple application components in one system project means these applications run simutaneously. You do not need a system project if one application runs at one time.
  • You can automatically create boot components such as FSBL and PMU firmware in platform projects. Boot components have their own BSP settings.