The AMD Vitis™
tool uses the AMD Vivado™
logic simulator (xsim) as the default simulator for all platforms, AMD Versal™
and AMD Zynq™
UltraScale+™ MPSoC embedded platforms.
However, for Versal embedded platforms, like
xilinx_vck190_base or custom platforms similar to
it, the Vitis tool also supports the use of
third-party simulators for hardware emulation: Mentor Graphics Questa Advanced
Simulator, Xcelium, and VCS. The specific versions of the supported simulators are the
same as the versions supported by Vivado Design Suite.
Enabling Third-Party Simulators
Third-party simulators are supported in the AMD Vitis™ Hardware Emulation flow. There are specific settings around third-party simulators that need to be provided in the AMD Vitis™ configuration file. The AMD Vitis™ Unified IDE also supports hardware emulation flow using third-party simulators. Third-party simulators such as Questa Advanced Simulator (Mentor Graphics), Xcelium (Cadence), VCS (Synopsys), and Riviera Simulator (Aldec) are supported when executing hardware emulation of your design. For more details, see the Vivado Design Suite User Guide: Logic Simulation (UG900) for third-party simulator setup.
You can enable these simulators by updating the AMD Vitis™ configuration file (config.ini or system.cfg). When the settings are added to the AMD Vitis™ configuration file, build the design using the v++ link and package flow as described in the script launch_hw_emu.sh. This will launch hardware emulation using the third party simulator specified.
The following are the configuration options to enable third-party
simulator setup during v++ -link command line
flow. To see enabling third party simulators in the AMD Vitis™ Unified IDE, refer to Enabling Third Party Simulators in the
Vitis Reference Guide (UG1702).
| Simulator | Vitis configuration file settings (config.ini or system.cfg) |
|---|---|
| Questa Advanced Simulator |
|
| Xcelium |
|
| VCS |
|
| Riviera |
|
v++ command line, for example:
v++ -link --config system.cfg
You can use the -user-pre-sim-script
and -user-post-sim-script options from the launch_emulator.py command to specify Tcl scripts to
run before the start of simulation, or after simulation completes. As an example, in
these scripts, you can use the $cwd command to get
the run directory of the simulator and copy any files needed prior to simulation, or
copy any output files generated at the end of simulation.
To enable hardware emulation, you must set up the environment for
simulation in the Vivado Design Suite. A key step
for setup is pre-compiling the RTL and SystemC models for use with the simulator. To
do this, you must run the compile_sim_lib command
in the Vivado tool. For more information on
pre-compilation of simulation models, refer to the
Vivado Design Suite User Guide: Logic
Simulation (UG900).
When creating your Versal
platform ready for simulation, the Vivado tool
generates a simulation wrapper which must be instantiated in your simulation test
bench. So, if the top most design module is <top>, then when calling launch_simulation in the Vivado
tool, it will generate a <top>_sim_wrapper
module, and also generates xlnoc.bd. These
files are generated as simulation-only sources and will be overwritten whenever
launch_simulation is called in the Vivado tool. Platform developers need to instantiate
this module in the test bench and not their own <top> module.