Debugging the System Project and AI Engine Components - 2023.2 English

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

Document ID
Release Date
2023.2 English

You can debug AI Engine and HLS components in a standalone capacity, or you can debug the System project, including the top-level PS application, and any additional components. Within this framework, you can also debug applications built from the command line, or system projects built in the Vitis unified IDE. You can debug applications running on the Linux OS, or in bare-metal systems. Finally, you can debug hardware emulation builds that let you simulate the application, or debug the actual application running on hardware. All of these configurations are addressed in the following topics.

The following process is recommended for debugging AI Engine applications and system designs:

  1. Use x86 simulation for both single and multi-kernel debug. It supports breakpoints and single stepping using the GNU debugger
  2. Use aiesimulator to verify timing and to check that it will fit within the program memory and stack/heaps size within the available hardware memory space. The aiesimulator and x86simulator and their use are described in Simulating an AI Engine Graph Application in AI Engine Tools and Flows User Guide (UG1076)
  3. Software emulation for functional verification of the System project, including Application component, AI Engine component, and c-models for user PL code
  4. Hardware emulation for complete integration testing including PL, PS, and AI Engine domains as applicable
  5. Hardware-based testing of the final booted system

If code changes are necessary at any step, repeat all steps from the beginning.

Note: It is recommended to use the compiler optimization option --xlopt = 0 because higher compiler optimizations will reduce debug visibility.