在芯片验证岗位的面试过程中,有很多面试官喜欢问这个问题,目的是为了考察面试者对CDV(Coverage Drive Verification)的理解。本文讨论下这个问题。
1.代码覆盖率低 + 功能覆盖率高
1.1)有可能是cover group写得不完备,进一步地,测试点分解和test plan可能也不完备,尤其是对于初学者而言。遇到这种现象,PL应当警觉,需要明确是否存在测试点,test plan, cover group不完备的情况。
1.2)DUT中有大量冗余代码。或者集成进来的公共IP只用到其中一部分功能。
2.代码覆盖率高 + 功能覆盖率低
2.1) 功能覆盖率的sample有问题,即相关的场景都打到了,但cover group没有采样到,这个对于新开发的验证环境容易出现。
2.2)cover group中的一些cross bin或者conner点没覆盖到,需要增加direct case,修改随机约束或者增加回归次数。项目经过这个过程是比较正常的。