MCDF_SV_lab5

交叉覆盖率cross中需要交叉的俩变量,应该先各自定义并声明其覆盖点coverpoint和各个bins,然后在交叉覆盖率中,直接引用一个覆盖点中的哪个bins和另一个覆盖点中的哪个bins来交叉;

如果没有声明两者各自的覆盖点的话,那么在交叉覆盖率中可以用“bins a0b0 = binsof(a) intersect {0} && binsof(b) intersect {0}”等,来选择俩变量中需要交叉的。

且求交叉覆盖率时,将被交叉俩变量的覆盖点权重等于0——“option.weight = 0”,即不计算俩变量各自的覆盖率,只计算两者的交叉覆盖率。声明覆盖点权重等于0——该coverpoint不会生成默认的bins,即你声明了几个就是几个bins。

默认的寄存器地址:0,2,4,8循环

二进制十六进制
0000_00008'h00
0000_00108'h02
0000_01008'h04
0000_10008'h08
0001_00008'h10
0001_00108'h12
0001_01008'h14
0001_10008'h18
0010_00008'h20
......

mcdf_base_test中,增加了“do_watchdog看门狗”任务,它和do_data一起fork...join_any开始运行,并在timeout * 1ms时结束仿真。作用就是:如果测试不会正常结束,那么该任务会在规定的时间结束仿真。

收集覆盖率运行指令:

vsim -i -classdebug -solvefaildebug -coverage -coverstore /home/verifier/project/rkv_labs/hsy_sv/v2.1_lab/lab5 -testname mcdf_full_random_test -sv_seed random +TESTNAME=mcdf_full_random_test -l mcdf_full_random_test.log work.tb

合并覆盖率指令:

vcover merge -out merged_coverage.ucdb /home/verifier/project/rkv_labs/hsy_sv/v2.1_lab/lab5

将lab4的6个测试跑了一边,加上mcdf_full_random_test跑了多次,最后得到合并覆盖率:

功能覆盖率100%:

代码覆盖率87.7%:

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值