Data Center Application Acceleration Development Flow - 2022.1 English

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

Document ID
Release Date
2022.1 English

The following diagram describes the steps needed to build and run an application for use on the Alveo Data Center accelerator cards. The steps are summarized below, and the details of each step can be found throughout this documentation.

Figure 1. Application Development Flow for Data Center Accelerator Cards
x86 Application Compilation
Compile the host application to run on the x86 processor using the G++ compiler to create a host executable file. The host program interacts with kernels in the PL region. For more information on writing the host application, refer to Developing Applications. For more information on compiling the host application, refer to Building the Host Program.
PL Kernel Compilation and Linking
PL kernels are compiled for implementation in the PL region of the target platform. PL kernels can be compiled into Xilinx object form (XO) file using the Vitis compiler (v++), Vitis HLS for C/C++ kernels, or the package_xo command for RTL kernels. For information on coding kernels, refer to C/C++ Kernels or RTL Kernels.

The Vitis compiler also links the kernel XO files with the hardware platform to create a device executable (.xclbin) for the application. For more information, refer to Building the Device Binary.

Xilinx object (XO) files are linked with the target hardware platform by the v++ --link command to create a device binary file (.xclbin) that is loaded into the Xilinx device on the target platform.

Running the Application
For Alveo Data Center accelerator cards, the .xclbin file is the required build object for running the system. When running the application, you can run software emulation, hardware emulation, or run on the actual physical accelerator platform. For more information, refer to Running the Application Hardware Build.
  • When the build target is software or hardware emulation, the emconfigutil command builds an emulation model of the target platform. The Vitis compiler generates simulation models of the kernels in the device binary and running the application runs this model of the system. As described in Build Targets, emulation targets let you build, run, and iterate the design over relatively quick cycles; debugging the application and evaluating performance.
  • When the build target is the hardware system, the target platform is the physical device. The Vitis compiler generates the .xclbin using the Vivado Design Suite to run synthesis and implementation and resolve timing. Running the application runs your system on the hardware. The build process is automated to generate high quality results. However, hardware-savvy developers can fully leverage the Vivado tools in their design process.
Using System Compilation Mode
The Vitis System Compilation mode offers a unified system composition of host and kernel from C++ that provides several design productivity improvements, such as using C-threads for writing host-code and simplifying HW/SW interaction, and providing an optimized data transfer pipeline out of the box. This mode uses the same Vitis tools for building the system, but the development flow is different due to the unified approach to system composition and configuration. Refer to Using Vitis System Compilation Mode for more information.