3. 良率数据来源:测试数据(CP/FT)、在线监测数据(SPC)、缺陷检测数据(KLA/明场/暗场)

做良率分析,第一步不是跑模型,也不是画图。

是搞清楚你的数据从哪来。

我见过不少新人,一上来就拿着CP map开始算良率,结果算了半天发现数据是错的——因为测试程序没调好,或者探针卡扎偏了。嗯,这种坑我踩过不止一次。

所以这一章,咱们把数据来源掰开揉碎讲清楚。说白了,良率数据就三大类:测试数据、在线监测数据、缺陷检测数据。每一类都有它的脾气。

3.1 测试数据:CP和FT

测试数据是良率分析的“主食”。没有它,你啥都干不了。

3.1.1 CP(Chip Probing,晶圆探针测试)

CP是在晶圆还没划片之前做的测试。探针卡扎到每个die的pad上,通电测功能。这时候测出来的良率,叫CP良率

我个人习惯把CP良率叫做“裸芯片的体检报告”。它告诉你:这颗die在封装之前,到底是好是坏。

CP数据里最重要的几个字段:

  • Bin Code:每个die的测试结果分类。比如Bin1是良品,Bin5是短路,Bin9是漏电流超标。
  • 测试参数:比如Vmin、Iddq、频率等。这些参数能帮你定位失效模式。
  • Map坐标:每个die在晶圆上的X/Y位置。有了这个,你才能画良率map。
我的经验:拿到CP数据后,先别急着算良率。先看一眼Bin Code的分布。如果某个Bin占比异常高(比如Bin5占了30%),那大概率是测试程序的问题,不是芯片真坏了。我曾经有一次,整个批次CP良率只有20%,查了半天发现是探针卡脏了。

3.1.2 FT(Final Test,最终测试)

FT是芯片封装之后做的测试。这时候芯片已经切下来、焊到基板上了。FT良率通常比CP低一点,因为封装过程会引入新的失效。

FT数据和CP数据长得差不多,但多了一个字段:封装批次号。这个字段很重要,因为你可以用它来追溯封装厂的问题。

数据项 CP FT
测试阶段 晶圆级(未封装) 封装后
主要失效模式 工艺缺陷、光刻问题 封装应力、焊接不良
数据粒度 每个die 每个封装芯片
良率对比 通常较高 通常略低

你想想看,如果CP良率很高,但FT良率暴跌,那问题大概率出在封装环节。反过来,如果CP良率就低,那得从Fab工艺找原因。

3.2 在线监测数据:SPC

SPC(Statistical Process Control)数据,是你在Fab里每道工序测出来的。比如膜厚、线宽、套刻精度、电阻率等等。

这些数据不直接告诉你芯片好坏,但它们能预警——就像汽车的仪表盘,水温高了你不一定马上爆缸,但你知道该减速了。

SPC数据常见的几个监控项:

  • 膜厚(Thickness):氧化层、氮化硅层厚度。偏厚或偏薄都会影响器件性能。
  • CD(Critical Dimension,关键尺寸):比如栅极长度。CD偏大,芯片速度慢;CD偏小,漏电大。
  • 套刻精度(Overlay):光刻层与层之间的对准精度。套偏了,短路或断路。
注意:SPC数据是“过程参数”,不是“结果参数”。你不能直接用SPC数据算良率,但你可以用它们做相关性分析。比如,我发现某批次膜厚偏薄了5%,对应的CP良率下降了3%。这就是SPC的价值。

我个人习惯是把SPC数据和CP数据做时间对齐。比如,晶圆A在光刻工序的SPC数据是上午8点测的,CP测试是下午2点做的。那这两个数据点之间差了6小时,中间可能还有别的工序在影响。所以对齐的时候要小心,别把因果搞反了。

3.3 缺陷检测数据:KLA/明场/暗场

缺陷检测数据,说白了就是“找茬”。用光学或电子束显微镜,把晶圆上的颗粒、划痕、桥接、空洞统统揪出来。

3.3.1 KLA缺陷检测

KLA是行业里最常用的缺陷检测设备。它用激光扫描晶圆表面,发现异常点就记录下来。KLA数据通常包含:

  • 缺陷坐标:X/Y位置,精确到微米级。
  • 缺陷大小:比如0.1μm、0.5μm。
  • 缺陷类型:颗粒、划痕、桥接、空洞等。

KLA检测分两种模式:明场暗场

  • 明场(Bright Field):光源从正上方打下来,反射光被接收。适合检测平坦表面的缺陷,比如膜层上的颗粒。
  • 暗场(Dark Field):光源从侧面打,只有散射光被接收。适合检测边缘、沟槽里的缺陷,比如刻蚀残留。

为什么要有两种模式?你想想看,明场就像白天看东西,暗场就像用手电筒从侧面照。有些缺陷在明场下根本看不见,但暗场下一照就原形毕露。我在项目中遇到过,一个批次良率一直偏低,明场检测啥都没发现,换成暗场才发现是刻蚀残留导致的微短路。

3.3.2 缺陷数据怎么用

缺陷数据最经典的用法是缺陷-良率相关性分析。你把缺陷map和CP良率map叠在一起看,如果某个区域缺陷密度高、良率也低,那基本就锁定了。

举个例子:

# 伪代码:缺陷密度 vs 良率
for each die in wafer:
    defect_count = count_defects_in_die(die)
    if defect_count > threshold:
        mark_die_as_bad()
    else:
        mark_die_as_good()

当然,实际分析没这么简单。因为不是所有缺陷都会导致失效。有些缺陷落在非关键区域,比如划片槽里,那就不影响良率。所以你需要做关键缺陷筛选——只关注那些落在有源区、栅极、金属连线上的缺陷。

关键点:缺陷数据是“空间数据”,测试数据是“电性数据”。把两者结合起来,你才能找到真正的根因。我见过最经典的案例:一个批次良率波动很大,把缺陷map和CP map叠在一起,发现所有低良率die都落在晶圆边缘,而边缘区域恰好有大量划痕——原来是机械手抓取时造成的。

3.4 三类数据的整合思路

做良率分析,你不能只看一类数据。你得把CP/FT、SPC、缺陷数据串起来看。

我个人习惯的流程是这样的:

  1. 先看CP/FT良率:确认问题有多大。是整体偏低,还是局部失效?
  2. 再看缺陷map:如果良率map上有明显的空间分布特征(比如边缘差、中心差),那大概率是缺陷问题。
  3. 最后查SPC:如果缺陷map看不出规律,那可能是工艺参数漂移了。查一下对应工序的SPC数据,看有没有异常。

举个例子:

  • CP良率只有70%,map显示晶圆中心区域全是坏die。
  • 缺陷map显示中心区域有大量颗粒。
  • SPC数据显示光刻胶涂布工序的膜厚均匀性超标了。

那根因就清楚了:光刻胶涂布不均匀,导致中心区域膜厚偏薄,显影后留下残留物,最终导致短路。

避坑指南:我曾经犯过一个错误——拿到数据后直接跑相关性分析,结果发现缺陷密度和良率负相关(缺陷越多良率越高)。后来才发现,是因为缺陷检测设备灵敏度没调好,把很多假信号当成了缺陷。所以,数据质量是第一位的。先清洗数据,再分析。

好了,这一章就到这里。数据来源搞清楚了,下一章咱们聊聊怎么把这些数据整合到一起,建一个良率分析数据库。嗯,那才是真正开始干活的时候。