3. 数据采集与清洗:E-Test 数据源、Map 图数据格式、异常值剔除与标准化

在半导体制造中,E-Test(电性测试)数据是定位异常 Wafer 和修正工艺窗口的核心依据。然而,原始数据往往包含噪声、缺失值以及测试异常点。本章节将系统讲解 E-Test 数据源结构、Map 图数据格式规范,以及异常值剔除与标准化的工程方法。

核心原则:数据清洗的目标是保留真实工艺波动,剔除测试系统误差与随机噪声,确保后续统计分析(如 SPICE 建模、良率预测)的可靠性。

3.1 E-Test 数据源与关键参数

E-Test 数据通常来源于晶圆允收测试(WAT)或在线参数测试(In-line PCM)。每颗 Die 或每个测试结构会生成一组多维电性参数。

参数类别 典型参数 单位 工艺相关性
MOS 器件 Vt(阈值电压)、Idsat(饱和电流)、Ioff(关态漏电) V, μA/μm, pA/μm 栅氧化层厚度、沟道掺杂、Lpoly
互连/电阻 Rs(方块电阻)、Rc(接触电阻) Ω/sq, Ω 金属膜厚、刻蚀轮廓、退火条件
电容/隔离 Cox(栅氧电容)、BV(击穿电压) fF/μm², V 介质厚度、掺杂浓度、隔离结构
数据源注意:不同测试机台(如 Keithley、Keysight)输出的原始文件格式可能为 CSV、STDF 或自定义二进制。建议在采集阶段统一转换为标准 DataFrame 格式(如 Parquet),并保留原始时间戳与测试坐标。

3.2 Map 图数据格式与空间映射

Wafer Map 是异常定位的可视化基础。每个测试点对应晶圆上的物理坐标 (X, Y),通常以晶圆中心为原点,单位 mm 或 μm。Map 图数据需包含以下核心字段:

  • Die_X, Die_Y:芯片在晶圆上的行列索引(整数坐标)。
  • X_Coord, Y_Coord:物理坐标(浮点数),用于精确空间分析。
  • Param_Value:测试参数值(如 Vt、Idsat)。
  • Test_Flag:测试状态(Pass/Fail/Not Tested)。

标准 Map 图数据格式示例(CSV 结构):

Die_X, Die_Y, X_Coord, Y_Coord, Vt_V, Idsat_uA, Ioff_pA, Test_Flag
-10, -10, -100.0, -100.0, 0.452, 320.5, 0.12, PASS
-10, -9, -100.0, -90.0, 0.448, 325.1, 0.15, PASS
...
0, 0, 0.0, 0.0, 0.435, 340.2, 0.08, PASS
...
10, 10, 100.0, 100.0, 0.461, 310.8, 0.22, FAIL
常见陷阱:部分测试文件将坐标原点定义在晶圆边缘而非中心,或使用极坐标(R, θ)。清洗时必须统一为笛卡尔坐标系,并校验晶圆半径范围(通常为 150mm / 200mm / 300mm)。
E-Test 数据采集与 Map 图生成流程 E-Test 数据采集与 Map 图生成流程 晶圆测试 (WAT) 原始数据文件 坐标映射与校验 异常值剔除 数据标准化 Map 图可视化 说明:从晶圆测试到 Map 图生成,需经过坐标映射、异常值剔除与标准化三步清洗,确保空间分布的真实性。

3.3 异常值剔除方法

异常值主要分为三类:全局异常(超出工艺规格)、局部异常(空间离群点)、系统异常(测试机台噪声)。针对不同场景,采用以下剔除策略:

异常类型 检测方法 适用场景 注意事项
全局异常 IQR(四分位距)法 / 3σ 准则 参数整体分布偏离规格 需结合工艺规格上下限(Spec Limit)
局部异常 局部离群因子(LOF) / 空间 Z-score 晶圆边缘或局部区域异常 需考虑晶圆半径与芯片密度
系统异常 中值偏差(MAD) / 移动窗口滤波 测试机台跳变或探针接触不良 需保留时间序列顺序
工程建议:对于 300mm 晶圆,建议先使用 3σ 剔除全局异常,再使用基于空间邻域的 LOF 算法(k=20~50)剔除局部异常。避免过度剔除导致有效工艺窗口信息丢失。

3.4 数据标准化方法

标准化是为了消除不同参数量纲和量级的影响,使后续建模与监控在同一尺度下进行。常用方法包括:

  • Z-score 标准化: \( z = (x - \mu) / \sigma \),适用于数据近似正态分布。
  • Min-Max 归一化: \( x' = (x - x_{min}) / (x_{max} - x_{min}) \),适用于有明确边界(如规格限)的参数。
  • 稳健标准化: \( x' = (x - median) / MAD \),适用于存在离群点的数据。

标准化后的数据应满足:均值为 0(或中位数为 0),标准差为 1(或 MAD 为 1)。

# Python 示例:Z-score 标准化与异常值剔除
import numpy as np
import pandas as pd

def clean_and_standardize(df, param_col, z_thresh=3.0):
    """
    对指定参数列进行 Z-score 异常值剔除与标准化
    """
    # 计算 Z-score
    mean = df[param_col].mean()
    std = df[param_col].std()
    df['z_score'] = (df[param_col] - mean) / std
    
    # 剔除异常值
    df_clean = df[np.abs(df['z_score']) < z_thresh].copy()
    
    # 重新标准化(基于清洗后数据)
    mean_clean = df_clean[param_col].mean()
    std_clean = df_clean[param_col].std()
    df_clean['param_std'] = (df_clean[param_col] - mean_clean) / std_clean
    
    return df_clean

# 使用示例
# df_clean = clean_and_standardize(df_raw, 'Vt_V', z_thresh=3.5)
标准化顺序:务必先剔除异常值,再进行标准化。若先标准化,异常值会拉偏均值和标准差,导致正常数据也被压缩或偏移。
异常值剔除与标准化流程 异常值剔除与标准化流程 原始 E-Test 数据 异常? 剔除 / 标记 保留有效数据 标准化 (Z-score) 清洗后标准数据 说明:异常值剔除与标准化是串联流程,剔除后的数据重新计算均值和标准差,再进行标准化,避免异常值污染统计量。

3.5 数据清洗后的质量检查

清洗完成后,需进行以下验证,确保数据质量满足后续分析要求:

  • 缺失率检查:清洗后有效数据占比应 > 95%(对于 300mm 晶圆,通常 > 98%)。
  • 分布形态检查:标准化后参数直方图应近似标准正态分布(均值≈0,标准差≈1)。
  • 空间连续性检查:Map 图上不应出现孤立异常点或大面积数据空洞。
  • 参数相关性检查:清洗不应破坏参数间的物理相关性(如 Vt 与 Idsat 的负相关关系)。
质量门禁:若清洗后数据缺失率超过 5%,或标准化后分布严重偏态(偏度 > 2),需返回检查测试机台状态或重新定义异常值阈值。切勿强行进入后续建模步骤。