corde coverage

用ModelSim做硬件设计验证的时候,需要了解待测设计(DUT)的代码覆盖率(code coverage),这就需要用到ModelSim自带的Code Coverage功能,ModelSim代码覆盖率功能Code coverage,能报告出statement(语句) 、branch(分支)、condition(条件)、 expression(表达式)、toggle(信号反转)、fsm(有限状态机)等多种覆盖率情况,进一步提高了测试的完整性。本文简要介绍ModelSim Code Coverage的使用方法,写的不对的地方希望有朋友留言指教。

步骤:

1、编译选项(compile options):

在ModelSim的Workspace里选中需要查看代码覆盖率的文件,使用Ctrl键选择多个文件,然后点击右键选择compile->compile  prperties->coverage,选择前四项(statement,brances,condition,expression)。

  corde coverage - 靖harry - 靖harry的博客
 


2、编译(compile):

对所选择的文件进行编译,可在命令行窗口敲compile -all,也可在编译菜单里选择compile all。

3、仿真(simulate ):

在命令行窗口输入vsim -coverage work.top,然后run -all,仿真一段时间之后break。

4、观察结果(coverage result):

选中View菜单,选择Code Coverage,然后打开Instance coverage和Missing coverage,就可以看到有两个coverage的窗口。其中,Instance coverage是对每个模块的语句覆盖率进行统计的结果,Missing coverage则显示了每个模块未覆盖部分的情况。
corde coverage - 靖harry - 靖harry的博客
 

其中,每个统计项都有自己的含义,可根据英文意思理解,比如Stmt hits代表被执行的语句条数,这里主要看四个统计项:

Stmt,Brances,Condition和Expression的%覆盖率,覆盖率高于90%显示为绿色,低于90%则显示为红色。另外,在Instance coverage窗口中选中某个模块之后,会在ModelSim的代码编辑窗口中很方便地了解这个模块的代码执行情况,其中Hits表示这一行的语句被执行,BC表示到达这一条分支。

Missing coverage窗口如下图所示:

在Workspace中选择Files,在Files中选择需要查看的模块,打开Missing Coverage窗口即可查看。可以查看的选项包括:Statment,Branches,Expreession,Condition,Troggle,分别描述了这个模块里未执行的语句、分支、表达式等等,按行大小序号排列。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值