首页 > 解决方案 > 我怎么知道会自动创建哪些垃圾箱?

问题描述

此代码来自“SystemVerilog IEEE STD 1800-2017”:

bit [7:0] a;
covergroup ga ( int abm);
  option.auto_bin_max = abm;
  coverpoint a { ignore_bins i = {3}; }
endgroup

ga gv1 = new (64);
ga gv2 = new (32);

在上面的示例中写道:“在这种情况下,gv1引用的实例的bin是“auto[0:3]”到“auto[252:255]”,而gv2引用的实例的bin是“auto[0:7]”到“auto[248:255]”。

有人可以向我解释一下,为什么要创建这些垃圾箱?

标签: system-verilog

解决方案


是的。该选项auto_bin_max设置将自动创建的最大 bin 数。因此,使用 8 位变量a(如您在此处所使用的),而不是创建 256 个箱(每个值一个箱),您会得到auto_bin_max箱。

auto_bin_max覆盖组实例设置为 64 gv1(这实际上是它的默认值),所以你得到 64 个相同大小的 bin。256/64=4,每个 bin 是 4 个值。

auto_bin_max覆盖组实例设置为 32 时gv2,您将获得 32 个大小相同的箱。256/32=8,所以每个 bin 是 8 个值。


推荐阅读