Vitis Unified Software Platform - 2020.2 English

Zynq UltraScale+ MPSoC Software Developer Guide (UG1137)

Document ID
Release Date
2020.2 English

The Vitis™ unified software platform is an integrated development environment (IDE) for the development of embedded software applications targeted towards Xilinx embedded processors. The Vitis software platform works with hardware designs created with Vivado Design Suite. The Vitis software platform is based on the Eclipse open source standard and the features for software developers include:

  • Feature-rich C/C++ code editor and compilation environment
  • Project management
  • Application build configuration and automatic Makefile generation
  • Error navigation
  • Integrated environment for seamless debugging and profiling of embedded targets
  • Source code version control
  • System-level performance analysis
  • Focused special tools to configure FPGA
  • Bootable image creation
  • Flash programming
  • Script-based command-line tool

The Vitis IDE lets you create software applications using a unified set of Xilinx tools for the Arm® Cortex™-A53 and Cortex™-R5F processors as well as for Xilinx MicroBlaze™ processors. It provides various methods to create applications, as follows:

  • Bare metal and FreeRTOS applications for MicroBlaze
  • Bare metal, Linux, and FreeRTOS applications for APU
  • Bare metal and FreeRTOS applications for RPU
  • User customization of PMU firmware
  • Library examples are provided with the Vitis tool (ready to load sources and build), as follows:
    • OpenCV
    • OpenAMP RPC
    • FreeRTOS “HelloWorld”
    • lwIP
    • Performance tests (Dhrystone, memory tests, peripheral tests)
    • RSA authentication for preventing tampering or modification of images and bitstream
    • First stage boot loader (FSBL) for APU or RPU.

You can export a block design, hardware design files, and bitstream files to the export directory directly from the Vivado Project Navigator. For more information regarding the Vivado Design Suite, see the Vivado Design Suite Documentation.

All processes necessary to successfully complete this export process are run automatically. The Vitis IDE creates a new hardware platform project within the workspace containing the following files:

  • .project: Project file
  • psu_init.tcl: PS initialization script
  • psu_init.c, psu_init.h: PS initialization code
  • psu_init.html: Register summary viewer
  • system.hdf: Hardware definition file

The compiler can be switched as follows:

  • 32-bit or 64-bit (applications that are targeted to Cortex-A53)
  • 32-bit only (applications targeted to Cortex-R5F, and Xilinx MicroBlaze devices)

For the list of build procedures, see the Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400), where built-in help content lets you explore further after you launch the Vitis IDE.

The Vitis software platform has the following IDE extensions.

XSCT Console
Xilinx Software Command-line Tool (XSCT) is an interactive and scriptable command-line interface to the Vitis software platform. As with other Xilinx tools, the scripting language for XSCT is based on Tools Command Language (Tcl). You can run XSCT commands interactively or script the commands for automation. XSCT supports the following actions.
  • Creating platform projects and application projects
  • Manage repositories
  • Manage domain settings and add libraries to domains
  • Set toolchain preferences
  • Configure and build applications
  • Download and run applications on hardware targets
  • Create and flash boot images by running Bootgen and program_flash tools
Bootgen Utility
Bootgen is a Xilinx tool that lets you stitch binary files together and generate device boot images. Bootgen defines multiple properties, attributes and parameters that are input while creating boot images for use in a Xilinx device. Bootgen comes with both a graphical user interface and a command line option. The tool is integrated into the Vitis software platform for generating basic boot images using a GUI, but the majority of Bootgen options are command line-driven. For more information on the Bootgen utility, see the Bootgen User Guide (UG1283).
Program Flash
Program Flash is a tool used to program the flash memories in the design. Various types of flash types are supported by the Vitis software platform for programming.
A software repository is a directory where you can install third-party software components, as well as custom copies of drivers, libraries, and operating systems. When you add a software repository, the Vitis software platform automatically infers all the components contained with the repository and makes them available for use in its environment. Your workspace can point to multiple software repositories.
Program FPGA
You can use the Program FPGA feature to program FPGA using bitstream.
Device Tree Generation
Device tree (DT) is a data structure that describes hardware. This describes hardware that is readable by an operating system like Linux so that it does not need to hard code details of the machine. Linux uses the DT basically for platform identification, runtime configuration like bootargs, and device node population.

For a detailed explanation on the Vitis IDE features, and to understand the embedded software design flow, see the Vitis Unified Software Platform Documentation: Embedded Software Development (UG1400).

You can download the Vitis tool from the Embedded Design Tools Download.