测试数据收集与统计基础:数据清洗、直方图、正态分布、Cp/Cpk

数据清洗——先让数据“干净”起来

做良率提升,我有个深刻的教训:数据不干净,后面全是白做。几年前我带一个项目,测了好几万颗芯片,直接扔进分析软件,算出来的Cp/Cpk漂亮得吓人。结果一查,原来是测试机台有个通道接触不良,产生了一堆“假好”数据。从那以后,我再也不敢跳过数据清洗这步。

数据清洗要处理的问题,其实就两大类:

  • 异常值——测试机台打火、探针接触不良、setup/hold违规导致的数据跳变。典型的比如VDD电流突然飙到几百毫安,或者频率测试结果比正常值高出30%以上。
  • 缺失值——某个参数没采到、log文件损坏、site跳过。常见情况是测试程序中途报错,部分bin数据直接为空。

我的清洗流程,供参考:

  1. 先看测试log:有没有error flag、retest count超标。
  2. 再画箱线图:超出1.5倍IQR的点单独拉出来看。
  3. 最后看物理分布:异常值是否集中在某几个site、某几根探针上。
注意:别一上来就删数据。我以前就吃过这个亏,把真正的良率短板当异常值删掉了。先标记、排查,确认是测试问题再剔除,千万别手滑。

直方图——一眼看出芯片的“脾气”

数据洗干净了,第一件事就是画直方图。为什么?因为正态分布、双峰、偏斜,看一眼就八九不离十。我习惯先把所有关键参数都扫一遍直方图,这比看数字表格快得多。

说说我怎么画——其实很简单,但有几个坑要注意:

  • bin数别用默认值:Excel或Python自动算的bin数常常不好用。我个人习惯用Sturges规则:k = 1 + 3.322·lg(n)。n是样本量,比如10000个点,bin数大约15~20。
  • 坐标轴尺度要统一:对比不同批次的直方图,横轴刻度必须一样,不然一眼看过去误差很大。
  • 重点关注尾巴:规格限以外的那部分,就是良率损失的来源。我会单独统计长尾比例(tails percentage)。

举个例子——我之前处理过一个ATE test的Voh(输出高电平)数据。直方图画出来,明明规格下限是2.4V,数据却有两个峰:一个集中在2.45V,另一个漂到2.35V。后来查出来是某块板卡负载电容装错了。你想想看,要是没画直方图,直接算均值,根本发现不了这个双峰问题。

实用技巧:在直方图上叠加规格限(USL/LSL),用红色虚线标出来。这样哪个bin超出规格、偏移量多大,一目了然。我在报告里一直这么用,生产团队一看就懂。

正态分布检验——你的数据“正态”吗?

算Cp/Cpk之前,必须确认数据是不是正态的。规矩是死的:非正态数据算出来的过程能力指数,基本是废的。

判断方法我惯用两招:

  1. 正态概率图(Q-Q plot):点越贴在对角线上,越正态。有经验的话,一眼就能看出“S形”或者“上翘”的偏差。
  2. Anderson-Darling检验:p-value > 0.05,就认为基本正态。但我得提醒你——样本量一大(比如10万颗),p-value几乎必小于0.05,此时别太迷信p值,结合Q-Q图看偏离程度更重要。
避坑指南:我曾经在某个项目里,芯片的fMAX数据明显偏态(高频段有长尾)。团队里有人坚持用原始数据算Cp/Cpk,结果过程能力看起来极差。后来我用Box-Cox变换做了数据转换,才得到合理的评估。所以记住:非正态数据可以先做幂变换或Johnson变换,再评估。

Cp与Cpk——过程能力的“体检报告”

这两个指数,说白了就是衡量你的制造过程有没有能力把芯片做好。

  • Cp:只看数据分布宽度(σ)与规格宽度的比值。它假设分布是居中的。公式:Cp = (USL - LSL) / (6σ)。
  • Cpk:考虑了分布是否偏移。公式:Cpk = min[(USL - μ) / (3σ), (μ - LSL) / (3σ)]。

我认为,看良率提升,Cpk比Cp更实用。因为实际生产中分布很少完美居中。Cpk >= 1.33是比较理想的状态,意味着长期良率能稳定在99.7%以上(假设正态且受控)。

现在我用一个具体参数来展示计算过程——假设Vref电压的规格是1.0V ± 0.05V,测试了5000颗芯片,统计出均值μ = 1.02V,样本标准差s = 0.012V:

Vref电压Cp/Cpk计算示例
指标公式数值
USL1.05 V1.05
LSL0.95 V0.95
μ样本均值1.02
σ估计样本标准差0.012
Cp(1.05-0.95)/(6×0.012)1.39
Cpkmin[(1.05-1.02)/(3×0.012), (1.02-0.95)/(3×0.012)]0.83

你看,Cp = 1.39 看起来不错,但Cpk只有0.83——因为均值偏了0.02V。这说明过程虽然窄(高精度),但需要调整靶心。我在实际项目中,每次看到Cp和Cpk差距大,就立刻查生产线的设备偏移,经常能找到调机误差。

解读Cpk值的经验参考:

  • Cpk < 1.0 → 过程不合格,必须改进。
  • 1.0 ≤ Cpk < 1.33 → 及格,但有轻微偏移或波动。
  • 1.33 ≤ Cpk < 1.67 → 良好,良率稳定。
  • Cpk ≥ 1.67 → 优秀,但也要小心过度工程(成本可能偏高)。
测试数据统计基础核心逻辑图 数据 → 清洗 → 分布 → 能力 原始测试数据 数据清洗 异常值检测 缺失值处理 分布分析 直方图 正态检验 Cp/Cpk 📌 核心思路 数据没清洗 → 直方图可能有假峰 → 正态检验错误 → Cp/Cpk全失真。 反过来,每一步做扎实,良率提升才有的放矢。

个人经验:Cpk和Cp一定要结合直方图一起看。只给一个数字,生产线上的人不太信,但你把直方图+规格限+两个指数摆在一起,他们自己就能判断哪里该调。

好了,这一章的核心就这些。数据清洗别偷懒,直方图多画几遍,正态检验别迷信p值,Cp/Cpk要带着图纸看。做到这一步,你已经把统计基础牢牢踩在脚下了。