lab5 覆盖率收集

首先文档给的是questa的覆盖率查看方式,大概流程是:
1,在编译开始之前为设计文件添加覆盖率选项,使能了statement覆盖率、branch覆盖率、01toggle覆盖率、finite state machine有限状态机覆盖率
2,仿真命令里加入覆盖率相关的命令
i -coverage 仿真时产生代码覆盖率数据(功能覆盖率数据默认生成)
ii -coverstore COVERAGE_STORAGE_PATH 覆盖率数据的存放路径
iii -testname TESTNAME 会生成{TESTNAME}_{SV_SEED}.data的文件以区分不同test和同一个test不同种子的数据
3,run。在simulate->end simulate结束后可获得覆盖率数据。
4,查看覆盖率。利用仿真器直接查看。选中view - coverage - 代码覆盖率分析和覆盖率组
选中dut的模块可以看哪些代码执行过;covergroups查看功能覆盖率。
5,合并覆盖率。跑了多次仿真(不同seed)后,在questasim仿真命令 vcover merge -out merged_coverage.ucdb COVERAGE_STORAGE_PATH
生成的文件在file - open打开。
6,生成html报告更方便看。tools - coverage report - html。选择源代码;cgs,所有代码覆盖率,directives(指令,不知道什么意思)

但是我选择使用vcs的方式生成覆盖率。
1,makefile中的编译命令应该有对应的选项
注 comp命令
在这里插入图片描述

kdb:vcs仿真会生成verdi的库文件,通常库文件为sim.daidir,库文件里面包含相应代码信息;利用库文件verdi可以快捷打开rtl代码而不需要重新编译;
vcs +incdir+“.”,在RTL中写了`include的话,用该选项指明路径。“-incdir”用在库文件中,用来声明逻辑库
-nc 不打印synopsys的版权信息 加或不加都不影响仿真
覆盖率在elab中

-cm line+tgl+branch 行覆盖率 toggle覆盖率和分支覆盖率
2,make comp elab或者说之后就会生成带有覆盖率收集的编译。
3,测试加进去
跑了一下,先是一个名字写错了,后来是一个test语法问题。接下来再添加几个test。包括ref的全部。
test都加进去了。
跑完consistest的几个seed,跑一下reg读写。

跑个这,然后report出好9个error,先不管
reg的读写测试没有随机测试,不用改seed了。
全都跑了,最后覆盖率有个八九十,不想看细节了,先赶进度吧

todo:没有提高覆盖率;没有看完cg;没有看完test

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值