微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 关于功能覆盖率如何做grading

关于功能覆盖率如何做grading

时间:10-02 整理:3721RD 点击:
最近在研究如何通过功能覆盖率来做UT验证。使用的工具是VCS+VMM+VMM_PLANNER。

在使用随机种子,覆盖率还不能 达到100%。我想通过变更随机种子,重新跑测试用例,期望能把先前没有
覆盖到的测试点都覆盖到。但是在跑新的种子的时候,前一次的覆盖率数据就没有了。也就无法
实现将不同种子的覆盖率数据累加的效果。想问问2个问题:
1、 功能覆盖率是如何做覆盖率累计的?
2、 如何通过VCS的urg工具基于周为单位生成覆盖率曲线,反应覆盖率的收集进展?

前段时间我做过类似的function coverage累计的测试,不过因为没有licence,所以是在questasim下做的,不过应该都是很类似的;
功能覆盖率累计依赖于在仿真过程中生成的 *.ucdb文件(VCS中也有可能不叫这个名字);
然后在下一次仿真时导入这个文件后的覆盖率就是在之前已有的数据上进行的累积,所计算出来的coverage就是总的覆盖率;
第二个问题我就没有办法回答了

这个道理是知道的。具体来讲,每一个随机种子都对应有一个覆盖率数据。你是将每次的覆盖率数据用不同的文件夹分开保存,然后合并么?
这样的话,如何实现回归验证?

没有,就只写在同一个文件里面。
在仿真初始化所有coverage块之后导入ucdb文件,然后仿真完成后重新生成新的ucdb进行覆盖。
在脚本中查找log中的系统函数get_coverage的计算结果,达到goal结束仿真,否则继续随机种子进行仿真。
我一般把目标定为95%,剩下的5%在极端几乎要翻一倍的都不止的仿真次数

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top