Why I Use Verilator Instead of Commercial Simulators
Published:
When I started my PhD, I assumed the right tool for RTL simulation was one of the big commercial simulators — VCS, Questa, or similar. A year in, I switched entirely to Verilator. Here is why.
Speed
Verilator compiles your SystemVerilog RTL into optimized C++ and runs it natively. For large SoC simulations running realistic software workloads, this is often 10–100x faster than event-driven commercial simulators. When you need to boot Linux on your simulated SoC to run a benchmark, that speedup is not optional — it is the difference between a usable flow and an unusable one.
Openness
Verilator is open source. That means I can instrument the simulation model, inject custom C++ side-channels, integrate it with QEMU via a shared memory interface, and generally treat the compiled simulation as a library rather than a black box. Commercial simulators rarely allow this level of integration.
Trade-offs
Verilator is a two-state simulator (no X/Z propagation by default) and does not support all SystemVerilog constructs out of the box. For gate-level simulation or formal verification, you still need other tools. But for architecture exploration and hardware/software co-design, it is hard to beat.
