Data Center vs. Embedded Platforms - 2023.2 English

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

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

Emulation is supported for both data center and embedded platforms. For data center platforms, the host application is compiled for x86 server, while the device is modeled as separate x86 process emulating the hardware. The user host code and the device model process communicate using RPC calls. For embedded platforms, where the CPU code is running on the embedded Arm processor, emulation flows use QEMU (Quick Emulator) to mimic the Arm-based PS-subsystem. In QEMU, you can boot embedded Linux and run Arm binaries on the emulation targets.

For running software emulation (sw_emu) and hardware emulation (hw_emu) of a data center application, you must compile an emulation model of the accelerator card using the emconfigutil command and set the XCL_EMULATION_MODE environment variable prior to launching your application. The steps are detailed in Running Emulation on Data Center Accelerator Cards.

For running sw_emu or hw_emu of an embedded application, you will compile the application for an Arm processor using Arm-GCC and launch the QEMU emulation environment on an x86 processor to model the execution environment of the Arm processor. This requires the use of the launch_emulator.py command, or launch_emulator.sh shell scripts generated during the build process. The details of this flow are explained in Running Emulation on an Embedded Processor Platform.

Tip: You can also compile and run the simulation for an embedded processor application directly on the x86 processor as described in Embedded Processor Emulation Using PS on x86. This compiles using x86 GCC and does not require QEMU.