"Testing is a kill, while this may come as a surprise to some people it is a simple fact" -----Graham Fewster各位同行们好,好久没有更新,实在对不住,最近忙于学习新知识。今天为之前挖的坑来个开始,介绍下芯片测试的基本概念,我尽量用浅显易懂的话来讲,力求大家都能看得懂。 什么是芯片测试?简单来说就是在芯片制造完成后,通过ATE(auto test equipment)检测芯片是否合格。来个简单的比喻,在古代,水稻收割完成后,农民会在把稻子抛在空中,利用风把空的稻壳吹走,留下饱满的稻米,这就是稻谷测试。 为什么要进行芯片测试?这是因为芯片在制造过程中,不可避免存在缺陷,我们要把pass和fail的芯片分开来。 芯片测试有三种结果,分别为: o 好的芯片通过测试,留下;坏的芯片未通过,扔掉; o 坏的芯片通过了测试,专业术语叫Test Escape; o 好的芯片没有通过测试,专业术语叫Yield Loss,也叫Over Kill; 我们的目标是尽量减少Test Escape和Yield Loss,但鱼和熊掌不可兼得,我们经常需要在芯片测试成本和测试质量之间trade off: o.高质量的测试,会减少test escape,但是也会增加yield loss; o 低成本的测试,会减少yield loss,但是会增加 test escape。 为什么芯片测试如此重要?那是因为芯片测试可以: o 保证芯片质量 · Reduce test escape · not only funcitionally correct but also reliable IC o 缩短芯片上市时间 · prototype testing to debug silicon · imporve efficency of production test · diagnose defective IC to improve yield o 提高公司利润 · reduce test cost · fix defective chip(memory repair) · reduce yield loss 接下来介绍下芯片测试在芯片设计和制造过程中间的位置。直接看下图,红色是涉及到测试的部分,分别有: o Prototype test,原型测试一般在芯片刚设计完后,交给Fab流片后进行的测试,需要经过多次修改,才能最终确定测试方案; o Product Test,量产测试是Fab批量代工后进行的测试,主要有WAT,CP,FT等类型; o Diagnosis,诊断测试是针对fail的芯片,通过一系列的测试查找root cause,最终目标的改进方法,提高良率; o Failure Analysis,失效分析一般是把芯片物理切开,进行微观结构方面的debug,分析芯片失效root cause。 其实这张图中漏掉了DFT,design for test,也就是在芯片设计过程中就开始考虑测试的问题。 宏观角度来看,芯片测试不仅仅是测试工程师的责任,而是所有芯片从业人员的责任,请看下图: Fab的责任是保证制程稳定性,提高芯片yield; PFA的责任是对失效的芯片进行物理结构分析; Test Service是ATE机台的维护,分析测试数据; Design工程师在设计阶段就要考虑测试问题,现在有专门的DFT工程师,主要从三种方法:Scan Chain, Boundary Scan, BIST,来解决测试问题; Reliability,可靠性工程师主要通过Burn-in等方法加速芯片失效,模拟计算芯片的寿命问题; EDA软件主要用来插入DFT结构,测试向量的生成ATPG(auto test pattern generation),以及fault simulation; Test engineer主要责任是编写测试程序,减低测试成本和提高测试质量等。 |