分享

半导体厂商如何做芯片的出厂测试?

 pgl147258 2014-07-09

【RickyLi的回答(61票)】:

回答这个问题是很挑战的一件事. 对大公司来说, 毕竟这是需要几千名员工协作的工作.

芯片测试的目的是快速了解它的体质.

大公司的每日流水的芯片就有几万片, 测试的压力是非常大. 当芯片被晶圆厂制作出来后, 就会进入Wafer Test的阶段. 这个阶段的测试可能在晶圆厂内进行, 也可能送往附近的测试厂商代理执行. 生产工程师会使用自动测试仪器(ATE)运行芯片设计方给出的程序, 粗暴的把芯片分成好的/坏的这两部分, 坏的会直接被舍弃, 如果这个阶段坏片过多, 基本会认为是晶圆厂自身的良品率低下. 如果良品率低到某一个数值之下, 晶圆厂需要赔钱.

WF测试的结果多用这样的图表示:

通过了Wafer Test后, 晶圆会被切割. 切割后的芯片按照之前的结果分类. 只有好的芯片会被送去封装厂封装. 封装的地点一般就在晶圆厂附近, 这是因为未封装的芯片无法长距离运输. 封装的类型看客户的需要, 有的需要球形BGA, 有的需要针脚, 总之这一步很简单, 故障也较少. 由于封装的成功率远大于芯片的生产良品率, 因此封装后不会测试.

封装之后, 芯片会被送往各大公司的测试工厂, 也叫生产工厂. 并且进行Final Test. 生产工厂内实际上有十几个流程, Final Test只是第一步. 在Final Test后, 还需要分类, 刻字, 检查封装, 包装等步骤. 然后就可以出货到市场.

Final Test是工厂的重点, 需要大量的机械和设备. 它的目的是把芯片严格分类. 以Intel的Soc来说, 在Final Test中可能出现这些现象:

1. 虽然通过了Wafer Test, 但是芯片仍然是坏的.

2. 封装损坏.

3. 芯片部分损坏. 比如CPU有2个核心损坏, 或者GPU损坏, 或者显示接口损坏等

4. 芯片是好的, 没有故障

这时, 工程师需要和市场部一起决定, 该如何将这些芯片分类. 打比方说, GPU坏了的, 就被当做无显示核心的"赛扬"系列处理器. 比如CPU坏了2个的, 就当"酷睿i3"系列处理器. 芯片工作正常, 但是工作频率不高的, 就当"酷睿i5"系列处理器. 一点问题都没有的, 就当"酷睿i7"处理器.

那这里的Final Test该怎样做?

Final Test可以分成两个步骤: 1. 自动测试设备(ATE). 2. 系统级别测试(SLT). 2号是必要项. 1号一般小公司用不起.

ATE的测试一般需要几秒, 而SLT需要几个小时. ATE的存在大大的减少了芯片测试时间.

ATE负责的项目非常之多, 而且有很强的逻辑关联性. 测试必须按顺序进行, 针对前列的测试结果, 后列的测试项目可能会被跳过. 这些项目的内容属于公司机密, 我仅列几个: 比如电源检测, 管脚DC检测, 测试逻辑电路(一般是JTAG)检测, 高压烤片, 物理连接层PHY检测, IP内部检测(包括Scan, BIST, Function等), IP的IO检测(比如DDR, SATA, PLL, PCIE, Display等), 辅助功能检测(比如热力学特性, 熔断等).

这些测试项会给出Pass/Fail, 根据这些Pass/Fail来分析芯片的体质, 就是测试工程师的工作.

SLT在逻辑上则简单一些, 把芯片安装到主板上, 配置好内存, 外设, 启动一个操作系统, 然后用软件烤机测试并记录结果并比较. 另外还要检测BIOS相关项等.

图片是测试厂房的布置.图片是测试厂房的布置.

而所有的这些工作, 都需要芯片设计工程师在流片之前都设计好. 测试工作在芯片内是由专属电路负责的, 这部分电路的搭建由DFT工程师来做, 在流片后, DFT工程师还要生成配套输入矢量, 一般会生成几万个. 这些矢量是否能够正常的检测芯片的功能, 需要产品开发工程师来保证. 此外还需要测试工程师, 产品工程师, 和许多助手来一同保证每天能够完成几万片芯片的生产任务.

考虑到每一次测试版本迭代都是几十万行的代码, 保证代码不能出错. 需要涉及上百人的测试工程师协同工作, 这还不算流水线工, 因此测试是费时费力的工作. 实际上, 很多大公司芯片的测试成本已经接近研发成本.

【知乎用户的回答(13票)】:

焊接倒不需要,设计出适合BGA一类封装的socket并非难事,比如socket下面是很多顶针构成的阵列,测试时只需要将抓取的芯片往上一压就行。socket是做好的电板,连接到测试机的各个端子,测试机读取预先标号的测试程序,一颗小型的IC几秒钟就可以搞定。

像处理器那种复杂IC功能很多,在芯片设计之初就会考虑到测试的方式, 我也不是很懂,猜想也许是每条指令跑一遍。DFT(design for test)应该就是专门讲这方面的。

测试机器不像前段晶圆制造的机器那么贵,封装厂都是上百台。

@王乐 正好提到了WAT,CP和FT。我可以再深入讲一点:

WAT: Wafer Acceptance Test,是晶圆出厂前对testkey的测试。采用标准制程制作的晶圆,在芯片之间的划片道上会放上预先一些特殊的用于专门测试的图形,我们叫testkey。这跟芯片本身的功能是没有关系的,它的作用是Fab检测其工艺上有无波动。因为代工厂只负责他自己的工作是无误的,芯片本身性能如何那是设计公司的事儿。只要晶圆的WAT测试是满足规格的,晶圆厂基本上就没有责任。如果有失效,那就是制造过程出现了问题。

CP: Circuit Probe,是封装前晶圆级别对芯片测试。这里就涉及到测试芯片的基本功能了。不同项目的失效,会分别以不同颜色表示出来。失效的项目反映的是芯片设计的问题。

FT: Final test,封装完成后的测试,也是最接近实际使用情况的测试,会测到比CP更多的项目,处理器的不同频率也是在这里分出来的。这里的失效反应封装工艺上产生的问题,比如芯片打线不好导致的开短路。

【知乎用户的回答(12票)】:

不好意思, 我想先简单回答一下, 以后有空补充详细吧, 也欢迎各位提问, 尽力回答.

1. 为什么要进行芯片测试?

芯片复杂度越来越高, 为了保证出厂的芯片没有问题, 需要在出厂前进行测试以确保功能完整性等. 而芯片作为一个大规模生产的东西, 大规模自动化测试是唯一的解决办法, 靠人工或者说bench test是没法完成这样的任务的.

2. 芯片测试在什么环节进行?

芯片测试实际上是一个比较大的范畴, 一般是从测试的对象上分为wafer test 和final test, 对象分别是尚未进行封装的芯片, 和已经封装好的芯片. 为啥要分两段? 简单的说, 因为封装也是有cost的, 为了尽可能的节约成本, 可能会在芯片封装前, 先进行一部分的测试, 以排除掉一些坏掉的芯片. 而为了保证出厂的芯片都是没问题的, final test也即FT测试是最后的一道拦截, 也是必须的环节.

3. 怎么样进行芯片测试?

这需要专业的ATE也即automatic test equipment. 以final test为例, 首先根据芯片的类型, 比如automotive, Mixed Signal, memory等不同类型, 选择适合的ATE机台. 在此基础上, 根据芯片的测试需求, (可能有专门的test specification的文档, 或者干脆让测试工程师根据data sheet来设计test spec), 做一个完整的test plan. 在此基础上, 设计一个外围电路load board, 一般我们称之为DIB or PIB or HIB , 以连接ATE机台的instrument和芯片本身. 同时, 需要进行test 程序开发, 根据每一个测试项, 进行编程, 操控instrument连接到芯片的引脚, 给予特定的激励条件, 然后去捕捉芯片引脚的反应, 例如给一个电信号, 可以是特定的电流, 电压, 或者是一个电压波形, 然后捕捉其反应. 根据结果, 判定这一个测试项是pass或者fail. 在一系列的测试项结束以后, 芯片是好还是不好, 就有结果了. 好的芯片会放到特定的地方, 不好的根据fail的测试类型分别放到不同的地方.

所以楼主的问题里, 对于各种功能的测试, 确实可能需要一行一行写代码来做测试开发, 这也是我日常工作的一大部分.

4. 一般的芯片测试都包含哪些测试类型?

一般来说, 包括引脚连通性测试, 漏电流测试, 一些DC(direct current)测试, 功能测试(functional test), Trim test, 根据芯片类型还会有一些其他的测试, 例如AD/DA会有专门的一些测试类型.

芯片测试的目的是在找出没问题的芯片的同时尽量节约成本, 所以, 容易检测或者比较普遍的缺陷类型会先检测. 一般来讲, 首先会做的是连通性测试, 我们称之为continuity test. 这是检查每个引脚的连通性是否正常.

先说到这里, 后续我有空继续补充, 不好意思哈

【王乐的回答(5票)】:

在IC芯片送交封装然后出货给客户前,会做电性测试,我们叫做WAT测试,测试主要电性参数,不同metal layer的电流,电阻,漏极,N/Pmos的导通,在封装时有封装的测试

到客户那里有两种,使用probe card做CP测试,或者做成品的final test。

而测试function是by bin的,哪些bin的fail对应相应的参数或者是defect~~

【唐诗岷的回答(4票)】:

CPU封装完成后,主要有两次测试:

一个是电性能测试,主要是测试芯片里面有没有电路上面的开路和断路。上面知友提到的问题,PGA和BGA都可以测试的,不同的测试板而已。测试完了以后,还能把一个批次的芯片分等级(Bin),不同等级买不同钱嘛。

一个是真实平台测试,我们这边的做法是把CPU真实地安装在主板中,运行各种操作系统,看下有没有不能开机之类的问题。

【JuneZheng的回答(1票)】:

简单的说就是ATE测试 auto test equipment.

芯片从设计出来到上市需要经过一系列的测试,系统测试,稳定性测试,还有ate测试。

系统测试需要一块系统板,是对芯片功能的验证。

稳定性,是对芯片稳定性的测试,包括老化测试。

而ate是在完成上述两项测试(或者更多测试)后,投入量产是的测试,借助ate测试环境对大量芯片进行快速有效高coverage的测试。

【王宇的回答(3票)】:

以前做过ate系统。

大体分为晶圆(wafer test)测试和封装后测试(final test)。

wafer test需要标注出测试未通过的裸片(die),只需要封装测试通过的die。

final test是测试已经封装好的芯片(chip),不合格品检出。

wafer test和final test很多项目是重复的,final test多一些功能性测试。

wafer test需要探针接触测试点(pad)。测试的项目大体有:

1. 开短路测试(Continuity Test)

2. 漏电流测试(Stress Current Test)

4. 数字引脚测试(输入电流电压、输出电流电压)

3. 交流测试(scan test)

5. 功能性测试

diedie

【登陆的回答(1票)】:

终于可以答题了,

1、BGA 这样的封装,应该不能多次焊接吧,那又如何上电测试呢

在芯片封装好后,进行FT测试(final test),是用socket夹着芯片在tester上进行测试的,BGA 就有BGA封装专用的socket。

如果是工厂批量生产,那么机械手上就自带夹子。

如果是少量评价,那么就用个带盖子的socket就行了。我们公司用的一个socket的价格从几千块到10几万不等(汽车芯片的比较贵),原理上就是一个夹子把芯片夹住摁紧,然后通过下面连着的管脚接到测试基板上,手上就好几个,可惜不给拍照。百度个图供参考:

2、那么多的功能,真的要写软件一样一样测吗?很费时间吧

不管是对晶圆还是对封装好了的芯片,芯片测试正常主要有电流测试,电压测试,timming特性,功能测试,flash测试。当然还有一些老化测试,就是在高温高压条件下跑上面的测试。

你所说的功能测试只是其中一部分,以前一般都是手写软件来生成tester用的程序(一般叫做pattern)的,但这样效率太低,于是有几个公司(mentor,Cadence,Synopsys之流)发明了一种方案DFT(design for test),用dft方式来覆盖功能测试,具体来说就是设计芯片的时候就加入一些回路,后期可以用工具自动产生测试pattern,覆盖95%以上的功能测试。一下就简单了。只需要补充几条DFT没有覆盖到的pattern就行了。

像电流电压测试,timming特性的测试,flash擦写测试,每家公司都有自己的方案,我们公司基本上是用脚本批量生成的。

其他:对应测试pattern,还有一部分工作是由测试工程师完成的,把你的pattern应用到对应机种的tester上。每个机种都不同,爱德万测试机需要C++编程,泰瑞达是excel形式的。

对应测试,还需要有硬件板子来连接tester。晶圆测试需要多个同测,需要计算针脚扎在wafer什么位置。高温测试需要耐热材料。

【徐浩的回答(0票)】:

據我所知有個叫socket board的東西,可以不用焊接直接進行測試。

不是內行,求折叠

【李一雷的回答(0票)】:

现在芯片面积越来越大,测试相当具有挑战性。所以如何测试其实是一门很深的学问。由于信号过多,不可能把每个信号都引出来测试,所以肯定在设计的时候就要做可测性实际,就是DFT。简而言之,DFT就是通过某种方法间接观察内部信号的情况,例如scan chain之类。然后通过特定的测试仪器来测试——这种仪器不是简单的示波器,它要能产生各种测试波形并检测输出,所以一套平台大概要上百万。而且这些DFT比较适合于小芯片,大芯片像CPU之类的还会使用内建自测试(built-in self test),让芯片自己在上电后可以执行测试,这样就大大减小了测试人员的工作量。

最后说一下,测试非常辛苦,芯片可测性设计以及测试方法论是非常重要也非常深刻的话题。

【王鹏的回答(0票)】:

目前在做ATE封装测试相关的工作。

简单来说,需要tester(目前是日本公司advantest一家独大)+专门为芯片设计的socket board+socket(一般是黄金的多针脚)+handler(自动装载未测试的芯片和分类测试之后的芯片,handler满了需要operator操作)

测试程序需要编程和芯片功能双方面的工程师负责。

程序语言五花八门,看各个公司差别很大。

大概是这样,等有时间再细说吧。

原文地址:知乎

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多