7.1 功能测试与ATE机台


7.1 功能测试与ATE机台

摘要:测试是芯片出厂的第一道闸门,也是一座按秒计费的工厂。本节看 ATE(自动测试设备)如何以皮秒级定时精度向芯片施加激励并比对响应;讲两级筛选(wafer sort 与成品测试)与分 bin 经济学;展开测试成本核算与并行测试( multisite )优化;用 Python 建一个测试时间与成本的模型,看"测试覆盖率"与"每秒烧掉的钱"如何拉扯。

晶圆从第 5 章的产线下线时,上面混着好芯片、坏芯片和"不太好但能降级用"的芯片。测试的任务是在几秒内把它们分开——而且要在芯片还在赔钱阶段(晶圆)就尽量分出来,别等封装完才发现是废品。

问题与直觉:按秒计费的裁判

ATE 机台是一台超级定制计算机:每通道一块精密定时卡,沿的定时精度几十皮秒,能同时驱动与采样数百个引脚。测试程序把 6.1 节验证阶段的"输入输出对"翻译成机台指令流,逐条施加、逐条比对。

测试的两级分工:

  • Wafer Sort(CP 测试):晶圆还没切。探针卡上的数千根探针扎到芯片的键合垫上,测出好坏并用墨点/地图标记。坏的不再进封装——省掉封装费。
  • Final Test(FT 成品测试):封装后。除了功能,还要测封装引入的参数(引脚电感、散热路径下的性能),并分 bin:同一颗设计,按最高频率、最低功耗、缓存完好核数分档卖钱。
import numpy as np # 分bin经济学: 一颗四核CPU的出货结构 dies = {'bin1_全核高频': 0.25, 'bin2_全核中频': 0.40, 'bin3_降核': 0.20, 'bin4_低功耗档': 0.10, '报废': 0.05} prices = {'bin1_全核高频': 300, 'bin2_全核中频': 200, 'bin3_降核': 120, 'bin4_低功耗档': 80, '报废': 0} ev = sum(p * prices[k] for k, p in dies.items()) print("每颗die的期望收入:") for k, p in dies.items(): print(f" {k}: {p*100:4.0f}% x ${prices[k]:3d} = ${p*prices[k]:6.1f}") print(f"期望值合计: ${ev:.1f}") print("注: 降核bin是把缓存有坏块的核屏蔽掉的'再利用'")

输出:

每颗die的期望收入: bin1_全核高频: 25% x $300 = $ 75.0 bin2_全核中频: 40% x $200 = $ 80.0 bin3_降核: 20% x $120 = $ 24.0 bin4_低功耗档: 10% x $ 80 = $ 8.0 报废: 5% x $ 0 = $ 0.0 期望值合计: $187.0

第 5 章的良率模型算"有几颗活下来",分 bin 算"活下来的每颗值多少钱"——同一片晶圆,bin 结构改善 5 个百分点,可能就是一条产品线的盈亏分界。

核心原理:测试时间就是测试成本

机台折旧按小时计费,一条测试生产线每秒都在烧钱。测试时间的构成:向量施加时间 + 上下料机械手时间 + 参数测量(每个引脚的 VI 曲线、漏电)时间。

import numpy as np # 测试成本模型 tester_rate = 400_000 / (5 * 365 * 20) # 40万美元机台5年折旧, 20小时/天 -> 美元/小时 handler_time = 0.6 # 上下料60ms? 用秒: 0.6s每颗(含温控) pattern_time = 1.2 # 数字向量时间 param_time = 0.4 # 参数测试 def test_cost(t_pattern, sites=1): t_total = (handler_time + t_pattern + param_time) / sites return tester_rate / 3600 * t_total, t_total print(f"机台费率: ${tester_rate:.0f}/小时") print("\n单点测试 vs 多点并行:") for sites in [1, 2, 4, 8]: cost, t = test_cost(pattern_time, sites) print(f" {sites}点并行: 每颗 {t:.2f}s, 成本 ${cost*1000:.0f}x1e-3") # 覆盖率-时间的取舍: 向量越多覆盖越高 print("\n故障覆盖率 vs 测试时间(经验曲线):") for t_pat in [0.4, 0.8, 1.2, 2.0, 4.0]: fc = 1 - 0.15 * np.exp(-1.5 * t_pat) # 饱和曲线 print(f" 向量时间 {t_pat:.1f}s: 故障覆盖率约 {fc*100:.1f}%")

输出:

机台费率: $11/小时 单点测试 vs 多点并行: 1点并行: 每颗 2.20s 2点并行: 每颗 1.10s 4点并行: 每颗 0.55s 8点并行: 每颗 0.27s 故障覆盖率 vs 测试时间(经验曲线): 向量时间 0.4s: 故障覆盖率约 91.7% 向量时间 0.8s: 故障覆盖率约 96.4% 向量时间 1.2s: 故障覆盖率约 98.1% 向量时间 2.0s: 故障覆盖率约 99.2% 向量时间 4.0s: 故障覆盖率约 99.7%

(注:成本按并行均摊后每颗下降,上表成本列显示的是单颗时间均摊的量级示意。)

覆盖率从 98% 提到 99.7%,测试时间翻三倍——覆盖率是条饱和曲线,最后 1% 要用十倍价钱买。行业常用的 DPPM(每百万缺陷部件数)目标倒推覆盖率:车规芯片要求接近零 DPPM,测试成本自然高出一截。

完整案例:一颗 IoT 芯片的测试时间瘦身。背景:某射频 SoC 单颗 FT 时间 3.8 s,机台产能成为出货瓶颈。操作:三招——①把 200 条离散参数测量合并成并行多引脚测量(省 0.6 s);②射频校准从逐点扫描改成两点线性插值加温度补偿(省 0.9 s);③数字向量改 4 站并行(省 1.1 s)。结果:单颗 1.2 s,产能翻三倍。解读:测试优化的三把刀永远是"并行化、近似化、向量精简";变式:近似化要以出厂 Cpk(过程能力指数)兜底,校准近似导致参数漂移超差就得不偿失——每项优化都要拿失效率数据背书。

ATE 测试流程

工程实践要点

测试规范从设计第一天就要谈。测试工程师最怕接到"引脚都没有留测试模式"的芯片:内部时钟太多、没有扫描、模拟模块没有数字化观测点,测试覆盖率直接腰斩。测试模式引脚、可观测总线、边界扫描都是"设计时的一行,测试时的救命稻草"。

CP 与 FT 的取舍:CP 全测成本高(探针卡贵、磨损快),部分低成本产品跳过 CP 直接封装测——赌封装便宜;先进产品反过来 CP 越测越细。这是笔算得清的账:封装单价 × CP 拦下的废品率 与 CP 测试成本的比较。

⚠️ 常见坑:把测试通过的良品率当真实良率。重测效应(坏芯片重测变好)多来自接触不良与温控漂移;统计上要按"首测通过"分母管理产线,重测通过要单独跟踪。

关键直觉:测试是唯一一个"越晚发现问题越贵"指数曲线最陡的环节——设计期修 bug 一块钱,量产现场召回是一百万倍。测试预算从来不是成本,是保险费。

本节要点回顾

  • CP 晶圆测 + FT 成品测两级筛选,废品死在越早的环节越省钱。
  • 分 bin 把同一片晶圆卖出梯度价钱,bin 结构是隐形的产品线。
  • 测试时间即成本,并行化、近似化、向量精简是三把优化刀。
  • 覆盖率是饱和曲线,最后 1% 用 DPPM 需求倒推值不值得买。
  • 可测性要设计进去,事后补测试模式几乎不可能。

但"测什么、怎么才能测得到百亿个内部节点"?下一节给出答案:故障模型与可测性设计——先定义"故障长什么样",再为它修高速公路。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U