AI Engine Stall Analysis with Vitis Analyzer - AI Engine Stall Analysis with Vitis Analyzer - 2026.1 English - XD100

Vitis Tutorials: AI Engine Development (XD100)

Document ID
XD100
Release Date
2026-06-23
Version
2026.1 English

The Vitis Analyzer uses the event trace from the AI Engine simulation to do stall analysis. It shows an overview of the stall status in metrics. It also helps you determine where the stall has happened, and the possible causes.

If you are using the Vitis Analyzer to do stall analysis, run the AI Engine simulator with --online -wdb -ctf options to generate event trace information in the background:

aiesimulator --pkg-dir=./Work --online -wdb -ctf

Note: For more information about AI Engine stall analysis using the Vitis Analyzer in the hardware emulation flow, refer to the Versal Adaptive SoC AI Engine Programming Environment User Guide (UG1076).

In the Vitis Analyzer, the Performance Metrics view gives an overview of the stalls in the design:

Performance Metrics View

Each tile shows percentages for each type of stall. From the metrics table, you can see that tile (24,0) has a large percentage of lock stall (98.896%), and tile (25,0) has a large percentage of stream stall (98.380%). These metrics indicate that the design is hanging, and that analysis is required.

In the Graph view of the Vitis Analyzer, you can visualize the stalled path in the graph. This gives an indication of where the stall has happened in the design. By understanding the design behavior, it is also possible to estimate the cause of the hang.

For example, select the stream stall in Trace view, and switch to Graph view. In this design, kernel k[0] hangs in stream stall. The full destination port is gr.k[1]/in, which means that the destination kernel k[1] is not receiving data from the stream.

Stream stall in Trace View

Stream stall in Graph View

Select the stall in Lock Stalls in Trace view, and switch to Graph view. The red path to kernel k[1] shows that it is trying to acquire the lock of the input buffer, but without success. The white path shows that kernel k[0] is holding the lock of the buffer.

Lock stall in Trace View

Lock stall in Graph View

The preceding analysis provides the cause of the hang. The direct resolution, without modifying kernel code, is to increase the FIFO size between the two kernels.

For more information about AI Engine stall analysis feature, refer to the Versal Adaptive SoC AI Engine Programming Environment User Guide (UG1076).