IC芯片的测试覆盖率是怎么算的
发布网友
发布时间:2022-04-23 05:22
我来回答
共1个回答
热心网友
时间:2023-08-27 22:58
首先,要分清测试和验证的区别。验证,是用来确认设计的电路符合要求的流程。而测试,是用来确认某一颗芯片是否存在个体缺陷的过程。
验证过程的覆盖率统计是基于RTL代码的,通常分为代码覆盖率,分支覆盖率,状态机覆盖率等等,以及在此之上针对芯片需求抽象出来的功能覆盖率。覆盖率当然是越高越好,这样缺陷被提前发现的可能性才会高,芯片生产出来的BUG就少。验证用例优化的一个方向也是用最少的用例和时间达到最高的覆盖率。如果有某个芯片缺陷没有被验证覆盖到,那么之后生产出来的每个芯片都会有同样的问题。
而测试过程的覆盖率是通过在设计中加入的SCAN和BIST逻辑(所谓DFT)实现的,覆盖率在后端阶段有专门的工具进行统计。SCAN的功能是确认芯片中的寄存器和组合逻辑是否正确。BIST是用于确认memory块有没有坏点。所以SCAN和BIST覆盖率的含义就是芯片中多少百分比的寄存器和逻辑门被连接到了SCAN链上,多少百分比的memory可以被测试到。在芯片生产时,机台会将芯片配置到设计好的测试模式下,对寄存器逻辑门和memory进行扫描,把功能不正常的芯片筛选出去销毁掉。如果芯片的DFT覆盖不全,就有可能把个别坏的芯片当成好的交给客户,对客户造成影响,因此测试覆盖率都是要尽量提高的。