The simplest form of tracing is to use a formatted printf()
statement in the code for printing debug
messages. Visual inspection of intermediate values, addresses, etc. can help you
understand the progress of program execution. No additional include files are
necessary for using printf()
other than standard
C/C++ includes (stdio.h). You can add printf()
statements to your code to be processed during
simulation, or hardware emulation, and remove them or comment them out for hardware
builds.
Adding printf
statements to your
AI Engine kernel code will increase the
compiled size of the AI Engine program. Be
careful that the compiled size of your kernel code does not exceed the per-AI Engine processor memory limit of 16 KB.
aiesimulator --profile
command to enable
the printf()
execution during a simulator run. If
--profile
is not specified, the printf()
function is ignored.A separate driver and binary is used for this functionality to allow
the main simulator to remain as fast as possible. Using the debug simulator driver
produces a per-tile profile report under the output directory which gives detailed
cycle-level statistics of kernel execution. In addition, using the --profile
option generates a run_summary file that is written to the ./aiesimulator_output folder that can be viewed as
described in Viewing the Run Summary in the Vitis Analyzer.