1. covergroup 实现多次例化
//覆盖低18位单独为1的情况
covergroup h18(int idx) @(posedge clk);
type_option.per_instances=1;
coverpoint c_h18[idx]{
bins all_1[]={1'b1};
}
endgroup
initial begin
h18 h[18]; //声明为含18个元素的数组
for(int i=0;i<=17;i++) h[i]=new(i); //例化18次,分别传入不同的参数
end
备注:
a. per_instances=1的作用,用在仿真过程中,将每个实例的覆盖率单独统计出来;
3. option与type_option的区别
区别仅用于指定weight时,option.weight=0局部有效,即统计总计覆盖率,依然会统计该点的值;
type_option.weight=0全局有效,即统计总体覆盖率时,不会统计该点的值;
2.用urg生成报告,并带上参数 -group instcov_for_score(重点)
command line:-urg -full64 -dir ./cov/test.vdb -group instcov_forscore &
备注:
a.该参数仅urg支持,dve不支持
b. 该参数的作用,用于覆盖率合并过程中,将各instance 的覆盖率按加权统计到总计覆盖率中
c. 图为带参数和不带参数的区别:
d. INST_SCORE 计算细则:
((100*22)+1.56+100)/38=60.57;
h18与h19相同,附上实例明细: