systemverilog的功能覆盖率,cross后屏蔽某些情况
时间: 2024-05-03 18:21:49 浏览: 142
[SV]About SystemVerilog Coverage
在SystemVerilog中,可以使用Covergroup来定义功能覆盖率。通过将Covergroup与Cross关键字结合使用,可以定义交叉覆盖率。如果想要屏蔽某些情况,可以使用IgnoreBins或IgnoreCrosses属性。
以下是一个示例:
```
covergroup my_covergroup with function sample (input int a, input int b);
option.per_instance = 1;
coverpoint a;
coverpoint b;
cross c1 = {a, b};
cross c2 = {a, b};
// Ignore the case where a=1 and b=2
c1.ignore_bins if (a == 1 && b == 2);
// Ignore the cross where a=1 and b=3
c2.ignore_cross if (a == 1 && b == 3);
endgroup
```
在上面的例子中,定义了两个交叉覆盖点c1和c2。在c1中,如果a=1且b=2,那么将忽略这个bin。在c2中,如果a=1且b=3,那么将忽略这个cross。这样做可以帮助我们更准确地评估覆盖率。
阅读全文