文章目录
- 前言
- 一、如何统计代码覆盖率
- 二、如何查看代码覆盖率
- 三、参考文档
- 总结
前言
在数字RTL验证过程中,代码覆盖率是验证是否收敛的一个重要指标,这里记录以下代码覆盖率相关的内容。
- 统计代码覆盖率的方法
- 查看代码覆盖率的方法
一、如何统计代码覆盖率
在仿真命令后面加入如下选项,可以用于统计代码覆盖率:
vcs -cm tgl+line+fsm+cond+branch -cm_hier ./filename
-cm tgl+line+fsm+cond+branch选项,分别开启代码的翻转覆盖率、行覆盖率、状态机覆盖率、条件覆盖率、分支覆盖率。
-cm_hier选项,用于指定需要统计代码覆盖率的层次结构。
filename中的格式如下所示:
+tree是关键字,top.u_dut是需要被统计的层次结构,0表示自顶向下全部统计。
二、如何查看代码覆盖率
可以在makefile中编写如下函数,实现代码覆盖率的查看
coverage:
cd output; \
rm -rf urgReportALL; \
urg -dir ./*/*.vdb -format both -report urgReportALL; \
firefox urgReportALL/tests.html &
-dir 指定代码覆盖率vdb文件存放的路径;
-format 指定生成代码覆盖文件的格式,both表示txt和html两种格式都生成;
-report 指定生成的文件存放的文件夹;
三、参考文档
关于代码覆盖率更多的介绍,可以参考如下官方文档:
$VCS_HOME/doc/UserGuide/pdf/cov_ug.pdf —— Coverage Technology User Guide
$VCS_HOME/doc/UserGuide/pdf/cov_ref.pdf —— Coverage Technology Reference Manual
注:如果没有pdf这个文件夹,说明工具安装的时候没有装vcs的doc。
总结
这篇文章主要介绍了,在数字前端仿真过程中,常用的代码覆盖率的统计和查看方法,更多更详细的介绍可以查看vcs官方文档的介绍。