4、常见测试项目解析:DC测试、AC测试、功能测试
量产测试里,测试项目看着多,但核心就三大类:DC测试、AC测试、功能测试。这三板斧砍下去,芯片90%的问题都能暴露出来。我这些年跟过的项目,不管工艺是90nm还是7nm,套路基本没变过。
今天咱们就把这三类测试掰开揉碎,看看每个项目到底测什么、怎么测、踩过哪些坑。
4.1 DC测试:漏电流与功耗
DC测试,说白了就是测芯片的“静态”特性。电源一加上,管脚电平一固定,剩下的就是看电流对不对。这里面最常碰到的两个项目:漏电流和功耗。
4.1.1 漏电流测试(IDDQ / IDD)
漏电流测试,我习惯叫它“芯片的体温计”。芯片正常工作时,电源到地之间总会有那么一点点漏电。如果漏电突然变大,说明内部可能有短路或栅氧击穿。
测试方法其实很简单:
- 给芯片上电,所有输入管脚置为固定电平(VDD或GND)
- 输出管脚不驱动负载(高阻态)
- 测量VDD到VSS之间的静态电流
这里有个关键点——测试向量。不同的向量组合,漏电流大小不一样。我遇到过最头疼的一次,某个批次芯片IDDQ全超标,换了好几组向量才发现是某个内部节点浮空了。
漏电流的典型规格值,我整理了个表:
| 工艺节点 | 典型IDDQ(常温) | 异常阈值 | 常见失效模式 |
|---|---|---|---|
| 180nm | 1~10 µA | > 50 µA | 栅氧击穿、金属桥接 |
| 65nm | 10~100 µA | > 500 µA | 多晶硅残留、接触孔失效 |
| 28nm | 100 µA ~ 1 mA | > 5 mA | FINFET漏电、阱穿通 |
| 7nm | 1~10 mA | > 50 mA | EOS损伤、栅极漏电 |
4.1.2 功耗测试
功耗测试分两种:静态功耗和动态功耗。静态功耗就是上面说的漏电流,动态功耗是芯片在跑功能时的电流。
动态功耗测试,我常用的方法是:
- 加载一个“最坏情况”的功能向量(比如全翻转的pattern)
- 让芯片跑在最高频率
- 用电源上的电流探头或ATE的PMU测量平均电流
- P = VDD × IDD,算出来就是动态功耗
这里有个坑——电源去耦电容。ATE的电源路径上通常有去耦电容,如果电容太大,测出来的电流会偏小,因为电容在“帮忙”供电。我曾经因为这个原因,一批芯片功耗测试全Pass,结果客户那边上板子就过热关机。
4.2 AC测试:建立时间与保持时间
AC测试,测的是芯片的“动态”特性。说白了就是看信号跑得快不快、时序对不对。这里面最核心的两个参数:建立时间(Setup Time)和保持时间(Hold Time)。
4.2.1 建立时间测试
建立时间,就是数据在时钟沿到来之前必须保持稳定的最短时间。如果数据来得太晚,触发器就采不到正确的值。
测试方法,我一般用“二分搜索”:
- 先设一个宽松的建立时间(比如时钟周期的50%)
- 逐步减小数据相对于时钟的延迟
- 直到功能测试Fail,那个临界点就是实际的建立时间
举个例子,假设时钟周期是20ns:
// 伪代码示例
setup_time = 10ns // 初始值
step = 1ns
while (function_test_pass) {
setup_time = setup_time - step
apply_timing(setup_time)
}
// 此时setup_time就是临界值
actual_setup = setup_time + step // 加上最后一步
我记得有一次,某个芯片的建立时间规格是2ns,但测出来只有1.2ns。一开始以为是芯片有问题,后来查了半天,发现是ATE的时钟抖动太大,把测量结果“吃掉”了0.8ns。换了低抖动时钟源,结果就对了。
4.2.2 保持时间测试
保持时间,就是数据在时钟沿之后必须保持稳定的最短时间。如果数据变得太快,触发器同样会采错。
保持时间测试比建立时间麻烦,因为它是“负向”的——你要让数据在时钟沿之后尽快变化,看芯片能不能扛住。
测试步骤:
- 先设一个正常的保持时间(比如0ns)
- 逐步减小数据相对于时钟的延迟(让数据更早变化)
- 直到功能测试Fail
这里有个容易混淆的地方——建立时间和保持时间的关系。我画了个图来说明:
4.3 功能测试
功能测试,是量产测试里最“实在”的一环。DC和AC测的是芯片的“体质”,功能测试测的是芯片的“脑子”——能不能正确干活。
4.3.1 功能测试的本质
功能测试,说白了就是给芯片输入一组向量,看输出对不对。但量产测试里,功能测试有个特殊要求——覆盖率。
你不能把所有功能都测一遍,那样测试时间太长。你得挑“最有可能出问题”的路径来测。我一般遵循“二八原则”:
- 80%的测试向量覆盖20%最关键的路径
- 剩下20%的向量覆盖其他路径
4.3.2 功能测试的向量类型
量产测试里,功能测试向量分几类:
| 向量类型 | 特点 | 适用场景 |
|---|---|---|
| Scan Pattern | 基于扫描链,覆盖率最高 | 数字逻辑测试 |
| BIST Pattern | 内建自测试,ATE负担小 | 存储器、SerDes |
| Functional Pattern | 模拟真实应用场景 | 系统级验证 |
| At-Speed Pattern | 在芯片最高频率下运行 | 时序相关缺陷 |
我个人最看重的是At-Speed Pattern。很多芯片在低频下功能正常,一跑到高频就挂。这种“速度相关”的缺陷,只有At-Speed测试才能抓出来。
4.3.3 功能测试的常见问题
功能测试Fail,原因往往不在芯片本身。我遇到过几次“假Fail”:
- ATE通道延迟不匹配:不同通道的延迟差了几百ps,导致数据采样错位
- 负载板走线过长:信号反射导致波形畸变
- 电源噪声:ATE电源纹波太大,芯片内部逻辑误翻转
4.4 三类测试的协同关系
DC、AC、功能测试不是孤立的。它们之间的关系,我画了张图:
我的习惯是:DC不过,不测AC;AC不过,不测功能。这样能节省大量测试时间。如果DC就Fail了,后面的测试根本没必要跑。
好了,DC、AC、功能测试的核心内容就这些。这三类测试是量产测试的“三驾马车”,缺一不可。实际项目中,你可能会遇到各种奇怪的问题,但只要把这三类测试的数据吃透,90%的问题都能快速定位。