QEMU - 2022.1 English

Versal ACAP System Software Developers Guide (UG1304)

Document ID
Release Date
2022.1 English

QEMU is a fast functional and instruction accurate emulator that can be installed on Linux hosts. The Xilinx QEMU features a large number of the same peripheral models as Xilinx silicon and can even inject real data from the host into emulation (for example, Ethernet, UART, storage, CAN-FD, etc.) to stimulate your applications. Xilinx has provided QEMU as a development platform for many generations including Versal ACAP, Zynq UltraScale+ MPSoC, Zynq-7000, and MicroBlaze processors.

The Xilinx QEMU is already integrated in Vitis, PetaLinux, and Yocto in every Xilinx release. For the most up to date development branch, you can download Xilinx QEMU, build and install from source.

To use this emulation platform you must be familiar with:

  • Device architecture
  • GNU debugger (GDB) for remote debugging
  • Generation of guest software applications using Yocto, Xilinx PetaLinux and Vitis tools
  • Linux device trees

This document focuses on the list of features supported for the emulation of Versal ACAP in Xilinx QEMU. The purpose of this section is to familiarize software application developers, system software developers, system hardware designers, and validation/verification designers with the basic information to use and debug software with QEMU.

QEMU Model for Versal ACAP

The Xilinx Versal ACAP QEMU model supports the following resources:

  • Central Processing Units (CPUs)
    • Application Processing Unit (APU): 2 x Arm Cortex-A72 processor.
    • Real-time Processing Unit (RPU): 2 x Arm Cortex-R5F processor.
  • PS management controller (PSM): 1 x MicroBlaze processor
  • Platform Management Controller (PMC)
    • Platform processing unit (PPU) 0 (MicroBlaze processor)
    • Platform processing unit (PPU) 1 (MicroBlaze processor)
  • Memory
    • On-chip memory (OCM)
    • Tightly coupled memory (TCM)
    • DDR memory
    • Accelerator RAM (XRAM)
  • Security Modules
    • Device Key Storage
      • Battery Backed Random Access Memory (BBRAM)
      • eFUSE (Electronic Fuse)
      • Physical Unclonable Function (PUF - API only)
    • Crypto Primitives
      • Advanced Encryption Standard - Galois/Counter Mode (AES-GCM)
      • Secure Hash Algorithm 3 (SHA-3)
      • RSA-4096
      • Elliptic Curve Digital Signature Algorithm (ECDSA)
  • Peripheral and Controllers
    • 2 x Serial Peripheral Interface (SPI)
    • Octal SPI (OSPI)
      • OSPI DMA
    • 2 x SD
    • eMMC
    • 2 x CANFD
    • 2 x UART
    • 3 x Inter-Integrated Circuit (I2C)
      • 2 in PS
      • 1 in PMC
    • 2 x Gigabit Ethernet
    • 4 x triple timer counter (TTC)
    • Inter-processor interrupt (IPI)
    • Xilinx Memory Protection Unit (XMPU)
    • Xilinx Peripheral Protection Unit (XPPU)
    • System Memory Management Unit (SMMU)
    • General interrupt controller (GIC) v3
    • Direct memory access (DMAs)
    • Real-Time Clock (RTC)
    • USB (host-mode only)
    • System monitor (SYSMON) support

Using the QEMU

For more information on using the QEMU, see the Xilinx Quick Emulator User Guide: QEMU .