有一种方法可以保护创建一个显式命名的bin,如下所示
coverpoints_bins: coverpoint signal_a
bins a1 = {1};
bins a2 = {2};
bins a4 = {4}; <--- create bin a4 only if parameter "CREATE_A4 is 1"
例如这样的东西:
coverpoints_bins: coverpoint signal_a
bins a1 = {1};
bins a2 = {2};
bins a4 = {4} create_iff(CREATE_A4 == 1);
注意:除非条件为真,否则create_iff只是一些伪代码函数,可防止创建垃圾箱
因为据我所知,iff
条件不能防止垃圾箱的创建,但是iff
仅可以防止垃圾箱命中
答案 0 :(得分:2)
您可以使用with
子句来选择垃圾箱
bins a4 = {4} with (CREATE_A4 == 1);
这可能会生成一条警告消息,提示您设置了一个空的纸槽。另一种方法是使用bin集数组。
int my_bins[];
...
if (CREATE_A4 == 1) // execute this before constructing the covergroup
my_bins = {1,2,4};
else
my_bins = {1,2};
...
coverpoints_bins: coverpoint signal_a
bins a[] = my_bins;