【路科V0】systemVerilog基础20——功能覆盖率

本文详细介绍了功能验证的重要性,包括验证目标、可能存在的问题和功能覆盖率的概念。覆盖组作为验证工具,可在类、模块或程序中定义,并通过覆盖点和交叉覆盖率来量化验证进度。覆盖点和覆盖仓用于数据采样和变化跟踪,而交叉覆盖率则涉及多个变量的联合覆盖。文章还举例说明了如何定义和使用覆盖组、覆盖点和交叉覆盖率,以及各种覆盖选项和采样事件。

概述

功能验证的目标在于确定设计有关的功能描述是否被全部实现了。

这一检查中可能会存在一些不期望的情况:要尽量发现)

  • 一些功能没有被实现
  • 一些功能被错误地实现了
  • 一些没有被要求的功能也被实现了

        我们无法通过代码覆盖率得知要求的功能是否被实现了,而需要显性地通过功能覆盖率与设计功能描述做映射,继而量化功能验证的进程。

        所以功能覆盖率极其重要,用来量化验证的指标。

覆盖组(cover group)

覆盖组可以在以下中定义覆盖组与类相似,在一次定义以后便可以多次进行例化)

  • 类/接口
  • 模块
  • 程序(program)

         在类中的覆盖组也可以采集类的成员变量。

        覆盖组应该定义在适当的抽象层次上。

        一个类/接口中,中往往可以定义多个覆盖组 。多个覆盖组可以在测试过程中,根据需要将它们使能或者禁止。

覆盖组含有

  • 覆盖点(coverpoint)(可以定义多个覆盖点,一个覆盖组包含了一个或者多个数据点,全都在同一时间采集。​​​​​​​
  • 选项(option) (有选项可以配置)
  • 形式参数( argument)(外部传入变量,方便复用)
  • 可选触发(trigger event) (覆盖组需要给采样的变量定义采样事件)

  覆盖组为了采样变量,必须先定义采样事件。只要采样事件被触发后,覆盖组监测的变量才会在该时刻被采样。(对任何事务的采样都

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值