errors · bitdewfpga sim / bit, the source scan before the tools run
design.sv:6: ERROR [finish-in-design]: $finish in a design module (top): Vivado ignores it (UG901 Table 21: $finish Ignored) and yosys stops on it. Fix: remove it, move the check to the testbench, or wrap it in `ifndef SYNTHESIS ... `endif.
design.sv:6: ERROR [finish-in-design]: $finish in a design module (top): Vivado ignores it (UG901 Table 21: $finish Ignored) and yosys stops on it. Fix: remove it, move the check to the testbench, or wrap it in `ifndef SYNTHESIS ... `endif. https://nosey-dewdrop.github.io/dewfpga/errors/finish-in-design/
Why does it happen?
$finish ends a simulation; a chip does not end. Vivado lists it as ignored in synthesis (UG901 Table 21); yosys refuses it. A check that stops the simulation belongs in the testbench.
What is the fix?
Move the check to the testbench, or hide it from synthesis (yosys and Vivado both define SYNTHESIS):
`ifndef SYNTHESIS
if (done) $finish;
`endif
Which command prints it?
Which probes in test/sv print this code?
Every probe, with what Vivado does and what each stage does here: the probes, stage by stage.