VERILATOR_COVERAGE(1)

πŸ’… verilator_coverage β€” bestie's guide to the coverage analyzer

okay so real talk, this is verilator_coverage(1), from the User Contributed Perl Documentation (section 1, obviously, she's a command). Introducing… the one, the only, the coverage analyzer for Verilator ✨

🌸 NAME 🌸

verilator_coverage β€” your girl for Verilator coverage analysis. she reads what your Verilated models were up to and tells you what got covered. iconic behavior tbh.

πŸŽ€ SYNOPSIS πŸŽ€

like, here's how you summon her:

verilator_coverage --help
verilator_coverage --version

verilator_coverage --annotate <obj>

verilator_coverage  -write merged.dat <datafiles>...

verilator_coverage  -write-info merged.info <datafiles>...

verilator_coverage processes coverage reports that got generated by Verilated models. periodt.

for the full documentation, go here bestie: <https://verilator.org/guide/latest/exe_verilator_coverage.html> πŸ¦‹

πŸ‘‘ ARGUMENT SUMMARY πŸ‘‘

every single one, no skips, we don't do that here:

<filename>    Specify input data filename, default "coverage.dat"
--annotate <output_dir>       Directory name for source annotation.
--annotate-all                All files should be shown.
--annotate-min <count>        Minimum occurrence count for uncovered.
--annotate-points             Annotates info from each coverage point.
--filter-type <regex>         Keep only records of given coverage type.
--help                        Displays this message and version and exits.
--include-reset-arcs          Include reset arcs in FSM arc summaries.
--rank                        Compute relative importance of tests.
--unlink                      With --write, unlink all inputs
--version                     Displays program version and exits.
--write <filename>            Write aggregate coverage results.
--write-info <filename.info>  Write lcov .info.

+libext+<ext>+<ext>...        Extensions for Verilog files.
+define+<var>+<value>         Defines the given variable.
-D<var>=<value>               Defines the given variable.
+incdir+<dir>                 Add directory for finding include files.
-I<dir>                       Add directory for finding include files.
-y <dir>                      Specifies module search directory.

let me break the vibes down for you tho πŸ’œ

  • <filename> β€” the input data file goes here. if you don't say anything, she just assumes "coverage.dat". lowkey convenient.
  • --annotate <output_dir> β€” gives her a directory name to drop the source annotation into. πŸŽ€
  • --annotate-all β€” every single file gets shown. no gatekeeping, all files are the main character.
  • --annotate-min <count> β€” sets the minimum occurrence count that still counts as uncovered. πŸ‘€
  • --annotate-points β€” annotates info from each individual coverage point. every point gets her moment.
  • --filter-type <regex> β€” keeps only the records matching the coverage type you name with that regex. filter, but make it ✨selective✨
  • --help β€” shows you this message plus the version, then dips. Ctrl+C but polite.
  • --include-reset-arcs β€” pulls reset arcs into the FSM arc summaries. them arcs deserve representation fr fr.
  • --rank β€” computes the relative importance of tests. ranking, but for science πŸ’…
  • --unlink β€” paired with --write, it unlinks all the inputs. ⚠️ that's a delete-y behavior, so know what you're doing.
  • --version β€” shows the program version and exits. simple, slay.
  • --write <filename> β€” writes out the aggregate coverage results.
  • --write-info <filename.info> β€” writes the lcov .info file. yes the extension stays .info, we respect the format here.
  • +libext+<ext>+<ext>... β€” extensions for Verilog files.
  • +define+<var>+<value> β€” defines the given variable.
  • -D<var>=<value> β€” also defines the given variable. two ways, same energy.
  • +incdir+<dir> β€” adds a directory so she can find include files. πŸ”
  • -I<dir> β€” same thing, different syntax, adds a directory for finding include files.
  • -y <dir> β€” specifies the module search directory.

🌈 DISTRIBUTION 🌈

the latest version lives 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.

and the SPDX receipts, verbatim, because legal text does NOT get paraphrased:

SPDX-FileCopyrightText: 2003-2026 Wilson Snyder SPDX-License-Identifier:
LGPL-3.0-only OR Artistic-2.0

πŸ¦‹ SEE ALSO πŸ¦‹


okay that's the whole page bestie, no notes 🫢 this was perl v5.40.1, dated 2026-04-29, and it's the VERILATOR_COVERAGE(1) page β€” tysm for coming to her TED talk, love u, bye βœ¨πŸ’–

πŸ“¦ where this page comes from