【问题标题】:Is there a way to exclude some coverpoints from coverage collection in systemverilog?有没有办法从 systemverilog 的覆盖收集中排除一些覆盖点?
【发布时间】:2016-06-13 09:31:04
【问题描述】:

我的报道包含许多复杂的十字架,所以我建立了一些当他们独立时我并不真正关心它们的封面点。 覆盖点出现在最终报告中并影响覆盖百分比。有没有办法只在覆盖率报告中包含树叶? (即十字架和不包括在十字架中的覆盖点) 是在写代码的时候完成的吗?或者有没有办法改变显示的选项和设置? (我正在使用 DVE。如果您熟悉其他内容,这也会有所帮助。)

【问题讨论】:

  • 如果交叉点被 100% 覆盖,则覆盖点通常不会影响覆盖率。如果您只创建将被交叉的覆盖点箱,则这是正确的。拥有未发现垃圾箱的报告将帮助您调试交叉覆盖率。

标签: code-coverage system-verilog


【解决方案1】:

对于所有的覆盖点,您可以使用option.weight 功能:

来自IEEE 1800-2012,表19-3:

权重 = constant_number

默认 = 1

注释 = 如果设置在覆盖组句法级别,它指定此覆盖组的权重用于计算整体累积(或类型)已保存数据库的覆盖范围。如果设置在覆盖点(或交叉)句法级别,它 指定覆盖点的权重(或交叉)以计算 累积(或类型)覆盖率 封闭的封面组。这 指定权重应为非负整数值。

您可以将要屏蔽的所有覆盖点的权重设置为零。只需在coverpoints中添加以下行:

option.weight = 0;

此外,来自同一部分的示例:

a : coverpoint a_var

{
// Use weight 2 to compute the coverage of each instance
option.weight = 2;
// Use weight 3 to compute the cumulative (type) coverage for g1
type_option.weight = 3;
// NOTE: type_option.weight = w would cause syntax error.
}

使用零权重不计算coverpoint单个覆盖命中,但应计入交叉覆盖计算。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-12-25
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多