在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 11553|回复: 17

[求助] Modelsim中怎样才能将各个激励的覆盖记录进行合并,做到对覆盖率的全面监测

[复制链接]
发表于 2012-5-2 16:44:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

在一篇文章中看到如下内容:


modelsim的高级功能:Code Coverage

  a) 代码覆盖率是验证激励是否完备,检验代码质量的一个重要手段。测试激励的代码覆盖率至少要达到95%以上,才能基本认为代码在逻辑上是通过质量控制的,才能进入综合步骤;

  b) 代码覆盖率是保证高质量代码的必要条件,但却不是充分条件。即便代码行覆盖和分支覆盖都能够达到100%,也不能肯定的说代码已经得到100%的验证。除非所有的分支覆盖都能够进行组合遍历。

  c) 在大的设计中,如果想通过一个激励就验证完一个设计或者模块是不现实的。一方面是从逻辑功能上很难做到;另外一方面是因为如果在一个激励中包括了各种情况,整个仿真过程的速度会随着计算机内存的消耗而成线性下降,效率低下。

  d) 通常的做法是每一个激励只验证电路功能的某个方面。整个电路的功能验证由数个激励共同完成。在这种验证方法中代码覆盖率更显重要,因为可以通过代码覆盖率来控制激励对功能的覆盖程度。

  e) modelsim的Code coverage不但能记录各个激励对代码的“行覆盖”和“分支覆盖”,而且能够将各个激励的覆盖记录进行合并,做到对覆盖率的全面监测。



请问怎样才能将各个激励的覆盖记录进行合并

发表于 2012-5-3 12:38:03 | 显示全部楼层
可以使用coverage save选项来保存覆盖率统计信息,默认为ucdb文件;使用vcover merge命令来对多个种子产生的ucdb文件进行合并,形成最终的覆盖率统计信息,也是ucdb文件;然后通过add testbrowser命令来打开这些ucdb文件,右击ucdb文件选择invoke coverageview mode可以查看对应的覆盖率信息。
    fcover save name.ucdb——用于将覆盖率信息保存为ucdb文件。这条指令可以写在宏文件.do中。
    如何自动化的获取覆盖率数据库ucdb文件?在测试文件中多加上一个$stop语句,然后在do文件内容中这样写:“run -all;fcover save NAME.ucdb;run -all;exit”,即可实现,如果使用多条同样的语句,可实现批处理地产生覆盖率数据库文件。
    以上是个人的经验总结,请参考,具体操作还要自己实践一下。
发表于 2012-5-3 12:39:22 | 显示全部楼层
以上操作不仅仅针对代码覆盖率,也包括功能覆盖率。如果楼主只是用工具统计代码覆盖率的话,可以忽略后者。后者一般是测试平台来提供的。
 楼主| 发表于 2012-5-3 13:13:01 | 显示全部楼层
非常感谢,我去试一试
 楼主| 发表于 2012-5-3 14:48:42 | 显示全部楼层
回复 2# gaurson


   非常感谢您的回复,你说的方法是可行的。
发表于 2012-5-4 13:00:49 | 显示全部楼层
因为是经验总结嘛,不行的话,就估计是具体操作上的问题了。呵呵。
发表于 2012-5-17 15:00:44 | 显示全部楼层
高手有这方面的资料吗?给推荐一下啊。
发表于 2012-5-19 00:11:17 | 显示全部楼层
也遇到了这样的问题
发表于 2014-1-23 16:40:45 | 显示全部楼层
好东西啊
发表于 2014-1-23 16:43:37 | 显示全部楼层
好东西
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-25 00:54 , Processed in 0.023648 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表