我们一般习惯在哪里开发我们的功能覆盖率模型呢?是使用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文章
385浏览量
59787
原文标题:在sv class中开发covergroup
文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论