电子说
众所周知,经过一系列工艺制成的芯片,内部是复杂多样的,其电路中可能存在着很多制造上的缺陷,并且芯片产生故障的原因也是多样的,可能是连线的短路或开路,掺杂浓度不稳定,不规则的排线,工艺环境等。
我们用前阵子火热的三体电视剧中的人力计算机来举例:
三体剧中因为两个人相撞导致这个大型人力计算机的信号传输出现问题,进而影响了整个系统,导致人力计算机瘫痪。不难看出,即便很小的故障对正在正常工作中的芯片所产生的影响也是巨大的。
在剧中是通过直接观察发现了故障原因,但在实际的硅基芯片中,无论是对封装好的成品还是对尚未封装的裸片(die),要将探针伸入芯片结构内部进行直接观察式的测试,不论从技术还是经济角度都是不可行的,我们只能通过有限的输入/输出管脚(I/O pin)来完成对芯片的故障排查。
我们将因芯片内部缺陷而引起的电路失效抽象成为逻辑上的故障模型,再通过DFT测试手段,来判断芯片内部是否存在故障。
当通过测试检测到该芯片存在故障后,一个对量产非常关键的环节便是对芯片进行失效分析和诊断(diagnosis)。
确定故障位置和产生故障的实际原因的过程就是诊断,通过诊断可以提高芯片良率,保证芯片质量,缩短研发到市场应用的时间。在这里我们对芯片诊断的基本方法做一介绍。
对芯片逻辑的诊断分为:静态因果诊断,动态因果诊断,因果逆向诊断这三种方法。
一,静态因果诊断。整体流程为先仿真所有故障,得到完整的故障字典,然后比较SF(仿真失败)和TF(测试失败)。如图所示:
对于SF和TF的比较我们给出一种测试计算方法:
通过该测试方法计算得出各个节点得分,得分最高的故障为4o sa0(节点4的output的SA0故障)那么这就是最有可能出现的故障,其次是1 sa1(即1输入节点SA1故障),当然这一给定的计算公式并不是唯一的,也有其他公式用于这一诊断计算。
二,动态因果诊断。动态因果诊断需预先计算部分故障的故障仿真,即通过测试筛选出候选故障,然后再仿真候选故障,产生部分故障字典,进而比较SF和TF,对上述电路做动态因果诊断。
首先筛选候选故障有三种常用方法,①应用结构性回溯,②奇偶校验,③激发条件检查。
① 对电路结构进行回溯,通过扇入锥构成多输入一输出结构,如图:
例如红蓝两个三角形,真正的候选故障必须在扇入锥的交点上,也就是说故障位置在扇入锥的重合部分,重合区域之外的节点不会导致pin7和pin8同时测试失败,这样对故障进行筛选可以将14个故障减少到6个故障。
②奇偶校验:通过公式:v⊕p=f ,该公式中v是故障值即SA1/SA0,如SA0故障,v就是0;p是逻辑反转次数的奇偶性表达,偶数次反转为0奇数为1,f是测试未通过的引脚的实际输出值,由此可以根据参数是否满足该公式来选择是否将该故障加入候选故障列表。
③激发条件检查,如果Stuck at值和测试向量一致,就不能激发这个故障,也就无法确定出现此故障是因为该输入点的stuck at故障,所以根据pattern值和故障值是否相同可以进行候选故障的筛选。
在本例中进行三步之后删减之后就只剩下两个故障,比较即可得出最可能的真实故障原因。
三,因果逆向诊断。首先进行路径追踪,从发现故障的输出节点到输入进行溯源。只要输入改变,输出就改变的信号即为关键信号,继续向输入追踪,若某个输入的改变并不影响输出,随机选一条输入作为关键信号继续溯源,不断对各个节点溯源之后再对找到的故障进行删减,真正的故障是各个向量测出故障的交集,取重合测出的故障作为可能的故障,未重合的进行删减,最后对剩下的故障进行比对SF和TF得出结果
对于以上三种方法而言,优缺点也各不相同。下图展现了几种方法的优劣之处:
以上就是一些基本诊断过程的介绍,当然还有别的诊断方法及应用,随着工艺发展,DFT技术的改进,诊断方法也会随之变化。
全部0条评论
快来发表一下你的评论吧 !