Bootstrap

vcs覆盖率选项小结

vcs覆盖率选项

-cm

可选择line | cond | fsm | tgl | branch | assert,如-cm line+cond+tgl
如果只需要收集输入输出接口信号的tgl的话,需配置-cm_tgl portsonly

-cm_glitch period

用于避免毛刺带来的多余coverage,如–cm_glitch 0可过滤delta cycle 毛刺。period的单位是timeunit;
作为编译选项时可过滤所有类型的覆盖率;作为仿真选项时,仅过滤toggle coverage;

-cm_hier

用于指定覆盖率收集层次。
begin line+cond+tgl -tree tb_top 0 end
begin tgl +tree tb_top.DUT 1 end
begin line+cond +tree tb_top.DUT 0 end

+”代表查看,“-”代表不查看(tree的基本用法如下:+/-tree xxx.xxx level_number其中level_number为0,表示当前层次及其所属的层次都会收集;1表示仅收集当前层次;2表示收集当前层次及其下面一层;
还可以跟module:模块名
node:输入输出端口)

+moduletree 表示某个模块及该模块例化的子模块。方便处理多次例化一个module的情况

urg

使用urg生成覆盖率报告。
用法:urg -full64 -dir simv.vdb -report both &
-dir 指定原始覆盖率数据路径,可跟多个vdb文件,空格隔开;
-f 指定用于处理的原数据库的filelist;
-dbname dirname/testname
merge覆盖率将其生成在dianame.vdb文件夹下,若无testname,则testname默认为test;

-noreport
不产生report,常配合 -dbname 使用
-elfile
urg -elfile filename.el,用于加载el文件;
-elfilelist
指定多个el文件
-format text
仅生成text报告;
-format both
生成text和html报告;
-hier filename
用法同vcs命令选项;
-line nocasedef
不计算default case的line coverage;
-show brief
report中仅显示未覆盖的部分;
-show tests
显示是哪些testcase覆盖到了此处,可搭配-show maxtests N(默认3)使用;如果是merge后的vdb文件,那么则无法看到具体的testcase;

;