Simulator Options - 2024.1 English

AI Engine Tools and Flows User Guide (UG1076)

Document ID
UG1076
Release Date
2024-06-27
Version
2024.1 English

The complete set of the AI Engine simulator (aiesimulator) options are described in this section. 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=.. will display 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, it is not necessary to include the file suffix.
Note: This option allows you to access a subset of the signals. If you want all the signals or a different subset of the signals you should use the --options-file option to specify the category of signals to be generated in the VCD file.
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 are:
  • -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: The --online option and --dump-vcd option cannot be used 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 will specify modules whose data needs to be generated as VCD data.

This switch should be used along with --dump-vcd switch for generating VCD.

--enable-memory-check Enable runtime program and data memory boundary access check. Any violation access will be 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 will exit 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 after 10 ns all the active cores are in a stalled state, the aiesimulator will exit.
-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 can slightly slow down the simulator.

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

Note: This option is not supported in hw_emu.
--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, be sure to specify a larger number of cycles because the debug will terminate when the timeout cycle is reached.
--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 will produce a WDB file and an event text file that can be opened in the Vitis IDE.

Note: The --online option and --dump-vcd option cannot be used 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.

An AI Engine simulator display run example follows:

aiesimulator --pkg-dir=Work/ --display-run-interval=10
                                           AI Engine Simulator
                                     Version 2024.1 (linux64-bit)
                                     SW Build 5026554 on 2024-04-03-15:21:04
                          Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
                          Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved.
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