VERILATOR(1)

๐Ÿ’… VERILATOR(1) ๐Ÿ’…

User Contributed Perl Documentation

okay bestie, welcome to the VERILATOR(1) page โ€” brought to you by User Contributed Perl Documentation. Sheโ€™s giving legendary tool energy, and weโ€™re gonna get through this together, no cap. ๐Ÿ’–


๐Ÿ’– NAME ๐Ÿ’–

Verilator โ€” lint, compile and simulate SystemVerilog code using C++/SystemC. periodt. โœจ


โœจ SYNOPSIS โœจ

Hereโ€™s the vibe check for how you actually call her:

verilator --help
verilator --version
verilator --binary -j 0 [options] [source_files.v]... [opt_c_files.cpp/c/cc/a/o/so]
verilator --cc [options] [source_files.v]... [opt_c_files.cpp/c/cc/a/o/so]
verilator --sc [options] [source_files.v]... [opt_c_files.cpp/c/cc/a/o/so]
verilator --lint-only -Wall [source_files.v]...

๐ŸŒธ DESCRIPTION ๐ŸŒธ

The Verilator package converts all synthesizable, and many behavioral, Verilog and SystemVerilog designs into a C++ or SystemC model that after compiling can be executed. Lowkey iconic behavior. ๐Ÿ‘‘

Real talk though: Verilator is not a traditional simulator, but a compiler. Sheโ€™s built different, fr fr. ๐Ÿ’…

For documentation see <https://verilator.org/verilator_doc.html>.


๐ŸŽ€ ARGUMENT SUMMARY ๐ŸŽ€

This is a short summary of the arguments to the verilator executable. See <https://verilator.org/guide/latest/exe_verilator.html> for the detailed descriptions of these arguments.

  • <file.v> โ€” Verilog package, module, and top module filenames. These are the main characters of your file list, ngl. ๐ŸŒŸ
  • <file.c/cc/cpp> โ€” Optional C++ files to compile in. Extra C++? She said โ€œsay less,โ€ bestie. ๐Ÿซถ
  • <file.a/o/so> โ€” Optional C++ files to link in. Throw them in the group chat, iykyk. ๐Ÿ”ฅ
  • +1364-1995ext+<ext> โ€” says use Verilog 1995 when you see files with the extension <ext>. old school, but make it fashion ๐Ÿ’…
  • +1364-2001ext+<ext> โ€” use Verilog 2001 for <ext> files. glow up from 1995 โœจ
  • +1364-2005ext+<ext> โ€” use Verilog 2005 for <ext> files. the 2005 era said let there be more features ๐Ÿ’–
  • +1800-2005ext+<ext> โ€” use SystemVerilog 2005 for <ext> files. entering the SV era ๐Ÿฆ‹
  • +1800-2009ext+<ext> โ€” use SystemVerilog 2009 for <ext> files. 2009 said hold my coffee โ˜•
  • +1800-2012ext+<ext> โ€” use SystemVerilog 2012 for <ext> files. the 2012 vibes are immaculate ๐ŸŒˆ
  • +1800-2017ext+<ext> โ€” use SystemVerilog 2017 for <ext> files. 2017 said we're not done yet ๐Ÿ”ฅ
  • +1800-2023ext+<ext> โ€” use SystemVerilog 2023 for <ext> files. freshest of fresh, no cap ๐Ÿ‘‘
  • --no-aslr โ€” turns off address space layout randomization. just don't, bestie ๐Ÿ’€
  • --no-assert โ€” kills all assertions. they're silenced, periodt ๐Ÿคซ
  • --no-assert-case โ€” kills those unique/unique0/priority-case assertions. bye bye ๐Ÿ‘‹
  • --autoflush โ€” flushes streams after every $display. everything comes out immediately, no waiting ๐Ÿ’ฆ
  • --bbox-sys โ€” blackboxes unknown $system calls. wraps them up like a lil gift ๐ŸŽ
  • --bbox-unsup โ€” blackboxes unsupported language features. we don't talk about those ๐Ÿ™ˆ
  • --binary โ€” builds a model binary. it's giving executable energy ๐Ÿƒโ€โ™€๏ธ
  • --build โ€” builds the model executable/library after Verilation. the main event after the pre-game ๐ŸŽฌ
  • --build-dep-bin <filename> โ€” overrides the build dependency Verilator binary. swap out the binary, swap out the vibe ๐Ÿ”„
  • --build-jobs <jobs> โ€” sets parallelism for --build. more jobs = more multitasking ๐Ÿ’ช
  • --cc โ€” creates C++ output. C++ bestie, we love to see it ๐Ÿ’™
  • -CFLAGS <flags> โ€” C++ compiler arguments for the makefile. pass those flags like notes in class ๐Ÿ“
  • --compiler <compiler-name> โ€” tunes for the specified C++ compiler. tell Verilator which compiler it's dealing with ๐Ÿค
  • --compiler-include โ€” includes an additional header in the precompiled one. extra header, extra sparkle โœจ
  • --constraint-array-limit <size> โ€” maximum array size for constraint array reduction. big arrays need limits too ๐Ÿšง
  • --converge-limit <loops> โ€” tunes convergence settle time. how many loops till we chill? ๐ŸŒ€
  • --coverage โ€” enables all coverage. turned all the way up, no dimming ๐Ÿ”†
  • --coverage-expr โ€” enables expression coverage. tracking every expression like a stalker ๐Ÿ‘€
  • --coverage-expr-max <value> โ€” maximum permutations allowed for an expression. cap it, bestie ๐Ÿงข
  • --coverage-fsm โ€” enables FSM state/arc coverage. state machine tea is piping hot ๐Ÿต
  • --coverage-line โ€” enables line coverage. every line counts, literally ๐Ÿ“
  • --coverage-max-width <width> โ€” maximum array depth for coverage. depth limit, we're not going to the abyss ๐ŸŒŠ
  • --coverage-toggle โ€” enables toggle coverage. flip flop flippin' ๐Ÿ”„
  • --coverage-underscore โ€” enables coverage of _signals. those sneaky underscores get tracked too ๐Ÿ•ต๏ธโ€โ™€๏ธ
  • --coverage-user โ€” enables SVL user coverage. user-defined coverage, you do you ๐Ÿ’โ€โ™€๏ธ
  • -D<var>[=<value>] โ€” sets a preprocessor define. define it like you mean it ๐Ÿ’…
  • --debug โ€” enables debugging. detective mode activated ๐Ÿ•ต๏ธโ€โ™‚๏ธ
  • --debug-check โ€” enables debugging assertions. double-checking the debug, very meta ๐Ÿ”
  • --no-debug-leak โ€” stops leaking memory in --debug mode. no more leaky vibes ๐Ÿšฐ
  • --debugi <level> โ€” enables debugging at a specified level. dial the debug up to level <level> ๐ŸŽš๏ธ
  • --debugi-<srcfile> <level> โ€” enables debugging a source file at a level. per-file debug control, fancy ๐ŸŽ€
  • --no-decoration โ€” disables comments and lowers the spacing level. minimalism era, clean aesthetic ๐Ÿค
  • --decorations <level> โ€” sets output comment and spacing level. decoration level: <level> ๐Ÿ’
  • --default-language <lang> โ€” default language to parse. start with <lang> as the main character ๐ŸŽญ
  • +define+<var>=<value> โ€” sets a preprocessor define. plus sign energy, but it's a define โž•
  • --diagnostics-sarif โ€” enables SARIF diagnostics output. bougie diagnostic format, we love ๐Ÿ“Š
  • --diagnostics-sarif-output <filename> โ€” sets the SARIF diagnostics output file. write it to <filename> ๐Ÿ“
  • --dpi-hdr-only โ€” only produces the DPI header file. header only, no extras ๐Ÿ’
  • --dump-<srcfile> โ€” enables dumping everything in the source file. dump it all, no filter ๐Ÿ—‘๏ธ
  • --dump-defines โ€” shows preprocessor defines with -E. spill the defines, bestie ๐Ÿซ–
  • --dump-dfg โ€” enables dumping DfgGraphs to .dot files. graph dump, aesthetic .dot files ๐Ÿ•ธ๏ธ
  • --dump-dfg-patterns โ€” enables dumping Dfg pattern statistics. stats on patterns, very analytical ๐Ÿ“ˆ
  • --dump-graph โ€” enables dumping V3Graphs to .dot files. more graphs, more .dot ๐ŸŒ
  • --dump-inputs โ€” enables dumping preprocessed input files. input files, dumped ๐Ÿ“ฅ
  • --dump-tree โ€” enables dumping Ast .tree files. tree files, branching out ๐ŸŒณ
  • --dump-tree-addrids โ€” uses short identifiers instead of addresses. short IDs, cute and concise ๐Ÿ†”
  • --dump-tree-dot โ€” enables dumping Ast .tree.dot debug files. debug files with .dot extension, periodt ๐Ÿ”ด
  • --dump-tree-json โ€” enables dumping Ast .tree.json files and a .tree.meta.json file. JSON everywhere, we love data ๐Ÿ“ฆ
  • --dumpi-<srcfile> <level> โ€” enables dumping everything in a source file at a level. source file dump, level <level> ๐ŸŽš๏ธ
  • --dumpi-dfg <level> โ€” enables dumping DfgGraphs to .dot files at level. DFG dump level <level> ๐Ÿ“‰
  • --dumpi-graph <level> โ€” enables dumping V3Graphs to .dot files at level. graph dump level <level> ๐Ÿ“Š
  • --dumpi-tree <level> โ€” enables dumping Ast .tree files at level. tree dump level <level> ๐ŸŒฒ
  • --dumpi-tree-json <level> โ€” enables dumping Ast .tree.json files at level. JSON tree dump level <level> ๐Ÿ—‚๏ธ
  • -E โ€” preprocesses but does not compile. just the pre-game, no actual game ๐Ÿˆ
  • --emit-accessors โ€” emits getter and setter methods for the model top class. getters and setters, so polite ๐ŸŽฉ
  • --error-limit <value> โ€” aborts after this number of errors. too many errors? we out โœŒ๏ธ
  • --exe โ€” links to create an executable. executable time, let's go ๐Ÿƒ
  • --expand-limit <value> โ€” sets the expand optimization limit. limit the expansion, contain the chaos ๐Ÿงฉ
  • -F <file> โ€” parses arguments from a file, relatively. relative file parsing, fancy ๐Ÿ“„
  • -f <file> โ€” parses arguments from a file. just read the file, bestie ๐Ÿ“–
  • -FI <file> โ€” forces inclusion of a file. force include, no take-backs ๐Ÿ’ฅ
  • --flatten โ€” forces inlining of all modules, tasks and functions. flatten it all like a pancake ๐Ÿฅž
  • --func-recursion-depth <value> โ€” maximum recursive constant function depth. recursion depth limit, don't get lost ๐ŸŒ€
  • --future0 <option> โ€” ignores an option for compatibility. future vibes, but ignore it ๐Ÿค–
  • --future1 <option> โ€” ignores an option with an argument for compatibility. future with argument, still ignored ๐Ÿ›ธ
  • -fno-<optimization> โ€” disables an internal optimization stage. turn off that optimization, we don't need it ๐Ÿšซ
  • -G<name>=<value> โ€” overwrites a top-level parameter. change the parameter, change the game ๐ŸŽฎ
  • --gate-stmts <value> โ€” tunes gate optimizer depth. gate optimizer depth tuning, very technical ๐Ÿ’…
  • --gdb โ€” runs Verilator under GDB interactively. GDB interactive mode, debug like a pro ๐Ÿ›
  • --gdbbt โ€” runs Verilator under GDB for a backtrace. backtrace via GDB, get that stack trace ๐Ÿ“š
  • --generate-key โ€” creates a random key for --protect-key. random key generation, secure vibes ๐Ÿ”‘
  • --get-supported <feature> โ€” gets if a feature is supported. is <feature> supported? let's find out ๐Ÿ”
  • --getenv <var> โ€” gets an environment variable with defaults. env var with defaults, convenient ๐ŸŒ
  • --help โ€” shows this help. the classic help flag, always there for you ๐Ÿ†˜
  • --hierarchical โ€” enables hierarchical Verilation. hierarchical mode, organized and chic ๐Ÿ›๏ธ
  • --hierarchical-block <block> โ€” internal use only for --hierarchical. internal only, don't touch ๐Ÿšง
  • --hierarchical-child <block> โ€” internal use only for --hierarchical. also internal, also don't touch ๐Ÿ™…โ€โ™€๏ธ
  • --hierarchical-params-file <name> โ€” internal option that specifies parameters file for hier blocks. internal params file, keep it moving ๐Ÿ“
  • --hierarchical-threads <threads> โ€” number of threads for hierarchical scheduling. threads for scheduling, multitasking queen ๐Ÿ‘‘
  • -I<dir> โ€” directory to search for includes. include directory, search here ๐Ÿ”Ž
  • --if-depth <value> โ€” tunes the IFDEPTH warning. tune that IFDEPTH warning, just right ๐ŸŽ›๏ธ
  • +incdir+<dir> โ€” directory to search for includes. another include directory, plus sign style โž•
  • --inline-cfuncs <value> โ€” inlines CFuncs with <=value nodes (0=off). inline those CFuncs, 0 means off ๐Ÿšซ
  • --inline-cfuncs-product <value> โ€” inlines CFuncs if size*calls <= value. inline if size times calls is small enough ๐Ÿงฎ
  • --inline-mult <value> โ€” tunes module inlining. module inlining tuning, get it just right ๐ŸŽš๏ธ
  • --instr-count-dpi <value> โ€” assumed dynamic instruction count of DPI imports. assumed instruction count for DPI, just a guess ๐Ÿค”
  • -j <jobs> โ€” parallelism for --build-jobs/--verilate-jobs. set the jobs, parallel processing ๐Ÿ’ช
  • --no-json-edit-nums โ€” don't dump editNum in .tree.json files. no edit numbers, keep it clean ๐Ÿงผ
  • --no-json-ids โ€” don't use short identifiers instead of addresses/paths in .tree.json. no short IDs in JSON, use the full thing ๐Ÿ“›
  • --json-only โ€” creates JSON parser output (.tree.json and .meta.json). JSON only, no compiler output ๐Ÿ“ฆ
  • --json-only-meta-output <filename> โ€” sets .tree.meta.json output filename. meta JSON output filename set to <filename> ๐Ÿ“
  • --json-only-output <filename> โ€” sets .tree.json output filename. JSON output filename set to <filename> ๐Ÿ“„
  • --l2-name <value> โ€” Verilog scope name of the top module. top module scope name, so important ๐Ÿท๏ธ
  • --language <lang> โ€” default language standard to parse. default language standard, <lang> is the vibe ๐ŸŒ
  • -LDFLAGS <flags> โ€” linker pre-object arguments for the makefile. linker flags, pre-object, very specific ๐Ÿ”—
  • -libmap โ€” specifies a library mapping file. library mapping file, map it out ๐Ÿ—บ๏ธ
  • --lib-create <name> โ€” creates a DPI library. DPI library creation, <name> it ๐Ÿ“š
  • +libext+<ext>+[ext]... โ€” extensions for finding modules. library extensions for finding modules, plus signs everywhere โž•
  • +librescan โ€” ignored for compatibility. literally ignored, just there for compatibility ๐Ÿšซ
  • --lint-only โ€” lints but does not make output. lint only, no output, just vibes ๐Ÿงน
  • --localize-max-size <value> โ€” tunes the localize optimization variable size. localize optimization size tuning, get it right ๐ŸŽฏ
  • --main โ€” generates a C++ main() file. generate that main file, C++ style ๐ŸŽฌ
  • --main-top-name โ€” specifies the top name passed to the Verilated model in the generated C++ main. top name for the generated main, name it right ๐Ÿท๏ธ
  • --make <build-tool> โ€” generates scripts for the specified build tool. generate scripts for <build-tool>, build tool time ๐Ÿ› ๏ธ
  • -MAKEFLAGS <flags> โ€” arguments to pass to make during --build. make flags for the build, pass them along ๐Ÿ“ค
  • --max-num-width <value> โ€” maximum number width (default: 64K). max number width, default is 64K ๐Ÿ“
  • --Mdir <directory> โ€” name of the output object directory. output directory name, <directory> is the spot ๐Ÿ“‚
  • --MMD โ€” creates .d dependency files. create those .d files, dependency style ๐Ÿ“„
  • --mod-prefix <topname> โ€” name to prepend to lower classes. prefix for lower classes, <topname> prepended ๐Ÿท๏ธ
  • --MP โ€” creates phony dependency targets. phony targets, fake but useful ๐Ÿ‘ป
  • +notimingchecks โ€” ignored. literally ignored, periodt ๐Ÿšซ
  • -o <executable> โ€” name of the final executable. name the executable <executable> ๐Ÿƒโ€โ™€๏ธ
  • -O0 โ€” disables optimizations. zero optimizations, raw and unfiltered ๐ŸงŠ
  • -O1 โ€” default optimizations. default optimizations, the standard vibe ๐ŸŽ›๏ธ
  • -O2 โ€” stronger optimizations. stronger optimizations, level up ๐Ÿ’ช
  • -O3 โ€” high-performance optimizations. high-performance, maxed out ๐Ÿ”ฅ
  • -O<optimization-letter> โ€” selectable optimizations. pick your optimization letter, choose your fighter ๐ŸŽฎ
  • --output-groups <numfiles> โ€” groups .cpp files into larger ones. group those .cpp files, bigger is better ๐Ÿ“ฆ
  • --output-split <statements> โ€” splits .cpp files into pieces. split .cpp files into pieces, portion control ๐Ÿฐ
  • --output-split-cfuncs <statements> โ€” splits model functions. split model functions, divide and conquer โœ‚๏ธ
  • --output-split-ctrace <statements> โ€” splits tracing functions. split tracing functions, trace it out ๐Ÿ”
  • -P โ€” disables line numbers and blanks with -E. no line numbers or blanks, minimalist ๐Ÿ’…
  • --pins-bv <bits> โ€” specifies types for top-level ports. pin types for top-level ports, <bits> style ๐Ÿ“Œ
  • --pins-inout-enables โ€” specifies that __en and __out signals be created for inouts. create __en and __out for inouts, fancy pins ๐Ÿ“
  • --pins-sc-biguint โ€” specifies types for top-level ports. SC biguint pin types, specific ๐ŸŽฏ
  • --pins-sc-uint โ€” specifies types for top-level ports. SC uint pin types, very typed ๐Ÿ”ข
  • --pins-sc-uint-bool โ€” specifies types for top-level ports. SC uint bool pin types, boolean energy ๐Ÿ”˜
  • --pins-uint8 โ€” specifies types for top-level ports. uint8 pin types, small but mighty ๐Ÿœ
  • --no-pins64 โ€” don't use uint64_t's for 33-64 bit sigs. no 64-bit pins, keep it smaller ๐Ÿšซ
  • --pipe-filter <command> โ€” filters all input through a script. pipe filter through <command>, script it up ๐ŸŽฌ
  • --prefix <topname> โ€” name of top-level class. top-level class name, <topname> ๐Ÿท๏ธ
  • --preproc-comments โ€” includes preprocessor comments in the output with -E. preprocessor comments in output, with -E ๐Ÿ’ฌ
  • --preproc-defines โ€” includes preprocessor defines in the output with -E. preprocessor defines in output, with -E ๐Ÿ“
  • --preproc-resolve โ€” includes all found modules in the output with -E. all found modules in output, with -E ๐Ÿงฉ
  • --preproc-token-limit โ€” maximum tokens on a line allowed by the preprocessor. max tokens per line, preprocessor limit ๐Ÿšฆ
  • --private โ€” debugging; see docs. private debugging thing, see docs for the tea ๐Ÿ•ต๏ธ
  • --prof-c โ€” compiles C++ code with profiling. profile that C++ code, see where time goes โฑ๏ธ
  • --prof-cfuncs โ€” names functions for profiling. name functions for profiling, label them ๐Ÿท๏ธ
  • --prof-exec โ€” enables generating an execution profile for a gantt chart. exec profile for gantt chart, fancy chart ๐Ÿ“Š
  • --prof-pgo โ€” enables generating profiling data for PGO. PGO profiling data, optimize later ๐Ÿ“ˆ
  • --protect-ids โ€” hashes identifier names for obscurity. hash those identifiers, keep them secret ๐Ÿ”’
  • --protect-key <key> โ€” key for symbol protection. protection key, <key> ๐Ÿ”‘
  • --protect-lib <name> โ€” creates a DPI protected library. protected DPI library, <name> it ๐Ÿ›ก๏ธ
  • --public โ€” marks signals as public; see docs. public signals, see docs ๐Ÿ“ข
  • --public-depth <level> โ€” marks public to a specified module depth. public up to depth <level>, deep public ๐ŸŒŠ
  • --public-flat-rw โ€” marks all variables, etc as public_flat_rw. mark all as public_flat_rw, flat and public ๐Ÿท๏ธ
  • --public-ignore โ€” ignores all public comment markings. ignore public markings, we don't see them ๐Ÿ™ˆ
  • --public-params โ€” marks all parameters as public_flat. mark all params as public_flat, flat public ๐ŸŒ
  • -pvalue+<name>=<value> โ€” overwrites a toplevel parameter. overwrite the toplevel parameter, <name>=<value> style ๐Ÿ”„
  • --quiet โ€” minimizes additional printing. quiet mode, shhh ๐Ÿคซ
  • --quiet-build โ€” doesn't print build progress. no build progress printing, silent build ๐Ÿค
  • --quiet-exit โ€” shhh, don't print the command when it fails ๐Ÿ™ˆ
  • --quiet-stats โ€” no statistics printing, we're keeping it lowkey
  • --relative-includes โ€” resolve includes relative to the current file
  • --reloop-limit <value> โ€” minimum iterations for forming loops
  • --replication-limit <value> โ€” replication concatenation limit (default: 8k)
  • --report-unoptflat โ€” extra diagnostics for UNOPTFLAT, the messiest of warnings
  • --rr โ€” run Verilator and record everything with rr
  • --runtime-debug โ€” enable model runtime debugging
  • --savable โ€” enable model save-restore
  • --sc โ€” create SystemC output
  • --sched-zero-delay โ€” specify #0 delay support
  • --no-skip-identical โ€” disable skipping identical output
  • --stats โ€” create that statistics file ๐Ÿ“Š
  • --stats-vars โ€” provide statistics on variables
  • --no-std โ€” prevent loading standard files
  • --no-std-package โ€” prevent parsing the standard package
  • --no-std-waiver โ€” prevent parsing standard lint waivers
  • --no-stop-fail โ€” do not call $stop when an assertion fails
  • -sv โ€” enable SystemVerilog parsing โœจ
  • +systemverilogext+<ext> โ€” synonym for +1800-2023ext+<ext>
  • --threads <threads> โ€” enable multithreading
  • --threads-dpi <mode> โ€” enable multithreaded DPI
  • --threads-max-mtasks <mtasks> โ€” tune the maximum mtask partitioning
  • --timescale <timescale> โ€” sets the default timescale
  • --timescale-override <timescale> โ€” overrides all timescales, no exceptions ๐Ÿ’…
  • --timing โ€” enable timing support
  • --no-timing โ€” disable timing support
  • --top <topname> โ€” alias of --top-module
  • --top-module <topname> โ€” name of the top-level input module
  • --trace โ€” enable VCD waveform creation
  • --trace-coverage โ€” enable tracing of coverage
  • --trace-depth <levels> โ€” depth of tracing
  • --trace-fst โ€” enable FST waveform creation
  • --trace-max-array <depth> โ€” maximum array depth for tracing
  • --trace-max-width <width> โ€” maximum bit width for tracing
  • --trace-params โ€” enable tracing of parameters
  • --trace-saif โ€” enable SAIF file creation
  • --trace-structs โ€” enable tracing structure names
  • --no-trace-top โ€” do not emit traces for signals in the top module generated by verilator
  • --trace-underscore โ€” enable tracing of _signals
  • --trace-vcd โ€” enable VCD waveform creation
  • -U<var> โ€” undefine preprocessor define
  • --no-unlimited-stack โ€” don't disable the stack size limit
  • --unroll-count <loops> โ€” tune maximum loop iterations
  • --unroll-limit <loops> โ€” maximum loop iterations before assuming an infinite loop ๐Ÿ˜ต
  • --unroll-stmts <stmts> โ€” tune maximum loop body size
  • --unused-regexp <regexp> โ€” tune UNUSED lint signals
  • -V โ€” verbose version and config
  • -v <filename> โ€” Verilog library
  • --valgrind โ€” run Verilator under valgrind
  • --no-verilate โ€” skip Verilation and just compile previously Verilated code
  • --verilate-jobs โ€” job threads for the Verilation stage
  • +verilog1995ext+<ext> โ€” synonym for +1364-1995ext+<ext>
  • +verilog2001ext+<ext> โ€” synonym for +1364-2001ext+<ext>
  • --version โ€” show program version and exits
  • --vpi โ€” enable VPI compiles
  • --waiver-multiline โ€” create multiline --match for waivers
  • --waiver-output <filename> โ€” create a waiver file based on linter warnings
  • -Wall โ€” enable all style warnings, we love a thorough queen ๐Ÿ‘‘
  • -Werror-<message> โ€” convert warnings to errors
  • -Wfuture-<message> โ€” disable unknown message warnings
  • -Wno-<message> โ€” disable a warning
  • -Wno-context โ€” disable source context on warnings
  • -Wno-fatal โ€” disable fatal exit on warnings
  • -Wno-lint โ€” disable all lint warnings
  • -Wno-style โ€” disable all style warnings
  • -work <libname> โ€” set config library for the following files
  • -Wpedantic โ€” warn on compliance-test issues
  • -Wwarn-<message> โ€” enable a specified warning message
  • -Wwarn-lint โ€” enable lint warning message
  • -Wwarn-style โ€” enable style warning message
  • --x-assign <mode> โ€” assign non-initial Xs to this value
  • --x-initial <mode> โ€” assign initial Xs to this value
  • --x-initial-edge โ€” enable initial X->0 and X->1 edge triggers
  • -y <dir> โ€” directory to search for modules

okay so now we're talking about the simulation runtime side of things โ€” the args for the final Verilated simulation runtime models, bestie. this is just a lil summary; the detailed description of these arguments lives over at <https://verilator.org/guide/latest/exe_verilator.html> ๐Ÿซถ

  • +verilator+coverage+file+<filename> โ€” set coverage output filename
  • +verilator+debug โ€” enable debugging
  • +verilator+debugi+<value> โ€” enable debugging at a level
  • +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+solver+file+<filename> โ€” set random solver log filename
  • +verilator+V โ€” show verbose version and config
  • +verilator+version โ€” show version and exit
  • +verilator+wno+unsatconstr+<value> โ€” disable constraint warnings

๐ŸŒˆ DISTRIBUTION ๐ŸŒˆ

the latest version is right there at <https://verilator.org> โ€” go get her ๐Ÿ’–

Copyright 2003-2026 by Wilson Snyder. This program is free software; you can redistribute it and/or modify the Verilator internals under the terms of either the GNU Lesser General Public License Version 3 or the Perl Artistic License Version 2.0.

All Verilog and C++/SystemC code quoted within this documentation file are released as Creative Commons Public Domain (CC0). Many example files and test files are likewise released under CC0 into effectively the Public Domain as described in the files themselves.


๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

  • verilator_coverage, verilator_gantt, verilator_profcfunc, make,
  • "verilator --help" which is the source for this document (periodt, that's the origin story)
  • and <https://verilator.org/verilator_doc.html> for the detailed documentation

okay bestie, that's the whole vibe โ€” happy Verilating, go slay your simulation ๐Ÿฆ‹๐Ÿ’…

this page came to you courtesy of perl v5.40.1 and is dated 2026-04-29 โ€” iconic, timeless, no cap โœจ

๐Ÿ“ฆ where this page comes from