对大公司来说, 这是需要几千名员工协作的工作。
芯片测试的目的是快速了解它的体质。
大公司的每日流水的芯片就有几万片, 测试的压力是非常大。 当芯片被晶圆厂制作出来后, 就会进入 Wafer Test 的阶段。 这个阶段的测试可能在晶圆厂内进行, 也可能送往附近的测试厂商代理执行。 生产工程师会使用自动测试仪器(ATE)运行芯片设计方给出的程序, 粗暴的把芯片分成好的 / 坏的这两部分, 坏的会直接被舍弃, 如果这个阶段坏片过多, 基本会认为是晶圆厂自身的良品率低下。 如果良品率低到某一个数值之下, 晶圆厂需要赔钱。
WT 的测试结果多用这样的图表示:
通过了 Wafer Test 后, 晶圆会被切割。 切割后的芯片按照之前的结果分类。 只有好的芯片会被送去封装厂封装。 封装的地点一般就在晶圆厂附近, 这是因为未封装的芯片无法长距离运输。 封装的类型看客户的需要, 有的需要球形 BGA, 有的需要针脚, 总之这一步很简单, 故障也较少。 由于封装的成功率远大于芯片的生产良品率, 因此封装后不会测试。
封装之后, 芯片会被送往各大公司的测试工厂, 也叫生产工厂。 并且进行 Final Test。 生产工厂内实际上有十几个流程, Final Test 只是第一步。 在 Final Test 后, 还需要分类, 刻字, 检查封装, 包装等步骤。 然后就可以出货到市场。
Final Test 是工厂的重点, 需要大量的机械和自动化设备。 它的目的是把芯片严格分类。 以 Intel 的处理器来举例, 在 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)检测, burn-in, 物理连接 PHY 检测, IP 内部检测(包括 Scan, BIST, Function 等), IP 的 IO 检测(比如 DDR, SATA, PLL, PCIE, Display 等), 辅助功能检测(比如热力学特性, 熔断等)。
这些测试项都会给出 Pass/Fail, 根据这些 Pass/Fail 来分析芯片的体质, 是测试工程师的工作。
SLT 在逻辑上则简单一些, 把芯片安装到主板上, 配置好内存, 外设, 启动一个操作系统, 然后用软件烤机测试, 记录结果并比较。 另外还要检测 BIOS 相关项等。
图片是测试厂房的布置。
而所有的这些工作, 都需要芯片设计工程师在流片之前都设计好。 测试工作在芯片内是由专属电路负责的, 这部分电路的搭建由 DFT 工程师来做, 在流片后, DFT 工程师还要生成配套输入矢量, 一般会生成几万个。 这些矢量是否能够正常的检测芯片的功能, 需要产品开发工程师来保证。 此外还需要测试工程师, 产品工程师, 和助手来一同保证每天能够完成几万片芯片的生产任务不会因为测试逻辑 bug 而延迟。
考虑到每一次测试版本迭代都是几十万行的代码, 保证代码不能出错。 需要涉及上百人的测试工程师协同工作, 这还不算流水线技工, 因此测试是费时费力的工作。 实际上, 很多大公司芯片的测试成本已经接近研发成本。