1,vcs覆盖率收集的命令及含义
选项 | 说明 |
-cm <options> | 指定覆盖率的类型,包括:line(行覆盖)、cond(条件覆盖)、fsm(状态机覆盖)、tgl(翻转率覆盖)、path(路径覆盖)、branch(分支覆盖)和assert(断言覆盖)。 如果包括两种或以上的覆盖率类型,可用“+”,如-cm line+cond+fsm+tgl |
-cm_assert_hier <filename> | 将SVA覆盖率统计限定在文件列表中指定的module层次。 |
-cm_cond <arguments> | 进一步细化条件覆盖率的统计方式,包括basic,std,full,allops,event,anywidth,for,tf,sop等选项。 |
-cm_count | 在统计是否覆盖的基础上,进一步统计覆盖的次数 |
-cm_dir <directory_path_name> | 指定覆盖率统计结果的存放路径 |
-cm_hier <filename> | 指定覆盖率统计的范围,范围在文件中定义,可以指定module名、层次名和源文件等。 |
-cm_log <filename> | 指定仿真过程中记录覆盖率的log文件名 |
-cm_name <filename> | 指定保存覆盖率结果的文本文件的名称 |
2,覆盖率合并
merge:
@echo ${DB_FILE}
urg -full64 -dir ${DB_FILE} -dbname ${PATH}/merged.vdb
cov:
bp dve -full64 -cov -covdir ${PATH}/merged.vdb
这里${DB_FILE}为多个simv.db文件的集合,我们可以在脚本内将所有的用例的覆盖率文件都生成到这个目录里面,方便覆盖率的合并,${PATH} 为最后合并到一起的文件。
3,结合dve查看覆盖率
结合2中的命令,我们使用dve可以将合并后的覆盖率文件打开,来看我们所有用例跑完之后对整个代码的覆盖情况。