Verilator has some serious limitations:<p><pre><code> The driving test bench is C/C++
It is a cycle simulator, not a delta-time simulator: it will
only simulate synthesizable code (not test bench code)
It cannot do back-annotated timing simulations
It cannot use encrypted vendor libraries (no simulations with Xilinx IP, for example)
It has no mixed-HDL language capabilities
It requires Gtkwave to view waveforms with (opinion, but I hate the UI)
</code></pre>
It is a terrible recommendation for beginners - you'd be much better served by using Xilinx Vivado's inbuilt simulator and waveform viewer.