Linux下VCS覆盖率检查

2020-07-20 16:05:24 浏览数 (3)

在一个芯片验证的工程中,通常以代码覆盖率和功能覆盖率来体现验证是否完备,而代码覆盖率包括:行,状态机,翻转,条件,分支覆盖率。为了保证验证的充分性,我们要尽可能保证这五种类型的代码覆盖率达到100%。

行覆盖率 line coverage 要求百分之99-100

状态机覆盖率 FSM coverage

条件覆盖率 conditional coverage

翻转覆盖率 Toggle coverage :0->1 ,1->0

路径覆盖率 Path coverage :initial 和always里的语句

分支覆盖率 branch coverage

-cm line cond fsm branch tgl为生成什么条件的覆盖率

Makefile文件中覆盖率脚本:

执行vcs

产生的.vdb文件为产生覆盖率的信息

一步步cd进去可以看到coverage文件

下面进行覆盖率查看,输入如下命令 dve -covdir *.vdb &

弹出DVE界面,通过DVE查看覆盖率(方法1)

双击tb_state 进入,可以看到代码会有颜色标注,覆盖到的为绿色,没有覆盖到的为红色

Line coverage

Toggle coverage

FSM coverage

Condition coverage

Branch coverage

通过URG查看覆盖率(方法2),可以以文本格式或者网页格式显示覆盖率

点击run,产生urgReport;

或者在命令栏urg -dir *.vdb &

ls之后可以看到urgReport,cd进去可以看到.html文件和 .xml文件

会显示很详细的覆盖率报告

Tb文件:

Module文件

1 人点赞