You can simulate AI Engine graphs and designs using the following simulator flows. These flows provide a trade-off between simulation speed and accuracy in your AI Engine kernel and graph development phase:
- Untimed (x86simulator)
- Verifies the functional correctness of the code and validates performance in a standalone context, independently of interactions with other functions. This simulation flow is helpful for verifying the functional accuracy of your AI Engine kernels and graphs and offers the quickest simulation run time.
- Cycle-approximate (aiesimulator)
- Calculates core vector load and memory access more precisely, which you can use to estimate AI Engine graph performance and improve the accuracy of the power estimation. In addition, this simulation flow models the GMIO and PLIO interfaces to the AI Engine graph and models the NoC, PS, and PL, providing cycle-approximate results.
Stimulus to the AI Engine simulation can
be provided using two methods. For quick functional verification, input_plio
statement can be added to the graph file to
provide a list of input files. Alternatively, traffic generators can be used to more
accurately model the dynamic environment. For more information, see the AXIS External Traffic Generator Feature
Tutorial.
For more information on these simulation flows, see the following resources:
- This link in the AI Engine Tools and Flows User Guide (UG1076)
- Vitis Tutorials: AI Engine Development Debug Walkthrough
- Vitis Tutorials: AI Engine Versal Integration
- Vitis Tutorials: AI Engine-ML Versal Integration