Hardware Emulation Target - 2024.2 English - UG1700

Data Center Acceleration Using Vitis User Guide (UG1700)

Document ID
UG1700
Release Date
2025-01-15
Version
2024.2 English

Hardware emulation runs an RTL simulation of the programmable logic design, where the PL kernels are integrated with a cycle-approximate model of the hardware platform.

Hardware emulation is especially useful for the following tasks:

  • Checking the functional correctness of the RTL code synthesized from the C, C++ kernel code
  • Testing the interactions between different kernels or multiple CUs
  • Using hardware waveforms to gain detailed visibility into internal activity of the kernels
  • Getting initial performance estimates for the application
  • C/++ or Python traffic generators can be used to inject traffic in the simulation

Each kernel is compiled to a hardware model (RTL). During hardware emulation, kernels are run in the logic simulator, with a waveform viewer to examine the kernel design. Some third-party simulators are also supported as described in Simulator Support in Hardware Emulation. In addition, hardware emulation provides performance and resource estimates for the hardware implementation.

Hardware emulation provides a detailed, cycle-accurate, view of kernel activity. AMD recommends using small data sets for validation during hardware emulation to keep runtimes manageable.

Important: The DDR memory model and the memory interface generator (MIG) model used in hardware emulation are high-level simulation models. These models provide good simulation performance, but only approximate latency values and are not cycle-accurate like the kernels. Therefore, performance numbers shown in the profile summary report are approximate, and should be used for guidance and for comparing relative performance between different kernel implementations.

As discussed in v++ Command in the Vitis Reference Guide (UG1702), the hardware emulation target is specified in the v++ command with the -t option:

v++ -t hw_emu ...