Simulator Options - 2025.2 English - UG1076

AI Engine Tools and Flows User Guide (UG1076)

Document ID
UG1076
Release Date
2025-11-20
Version
2025.2 English

This section describes the complete set of the AI Engine simulator (aiesimulator) options. In most cases, pointing to pkg-dir is sufficient.

Table 1. AI Engine Simulator Options
Options Description
-h, --help Shows the help message and exits.
--display-run-interval=<time in ns> Displays time stamp periodically after each time interval (in ns). For example, aiesimulator --display-run-interval=10 --pkg-dir=./Work --i=.. displays the time stamp every 10 ns.
--dump-vcd=<file> Dump VCD waveform information into <file>. Because the tool appends .vcd to the specified file name, you do not need to include the file suffix.
Note: This option allows you to access a subset of the signals. To access all signals or a different subset of the signals, use --options-file to specify the category of signals to be generated..
Note: To generate the XPE file from the aiesimulator generated vcd file, use the vcdanalyze tool as follows:
vcdanalyze --vcd <vcdfile> -s=<STARTTIME> -e=<ENDTIME> --xpe [OPTIONS]
The available options for vcdanalyze are as follows:
  • -s=<STARTTIME>: Specifies the start time in ps.
  • -e=<ENDTIME>: Specifies the end time in ps.
  • --out=<RPT>: Generates the workload estimation report in .rpt format.
  • -v: Generates verbose output (Optional).
  • --xpe: Generates the power estimate report.
  • --xpe-dir=<XPEOutputDir>: Specifies the directory for generating XPE reports. The default is ./aiesim_xpe.
For information on using the XPE file, see Power Design Manager User Guide (UG1556).
Note: You cannot use the --online and --dump-vcd options together. If both options are specified, only the --online option takes effect.
--options-file=<file> Text file used to select and generate specific VCD data. For example, aiesimulator --options-file=<options>.txt --dump-vcd. The <options.txt> file specifies modules whose data needs to be generated as VCD data.

Use this switch along with the --dump-vcd switch for generating VCD.

--enable-memory-check Enable runtime program and data memory boundary access check. Any violation access are reported as an [ERROR] message. This option is disabled by default. When you run a simulation with this option enabled, and open the run summary in the Vitis IDE, the graph view displays a Memory Violations tab. This tab reports all the memory violations detected in the simulation run. You can click on a specific violation and navigate to the line in the source code causing the violation. For more information, see Memory Violations.
--hang-detect-time=<time in ns> The aiesimulator exits if all active cores are in a stalled state after the time period (in ns), provided by this option. For example, if the option --hang-detect-time=10 is provided to the aiesimulator, if all the active cores are in a stalled state after 10 ns, the aiesimulator exits.
-i Alias of --input-dir=<dir> option.
-o Alias of --output-dir=<dir> option.
--pkg-dir=<dir> Specify the package directory, for example, ./Work.
--profile Generates profiling data for all used cores. Allows generation of printf trace messages on stdout and collects profiling statistics during simulation. This generation can slightly slow down the simulator.

Optionally, specify profiling of specific cores by using --profile=(col,row)(col,row)...

Note: hw_emu does not support this option.
--simulation-cycle-timeout=<cycles> Run the application for a given number of cycles after it is loaded. The cycles are AI Engine-based cycles, which in turn depend on the frequency that the AI Engine clocked at.
Tip: Specify the --simulation-cycle-timeout option to end the simulation session after the specified number of cycles. However, when specifying simulation timeout during the debug process, ensure you specify a larger number of cycles. Specifying a large number of cycles is required because the debug terminates when it reaches the timeout cycle.

This option is also passed to AI Engine simulator using the aiesim options txt file and the file contains:

AIE_SIM_TIMEOUT=<cycles>

aiesim_options.txt file is passed to aiesimulator command:

aiesimulator --options-file=<aiesim_options.txt> --pkg-dir=Work

--online -text -wdb

Use this option with -text and -wdb to parse VCD data on-the-fly, to produce an event.txt file, and waveform database (WDB) output file.

For example, aiesimulator --pkg-dir=./Work --i=.. --online -text -wdb produces a WDB file and an event text file that can be opened in the Vitis IDE.

Note: You cannot use the --online and --dump-vcd options together. If both options are specified, only the --online option takes effect.
--output-time-stamp Use --output-time-stamp=no to get output file without time values and --output-time-stamp to get uniform time value (in ns) in output file.

This example shows an AI Engine simulator display run:

aiesimulator --pkg-dir=Work/ --display-run-interval=10
                                          
AIEMLsim feature license is found.
INFO: Executing config: Work//config/scsim_config.json
set use_simple_noc to: 1
Loading device config from: VC2802.json
 AIE_WORK_DIR = Work/
Initializing AIE driver...
Initializing ADF API...
XAIEFAL: INFO: Resource group Avail is created.
XAIEFAL: INFO: Resource group Static is created.
XAIEFAL: INFO: Resource group Generic is created.
IP-INFO: [ps_i24_ps_main] IP loaded.
Warning: ps_lib_path is empty, And supported simulators are XSIM, RIVIERA, XCELIUM, VCS and QUESTA

Info: DEVICE FILE: VC2802.json

Info: AIE SOLUTION FILE: Work//arch/aieshim_solution.aiesol
Disable unused tiles
xpe directory: BaseDesign/aie/Work//reports/graph.xpe
[AIESIM_OPTIONS]: aiesim_options file path aiesimulator_output/aiesim_options.txt
[INFO]: AIE Cycle-approximate Model
Running Dispatch Server on port: 45443
INFO: Running AIE2 MTMODEL Simulation with 3 threads
[INFO]: Disable Unused Memory Tiles 
AIE2 ISS r1p4
ISS disables unused tiles
[INFO]: Array constructed 
[INFO]: Shim constructed 
[INFO]: mem_row constructed 
------------------------------------------------------------------------------------------------
SLAVE STREAM INFO:  | Port Name         | Port Width        | Stream Type       | Channel Index     
                    | S00_AXIS          | 128               | PL STREAM         | 160, 161          
                    | S01_AXIS          | 128               | PL STREAM         | 136, 137          
                    | S02_AXIS          | 128               | PL STREAM         | 128, 129          
                    | S03_AXIS          | 128               | PL STREAM         | 168, 169          
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
MASTER STREAM INFO: | Port Name         | Port Width        | Stream Type       | Channel Index     
                    | M00_AXIS          | 128               | PL STREAM         | 114, 115          
                    | M01_AXIS          | 128               | PL STREAM         | 108, 109          
                    | M02_AXIS          | 128               | PL STREAM         | 90, 91            
                    | M03_AXIS          | 128               | PL STREAM         | 132, 133          
------------------------------------------------------------------------------------------------
Enabled fast PM writes.
Enabled fast DM writes.
0 s IP-INFO: Starting to send data from file: default case  ./data/input.txt
Starting to receive data into file: aiesimulator_output/data/output0.txt
IP-INFO: Starting to send data from file: default case  ./data/input.txt
Starting to receive data into file: aiesimulator_output/data/output1.txt
IP-INFO: Starting to send data from file: default case  ./data/input.txt
Starting to receive data into file: aiesimulator_output/data/output2.txt
IP-INFO: Starting to send data from file: default case  ./data/input.txt
Starting to receive data into file: aiesimulator_output/data/output3.txt
IP-INFO: [ps_i24_ps_main] IP started.
60 ns Initializing graph traceGraph...
530 ns Configuring PL-Interface for graph traceGraph...
1130 ns Loading elfs of graph G...
Initializing graph G...
1180 ns Resetting cores of graph G...
1210 ns Configuring DMAs of graph G...
1220 ns Configuring PL-Interface for graph G...
1280 ns Set 16 iterations for the core(s) of graph G
Enabling core(s) of graph G
1460 ns Waiting for core(s) of graph G to finish execution ...
14470 ns core(s) are done executing