4. 测试数据格式解析

在半导体测试工程中,数据格式是连接测试机台(Tester)与良率分析系统(YMS)的桥梁。不同的测试阶段(CP/FT)和不同的设备供应商(Teradyne、Advantest、Chroma)会产出不同格式的数据文件。本章将深入解析四种主流数据格式的结构、适用场景及核心字段含义,帮助你在实际工作中准确解析与转换测试数据。

💡 工程要点: 数据格式的解析能力是良率工程师的基本功。错误的字段映射或格式误判,可能导致良率核算结果偏差超过5%。建议在项目初期就建立统一的数据字典。

4.1 测试数据格式全景图

下图展示了从测试机台原始输出到良率分析系统的数据流转路径,以及各格式在流程中的位置。

测试数据格式流转全景图 测试数据格式流转全景图 测试机台 (Teradyne/Advantest) STDF (二进制标准) ATDF (ASCII文本) CSV / Excel (通用表格) 数据解析引擎 (格式转换/字段映射) YMS 数据库 (良率分析) 说明:STDF/ATDF 为行业标准格式,CSV/Excel 为通用数据交换格式,解析引擎负责统一转换为 YMS 可识别的结构。

4.2 STDF 格式详解

STDF(Standard Test Data Format) 是半导体测试行业最广泛使用的二进制数据格式,由 Teradyne 公司制定并开放。几乎所有主流测试机台(如 Teradyne J750、UltraFLEX、Advantest T2000)都支持直接输出 STDF 文件。

4.2.1 STDF 文件结构

STDF 文件由一系列记录(Record)组成,每条记录包含记录类型、长度和数据体。核心记录类型如下:

记录类型 记录代码 描述 关键字段
文件头 FAR 标识 STDF 版本和文件结构 版本号、记录长度
零件信息 PIR 每个被测器件(DUT)的开始标记 HEAD_NUM、SITE_NUM、PART_ID
测试结果 PTR 单个测试项的数值结果 TEST_NUM、RESULT、TEST_TXT
参数测试结果 MPR 多参数测试结果(如 Pin 测试) TEST_NUM、RESULT_ARRAY
零件结束 PRR 每个 DUT 的结束标记,包含良率判定 HARD_BIN、SOFT_BIN、PART_FLG
测试汇总 TSR 测试项统计汇总 TEST_NUM、AVG、STD_DEV
🔍 解析要点: STDF 是二进制格式,不能直接用文本编辑器打开。推荐使用开源库(如 Python 的 pySTDF 或 stdf2csv)进行解析。解析时需注意字节序(Endianness)对齐,不同机台可能使用 Big-Endian 或 Little-Endian。

4.2.2 STDF 解析流程

STDF 解析流程 STDF 解析流程 读取 FAR 文件头验证 遍历记录 按类型解析 提取 PTR/MPR 测试结果 输出 CSV 结构化数据 注意:STDF 文件可能包含多个 HEAD(测试头)和 SITE(测试位),解析时需按 HEAD_NUM 和 SITE_NUM 分组。 PRR 中的 HARD_BIN 和 SOFT_BIN 是良率核算的关键字段。

4.3 ATDF 格式详解

ATDF(Advanced Test Data Format) 是另一种行业标准格式,由 SEMI 组织标准化(SEMI E148)。与 STDF 的二进制结构不同,ATDF 采用 ASCII 文本格式,可读性更强,但文件体积较大。

4.3.1 ATDF 与 STDF 对比

对比维度 STDF ATDF
编码方式 二进制 ASCII 文本
文件大小 小(压缩率高) 大(约为 STDF 的 3~5 倍)
可读性 不可直接阅读 可用文本编辑器打开
解析速度 快(二进制流处理) 较慢(文本解析)
标准化组织 Teradyne(事实标准) SEMI(正式标准)
主要应用 CP/FT 量产数据 工程验证、数据交换

4.3.2 ATDF 文件结构示例

ATDF 文件以行为单位,每行以关键字开头,后跟字段值。以下是一个简化的 ATDF 片段:

HEADER: VERSION 2.0, DATE 2024-03-15, LOT ABC123
PART: ID DUT001, HEAD 0, SITE 0
TEST: NUM 1, NAME VDD_MIN, RESULT 1.25, UNIT V, LOW_LIMIT 1.10, HIGH_LIMIT 1.40
TEST: NUM 2, NAME IDDQ, RESULT 0.002, UNIT A, LOW_LIMIT 0.0, HIGH_LIMIT 0.005
BIN: HARD 1, SOFT 1, FLAG PASS
END: PART
⚠️ 常见陷阱: ATDF 的字段分隔符可能因机台配置而异(空格、制表符或逗号)。解析前务必确认文件头中的分隔符定义,否则可能导致字段错位。

4.4 CSV / Excel 数据格式

在实际工程中,CSV(逗号分隔值)和 Excel(.xlsx)是最常用的数据交换格式。它们虽然缺乏 STDF/ATDF 的标准化结构,但胜在通用性强,可直接用 Excel、Python Pandas 等工具处理。

4.4.1 标准 CSV 良率数据模板

Lot_ID Wafer_ID Die_X Die_Y Test_Item Result Low_Limit High_Limit Hard_Bin Soft_Bin
LOT2401 W01 10 20 VDD_MIN 1.25 1.10 1.40 1 1
LOT2401 W01 10 20 IDDQ 0.008 0.00 0.005 10 5
LOT2401 W01 11 20 VDD_MIN 1.30 1.10 1.40 1 1
📋 工程建议: 在生成 CSV 时,建议遵循以下规范:
1. 每行代表一个 DUT 的一个测试项(宽表格式),或每行代表一个 DUT 的所有测试项(长表格式)。
2. 必须包含 Lot_ID、Wafer_ID、Die_X、Die_Y 用于定位。
3. Hard_Bin 和 Soft_Bin 是良率核算的核心字段,Hard_Bin 用于最终良率判定,Soft_Bin 用于失效分类。

4.5 常见数据字段含义与映射

无论使用哪种格式,以下字段是良率核算中必须理解和正确映射的:

字段名称 STDF 对应 ATDF 对应 CSV 建议名称 含义说明
批次号 WIR/LOT_ID HEADER/LOT Lot_ID 晶圆批次的唯一标识
晶圆编号 WIR/WAFER_ID HEADER/WAFER Wafer_ID 批次内晶圆的编号
芯片X坐标 PIR/DIE_X PART/X Die_X 芯片在晶圆上的行坐标
芯片Y坐标 PIR/DIE_Y PART/Y Die_Y 芯片在晶圆上的列坐标
测试项编号 PTR/TEST_NUM TEST/NUM Test_Item 测试项的唯一编号或名称
测试结果 PTR/RESULT TEST/RESULT Result 测试项的实际测量值
下限 PTR/LOW_LIMIT TEST/LOW_LIMIT Low_Limit 测试规格下限
上限 PTR/HIGH_LIMIT TEST/HIGH_LIMIT High_Limit 测试规格上限
硬分Bin PRR/HARD_BIN BIN/HARD Hard_Bin 最终良率判定(1=Pass,其他=Fail)
软分Bin PRR/SOFT_BIN BIN/SOFT Soft_Bin 失效分类码(用于分析失效原因)

4.6 格式转换实战要点

在实际项目中,经常需要将 STDF/ATDF 转换为 CSV 进行快速分析。以下是一个基于 Python 的转换示例:

import stdf2csv
import pandas as pd

# 将 STDF 转换为 CSV
stdf2csv.convert('input.stdf', 'output.csv')

# 读取 CSV 并查看良率
df = pd.read_csv('output.csv')
# 按 Hard_Bin 统计良率
yield_rate = df[df['HARD_BIN'] == 1].shape[0] / df.shape[0]
print(f"良率: {yield_rate:.2%}")
⚡ 效率提升: 对于大批量 STDF 文件(如一个批次包含 25 片晶圆,每片 5000 颗 Die),建议使用多线程解析,并直接写入数据库(如 SQLite 或 MySQL),避免中间 CSV 文件占用磁盘空间。

4.7 格式选择决策指南

数据格式选择决策树 数据格式选择决策树 测试数据来源? 量产机台输出 工程/手动数据 推荐:STDF 推荐:CSV/Excel

选择建议:

  • 量产环境: 优先使用 STDF,文件小、解析快、信息完整。
  • 工程验证: 使用 ATDF 便于人工检查数据内容。
  • 数据分析与报告: 转换为 CSV/Excel,利用 Pandas、Tableau 等工具快速分析。
  • 长期归档: 保留原始 STDF 文件,CSV 作为中间产物可定期清理。
⚠️ 数据完整性检查: 在格式转换后,务必进行数据完整性校验:
1. 对比原始文件与转换文件的记录数(DUT 数量)是否一致。
2. 随机抽取 10~20 个 DUT,核对关键测试项结果是否一致。
3. 检查 Hard_Bin 分布是否合理(Pass Bin 占比应与预期良率接近)。