1
Coveegroup x;
  C: Coverpoint a {type_option.weight=0;}
Endgroup

对于覆盖组 x 的所有实例,我想将覆盖点 C 的权重设置为 0。所以我使用了 type_option,因为选项是例如特定的设置。

我已经创建了这个覆盖组的 4 个对象,但是在每个对象中,C 都被考虑用于计算覆盖率,尽管它的权重设置为 0。

当我使用选项而不是 type_option 时,一切正常。

请解释一下这背后的原因。

4

1 回答 1

1

通常在覆盖范围内,人们不仅关心给定覆盖点的每个单独实例中覆盖的箱的百分比,而且还关心该覆盖点在所有实例中的总覆盖率。如果您查看大多数工具生成的覆盖率报告(我最熟悉 VCS;但我确信其他工具在他们的报告中会做类似的事情),您将看到给定覆盖点的所有实例的总覆盖率,然后是每个实例的覆盖率按每个实例的覆盖率数字细分。

在哪里type_option.weightoption.weight进来。type_option.weight是该覆盖点在汇总报告中的权重;将其设置为 0 将使该覆盖点的总覆盖率对总覆盖率无效;而单个实例在其单个实例覆盖率中仍然具有权重。option.weight是每个实例覆盖范围中该覆盖点的权重,因此将其设置为 0 将使该覆盖点在每个实例的覆盖范围中不计入任何内容,但该覆盖点仍将计入该组的聚合覆盖范围。将两者都设置为 0 会使该覆盖点在任何计数中都没有权重;如果您只关心在交叉中使用该覆盖点并且只关心覆盖在该交叉中如何出现,这将很有帮助。

请参阅IEEE-1800 2012 SystemVerilog LRM中的第 19 章(在早期的 LRM 中可能是 19,但我现在正在查看 2012)。

于 2015-03-10T21:52:33.193 回答