# Verification-coverage example Original HDL: MIT. Original measured results: CC BY 4.0. Copy the sources into a separate working directory before rebuilding. No tool binaries or generated simulation builds are distributed here. Pins: Icarus Verilog 13.0, source commit `dfeee909ed9f20b4870dd93423156c0170c0e1ff`; Verilator 5.052, source commit `ea338be98e1e838d3518809ce8899f85a009963c`. The run record gives the source hash. Tool installation directories are supplied by the reader, never embedded in the published commands. ## Exact invocations The following invocations use ordinary executable names in place of installation-specific paths. `ICARUS_LIB` is needed only for a relocated Icarus installation. The reporter used in the measured distribution is `verilator_coverage_bin_dbg`, the report binary from that same Verilator bottle. ```sh iverilog -B "$ICARUS_LIB" -g2012 -s tb -Ptb.FIX=0 -o sim0 example.sv vvp sim0 +extended=0 vvp sim0 +extended=1 iverilog -B "$ICARUS_LIB" -g2012 -s tb -Ptb.FIX=1 -o sim1 example.sv vvp sim1 +extended=1 verilator --binary --timing --coverage-line --top-module tb -GFIX=0 -Wno-fatal --Mdir obj0 example.sv obj0/Vtb +extended=0 +verilator+coverage+file+fix0_extended0.dat +verilator+quiet obj0/Vtb +extended=1 +verilator+coverage+file+fix0_extended1.dat +verilator+quiet verilator --binary --timing --coverage-line --top-module tb -GFIX=1 -Wno-fatal --Mdir obj1 example.sv obj1/Vtb +extended=1 +verilator+coverage+file+fix1_extended1.dat +verilator+quiet verilator_coverage_bin_dbg --annotate fix0_extended0_annotated --annotate-min 1 fix0_extended0.dat verilator_coverage_bin_dbg --annotate fix0_extended1_annotated --annotate-min 1 fix0_extended1.dat verilator_coverage_bin_dbg --annotate fix1_extended1_annotated --annotate-min 1 fix1_extended1.dat ``` Both simulators execute identical source bytes. Expected mismatch counts are 0, 1, 0 for buggy initial, buggy extended and corrected extended. Process exit 0 alone is not a passing design result: the intentional mismatch is counted rather than made fatal, allowing the coverage report to finish. The initial buggy elaboration reports Verilator line 1/1 and branch 2/2 coverage. The extended buggy run keeps those code counts but reaches the overflow functional counter and records one mismatch. The corrected elaboration reports line 4/4; no native branch points are reported for that elaboration. Toggle and other zero-denominator categories were not measured. The testbench is explicitly outside code-coverage instrumentation; its functional counters are separate observations. `coverage-points.json` contains the original native report lines with control separators escaped as JSON, plus each native file's SHA256. The three full simulator/reporter runs are recorded in `/data/measurements/printed-hdl/P03-verilator.json`; Icarus results are in `P03-icarus.json` beside it. No native binary or build tree is in the public data directory. No UVM environment was executed. The annotation summaries were produced by `verilator_coverage_bin_dbg` from Verilator 5.052. The current record names and hashes that summary executable; `verilator_coverage` was not substituted. Earlier P8 measurements remain under `../../measurements/printed-hdl/earlier-p8/`.