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
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
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.