半导体厂商如何做芯片的出厂测试?
扫描二维码
随时随地手机看文章
知友提问:半导体厂商如何做芯片的出厂测试?
例如 Intel 的 i7,苹果的 A6,这样复杂的 IC 要测的功能恐怕很多。
我想得到的困难有:
1、BGA 这样的封装,应该不能多次焊接吧,那又如何上电测试呢
2、那么多的功能,真的要写软件一样一样测吗?很费时间吧?
我觉得这个问题就是为我量身定制的!作为前Teradyne ATE工程师,现AMD DFT+数字IC设计工程师,以亲身项目经验,来谈谈这个问题。
先来说一下完整的测试流程,再针对题主的两个问题回答一下。
1
芯片测试概述
芯片测试分两个阶段,一个是CP(Chip Probing)测试,也就是晶圆(Wafer)测试。另外一个是FT(Final Test)测试,也就是把芯片封装好再进行的测试。
CP测试的目的就是在封装前就把坏的芯片筛选出来,以节省封装的成本。同时可以更直接的知道Wafer 的良率。CP测试可检查fab厂制造的工艺水平。现在对于一般的wafer成熟工艺,很多公司多把CP给省了,以减少CP测试成本。具体做不做CP测试,就是封装成本和CP测试成本综合考量的结果。
一片晶圆越靠近边缘,die(一个小方格,也就是一个未封装的芯片)出问题的概率越大。
随着芯片规模的越来越大,测试也更为复杂。ATE(Automatic Test Equipment)也就应运而生。目前ATE公司最大的是Teradyne和爱德万,NI目前也在做这一块,并且很多小公司都在用NI的仪器。国内的公司知名的有长川科技。
ATE作为集成了众多高精密的Instruments的设备,价格自然不菲。一台泰瑞达的高端Ultra Flex可以买上海的几套房!
2
芯片测试流程
在测试之前,当然要有ATE设备,CP测试需要Probe Card, FT测试需要Load board, Socckt等。来一张全家福吧。最下边左一是Load Board(又叫DUT Board), 左二是Probe Card.
然后由芯片设计公司来提供Design Spec和Test Spec(datasheet)来制定Test Plan,开发测试程序,建立测试项。
Test Plan示意图:
一般测试通常包含以下测试项:
DC parameters Test
主要包含以下测试,Continuity测试(又称open/short test)主要是检查芯片的引脚以及和机台的连接是否完好。其余的测试都是检查DC电气参数是否在一定的范围内。
Continuity Test
Leakage Test (IIL/IIH)
Power Supply Current Test (IDDQ)
Other Current/Voltage Test (IOZL/IOZH, IOS, VOL/IOL, VOH/IOH)
LDO,DCDC 电源测试。
以下这张图就是open/short test原理示意图,DUT(Device Under Test)的引脚都挂有上下两个保护二极管,根据二极管单向导通以及截至电压的特性,对其拉/灌电流,然后测试电压,看起是否在设定的limit范围内。
整个过程是由ATE里的instruments PE(Pin Electronics)完成的。
Digital Functional Test
这部分的测试主要是跑测试向量(pattern),pattern则是设计公司的DFT工程师用ATPG(auto test pattern generation)工具生成的。
pattern测试基本就是加激励,然后捕捉输出,再和期望值进行比较。
与Functional Test相对应的的是Structure Test,包括Scan,Boundary Scan等,Pattern是根据芯片制造过程中产生的的defects和fault 模型来产生的,详细介绍参见下文链接:https://zhuanlan.zhihu.com/p/161185302
应用Structure Test能更好的提高覆盖率。
当然还有Build-in-Self-Test (BIST)主要是针对memory进行的测试。
AC Parameters Test
主要是AC Timing Tests,包含Setup Time, Hold Time, Propagation Delay等时序的检查。
ADC and DAC Test
主要是数模/模数混合测试,检查信号经过ADC/DAC后的信号是否符合期望,这个地方涉及到的信号知识比较多。总体来说包含静态测试和动态测试。
Static Test – Histogram method (INL, DNL)
Dynamic Test – SNR, THD, SINAD
除了以上常规测试项,根据芯片的类型不同可能会进行不同的测试,比如RF测试,SerDes高速测试。Efuse测试等。
一个基本的测试流程图如下:
所有的测试项都是在ATE上执行的,一般会执行几秒到几十秒,因为ATE是根据机时来付费的(很少有海思,苹果这种土豪公司一次买数十台),所以缩短测试时间变得尤其重要!另外一般芯片在量产测试的时候,都是百万颗或者千万颗,每个芯片节省一秒,总体来说缩短的时间还是很可观的。
在测试执行完成后,ATE会输出一个Datalog,以显示测试结果。对于测试pass或fail测试项的不同,也会对其进行分类(Bin),最后由Handler分拣。
datalog 示意图:
以上就是芯片的测试完整流程。再放两张芯片测试的封测厂/实验室的环境图:
3
至于题主的两个问题
1、BGA 这样的封装,应该不能多次焊接吧,那又如何上电测试呢?
对于封装好的芯片,通常测试是不需要进行焊接的,它和ATE机台的连接方式是通过socckt和Load board。
socckt也就是放芯片的底座,长这样:
不同大小,不同封装类型的芯片,socckt也不同,有专门的做这个的厂商。
先把芯片放到socckt里,再把socckt放到load board上,load board再放在机台上。有的load board很重,对很多女同志来说搬起来是有些辛苦啊!
一个load board上面支持放多个socckt,我们称其为site。示意图如下,共6个site,可以对6个芯片同时进行测试:
2、那么多的功能,真的要写软件一样一样测吗?很费时间吧
在这里先说明一下,芯片的逻辑功能是有IC验证工程师来完成的,是在流片之前,并不依赖于测试。
而芯片测试里的function test/structure test是跑pattern, 测试的是在制造过程中芯片是否有缺陷,从而影响功能/性能。
所以测试工程师所需要的关心的就是把pattern都跑通,如果跑不通可能会和DFT工程师一起进行diagnosis。
测试工程在写测试项的时候,也不是要一行一行代码去写,通常ATE机台的嵌入式软件都有提供测试项的Template, 只需要填写参数就好。另外针对一些大客户的成熟测试项,也会开发一些测试模板,留好必要的参数接口,这样就很方便应用到其他的芯片测试上。
4
写在最后
一个完备的的芯片测试不是靠芯片测试工程师一个人完成的,而是需要设计工程师,DFT工程师的支持,以及由可靠的EDA工具,优秀的硬件支撑等多方因素共同决定的。
芯片测试是极其重要的一环,有缺陷的芯片能发现的越早越好。在芯片领域有个十倍定律,从设计-->制造-->封装测试-->系统级应用,每晚发现一个环节,芯片公司付出的成本将增加十倍!!!
所以测试是设计公司尤其注重的,如果把有功能缺陷的芯片卖给客户,损失是极其惨重的,不仅是经济上的赔偿,还有损信誉。因此芯片测试的成本也越来越高!
在 IC 行业,每一个环节都要十分小心,一次流片的费用在数十万美金,一天的ATE机台使用几百美金。而一个芯片的利润可能只有几美分。这也是IC行业投资周期长,收益少的原因,基本前几年都在亏钱。幸运的是国家越来越重视芯片了,期待国内IC发展能越来越好。