SystemVerilog|VCS 覆盖率的收集

1,vcs覆盖率收集的命令及含义

选项 说明
-cm 指定覆盖率的类型,包括:line(行覆盖)、cond(条件覆盖)、fsm(状态机覆盖)、tgl(翻转率覆盖)、path(路径覆盖)、branch(分支覆盖)和assert(断言覆盖)。
如果包括两种或以上的覆盖率类型,可用“+”,如-cm line+cond+fsm+tgl
-cm_assert_hier 将SVA覆盖率统计限定在文件列表中指定的module层次。
-cm_cond 进一步细化条件覆盖率的统计方式,包括basic,std,full,allops,event,anywidth,for,tf,sop等选项。
-cm_count 在统计是否覆盖的基础上,进一步统计覆盖的次数
-cm_dir 指定覆盖率统计结果的存放路径
-cm_hier 指定覆盖率统计的范围,范围在文件中定义,可以指定module名、层次名和源文件等。
-cm_log 指定仿真过程中记录覆盖率的log文件名
-cm_name 指定保存覆盖率结果的文本文件的名称
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查看覆盖率 【SystemVerilog|VCS 覆盖率的收集】结合2中的命令,我们使用dve可以将合并后的覆盖率文件打开,来看我们所有用例跑完之后对整个代码的覆盖情况。

4,覆盖率的反标
1,功能覆盖率的收集


2,cover group and bins


3,反标

    推荐阅读