As always, you can use your standard simulation tools to simulate the VHDL/Verilog generated by SpinalHDL. However, since SpinalHDL 1.0.0, the language integrates an API to write testbenches and test your hardware directly in Scala. This API provides the capabilities to read and write the DUT signals, fork and join simulation processes, sleep and wait until a given condition is reached. Therefore, using SpinalHDL’s simulation API, it is easy to integrate testbenches with the most common Scala unit-test frameworks.
To be able to simulate user-defined components, SpinalHDL uses external HDL simulators as backend. Currently, four simulators are supported:
GHDL (experimental, since SpinalHDL 1.4.1)
Icarus Verilog (experimental, since SpinalHDL 1.4.1)
VCS (experimental, since SpinalHDL 1.7.0)
XSim (experimental, since SpinalHDL 1.7.0)
With external HDL simulators it is possible to directly test the generated HDL sources without increasing the SpinalHDL codebase complexity.