我如何知道将自动创建哪些垃圾箱?
How can I know what are the automatically bins will be created?
此代码来自"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 引用的实例的容器是“auto[0:3]”到“auto[252:255]”,而
gv2 引用的实例的 bin 是“auto[0:7]”到“auto[248:255]”。“
谁能给我解释一下,为什么要创建这些垃圾箱?
是的。选项 auto_bin_max
设置将自动创建的最大 bin 数。因此,使用 8 位变量 a
(如您在此处所用),而不是创建 256 个分箱(每个值一个分箱),您将获得 auto_bin_max
个分箱。
当 auto_bin_max
为 covergroup 实例 gv1
设置为 64 时(这实际上是它的默认值),所以你得到 64 个大小相等的 bin。 256/64=4,每个bin是4个值。
当 auto_bin_max
为 covergroup 实例 gv2
设置为 32 时,您将获得 32 个大小相同的容器。 256/32=8,所以每个bin是8个值。
此代码来自"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 引用的实例的容器是“auto[0:3]”到“auto[252:255]”,而 gv2 引用的实例的 bin 是“auto[0:7]”到“auto[248:255]”。“
谁能给我解释一下,为什么要创建这些垃圾箱?
是的。选项 auto_bin_max
设置将自动创建的最大 bin 数。因此,使用 8 位变量 a
(如您在此处所用),而不是创建 256 个分箱(每个值一个分箱),您将获得 auto_bin_max
个分箱。
当 auto_bin_max
为 covergroup 实例 gv1
设置为 64 时(这实际上是它的默认值),所以你得到 64 个大小相等的 bin。 256/64=4,每个bin是4个值。
当 auto_bin_max
为 covergroup 实例 gv2
设置为 32 时,您将获得 32 个大小相同的容器。 256/32=8,所以每个bin是8个值。