天天看点

代码覆盖率前言一、如何统计代码覆盖率二、如何查看代码覆盖率三、参考文档总结

文章目录

  • 前言
  • 一、如何统计代码覆盖率
  • 二、如何查看代码覆盖率
  • 三、参考文档
  • 总结

前言

在数字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官方文档的介绍。