功能覆盖率语法

功能覆盖率模型是一个component组件,派生自uvm_component

class function_cov extends uvm_component;

    `uvm_component_utils_begin(function_cov)

    `uvm_component_utils_end


endclass

option.name:

option.weight:用于此设置此仓值的权重。在计算覆盖的总数时,若这个仓的权重设置为0,即使这个仓又被击中,也不会计算。若设置权重为2,hit了一次,则hit总数据会加2。

option.at_least:默认情况下,数值采样了1次就可以计入有效的bin。可以通过修改at_least来修改每个bin的数值 最少的采样次数,如果低于at_least数值,则不会被计入bin中。

选项说明
option.weight=number计算覆盖率时所在covergroup或coverpoint或cross的权重。常用于在不关心的coverpoint种的weight设置为0
option.at_least=number表示每个bin最少被采样多少次才算入命中
option.goal=number覆盖率目标
option.auto_bin_max=number自动产生bins的最大数量
option.per_instance=boolean1表示例化多份时,每一个实例一个覆盖率;0表示覆盖率合并
option.comment=string注释,若一个covergroup例化多份,可在例化时通过参数传入不同的comment
sample()采样
start()开始覆盖率的收集
stop()关闭覆盖率的收集
get_coverage()

获取所有覆盖率组的覆盖率,返回一个从0到100的实数(该方法可带参数)

get_inst_coverage()获取单个实例的覆盖率,需要用option指定(该方法可带参数)
$set_coverage_db_name ( name )设置的覆盖率数据库文件名,在仿真结束后,用于保存覆盖率信息
$load_coverage_db ( name )从给定的文件名加载所有覆盖率组类型积累的覆盖率信息
set_inst_name(string)设置covergroup的名称

一个覆盖组(covergroup)可以有多个覆盖点(coverpoint),一个覆盖点可以设置多个要覆盖的仓值(bin)。bin有显式bin和隐式bin。用bins关键字来定义显示的bin,隐式的bin是在变量的取值范围内被自动创建。

覆盖组选项auto_bin_max指明了自动创建仓的最大数目,缺省值是64。值域超过指定的最大值,SV会把值域范围平分到auto_bin_max个仓中。如果采样变量的域范围过大而又没有指定bin,那么系统会默认分配64个bin,将值域范围平均分配个这64个bin,例如一个16bit变量有65536个可能值,所以64个bin中的每一个都覆盖了1024个值。

binsof intersact

面向数据覆盖:

面向控制覆盖:行为序列,可通过编写SVA检测是否发生。如是否发生过反压。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值