一、向量基础与ATE架构:从零开始理解测试向量
大家好,我是老张。做ATE测试这行十几年了,每次带新人时第一个问题总是:「测试向量到底是什么?」今天咱们就从这个最基础的问题聊起。
1.1 什么是测试向量?
说白了,测试向量就是一份「芯片行为说明书」。它告诉ATE机台:在某个时间点,哪个引脚该输出高电平,哪个引脚该接收低电平。
举个例子。你想想看,芯片就像个黑盒子。你要验证它内部逻辑对不对,就得往某些引脚灌信号,再从另一些引脚读结果。测试向量就是这些「输入信号」和「期望输出」的时序排列。
核心定义:测试向量 = 输入激励 + 期望响应 + 时序信息
我在项目中遇到过不少工程师,把测试向量简单理解成「一串0和1」。其实没那么简单。它至少包含三部分:
- 激励数据:你要送给芯片的输入信号
- 期望响应:芯片应该吐出来的输出信号
- 时序信息:这些信号在什么时间点发生变化
嗯,这里要注意:没有时序的向量,就像没有乐谱的演奏,根本跑不起来。
1.2 ATE测试机台的基本架构
ATE机台长什么样?我习惯把它拆成三大块来理解。下面这张图是我自己画的,帮你快速建立整体认知。
这张图我画了好几次才满意。三个模块的关系,说白了就是「做什么、什么时候做、怎么做」。
Pattern Generator(向量生成器)
这是整个测试的大脑。它存储着测试向量,按顺序一条条往外吐。我刚开始用Teradyne机台时,总觉得这模块就是个存储器。后来才发现,它还能做循环、跳转、子程序调用——跟CPU的指令集差不多。
Timing Generator(时序发生器)
时序发生器决定「什么时候干活」。它把Pattern Generator吐出来的数据,映射到具体的时间点上。比如一个100MHz的测试周期,它负责把上升沿放在第5ns,采样点放在第8ns。
个人经验:我踩过最大的坑就是时序设置不合理。曾经有个项目,芯片在实验室跑得好好的,上ATE就挂。查了三天,最后发现是Timing Generator的采样点设在了信号跳变沿上。你说冤不冤?
Pin Electronics(引脚电子)
这是ATE和芯片物理接触的「手」。它负责两件事:驱动(Drive)和比较(Compare)。驱动就是把Pattern Generator的0/1变成实际的电压电平;比较就是把芯片输出的电压跟期望值做对比。
1.3 向量文件格式对比:WGL、STIL、VCD
做量产测试,文件格式是个绕不开的话题。我见过不少团队,因为格式选错,后期吃了大亏。下面这张表是我多年经验的总结。
| 特性 | WGL | STIL | VCD |
|---|---|---|---|
| 全称 | Waveform Generation Language | Standard Test Interface Language | Value Change Dump |
| 主要用途 | ATE测试向量 | ATE测试向量(IEEE标准) | 仿真波形记录 |
| 时序表达能力 | 强(支持多周期) | 最强(支持复杂时序) | 弱(仅记录变化点) |
| ATE兼容性 | Teradyne主流 | 几乎所有机台 | 需转换才能用 |
| 文件大小 | 中等 | 较大 | 巨大(全波形) |
| 可读性 | 较好 | 一般 | 最好 |
WGL格式
WGL是Teradyne家的老牌格式。我个人习惯用它做中小规模芯片的量产测试。为什么?因为它简洁。一个WGL文件,向量和时序写在一起,一目了然。
// WGL示例
TIMING {
WAVEFORM clk {
'0': 0ns;
'1': 5ns;
}
WAVEFORM data {
'0': 0ns;
'1': 5ns;
'Z': 10ns;
}
}
PATTERN "test_pattern" {
VECTOR { clk=0; data=1; }
VECTOR { clk=1; data=0; }
VECTOR { clk=0; data=Z; }
}
STIL格式
STIL是IEEE 1450标准。如果你要做多供应商的ATE平台,选它准没错。但说实话,STIL的语法有点啰嗦。我记得第一次看STIL规范文档,200多页,看得我直犯困。
// STIL示例
Signal {
clk In;
data InOut;
}
Timing {
WaveformTable default {
'0' { clk = 0ns; }
'1' { clk = 5ns; }
}
}
PatternBurst {
Pattern "test_seq" {
V { clk=0; data=1; }
V { clk=1; data=0; }
}
}
VCD格式
VCD是仿真工具吐出来的格式。它记录了所有信号的变化过程,信息量最大。但直接拿来做ATE测试?我劝你三思。VCD文件动辄几百MB,而且没有明确的时序周期定义,ATE机台根本认不了。
避坑指南:我曾经有个项目,设计团队直接扔了个VCD文件过来,说「你们ATE照着跑就行」。结果我一看,文件2GB,里面还有毛刺信号。最后花了两周才转成可用的WGL。从那以后,我要求设计团队必须提供STIL或WGL格式。
1.4 格式选择的实战建议
说了这么多,到底选哪个?我给出三条建议:
- 看ATE平台:如果你只用Teradyne,WGL最省事。如果用Advantest或Chroma,STIL更稳妥。
- 看团队协作:设计团队给什么格式?如果给VCD,你得准备转换脚本。我一般用Perl写个解析器,把VCD转成WGL。
- 看芯片复杂度:简单逻辑芯片,WGL够用。SoC芯片,建议上STIL,它的时序描述能力更强。
我的结论:没有最好的格式,只有最合适的格式。关键是你的ATE机台、EDA工具、团队习惯三者要匹配。选对了,后面省一半功夫。
好了,这一章的内容就到这儿。测试向量和ATE架构是后面所有技巧的基础。你把这些搞懂了,后面讲向量优化、故障诊断、良率提升,才能听得明白。
公众号:蓝海资料掘金营,微信deep3321