Coveegroup x;
C: Coverpoint a {type_option.weight=0;}
Endgroup
对于covergroup x的所有实例,我想将coverpoint C权重设置为0。所以我使用了type_option,因为选项是特定的设置。
我创建了这个封面组的4个对象,但是在每个对象中,尽管将C的权重设置为0,但仍考虑使用C来计算覆盖率。
当我使用option而不是type_option时,事情很好。
请解释一下这背后的原因。
答案 0 :(得分:1)
通常在覆盖范围内,人们不仅要关心给定封面点的每个单独实例中所涵盖的二进制位的百分比,还要关注所有实例中该封面点的总覆盖范围。如果你看一下大多数工具生成的覆盖率报告(我大多熟悉VCS;但我确信其他工具在他们的报告中做了类似的事情),你会看到总覆盖点的所有实例的覆盖率,然后是每个实例的覆盖范围按实例覆盖范围编号细分。
此处包含type_option.weight
和option.weight
的位置。type_option.weight
是汇总报告中此封面点的权重;将其设置为0将使该覆盖点上的聚合覆盖率对总覆盖数量无任何影响;而个别实例的个别实例覆盖数仍然具有权重。 option.weight
是每个实例的覆盖范围内该覆盖点的权重,因此将其设置为0将使该覆盖点在每个实例的覆盖范围内都不计算,但封面点仍将计入该组的覆盖范围。将两者设置为0表示封面点在任何计数中都没有重量;如果你只关心在十字架上使用那个封面,并且只关心那个十字架中的覆盖范围,那么这可能会有所帮助。
参见IEEE-1800 2012 SystemVerilog LRM中的第19章(在早期的LRM中可能是19,但我现在正在看2012)。