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等流程控制
工程建议: 在跨平台项目(如从Synopsys TetraMAX生成向量到Teradyne平台执行)中,通常使用STIL作为中间交换格式,再通过工具转换为目标ATE的WGL格式。理解两种格式的差异,有助于定位向量转换过程中的时序与格式错误。

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中最关键也最容易出错的部分。每个波形由一系列边沿事件组成,定义了信号在周期内的驱动或比较行为。

常见陷阱: 波形定义中的时间单位必须与Period一致。例如Period为'100ns',则边沿时间'50ns'表示周期中点。若误写为'50'(缺少单位),ATE可能按默认单位(如ns或ps)解析,导致时序偏移。
STIL时序波形定义示例 STIL WaveformTable 时序定义示意图 0ns 50ns 100ns CLK 驱动 0 (D/U) 驱动 1 (U → D @50ns) RST 驱动 1 (U) DATA 驱动 0 (D/U) 驱动 Z (高阻) Q 比较 L (CompareLow) 每个波形由边沿事件定义:D/U=驱动低/高,U=驱动高,Z=高阻,CompareLow=期望低电平

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与STIL关键差异:
  • 时序定义方式: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工具生成流程

  1. 输入网表与故障模型:提供DUT的门级网表(Gate-level Netlist)和故障列表(如Stuck-at、Transition Delay)。
  2. ATPG引擎运行:工具(如TetraMAX、FastScan)自动计算测试向量,目标是达到最高故障覆盖率。
  3. 向量输出:生成STIL或WGL格式的向量文件,同时输出故障覆盖率报告。
  4. 仿真验证:将生成的向量加载到仿真器(如VCS、NC-Sim)中,验证时序与功能正确性。
  5. ATE格式转换:若目标平台不支持直接格式,使用转换工具(如Teradyne的Pattern Converter)进行格式适配。
ATPG测试向量生成与验证流程 ATPG测试向量生成与验证流程 输入网表与故障模型 ATPG引擎运行 向量输出 (STIL/WGL) 仿真验证 ATE格式转换 验证失败,返回修改 提示:仿真验证是向量生成的关键步骤,可提前发现时序冲突与功能错误,避免ATE上浪费调试时间

4.4.2 手动编写向量场景

在以下场景中,工程师需要手动编写或修改测试向量:

  • 边界扫描测试(JTAG):需要精确控制TMS、TCK、TDI、TDO的时序序列。
  • 特定功能测试:如初始化序列、IDDQ测试、特定协议握手。
  • 调试与诊断:在ATE调试阶段,手动编写少量向量验证特定引脚行为。
  • 向量优化:合并或压缩向量以减少测试时间。
手动编写技巧: 使用文本编辑器或ATE自带的向量编辑器时,建议先定义好时序表(WaveformTable),再逐周期填写向量数据。对于重复性高的序列(如写寄存器操作),使用WGL的LOOP或CALL指令可大幅减少向量行数。

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平台特性进行格式转换与优化,同时保留手动调整的灵活性以应对特殊测试需求。