SV 的覆盖率屏蔽 “ ignore_bins[]={[0:8]}; ” 这条语法的 ignore_bins 为啥不能自动建仓?
时间: 2024-04-13 17:30:56 浏览: 125
在 SV(SystemVerilog)中,语法 `ignore_bins[]={[0:8]};` 是用来创建一个名为 `ignore_bins` 的覆盖率屏蔽,该屏蔽将忽略覆盖率统计中的第0到第8个bin。
然而,根据我理解,SV 并不支持自动创建覆盖率屏蔽。在 SV 中,你需要先定义一个覆盖率屏蔽,然后在代码中显式地使用这个屏蔽。
举个例子,你可以先定义一个覆盖率屏蔽 `ignore_bins`,然后在需要屏蔽覆盖率统计的地方使用这个屏蔽,如下所示:
```systemverilog
covergroup MyCovergroup;
// 定义覆盖点等
// 定义覆盖率屏蔽
coverpoint myCoverpoint {
ignore_bins binsof(myCoverpoint) with (ignore_bins);
}
// 其他代码...
endgroup
// 使用覆盖率屏蔽
MyCovergroup.ignore_bins = '1;
// 其他代码...
```
在上述代码中,我们首先定义了一个名为 `MyCovergroup` 的覆盖组(covergroup),其中包含一个名为 `myCoverpoint` 的覆盖点(coverpoint)。然后,在定义 `myCoverpoint` 时,我们使用了 `ignore_bins` 这个覆盖率屏蔽。
最后,在代码中的适当位置,我们将 `MyCovergroup.ignore_bins` 设置为 `'1`,表示要启用 `ignore_bins` 这个覆盖率屏蔽。
请注意,具体的使用方法可能会因为你的代码和工具链而有所不同。如果你有特定的代码示例或者工具要求,请提供更多细节,以便我能够更好地帮助你。
阅读全文