System verilog 我如何知道将自动创建哪些垃圾箱?

System verilog 我如何知道将自动创建哪些垃圾箱?,system-verilog,System Verilog,该代码来自“SystemVerilog IEEE STD 1800-2017”: 上面的例子中写道: 在这种情况下,gv1引用的实例的bin是“auto[0:3]”到“auto[252:255]”,而 gv2引用的实例的BIN是“自动[0:7]”到“自动[248:255]” 有人能给我解释一下,为什么要创建这些垃圾箱吗?是的。选项auto\u bin\u max设置将自动创建的最大存储箱数。因此,使用一个8位变量a(正如您在这里看到的那样),您将得到auto\u bin\u maxbin,而不是

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

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


有人能给我解释一下,为什么要创建这些垃圾箱吗?

是的。选项
auto\u bin\u max
设置将自动创建的最大存储箱数。因此,使用一个8位变量
a
(正如您在这里看到的那样),您将得到
auto\u bin\u max
bin,而不是创建256个bin(每个值一个bin)

当covergroup instance
gv1
auto\u bin\u max
设置为64时(这实际上是它的默认值),您将得到64个大小相同的箱子。256/64=4,每个箱子有4个值

当covergroup instance
gv2
auto\u bin\u max
设置为32时,您将得到32个大小相同的箱子。256/32=8,因此每个箱子有8个值

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);