Verilator is the fastest free Verilog HDL simulator.

Verilator is invoked with parameters similar to GCC or Synopsys's
VCS. It "Verilates" the specified synthesizable Verilog or
SystemVerilog code by reading it, performing lint checks, and
optionally inserting assertion checks and coverage-analysis points.
It outputs single- or multi-threaded .cpp and .h files,
the "Verilated" code.

Optional runtime dependencies:

* gtkwave for FST tracing (and waveform viewing)
* z3 for constrained randomization
* SystemC for SystemC support
