如何在模拟结束时打印系统verilog coverage bin值?

如何在模拟结束时打印系统verilog coverage bin值?,verilog,system-verilog,verification,Verilog,System Verilog,Verification,我想通过在模拟结束时显示计数来了解状态机经历以下状态序列的次数 在下面的代码中,我找不到转储bin“b”值的方法 interface i; typedef enum { S0, S1, S2, S3} state_e; state_e state; assign state = dut1.sm_state; covergroup my_cg @(state); coverpoint state { bins b = (S0 => S1 => S2 =>

我想通过在模拟结束时显示计数来了解状态机经历以下状态序列的次数

在下面的代码中,我找不到转储bin“b”值的方法

interface i;
typedef enum { S0, S1, S2, S3} state_e;
state_e  state;
assign state = dut1.sm_state;

covergroup my_cg @(state);
    coverpoint state {
        bins b = (S0 => S1 => S2 => S3);
    }
endgroup
my_cg cg1 = new();

final begin
    $display("COVERAGE:CG1.state:%0d", cg1.state.get_coverage());
end
端接口


目前,如果sm通过电弧一次,输出为100。相反,我希望计算它通过arc的次数。

get\u coverage
不提供垃圾箱命中数,它只提供垃圾箱命中率,或者垃圾箱命中率与垃圾箱总数的比率。为了提高性能,大多数工具在箱子达到所需的最小命中数后停止计数,默认情况下只有1次命中。这不仅保存了计数,还保存了计算选择表达式集的过程,这些表达式确定要命中哪个箱子


对于调试,大多数工具都提供了一种报告整个模拟的实际箱子命中计数的方法

如果我需要找出一个箱子是否被击中,那么我需要将每个箱子包装在它自己的covergroup中,这是真的吗?至少将每个箱子包装在一个coverpoint周围。但这还不能算你的数目