有没有办法保护Covergroup Bins的创建

时间:2019-12-30 08:54:14

标签: verilog code-coverage system-verilog hdl test-bench

有一种方法可以保护创建一个显式命名的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仅可以防止垃圾箱命中

1 个答案:

答案 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;