4. 测试向量基础:向量格式(STIL/WGL)、时序定义与向量生成方法
测试向量(Test Vector)是ATE测试的核心输入,它定义了DUT(被测器件)每个引脚在每一测试周期内的逻辑状态与期望响应。本章将系统讲解两种主流向量格式——STIL与WGL,以及时序定义与向量生成方法,帮助工程师在FT测试程序开发中准确、高效地构建测试向量。
4.1 测试向量概述
测试向量本质上是一个二维矩阵:行代表测试周期(或测试向量序号),列代表DUT的各个引脚。每个单元格定义了该引脚在当前周期的状态(如0、1、Z、X)或期望值。向量格式决定了这些数据如何被组织、存储和解析。
| 特性 | STIL (Standard Test Interface Language) | WGL (Waveform Generation Language) |
|---|---|---|
| 标准化组织 | IEEE 1450 标准 | Teradyne 公司提出,后成为行业事实标准 |
| 主要用途 | ATE平台间向量交换、仿真与测试数据统一 | Teradyne ATE平台(如J750、UltraFLEX)原生格式 |
| 时序定义 | 内嵌在文件中,使用Timing块描述波形 | 通过WaveformTable定义,与向量文件分离 |
| 可读性 | 结构化文本,层次清晰 | 紧凑格式,适合机器解析 |
| 扩展性 | 支持PatternBurst、Macro等高级结构 | 支持Label、Loop、Subroutine等流程控制 |
4.2 STIL向量格式详解
STIL(IEEE 1450)是一种用于描述数字测试向量和时序的标准化语言。其核心结构包括信号列表、时序定义、向量数据三大部分。
4.2.1 STIL文件基本结构
STIL 1.0 {
Headers {
Title "FT_Test_Pattern";
Date "2025-01-15";
Source "TetraMAX ATPG";
}
Signals {
CLK In;
RST In;
DATA InOut;
Q Out;
}
SignalGroups {
bus = 'DATA';
}
Timing {
WaveformTable wft_main {
Period '100ns';
Waveforms {
CLK { 0 { '0ns' D/U; } 1 { '0ns' U; '50ns' D; } }
RST { 0 { '0ns' D/U; } 1 { '0ns' U; } }
DATA { 0 { '0ns' D/U; } 1 { '0ns' U; } Z { '0ns' Z; } }
Q { L { '0ns' CompareLow; } H { '0ns' CompareHigh; } }
}
}
}
PatternBurst burst_1 {
PatList { pattern_1; pattern_2; }
}
Pattern pattern_1 {
W wft_main;
V { '0' '1' '0' 'L'; }
V { '1' '0' 'Z' 'H'; }
V { '0' '1' '1' 'L'; }
}
}
- Signals:定义所有引脚及其方向(In/Out/InOut)。
- Timing / WaveformTable:定义周期、波形边沿位置与状态映射。
- Pattern:向量数据体,每行对应一个测试周期,按信号顺序列出状态字符。
- PatternBurst:组织多个Pattern的执行顺序,支持循环与跳转。
4.2.2 STIL时序定义与波形映射
时序定义是STIL中最关键也最容易出错的部分。每个波形由一系列边沿事件组成,定义了信号在周期内的驱动或比较行为。
4.3 WGL向量格式详解
WGL(Waveform Generation Language)是Teradyne ATE平台的原生向量格式,其设计更贴近ATE硬件执行模型。WGL文件通常包含向量数据(.pat)和时序表(.tim)两部分。
4.3.1 WGL向量文件结构
; WGL Pattern File Example
; Generated for J750 Platform
TIMING_MODE SINGLE;
PERIOD 100.0;
WAVEFORM_TABLE wft_main {
WAVEFORM CLK {
'0': FORCE_0;
'1': FORCE_1 @ 0, FORCE_0 @ 50;
}
WAVEFORM RST {
'0': FORCE_0;
'1': FORCE_1;
}
WAVEFORM DATA {
'0': FORCE_0;
'1': FORCE_1;
'Z': FORCE_Z;
}
WAVEFORM Q {
'L': COMPARE_L;
'H': COMPARE_H;
}
}
PATTERN pattern_1 {
LABEL start;
VECTOR { CLK=0, RST=1, DATA=0, Q=L; }
VECTOR { CLK=1, RST=1, DATA=Z, Q=H; }
VECTOR { CLK=0, RST=1, DATA=1, Q=L; }
JUMP start 2; ; 循环2次
}
- 时序定义方式:WGL使用FORCE_0/FORCE_1/FORCE_Z/COMPARE_H/COMPARE_L等关键字,STIL使用D/U/Z/CompareHigh等字符。
- 流程控制:WGL原生支持LABEL、JUMP、CALL、LOOP等指令,适合ATE实时执行;STIL通过PatternBurst和Macro实现类似功能。
- 文件组织:WGL通常将时序表与向量数据放在同一文件或分开引用;STIL强制在单个文件中定义所有元素。
4.3.2 WGL时序表与ATE硬件映射
WGL的时序定义直接映射到ATE的硬件资源——每个波形对应一个时序发生器(Timing Generator)的配置。理解这种映射关系,有助于优化测试周期与提高吞吐量。
| WGL波形关键字 | ATE硬件动作 | 典型应用场景 |
|---|---|---|
| FORCE_0 / FORCE_1 | 驱动引脚到指定电平 | 输入信号、控制信号 |
| FORCE_Z | 驱动引脚到高阻态 | 双向总线、三态输出 |
| COMPARE_H / COMPARE_L | 在指定窗口比较引脚电平 | 输出信号捕获 |
| FORCE_X | 不驱动、不比较(忽略) | 未使用引脚、掩码周期 |
4.4 向量生成方法
测试向量的生成通常有三种途径:ATPG工具自动生成、手动编写、以及从仿真波形转换。实际FT项目中,以前两种为主。
4.4.1 ATPG工具生成流程
- 输入网表与故障模型:提供DUT的门级网表(Gate-level Netlist)和故障列表(如Stuck-at、Transition Delay)。
- ATPG引擎运行:工具(如TetraMAX、FastScan)自动计算测试向量,目标是达到最高故障覆盖率。
- 向量输出:生成STIL或WGL格式的向量文件,同时输出故障覆盖率报告。
- 仿真验证:将生成的向量加载到仿真器(如VCS、NC-Sim)中,验证时序与功能正确性。
- ATE格式转换:若目标平台不支持直接格式,使用转换工具(如Teradyne的Pattern Converter)进行格式适配。
4.4.2 手动编写向量场景
在以下场景中,工程师需要手动编写或修改测试向量:
- 边界扫描测试(JTAG):需要精确控制TMS、TCK、TDI、TDO的时序序列。
- 特定功能测试:如初始化序列、IDDQ测试、特定协议握手。
- 调试与诊断:在ATE调试阶段,手动编写少量向量验证特定引脚行为。
- 向量优化:合并或压缩向量以减少测试时间。
4.5 向量格式转换与常见问题
在实际项目中,向量格式转换是高频操作。以下列出转换过程中的常见问题与解决方案:
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| ATE报错“波形未定义” | STIL中的波形名称与WGL不匹配 | 检查WaveformTable名称与Pattern中引用的W名称是否一致 |
| 时序偏移导致测试失败 | 边沿时间单位不一致(ns vs ps) | 统一使用明确单位,避免依赖默认值 |
| 向量行数过多,ATE内存不足 | 未使用循环/子程序压缩向量 | 将重复序列改为LOOP或CALL结构 |
| 仿真通过但ATE失败 | ATE驱动能力或比较窗口设置与仿真环境不同 | 检查ATE的VIH/VIL/VOH/VOL电平设置与时序窗口 |
4.6 本章小结
测试向量是连接设计验证与ATE测试的桥梁。STIL提供了标准化的交换格式,适合跨平台协作;WGL则更贴近ATE硬件执行,适合直接用于Teradyne平台。掌握两种格式的时序定义方法,以及ATPG自动生成与手动编写的适用场景,是FT测试程序开发的基础能力。在实际项目中,建议优先使用ATPG工具生成向量,再根据ATE平台特性进行格式转换与优化,同时保留手动调整的灵活性以应对特殊测试需求。