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

#2742
Jim Lewis
Member

Thanks for posting your whole testbench as it makes the issue clear.

You are calling EndOfTestReports concurrently. So it runs at time 0 ns. You do not want it to run until your test case has finished. Same goes for WriteAlertYaml and WriteAlertSummaryYaml. However, you do not need to call these or ReportAlerts as they are all called by EndOfTestReports.

So a quick fix is to update your stimulus process as follows:


-- Stimulus Generator
Stim: process
    variable RandA : RandomPType;
    variable RandB : RandomPType;
    variable allDone : boolean := false;
    variable nCycles : natural := 0;
begin
    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;
    report "Number of simulation cycles = " & to_string(nCycles);
    report "Coverage holes: " & to_string(cp_A_B.CountCovHoles);

    EndOfTestReports(
      ReportAll => TRUE,
      ExternalErrors => (0, 0, 0),
      Stop => FALSE,
      TimeOut => FALSE
    );

    STOP <= true;
    wait;
end process;

Try that, that should get you running.