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的更多相关文章

  1. 转:SYNOPSYS VCS Makefile文件编写与研究

    SYNOPSYS VCS Makefile文件编写与研究 这个Makefile是synopsys提供的模板,看上去非常好用,你只要按部就班提供实际项目的参数就可以了.我们来看这个文件的头部说明:mak ...

  2. Cadence UVM基础视频介绍(UVM SV Basics)

    Cadence关于UVM的简单介绍,包括UVM的各个方面.有中文和英文两种版本. UVM SV Basics 1 – Introduction UVM SV Basics 2 – DUT Exampl ...

  3. SV processses

    SV中的structured procedure: 1)intial procedure,keyword只有initial:最开始被调用一次: 2)always procedure,keyword包括 ...

  4. SV中的覆盖率

    SV采用CRT的激励形式,而判断验证进度的标准也就是覆盖率(coverage). 覆盖率的两种指定形式:显式的,直接通过SV来指定出的,如SVA,covergroup. 隐式的,在验证过程中,随&qu ...

  5. coverage report

    转载:http://blog.sina.cn/dpool/blog/s/blog_7853c3910102yn77.html VCS仿真可以分成两步法或三步法, 对Mix language, 必须用三 ...

  6. 挣值管理(PV、EV、AC、SV、CV、SPI、CPI) 记忆

    挣值管理法中的PV.EV.AC.SV.CV.SPI.CPI这些英文简写相信把大家都搞得晕头转向的.在挣值管理法中,需要记忆理解的有三个参数:PV.AC.EV.     PV:计划值,在即定时间点前计划 ...

  7. Python 代码覆盖率统计工具 coverage.py

    coverage.py是一个用来统计python程序代码覆盖率的工具.它使用起来非常简单,并且支持最终生成界面友好的html报告.在最新版本中,还提供了分支覆盖的功能. 官方网站: http://ne ...

  8. test homework ~ coverage about method printPrimes

    /******************************************************* * Finds and prints n prime integers * Jeff ...

  9. 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 ...

随机推荐

  1. 第四百一十二节,python接口,抽象方法抽象类

    Python接口 在Python中所谓的接口,有两种,一种是通过url访问的api接口 一种是一个对象的接口 构造接口 class Ijiekou: """ 定义一个约束 ...

  2. 消息中间件系列五:RabbitMQ的使用场景(异步处理、应用解耦)

    一.异步处理 场景: 用户注册,写入数据库成功以后,发送邮件和短信. 准备工作: 1)安装RabbitMQ,参考前面的文章 2)新建一个名为RabbitMQAsyncProc的maven web工程, ...

  3. asp.net core cors中间件

    public class CorsMiddleware { private readonly RequestDelegate _next; public CorsMiddleware(RequestD ...

  4. yii2 緩存

    1.Yii框架的缓存 主要就是“memcache” 和 “cache”两种 Yii的自带缓存都继承CCache 类, 在使用上基本没有区别 2.使用方法 (1)在config配置文件main.php文 ...

  5. 关于HOOK KiPageFault需要用到自旋锁研究

    KeAcquireSpinLockRaiseToDpc 可以使用这个函数 来开启自旋锁

  6. monit介绍和配置

    1.介绍 monit监控和管理进程.程序.文件.目录和Unix系统的文件的工具.可以进行自动维护和修理,在错误的情况下执行有意义的因果关系的行动.比如,某个进程没有运行启动它:没有响应重启它:占用太多 ...

  7. cocos2dx2.x&3.x部分函数对照表

    | v2.1 names | v3.0 names | | ccp | Point | | ccpNeg | Point::- | | ccpAdd | Point::+ | | ccpSub | P ...

  8. Scala 中方法扩展实践

    前言 这个名字不知道取得是否合适,简单来说要干的事情就是给某个类型添加一些扩展方法,此场景在各种语言中都会用到,比如 C# 语言,如果我们使用一个别人写好的类库,而又想给某个类库添加一些自己封装的方法 ...

  9. 在php cli下可以使用 STDIN 来实现标准输入

    简单的例子:  echo "请输入一个数字:";  $num = trim(fgets(STDIN)); echo "请再输入一个数字:";  $num1 =  ...

  10. 30、git 使用

    Git 一. 目标 (一) Git的操作 二. Git和SVN的区别 (一) SVN优缺点 1. 优点: (1) 管理方便,逻辑明确 (2) 易于管理,集中式服务器更能保证安全性 (3) 代码一致性非 ...