vcs 覆盖率收集2——覆盖率选项 + 合并覆盖率
文章目录
- 前言
- 一、覆盖率
- 1、覆盖率选项
- 二、覆盖率查看
- 1、dve查看
- 2、verdi查看
- 3、urg查看
- 三、合并覆盖率urg
前言
2023.3.20 继续学习跑回归测试,以及查看覆盖率
一、覆盖率
有两类覆盖率
- 代码覆盖率
- 功能覆盖率
对于code coverage,在编译和仿真需要加额外参数。对于function coverage,编译和仿真不需要加额外参数。
编译如果带有coverage选项,会在编译目录下,生成simv.vdb
目录,里面包含了coverage model
1、覆盖率选项
使用的较多的是-cm
, -cm_name
, -cm_dir
这三个选项编译和仿真过程都要加上。
-cm
:指定使能覆盖率的类型,包括:line、cond、fsm、tgl、path、branch和assert
-cm line+cond+fsm+tgl+branch+assert
-cm_count
:在统计是否覆盖的基础上,进一步统计覆盖的次数
-cm_dir
:指定覆盖率统计结果的存放路径,默认是simv.vdb,更改默认的coverage model生成的目录
-cm_log
:指定保存覆盖率结果的文本文件的名称
-cm obc
:使能可观察覆盖率的编译
-cm_name
:修改默认的test目录。对于每一个test,生成的coverage数据,默认是在simv.vdb/snps/coverage/db/testdata/test目录下。比如-cm_name load_test,那么coverage数据,就会生成在simv.vdb/snps/coverage/db/testdata/load_test目录下。
-cm_hier
:指定覆盖率统计的范围,可以指定是module名、层次名和源文件等。0表示统计所有,1表示只统计当前层,2表示统计当前层和下一层,之后依次类推。
-cm_tgl mda
:为Verilog 2001和SystemVerilog未打包的多维数组启用翻转覆盖
-cm_noconst
:告诉VCS不要监视由于信号始终为1或0值而永远无法满足的条件或永远无法执行的线路
-cm_noseqconst
:(没找到啥意思)
-cm_cond
:由一个或多个参数指定的修改后的条件覆盖率
- basic:只有逻辑条件,没有多个条件
- std:仅逻辑和敏感条件
- allops:逻辑和非逻辑条件
- full:完整的逻辑和非逻辑,多种情况,不敏感条件
- event:事件控制的敏感列表位置中的信号都是条件
- anywidth:启用需要超过32位的条件
- for:如果启用for循环,则启用条件
- tf:在用户定义的任务和功能中启用条件
-cm_fsmcfg
:指定状态机覆盖率配置文件
-cm_line contassign
:收集行覆盖率,并且忽略连续赋值语句
-cm_cond nocasedef
:在统计case语句的条件覆盖率时,不考虑default条件未达到的情况
在编译代码的时候加上这些覆盖率选项
-cm line+cond+fsm+tgl+branch
-cm_linecontassign
-cm_cond allops+anywidth+event
-cm_noseqconst
-debug_all
参考链接:
VCS命令详解(一):编译命令
VCS 编译仿真方法总结
二、覆盖率查看
1、dve查看
dve -full64 -cov -dir simv.vdb
2、verdi查看
verdi -cov -covdir *.vdb/ &
verdi -cov -cov_dir simv.vdb
问题:不知道为啥没有license,目前只能用dve去看覆盖率,could not checkout verdi coverage license
(未解决)
在eetop看到一个解决方法是,在src中添加license feature “VerdiCoverage”
,再去生成license,我尝试过,dat文件里面有这个feature了,但是还是用verdi查看不了覆盖率
3、urg查看
在当前目录下,会生成 urgReport
目录,里面有生成的html文件,使用浏览器即可查看这些文件。
urg -dir simv.vdb
firefox urgReport //表示用浏览器打开覆盖率,进行查看
三、合并覆盖率urg
urg:Unified Report Generator,将coverage数据转换为html格式
-dir
:指定需要拿到的db的hier
-dbname
:指定输出的merge db的hier
-elfile
:指定exclusive的file,这样更好计算coverage
-elfilelist
:忽略中每一个.el文件
-noreport
:不输出最终的report,只是merge db
-report
:输出report
-format text/both
:指定report的输出格式,both意思是两种格式都输出
-matric
[line,cond,fsm,tgl,branch,assert]:执行计算的coverage类型
-parallel
:并行merge
-full64
:以64bit的程序进行merge,如果是64位,也可以不加这个选项
-warn none
:忽略warning信息
-metric
:+line等等,意思位提取特定的coverage
这行代码的功能是,从当前目录下查找vdb文件,将其覆盖率进行合并,合并后的文件叫做merged.vdb
,且是并行merge
的,最后输出report,文件名叫做urgReport
,里面有html格式的覆盖率。
urg -full64 -dir *.vdb -dbname merged -parallel -report urgReport
假如修改了覆盖率相关的代码,如新添加了coverpoint等等,希望把新收集的和以前的merge到一起,可以使用选项-flex_merge union
,不希望合并就使用-flex_merge drop
urg -full64 -flex_merge union -dbname <merge_coverage_name>.vdb -dir simv.vdb &urg -full64 -flex_merge drop -dbname <merge_coverage_name>.vdb -dir simv.vdb &
vcs 覆盖率收集2——覆盖率选项 + 合并覆盖率相关推荐
- jacoco收集探针结果时机_Jacoco覆盖率使用总结
tags: Java 前阵子使用 Jacoco 进行代码覆盖率测试,由于项目特殊遇到了不少坑,网上搜到的教程感觉也不够全面,特此记录. 所用到的工具软件的版本信息如下 Jacoco 版本:0.8.0 ...
- Cadence IMC(Integrate Metrics Cener) tools 覆盖率收集配置
Cadence以前覆盖率收集的工具是Incisive Comprehensive Coverage (ICC),现在整合到IMC中了. 使用IMC首先要加载 mdv(MDVMAIN)模块 或者加载vm ...
- nodejs 获取文件路径_Qunar 酒店 Nodejs 覆盖率收集实践
作者介绍 马涛,2013 年加入去哪儿网技术团队,目前在目的地事业部,负责 H5.小程序类应用开发.个人对移动端技术领域和前后端工程化有浓厚兴趣,勇于探索实践追求极致. 概述 一般来讲我们是通过写单元 ...
- 如何成为一名高级数字 IC 设计工程师(6-5)数字 IC 验证篇:覆盖率收集
一.覆盖率定义 覆盖率,指的是验证工作中不可或缺的一个重要环节,通过覆盖率驱动的方式,不仅可以量化验证的进度,还能够保证验证的完备性: CDV,指的是覆盖率驱动验证. 二.覆盖率类型 代码覆盖率:UT ...
- SonarQube +Jenkins +JaCoCo 实现Java单元测试,单节点集成覆盖率测试,集群集成覆盖率测试(三)~集成测试篇
写在最前: 本文主要讲解SonarQube实现对Java代码的集成覆盖率扫描,代码质量扫描. 其中,集成覆盖率分为单节点,集群两种模式,文内都有详解. 参考链接: 环境版本和安装 SonarQube单 ...
- testng查看覆盖率_使用Cobertura统计单元测试覆盖率
学习Cobertura的起因是前天晚上媳妇儿(终于有出场机会了)突然问我有没有用过一些可以统计单元测试覆盖率的工具,答曰:木有...感觉比较丢人,于是昨天晚上研究了一把,今天顺便share一下. 因为 ...
- 覆盖率选项,覆盖率分析
covergroup选项提供不同的覆盖率选项,来计算覆盖率. 单独列出每个covergroup实例的覆盖率 一个covergroup可能会被多个地方例化使用,默认情况下sv会将所有的实例的覆盖率合并到 ...
- 生成jacoco报告_测开技能之如何利用ant jacoco 合并覆盖率报告
在之前的文章,利用JaCoCo统计接口测试中代码覆盖率 和 ant+Jacoco 统计tomcat远程部署后项目接口自动化测试或者功能测试代码覆盖率 文章中介绍了如何获取测试代码的覆盖率,但是我们 ...
- java代码实现单元测试jacoco覆盖率收集生成多模块聚合报告
文章目录 背景 一.准备工作 - 生成exec文件 二.准备工作 - 引入依赖 三.利用jenkins-jacoco插件源码收集覆盖率结果 四.生成jacoco报告文件,聚合多模块 附赠相关知识点 背 ...
最新文章
- JavaScript 返回多个值
- 回文子串—leetcode647
- 监控工具—Prometheus—安装部署
- P1372 又是毕业季I
- RabbitMQ镜像策略set_policy
- Java 产生随机数:Java 中产生随机数的方法及应用汇总
- 一道滴滴的产品面试题
- 吴恩达深度学习CNN作业:Convolutional Neural Networks: Step by Step
- mysql optimize 用法_mysql中OPTIMIZE TABLE的作用
- Jeff Dean的神话
- 大数据和云计算的区别
- 五大领域总目标指南_五大领域总目标记忆口诀
- 华三模拟器的错误使用方法
- 汉字风格迁移篇---个人手写体汉字字体的学习与生成*
- sorry, the application has stop excepted
- redis下载(windows版)
- 字节跳动核心竞争力到底是什么?
- 局域网的基本概念与体系结构
- P1719 最大加权矩形(最大连续子段和+矩形二维降一维+前缀和)
- 求超定方程组最小二乘解的三种方法