sv9.6.7&9.6.9&9.6.10条件覆盖率,翻转覆盖率,在状态和翻转中使用通配符
1.条件覆盖率
(1) 可以使用关键字iff给覆盖点添加条件,这种做法最常用于在复位期间关闭覆盖以忽略一些杂散的触发;
注:也可以使用covergroup_name.stop()与covergroup.start()进行covergroup的采样;
(2) 可以使用start和stop函数控制覆盖组中各个独立的实例;
2.翻转覆盖率
1 示例 2 1,5=>6,7 等同于(1=>6),(1=>7),(5=>6),(5=>7); 3 3 [*5] 等同于3=>3=>3=>3=>3; 4 3 [*3=>5] 等同于(3=>3=>3),(3=>3=>3=>3),(3=>3=>3=>3=>3); 5 3[->3] 等同于...=>3...=>3...=>3;
1 示例 2 bit[4:0] v_a; 3 4 covergroup cg @(posedge clk); 5 coverpoint v_a { 6 bins sa=(4=>5=>6),([7:9],10=>11,12); 7 bins sb[]=(4=>5=>6),([7:9],10=>11,12); 8 bins allother=default sequence; 9 } 10 endgroup
3.在状态和翻转中使用通配符
注:下面场景可以使用with表达式的coverpoint(详见system verilog standard 19.5.1.1);