Reply To: All AffirmIf Pass, but OSVVM HTML Report Returns NOCHECKS
Why OSVVM™? › Forums › OSVVM › All AffirmIf Pass, but OSVVM HTML Report Returns NOCHECKS › Reply To: All AffirmIf Pass, but OSVVM HTML Report Returns NOCHECKS
July 16, 2025 at 15:25
#2747

Member
If the CoverReport process is removed, then the “Stim” process can end with std.env.stop – which is typically how OSVVM ends the test cases.
-- Stimulus Generator
Stim: process
variable RandA : RandomPType;
variable RandB : RandomPType;
variable allDone : boolean := false;
variable nCycles : natural := 0;
begin
SetTestName("tb_osvvm_comparator_VHDL");
SetLogEnable(INFO, TRUE);
SetLogEnable(PASSED, TRUE);
RandA.InitSeed(RandA'instance_name);
RandB.InitSeed(RandB'instance_name);
while not allDone and (NOW < 1 ms) loop
A <= RandA.Randslv(0, 3,2);
B <= RandB.Randslv(0, 3,2);
wait for OP_DELAY;
allDone := cp_A_B.isCovered;
nCycles := nCycles + 1;
end loop;
wait for 1 ns;
log("Number of simulation cycles = " & to_string(nCycles));
AffirmIfEqual(CountCovHoles(cp_A_B), 0, "Coverage holes") ;
EndOfTestReports(
ReportAll => TRUE,
ExternalErrors => (0, 0, 0),
Stop => FALSE,
TimeOut => FALSE
);
std.env.stop ;
wait;
end process;
When the stimulus generation gets more complex than this, I will move the OSVVM runner stuff to separate process called “ControlProc”, but that is not necessary in a simple test case like this one.