一、向量基础与ATE架构:从零开始理解测试向量

大家好,我是老张。做ATE测试这行十几年了,每次带新人时第一个问题总是:「测试向量到底是什么?」今天咱们就从这个最基础的问题聊起。

1.1 什么是测试向量?

说白了,测试向量就是一份「芯片行为说明书」。它告诉ATE机台:在某个时间点,哪个引脚该输出高电平,哪个引脚该接收低电平。

举个例子。你想想看,芯片就像个黑盒子。你要验证它内部逻辑对不对,就得往某些引脚灌信号,再从另一些引脚读结果。测试向量就是这些「输入信号」和「期望输出」的时序排列。

核心定义:测试向量 = 输入激励 + 期望响应 + 时序信息

我在项目中遇到过不少工程师,把测试向量简单理解成「一串0和1」。其实没那么简单。它至少包含三部分:

  • 激励数据:你要送给芯片的输入信号
  • 期望响应:芯片应该吐出来的输出信号
  • 时序信息:这些信号在什么时间点发生变化

嗯,这里要注意:没有时序的向量,就像没有乐谱的演奏,根本跑不起来。

1.2 ATE测试机台的基本架构

ATE机台长什么样?我习惯把它拆成三大块来理解。下面这张图是我自己画的,帮你快速建立整体认知。

ATE测试机台核心架构 Pattern Generator 向量生成器 存储并输出测试向量 控制地址与数据流 Timing Generator 时序发生器 定义信号沿的时间点 控制周期、脉宽、延迟 Pin Electronics 引脚电子 驱动/比较信号电平 连接DUT物理引脚 DUT (待测芯片) Device Under Test 数据流方向:Pattern Generator → Timing Generator → Pin Electronics → DUT

这张图我画了好几次才满意。三个模块的关系,说白了就是「做什么、什么时候做、怎么做」。

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 格式选择的实战建议

说了这么多,到底选哪个?我给出三条建议:

  1. 看ATE平台:如果你只用Teradyne,WGL最省事。如果用Advantest或Chroma,STIL更稳妥。
  2. 看团队协作:设计团队给什么格式?如果给VCD,你得准备转换脚本。我一般用Perl写个解析器,把VCD转成WGL。
  3. 看芯片复杂度:简单逻辑芯片,WGL够用。SoC芯片,建议上STIL,它的时序描述能力更强。

我的结论:没有最好的格式,只有最合适的格式。关键是你的ATE机台、EDA工具、团队习惯三者要匹配。选对了,后面省一半功夫。

好了,这一章的内容就到这儿。测试向量和ATE架构是后面所有技巧的基础。你把这些搞懂了,后面讲向量优化、故障诊断、良率提升,才能听得明白。


公众号:蓝海资料掘金营,微信deep3321