forked from github/verilator
b1b5b5dfe2
The --prof-threads option has been split into two independent options: 1. --prof-exec, for collecting verilator_gantt and other execution related profiling data, and 2. --prof-pgo, for collecting data needed for PGO The implementation of execution profiling is extricated from VlThreadPool and is now a separate class VlExecutionProfiler. This means --prof-exec can now be used for single-threaded models (though it does not measure a lot of things just yet). For consistency VerilatedProfiler is renamed VlPgoProfiler. Both VlExecutionProfiler and VlPgoProfiler are in verilated_profiler.{h/cpp}, but can be used completely independently. Also re-worked the execution profile format so it now only emits events without holding onto any temporaries. This is in preparation for some future optimizations that would be hindered by the introduction of function locals via AstText. Also removed the Barrier event. Clearing the profile buffers is not notably more expensive as the profiling records are trivially destructible.
108 lines
3.5 KiB
ReStructuredText
108 lines
3.5 KiB
ReStructuredText
.. Copyright 2003-2022 by Wilson Snyder.
|
|
.. SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
|
|
|
|
.. _Simulation Runtime Arguments:
|
|
|
|
Simulation Runtime Arguments
|
|
============================
|
|
|
|
The following are the arguments that may be passed to a Verilated
|
|
executable, provided that executable calls
|
|
:code:`Verilated::commandArgs()`.
|
|
|
|
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:
|
|
|
|
.. include:: ../_build/gen/args_verilated.rst
|
|
|
|
|
|
.. option:: +verilator+debug
|
|
|
|
Enable simulation runtime debugging. Equivalent to
|
|
:vlopt:`+verilator+debugi+4 <+verilator+debugi+\<value\>>`.
|
|
|
|
.. option:: +verilator+debugi+<value>
|
|
|
|
Enable simulation runtime debugging at the provided level.
|
|
|
|
.. option:: +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. Defaults to 1.
|
|
|
|
.. option:: +verilator+help
|
|
|
|
Display help and exit.
|
|
|
|
.. option:: +verilator+prof+exec+file+<filename>
|
|
|
|
When a model was Verilated using :vlopt:`--prof-exec`, sets the
|
|
simulation runtime filename to dump to. Defaults to
|
|
:file:`profile_exec.dat`.
|
|
|
|
.. option:: +verilator+prof+exec+start+<value>
|
|
|
|
When a model was Verilated using :vlopt:`--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.
|
|
|
|
.. option:: +verilator+prof+exec+window+<value>
|
|
|
|
When a model was Verilated using :vlopt:`--prof-exec`, after $time
|
|
reaches :vlopt:`+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().
|
|
|
|
.. option:: +verilator+prof+threads+file+<filename>
|
|
|
|
Deprecated. Alias for :vlopt:`+verilator+prof+exec+file+\<filename\>`
|
|
|
|
.. option:: +verilator+prof+threads+start+<value>
|
|
|
|
Deprecated. Alias for :vlopt:`+verilator+prof+exec+start+\<value\>`
|
|
|
|
.. option:: +verilator+prof+threads+window+<value>
|
|
|
|
Deprecated. Alias for :vlopt:`+verilator+prof+exec+window+\<filename\>`
|
|
|
|
.. option:: +verilator+prof+vlt+file+<filename>
|
|
|
|
When a model was Verilated using :vlopt:`--prof-pgo`, sets the
|
|
profile-guided optimization data runtime filename to dump to. Defaults
|
|
to :file:`profile.vlt`.
|
|
|
|
.. option:: +verilator+rand+reset+<value>
|
|
|
|
When a model was Verilated using :vlopt:`--x-initial unique
|
|
<--x-initial>`, sets the simulation runtime initialization technique. 0
|
|
= Reset to zeros. 1 = Reset to all-ones. 2 = Randomize. See
|
|
:ref:`Unknown States`.
|
|
|
|
.. option:: +verilator+seed+<value>
|
|
|
|
For $random and :vlopt:`--x-initial unique <--x-initial>`, set the
|
|
simulation runtime random seed value. If zero or not specified picks a
|
|
value from the system random number generator.
|
|
|
|
.. option:: +verilator+noassert
|
|
|
|
Disable assert checking per runtime argument. This is the same as
|
|
calling :code:`Verilated::assertOn(false)` in the model.
|
|
|
|
.. option:: +verilator+V
|
|
|
|
Shows the verbose version, including configuration information.
|
|
|
|
.. option:: +verilator+version
|
|
|
|
Displays program version and exits.
|