VCS coverage覆盖率工具常用功能

article/2025/10/23 10:40:05

目录

简介

Coverage Metrics覆盖指标:

merge

VCS相关命令

常用编译选项:

常用仿真选项:

系统函数:

使用URG及其参数:

用DVE查看coverage:


简介

可通过 -cm_hier 配置文件来控制覆盖率收集范围

Coverage Metrics覆盖指标:

-cm

vcs使用编译选项 -cm (line+cond+tgl)生成simv.vdb文件夹,仿真选项中使用-cm (line+cond+tgl),会在simv.vdb/snps/coverage/db/testdata/your_cm_name下产生覆盖率xml文件;

-cm_name

编译选项or仿真选项 -cm_name your_cm_name 将会生成覆盖率文件:simv.vdb/snps/coverage/db/testdata/your_cm_name;

-cm_dir

默认情况下,vcs会编译出可执行文件simv,同时,会生成simv.vdb,如果使用了编译选项-o simv_name,可执行文件会更名为simv_name,而vdb文件的名字会变成simv_name.vdb;

编译选项 -cm_dir simv_path_name,可以独立指定vdb的路径和文件名。vcs -cm tgl -cm_dir /net/design1/mycm source.v,会在/net/design1下生成mycm.vdb;

如果在编译选项中指定了cm_dir,则默认此simv的所有coverage数据会产生在其指定路径;

仿真选项-cm_dir simv_path_name,仅指定本次仿真的coverage数据存放路径;

-cm_dir 优先级大于-o;

在使用urg时,用-dir 载入各个vdb文件夹:urg -full64 -dir /net/design1/my_cov_info -dir /net/design1/int_dat_files;

merge

在一次编译多次仿真时,可在仿真选项中使用cm_dir 或 cm_name 来改变存放覆盖率文件的名称和位置,以避免各个仿真的覆盖率文件被覆盖;

urg -full64 -dir simv.vdb simv1.vdb simv2.vdb -dbname mergedir/merged 会将所有覆盖率xml文件合并在mergedir.vdb/snps/coverage/db/testdata/merged下,并产生报告文件urgReport;

VCS相关命令

常用编译选项:

-cm

可选择line | cond | fsm | tgl | branch | assert,如-cm line+cond+tgl

-cm_dir

-cm_name

-cm_hier filename

控制覆盖率收集范围

-cm_tgl mda

使能多维数组的toggle coverage 收集

常用仿真选项:

-cm

-cm_dir

-cm_name

-covg_cont_on_error

当仿真运行到 illegal functional coverage bin,将会继续运行

-covg_disable_cg

关闭所有的功能覆盖率covergroups

-covg_dump_range

保存bin的定义,配合urg的-group show_bin_values,将会把bin的定义生成到report中

实用的选项:

-covg_disable_cg编译选项、仿真选项

若作为编译选项,则关闭covergroup并忽略其实例相关的语句;

若作为仿真选项,则仅关闭covergroup;

可用于分析function coverage带来的性能降低;

-cg_coverage_control=0

从0ns关闭function coverage,但可以使用$cg_coverage_control系统函数再次打开;

-cm_glitch period 编译选项、仿真选项

用于避免毛刺带来的多余coverage,如–cm_glitch 0可过滤delta cycle 毛刺。period的单位是timeunit;

作为编译选项时,可过滤所有类型的覆盖率;

作为仿真选项时,仅过滤toggle coverage;

系统函数:

系统函数可以在运行期动态查询或修改覆盖率选项;

系统函数需要编译选项和仿真选项 -cm;

$cm_coverage(mode,type,include_hierarchy,"module_or_instance",...)

查询正在收集的覆盖率类型,使能或关闭某些覆盖率类型;

$cm_get_coverage and $cm_get_limit

使用URG及其参数:

利用urg产生覆盖率报告,如:urg -full64 -dir simv.vdb -report both & 将在both文件夹产生report;

-dir directory_name

用于处理的原数据库,可跟多个vdb文件,空格隔开;

-f file_name

用于处理的原数据库的filelist;

-dbname dirname/testname

merge覆盖率将其生成在dianame.vdb文件夹下,若无testname,则testname默认为test;

-noreport

不产生report,常配合 -dbname 使用

-elfile <file>

urg -elfile filename.el,用于加载el文件;

-elfilelist <filelist>

用法同verilog的filelist;

-format text

仅生成text报告;

-format both

生成test和html报告;

-hier filename

用法同vcs命令选项;

-line nocasedef

不计算default case的line coverage;

-show brief

report中仅显示未覆盖的部分;

-show tests

显示是哪些testcase覆盖到了此处,可搭配-show maxtests N(默认3)使用;如果是merge后的vdb文件,那么则无法看到具体的testcase;

用DVE查看coverage:

-使用 dve -full64 -cov -dir simv.vdb& 打开图形界面;

-过滤可排除的覆盖率;

 

-将Exclude保存为el文件;


http://chatgpt.dhexx.cn/article/x8QIda0o.shtml

相关文章

vcs/urg 进行覆盖率coverage merge及部分merge到整体

目录 1.vcs收coverage基本Option 2.相同代码的merge 3.部分merge到整体 3.1 mapfile 3.2 -map使用语法 3.3合并的常见问题 3.3.1 UCAPI-MAP-SHAPEMISMATCH coverage相关的用户手册可以在本人的百度云盘中查看Coverage Technology User Guide.pdf 还可以参考gsithxy的博文…

代码覆盖率 ——语句覆盖 Statement Coverage、分支覆盖 Branch Coverage、 路径覆盖 Path Coverage的区别

我们以下面代码为例&#xff1a; public static boolean Method(boolean a, boolean b) {int x 2;int y -4;if(a)x y;elsex -2*x;if(b)y 0-x;return ((100/(xy))> 0);}语句覆盖 Statement Coverage 当我们要实现100% Statement Coverage&#xff0c;只需以下两个test…

NGS 测序深度和覆盖度—Depth、Coverage

文章目录 前言这是比较基本的两个概念&#xff1a;二者的关系&#xff1a;例子&#xff1a;使用**bamdst**计算覆盖度安装 使用参考&#xff1a; 前言 温故而知新&#xff0c;刚入门的时候没有好好记笔记&#xff0c;现在补上&#x1f611; 公众号&#xff1a;猪猪的乌托邦 这…

idea插件Coverage(用例覆盖率)使用

idea插件Coverage&#xff08;用例覆盖率&#xff09;使用 选择测试用例中要执行的包、类或方法&#xff0c;右键选择Run …with Coverage。 执行结束后可在右侧查看覆盖率结果。可以点击导出按钮导出覆盖率报告。注意&#xff1a;若只执行了包中的某个类或方法&#xff0c;则…

浅谈coverage

背景描述&#xff1a; 公司需要对测试用例的对工程代码的覆盖率做统计&#xff0c;因此需要用到coverage&#xff0c;这里有个特殊的点&#xff0c;公司的工程运行时要在容器中进行的。 实际应用&#xff1a; 1. 首先&#xff0c;需要下载coverage&#xff1a; pip3 install…

Python代码覆盖率分析工具Coverage

目录 简介 安装 命令行中使用 调用API使用 简介 Coverage是一个Python代码覆盖率分析工具&#xff0c;它可以用于衡量Python测试代码的质量。通过给代码执行带来的覆盖率数据&#xff0c;Coverage可以帮助开发人员找出被回归测试代码中的漏洞&#xff0c;并且指明哪些代码…

coverage 测试代码覆盖率

测试覆盖率&#xff0c;简单的说&#xff0c;就是评价测试活动覆盖产品代码的指标。测试的目的&#xff0c;是确认产品代码按照预期一样工作&#xff0c;也可以看作是产品代码工作方式的说明文档。进一步考虑&#xff0c;测试覆盖率可以看作是产品代码质量的间接指标&#xff0…

GIS原理篇 Coverage

一、什么是 Coverage Coverage 是一种用于存储矢量数据的地理相关数据模型&#xff0c;它包含地理要素的空间&#xff08;位置&#xff09;数据和属性&#xff08;描述性&#xff09;数据。Coverage 使用一组要素类来表示地理要素。每个要素类存储一组点、线&#xff08;弧&am…

Python:代码覆盖率工具coverage

简介&#xff1a;覆盖率测量通常用于衡量测试的有效性。它可以显示您的代码的哪些部分正在被测试执行&#xff0c;哪些不是。coverage是一个测量 Python 程序代码覆盖率的工具。它监视您的程序&#xff0c;注意代码的哪些部分已被执行&#xff0c;然后分析源代码以识别可能已执…

configure--prefix

本文主要说明--prefix参数的作用&#xff0c;其主要用在编译安装源代码应用中的./configure环节。 ./configure --help 查看详细的说明帮助 1、源码安装一般包括几个步骤&#xff1a;配置&#xff08;configure&#xff09;&#xff0c;编译&#xff08;make&#xff09;&…

路由策略 匹配工具 IP-Prefix

⦁ p-prefix-name&#xff1a;指定地址前缀列表的名称。字符串形式&#xff0c;长度范围是1&#xff5e;169&#xff0c;不支持空格&#xff0c;区分大小写。 ⦁ index index-number&#xff1a;指定本匹配项在地址前缀列表中的序号。整数形式&#xff0c;取值范围是1&am…

CondaValueError: The target prefix is the base prefix. Aborting.

报错截图 错误原因 conda命令错误 正确做法 conda create -n py38 python3.8

zuul 里面的 prefix 和 strip-prefix 怎么使用

首先两个是配置路由前缀的&#xff0c; 下面是我网上找的一段话&#xff1a; prefix &#xff1a;前缀&#xff0c;当请求匹配前缀时会进行代理strip-prefix &#xff1a;代理前缀默认会从请求路径中移除&#xff0c;通过该设置关闭移除功能&#xff0c; 当 stripPrefixtrue …

Trie树(Prefix Tree)介绍

本文用尽量简洁的语言介绍一种树形数据结构 —— Trie树。 一、什么是Trie树 Trie树&#xff0c;又叫字典树、前缀树&#xff08;Prefix Tree&#xff09;、单词查找树 或 键树&#xff0c;是一种多叉树结构。如下图&#xff1a; 上图是一棵Trie树&#xff0c;表示了关键字集…

configure --prefix=/的作用和用法

非root用户安装python和gcc的时候&#xff0c;总是需要设定这个&#xff0c;只知道是个路径&#xff0c;具体是什么路径&#xff0c;代表什么不清楚。 不明白就百度&#xff1a; configure --prefix/是干啥用的&#xff1f;这个路径代表了什么&#xff1f; Configure是一个可…

前缀和(Prefix Sum)

前缀和指一个数组的某下标之前的所有数组元素的和&#xff08;包含其自身&#xff09;。前缀和分为一维前缀和&#xff0c;以及二维前缀和。前缀和是一种重要的预处理&#xff0c;能够降低算法的时间复杂度&#xff0c;可以在 O ( 1 ) O(1) O(1)的时间复杂度内求出区间和。 一…

CMAKE_INSTALL_PREFIX

一、定义 CMAKE_INSTALL_PREFIX为cmake的内置变量&#xff0c;用于指定cmake执行install命令时&#xff0c;安装的路径前缀。Linux下的默认路径是/usr/local &#xff0c;Windows下默认路径是 C:/Program Files/${PROJECT_NAME} 二、用…

IP-Prefix List

地址前缀列表 一、IP-Prefix List二、语法及匹配规则1、语法2、匹配规则 三、配置案例1、拓扑2、分析ACL实现IP-Prefix List实现 四、IE考试题思考题 在进行配置案例前先了解一下基础知识 一、IP-Prefix List IP-Prefix List&#xff1a;能够同时匹配网络号和前缀长度 性能及可…

【脚本】更新依赖库pkgconfig文件中的prefix设置

在本地编译和安装了某个库后&#xff0c;如果其lib目录下存在pkgconfig子目录&#xff0c;则子目录下会存在若干.pc文件&#xff0c;文件中会有prefix的配置&#xff08;该配置标识当前库的安装路径&#xff09;&#xff0c;当要把该库拷贝到其他机器上时&#xff0c;如果库的路…

Elasticsearch学习--查询(prefix、wildcard、regexp、fuzzy)

一、前缀搜索 prefix 不计算相关度评分性能较差前缀搜索匹配的是分词后的词项前缀搜索没有缓存前缀搜索尽可能把前缀长度设置的更长 GET product/_search {"query": {"fuzzy": {"name": {"value": "product1"}}} } index…