我们一般习惯在哪里开发我们的功能覆盖率模型呢?是使用module,还是class?
众所周知,module和class是2个完全不同的数据结构,一个静态,一个动态。也正因为如此,从而存在不同的特性和应用场景。
module比较适合抽取RTL信号构造功能覆盖率模型,而class比较适合根据验证环境中的变量构造功能覆盖率模型。
1. 上面class中声明了一个covergroup,可以对类中的属性m_x、m_y和m_z进行功能覆盖率建模。
2. 需要在类的new方法中对covergroup进行实例化。
3. 这种在class中声明covergroup的方法可以用来建模验证环境中某些变量的功能覆盖率,而不用依赖RTL。
上图中的‘covergroup xyzCover’每一次在m_z发生变化时就会进行采样,其中包含了2个coverpoints,分别是‘m_x’ 和‘m_y’.
由于这个covergroup声明和实例化在一个class中,所以只有在这个class本身被实例化并且m_z不停地被改变赋值时才会进行采样,否则不会有任何bins被覆盖。
审核编辑:刘清
-
RTL
+关注
关注
1文章
386浏览量
60072
原文标题:在sv class中开发covergroup
文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
一文详解Modelsim代码覆盖率功能使用
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
关于SpinalHDL中的验证覆盖率收集简单说明
重点厘清覆盖率相关的概念以及在芯片开发流程中跟覆盖率相关的事项
Systemverilog覆盖率的合并和计算方式
针对功能覆盖率的验证过程
Verilog代码覆盖率检查
USCIS API的应用程序发热覆盖率上

USCIS API的应用程序发热覆盖率下

评论