SV coverage
covergroup是对coverage model的一种包装,每个covergroup可以包含:
1) sync event来触发采样,
2) 很多coverpoint,
3) cross coverpoint,
4) 可选的formal arguments,
5) 很多options。
covergroup与class类似,也是需要new出来对象,本身定义的只是一个原型,covergroup可以被定义在
package,module,program,interface,checker或者class中。
sync event是可选的,省略的情况下,显示调用内部的sample() function来进行采样,build-in的sample是不支持参数传递的。
formal arguments,不可以定义为inout和output,只能定义为ref和input,这时的ref等同于const ref。这时在new的时候,需要传递进去参数。
这样的参数是不能被hier引用到的。
一个covergroup特有的option,strobe,表明只在当前time slot的最后,进行sample,避免有时可能在同一slot采样多次。

coverpoint的定义,一般需要加一个label,方便分析coverage report。
$可以在数组中,表示上限和下限;
iff可以表示条件;
default,可以表示default的数值bin;
default sequence,可以表示default的 transition bin;
wildcard bins,主要可以使用?、x、z等匹配符;需要匹配x、z的时候,使用===
with语句,表示附件条件,类似于&&;但是coverpoint中并不能使用&&;
定义全集合bins,ignore_bins,illegal_bins,否则coverage计算不能收集全。

transition的bins:[*n]表示连续的n次迭代;
[->n]表示不连续的n次迭代,但是紧跟着的是连续的跳变;
[=n]表示不连续的n次迭代,下一次的跳变不需要连续;

cross bins,可以使用逻辑运算符,!,&&,||,关键字,with,matches,binsof,intersect等。

也可以直接对cross bin进行赋值,与coverpoint相同;

covergroup中内建的几个function,
void sample();real get_coverage();real get_inst_coverage();
void set_inst_name();void start(); void stop();
用户也可以重载sample的方法,使用with function的语法:(加入参数的传递)

covergroup,coverpoint,cross point定义的option,type_option没见过用处。


auto_bin_max只对用户不定义bins的情况,auto的大小的限制;
weight,在不同的层次,表示对上一级贡献的百分比。cross中的weight,表示该cross对整个group的coverage report的影响。
SV coverage的更多相关文章
- 转:SYNOPSYS VCS Makefile文件编写与研究
SYNOPSYS VCS Makefile文件编写与研究 这个Makefile是synopsys提供的模板,看上去非常好用,你只要按部就班提供实际项目的参数就可以了.我们来看这个文件的头部说明:mak ...
- Cadence UVM基础视频介绍(UVM SV Basics)
Cadence关于UVM的简单介绍,包括UVM的各个方面.有中文和英文两种版本. UVM SV Basics 1 – Introduction UVM SV Basics 2 – DUT Exampl ...
- SV processses
SV中的structured procedure: 1)intial procedure,keyword只有initial:最开始被调用一次: 2)always procedure,keyword包括 ...
- SV中的覆盖率
SV采用CRT的激励形式,而判断验证进度的标准也就是覆盖率(coverage). 覆盖率的两种指定形式:显式的,直接通过SV来指定出的,如SVA,covergroup. 隐式的,在验证过程中,随&qu ...
- coverage report
转载:http://blog.sina.cn/dpool/blog/s/blog_7853c3910102yn77.html VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三 ...
- 挣值管理(PV、EV、AC、SV、CV、SPI、CPI) 记忆
挣值管理法中的PV.EV.AC.SV.CV.SPI.CPI这些英文简写相信把大家都搞得晕头转向的.在挣值管理法中,需要记忆理解的有三个参数:PV.AC.EV. PV:计划值,在即定时间点前计划 ...
- Python 代码覆盖率统计工具 coverage.py
coverage.py是一个用来统计python程序代码覆盖率的工具.它使用起来非常简单,并且支持最终生成界面友好的html报告.在最新版本中,还提供了分支覆盖的功能. 官方网站: http://ne ...
- test homework ~ coverage about method printPrimes
/******************************************************* * Finds and prints n prime integers * Jeff ...
- test lab ~ triangle test by using junit and coverage
first set up a new folder as your test class place, and then let your package in test class folder b ...
随机推荐
- git常见用法介绍
1. git help:帮助 git help xxx git xxx --help 2. git init:初始化 git init 3. git config:配置 常见用法 git config ...
- Ubuntu下创建新用户后,不能使用管理员用户下安装的Anaconda
解决办法: 将管理员用户下Anaconda的安装环境添加到新用户下的环境变量里,具体操作: 系统切换到新用户下: vim .bashrc #添加Anaconda的环境变量 source .bashrc ...
- shadowMap
采用PCF软化阴影,感觉还是不够柔软
- [转]springboot2 webflux 响应式编程学习路径
原文链接 spring官方文档 springboot2 已经发布,其中最亮眼的非webflux响应式编程莫属了!响应式的weblfux可以支持高吞吐量,意味着使用相同的资源可以处理更加多的请求,毫无疑 ...
- 美客分销商城-接力购源码系统,全开源代码可进行二次开发,微信小程序分销商城
1. 准备服务器.域名(SSL证书).认证的微信小程序.微信支付商户号 2. 系统功能简介 三.演示案例,微信扫码查看 四.后台管理系统 五. 全套开源源码,进行二次开发 六.本系统完美运营,全套代码 ...
- Spring 注入枚举数组
在spring的配置文件xml中 示例: <!--注入枚举数組--> <bean id="writeMapNullValue" class="org.s ...
- [BTS] BizTalk EDI character set and separator settings
最近一个项目上遇到需要对EDI头.分隔符.小数点等配置项进行设置. 这里只记录一下结果,原理不记了,多看MSDN. UNB1中的信息在BizTalk中是不会体现在EDI输出文件中的,双方协商好即可. ...
- 从0移植uboot(六) _实现网络功能
为uboot添加网卡功能可以让uboot通过tftp下载内核, 方便我们的开发, 对于网卡功能的移植,我们依然在在一遍又一遍的实践这个uboot改造的套路. 找运行逻辑,即插入代码的位置. 根据运行逻 ...
- 半深入理解CSS3 object-position/object-fit属性
半深入理解CSS3 object-position/object-fit属性 转载:https://www.zhangxinxu.com/wordpress/2015/03/css3-object-p ...
- Piggy-Bank 完全背包
来源hdu1114 Problem Description Before ACM can do anything, a budget must be prepared and the necessar ...