# Simulation Runtime Arguments

The following are the arguments that may be passed to a Verilated executable, provided that executable calls `VerilatedContext*->commandArgs(argc, argv)`.

All simulation runtime arguments begin with “+verilator”, so that the user’s executable may skip over all “+verilator” arguments when parsing its command line.

Summary:

>     +verilator+debug                      Enable debugging
>     +verilator+debugi+<value>             Enable debugging at a level
>     +verilator+coverage+file+<filename>   Set coverage output filename
>     +verilator+error+limit+<value>        Set error limit
>     +verilator+help                       Show help
>     +verilator+noassert                   Disable assert checking
>     +verilator+prof+exec+file+<filename>  Set execution profile filename
>     +verilator+prof+exec+start+<value>    Set execution profile starting point
>     +verilator+prof+exec+window+<value>   Set execution profile duration
>     +verilator+prof+vlt+file+<filename>   Set PGO profile filename
>     +verilator+quiet                      Minimize additional printing
>     +verilator+rand+reset+<value>         Set random reset technique
>     +verilator+seed+<value>               Set random seed
>     +verilator+V                          Show verbose version and config
>     +verilator+version                    Show version and exit

+verilator+coverage+file+<filename>

  When a model was Verilated using `--coverage`, sets the filename to write coverage data into. Defaults to `coverage.dat`.

+verilator+debug

  Enable simulation runtime debugging. Equivalent to `+verilator+debugi+4`.

  To be useful, the model typically must first be compiled with debug capabilities by Verilating with `--runtime-debug` or -CFLAGS -DVL_DEBUG=1.

+verilator+debugi+<value>

  Enable simulation runtime debugging at the provided level.

+verilator+error+limit+<value>

  Set number of non-fatal errors (e.g. assertion failures) before exiting simulation runtime. Also affects number of $stop calls needed before exit. Does not affect $fatal. Defaults to 1.

+verilator+help

  Display help and exit.

+verilator+prof+exec+file+<filename>

  When a model was Verilated using `--prof-exec`, sets the simulation runtime filename to dump to. Defaults to `profile_exec.dat`.

+verilator+prof+exec+start+<value>

  When a model was Verilated using `--prof-exec`, the simulation runtime will wait until $time is at this value (expressed in units of the time precision), then start the profiling warmup, then capturing. Generally this should be set to some time that is well within the normal operation of the simulation, i.e. outside of reset. If 0, the dump is disabled. Defaults to 1.

+verilator+prof+exec+window+<value>

  When a model was Verilated using `--prof-exec`, after $time reaches `+verilator+prof+exec+start+<value>`, Verilator will warm up the profiling for this number of eval() calls, then will capture the profiling of this number of eval() calls. Defaults to 2, which makes sense for a single-clock-domain module where it’s typical to want to capture one posedge eval() and one negedge eval().

+verilator+prof+threads+file+<filename>

  Removed in 5.020. Was an alias for `+verilator+prof+exec+file+<filename>`

+verilator+prof+threads+start+<value>

  Removed in 5.020. Was an alias for `+verilator+prof+exec+start+<value>`

+verilator+prof+threads+window+<value>

  Removed in 5.020. Was an alias for `+verilator+prof+exec+window+<value>`

+verilator+prof+vlt+file+<filename>

  When a model was Verilated using `--prof-pgo`, sets the profile-guided optimization data runtime filename to dump to. Defaults to `profile.vlt`.

+verilator+quiet

  Disable printing the simulation summary report, see Simulation Summary Report.

+verilator+rand+reset+<value>

  When a model was Verilated using `--x-initial unique`, sets the simulation runtime initialization technique. 0 = Reset to zeros. 1 = Reset to all-ones. 2 = Randomize. See Unknown States.

+verilator+seed+<value>

  For $random and `--x-initial unique`, set the simulation runtime random seed value. If zero or not specified picks a value from the system random number generator.

+verilator+noassert

  Disable assert checking per runtime argument. This is the same as calling `VerilatedContext*->assertOn(false)` in the model.

+verilator+V

  Shows the verbose version, including configuration information.

+verilator+version

  Displays program version and exits.