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 ...
随机推荐
- 第四百一十二节,python接口,抽象方法抽象类
Python接口 在Python中所谓的接口,有两种,一种是通过url访问的api接口 一种是一个对象的接口 构造接口 class Ijiekou: """ 定义一个约束 ...
- 消息中间件系列五:RabbitMQ的使用场景(异步处理、应用解耦)
一.异步处理 场景: 用户注册,写入数据库成功以后,发送邮件和短信. 准备工作: 1)安装RabbitMQ,参考前面的文章 2)新建一个名为RabbitMQAsyncProc的maven web工程, ...
- asp.net core cors中间件
public class CorsMiddleware { private readonly RequestDelegate _next; public CorsMiddleware(RequestD ...
- yii2 緩存
1.Yii框架的缓存 主要就是“memcache” 和 “cache”两种 Yii的自带缓存都继承CCache 类, 在使用上基本没有区别 2.使用方法 (1)在config配置文件main.php文 ...
- 关于HOOK KiPageFault需要用到自旋锁研究
KeAcquireSpinLockRaiseToDpc 可以使用这个函数 来开启自旋锁
- monit介绍和配置
1.介绍 monit监控和管理进程.程序.文件.目录和Unix系统的文件的工具.可以进行自动维护和修理,在错误的情况下执行有意义的因果关系的行动.比如,某个进程没有运行启动它:没有响应重启它:占用太多 ...
- cocos2dx2.x&3.x部分函数对照表
| v2.1 names | v3.0 names | | ccp | Point | | ccpNeg | Point::- | | ccpAdd | Point::+ | | ccpSub | P ...
- Scala 中方法扩展实践
前言 这个名字不知道取得是否合适,简单来说要干的事情就是给某个类型添加一些扩展方法,此场景在各种语言中都会用到,比如 C# 语言,如果我们使用一个别人写好的类库,而又想给某个类库添加一些自己封装的方法 ...
- 在php cli下可以使用 STDIN 来实现标准输入
简单的例子: echo "请输入一个数字:"; $num = trim(fgets(STDIN)); echo "请再输入一个数字:"; $num1 = ...
- 30、git 使用
Git 一. 目标 (一) Git的操作 二. Git和SVN的区别 (一) SVN优缺点 1. 优点: (1) 管理方便,逻辑明确 (2) 易于管理,集中式服务器更能保证安全性 (3) 代码一致性非 ...