简介:面向半导体晶圆制造与良率分析岗位的入门到进阶培训资料,围绕KLA缺陷检查设备的实际操作与缺陷判定展开,帮助工艺整合、设备与检测工程师快速建立从机台运行到缺陷归因的完整认知。压缩包共1个文件,为PPT演示文稿,大小约2.05MB,页面式结构便于按主题分节讲解与随堂演示。已有416人学习下载,可作为新员工上岗培训或产线内部分享的参考材料。内容覆盖21xx系列检测平台的能力概览、晶圆检查任务的入队与运行流程、检查中止的时机判断,以及缺陷监控对良率提升的统计意义;重点部分以图文对照方式逐条讲解十九类缺陷,包括假缺陷、未知缺陷、表面颗粒与膜内颗粒、划痕、色差、掩蔽与桥连、环状与葡萄状缺陷、残留物、图案异常、凹陷与COP、剥落、盲孔、金属图案损伤、W残留、底层图案失败、硅化物异常及晶粒等,并给出对应的工艺成因线索与处理方向,便于读者对照实际缺陷图谱完成分类与复查。
1. 20 页缺陷图谱,比操作手册更值得先啃的那部分
绝大多数人拿到一份晶圆缺陷检测的培训文档资料,第一反应是翻到“怎么跑片”那几页,把按钮顺序背下来,觉得能独立开机就算入门了。真正卡人的环节在出片之后:屏幕上出现一屏花花绿绿的缺陷图,同一个白点,有人标颗粒、有人标残留、有人直接判假缺陷,三种标法对应三条完全不同的工艺排查方向,标错一次,工艺端可能白忙一周。这份 20 页的 PPT 培训资料,价值恰好落在后半段,它把 19 类缺陷代码连同典型形貌图摆在一起,把“看到什么形状、落在什么位置、归到哪个工艺模块”这条链路固化下来。适合刚接手缺陷 review 的工艺工程师、设备操作员,也适合需要看懂 defect map 做良率分析的人。
2. 21xx 平台的能力边界与跑片链路:四个必须盯住的环节
先明确一件事:这套培训资料里,平台被称作 21xx 系列(资料内部代号),属于明场光学检测设备,核心工作方式是用相邻 die 做图像比对,把和邻居长得不一样的地方挑出来。这个原理决定了后面所有操作逻辑——它挑的是“差异”,不是“缺陷”。理解不了这句话,后面所有的误报、假缺陷、阈值调整都会变成玄学。
2.1 灵敏度、吞吐与误报:三个指标只能取两个
检测配方(recipe)里最容易被新人乱动的,是灵敏度和阈值这一组参数。像素尺寸越小,能分辨的物理尺寸越小,可检缺陷的尺寸门槛大致落在 2 到 3 个像素的量级;但像素一小,扫描同样一片晶圆需要的时间就成倍上升,吞吐直接掉下来。同时,灵敏度一提高,工艺本身的正常波动、膜厚微小差异、甚至图形边缘的粗糙度都会被当成缺陷抓出来,review 工作量暴涨。
常见做法是分两步定基线:先用一片已知状态的黄金片(golden wafer)跑一遍,把阈值压到“该抓的都能抓到”的程度,记下缺陷总数;再用几片正常量产片跑同样的配方,看总数是否稳定在同一个数量级。如果正常片跑出来数量波动超过三成,说明阈值设得太紧,抓的是噪声。
| 参数 | 作用 | 调大后的后果 | 调小后的后果 | 建议起点 |
|---|---|---|---|---|
| 像素尺寸 / 光学模式 | 决定可检最小尺寸与扫描时间 | 扫描快、小缺陷漏检 | 灵敏度高、吞吐下降 | 按层位关键尺寸选,关键层用小像素 |
| 检测阈值 | 判定“差异”是否算缺陷的门限 | 缺陷数少、易漏 | 缺陷数暴涨、误报多 | 黄金片校准后再上量 |
| Care area | 限定只检测关键区域 | 漏检边缘与划片道 | 全片扫、数据量过大 | 按设计规则圈关键图形区 |
| 采样比例 | 抽检部分 die 而非全片 | 覆盖不足 | 时间成本高 | 监控片全检,量产品抽检 |
| 缺陷过滤 / binning | 按尺寸、形状预分类 | 可能过滤掉真缺陷 | review 队列过长 | 只过滤明确已知的噪声类 |
这张表里最值得反复看的是 care area。它很容易设错:圈大了,划片道、边缘的膜残留全部进队列,review 的人被淹没;圈小了,关键图形区边角漏掉,真正的桥连(bridge)跑掉,那才是要命的杀手缺陷。我一般会先把 care area 叠加在 die layout 图上核一遍,确认关键层的关键图形全部落在框内,再存配方。
2.2 Run Overview:从入队到出片的完整链路
培训资料里“跑一片晶圆”这件事被拆成了几个页面,实际现场的操作链是下面这样,顺序不能乱:
- 建 lot、选片,确认片号与批次对应关系,别拿错监控片。
- 上片,读 FOUP 与片号,机台自动读 ID 失败时手动补录,这一步出错后面所有数据都对不上片。
- 对准(alignment),用对准标记建立坐标系,对准残差超标必须重做,不能凑合往下走。
- 调用或新建 recipe,确认层位、die 布局、care area、阈值四项与本批一致。
- 加入检测队列(inspection queue),排队执行,多片时注意队列顺序与优先级。
- 扫描出片,得到 defect map 与缺陷列表。
- 进 review,用宏观(macro)看分布、微观(micro)看形貌,逐条定代码。
- 导出数据、分类汇总,交工艺端做后续分析。
这张流程里第 3 步和第 4 步是翻车高发区。对准残差偏大时,缺陷坐标会整体偏移几十微米,review 阶段按坐标跳过去,看到的是一片干净图形,人会以为机台漏报;实际是坐标系偏了,缺陷就在旁边一两个 die 的位置。recipe 调错更常见——同一台机台跑不同层,配方名字很像,选错了阈值和 care area 全不对,出来的数据看着有模有样,其实完全不能用。
2.3 停止检查的时机判断与现场处置
资料里专门留了一页讲“Stopping the Inspection”,这一页新人往往一扫而过,实际它是现场最需要判断力的地方。触发停止的典型情形有四种:机台报警(真空、气路、光源异常)、对准失败连续发生、缺陷数在扫描过程中突然爆量、defect map 出现整片的条纹或同心圆——最后这种通常不是晶圆问题,是载台或扫描系统的问题,继续跑只会产出一堆垃圾数据。
停止方式要分清暂停和终止。暂停(pause)保留当前扫描进度与已采集数据,处理完异常可以接着跑;终止(abort)直接结束任务,未落盘的数据可能丢掉。我的习惯是,只要不是机台级故障,先走暂停,把当前片的数据保存下来再决定要不要终止。这一条是拿教训换来的:早期一次光源异常,直接终止,前面扫了大半片的数据全部作废,同批的对比基线断了,只能整批重跑,几个小时就这么没了。
停机之后还有一步不能省——记录。停机原因、发生时刻、当前片号、已扫描比例、是否保存原始数据,这几项写进交接记录。缺陷检测的数据是连续的,中间断一段又没有记录,后面做趋势分析时这段曲线就是个黑匣子,谁也解释不清那个坑是怎么来的。
3. 19 类缺陷代码拆解:每一条都对应一个工艺模块
资料后半段是整套文档里最硬的部分,19 类缺陷代码,配典型图。这部分不能死背,得按“这类缺陷是谁造成的”来分组记,分成表面污染类、图形转移类、膜层与填充类、晶圆本体类四组,记忆负担立刻降下来,判读时的思路也会清楚很多。
3.1 先分清假缺陷、未知缺陷与真缺陷
19 类里的前两类其实是定性标签,不是物理缺陷。假缺陷(false)指 review 时用检测数据回看,什么都没找到——可能是前一次检测的残留数据、坐标系偏移、或者机台把噪声当成了候选。未知缺陷(unknown)是确实看到了东西,但现有代码表里没有合适的归类。
这两类的比例是配方质量的温度计。假缺陷占比高,说明阈值偏松或者比对基线漂移;未知缺陷堆积,说明代码表该更新了,或者判读的人对形貌不熟。现场常见的坏习惯是“就近归类”——看着像颗粒就填颗粒,看着像残留就填残留,把 unknown 硬塞进某个已有类别。这么做的直接后果是 Pareto 图失真,工艺端拿着错误的分布去查设备,方向从一开始就偏了。
我的做法是:unknown 允许存在,但每周统计一次占比,超过阈值就把那批缺陷图拉出来集体过一遍,能归类的补进代码表,不能归类的单独建一个观察项。宁可留着一个诚实的 unknown,也不要造一个假的颗粒。
3.2 颗粒、划痕、残留、色差:清洗与传输链路的锅
表面颗粒(fall on particle)和膜内颗粒(in film particle)最容易混。判据在 review 时的调焦:颗粒浮在图形表面,边缘清晰、有立体感、常带阴影;颗粒嵌在膜里(poly、HDP、金属这类膜层),边缘发虚、和周围膜面过渡平缓,有时还能看到膜层包覆的痕迹。这两类的处置方向完全不同,表面颗粒查清洗、传输、FOUP 洁净度;膜内颗粒往前追沉积工序的颗粒源。标错一个,工艺端可能去查一条根本不相关的线。
划痕(scratch)的特征是方向性强、长度长、常伴生颗粒。资料里点明来源是机械手、工装部件或人为操作,所以判读时先看方向是否与传输路径一致、是否集中在片边缘、是否呈平行多条。人为划痕通常短而杂乱,机台造成的往往规整且重复出现在同一位置。
残留(residue)多发生在湿法清洗之后,形貌是不规则片状、边缘模糊、常见于图形密集区或疏密交界处。色差(discolor)是颜色差异,多数情况是膜厚微小不均或材料本身差异,一般不构成杀手,但它常常是膜厚异常的前兆,值得记录趋势。
这四类放在一组,是因为它们的共同排查入口都在“片子进来之前干不干净、传得干不干净”。我一般会先看缺陷是否集中在片的某个象限或某条半径上,集中分布基本就能锁定是传输或清洗工位的问题。
3.3 掩蔽、桥连、盲孔、剥落、W 残留:图形转移与填充的锅
掩蔽(masking)指该被刻蚀掉的地方没蚀刻干净,poly、SiN、spacer、金属层都可能出现。它的危险等级取决于形态:孤立的残留块是隐患,如果残留跨接了两条以上的线,那就是桥连(bridge),属于杀手缺陷,直接短路,必须立即反馈。
环状缺陷(ring like)通常和光刻相关,典型来源是抗反射层(ARC)甩胶时的溅射,形貌是同心环或弧形带,位置常与片中心和旋转半径相关。葡萄状缺陷(grape like)同样指向光刻的工艺单元,形貌是一簇簇凸起颗粒聚集,像一串葡萄,这类不要按普通颗粒处理,方向错了查不到根因。
盲孔(blind)指接触孔或通孔没有打开,review 时看到孔底有膜残留、孔径偏小或完全封闭。这类缺陷在电性上表现为开路,属于高优先级。剥落(peeling)指图形移位或缺失,钨塞(W plug)剥落是典型代表,且常出现在晶圆边缘——边缘的应力、膜层附着和 CMP 均匀性都更差,看到边缘一圈规律性剥落,先查 CMP 和膜层应力,别急着怀疑光刻。
W 残留(W residue)的来源资料里写得很直接:氧化层损失,或者 CMP 本身。正常区域和异常区域对比着看,残留通常表现为局部多出一层金属光泽的薄层,边界和 CMP 的图形边界吻合。
3.4 图案异常、凹陷、晶粒、硅化物:光刻焦点与晶圆本体
图案异常(pattern abnormal)是个筐,里面装着粗糙度(roughness)、失焦(defocus)、图形偏移(pattern shift)。粗糙度表现为线条边缘毛刺、侧壁不平整;失焦表现为整片或局部线条变宽变窄、对比度下降;图形偏移则是图形相对下层的位置整体错位。这三者都指向曝光环节,但排查方向不同:粗糙度查胶厚与显影,失焦查焦面与平坦度,偏移查对准与载台。
凹陷(concave)包含三类:COP(晶体定向坑)、氧化层损失、以及各种坑洞。COP 属于晶圆本体缺陷,形貌是规则的晶体学形状凹坑,和工艺无关,遇到成批的 COP 要往硅片供应商方向追,而不是在线上找原因。氧化层损失则是工艺侧的,通常和清洗、刻蚀过度相关。
图案损坏(pattern damage)里金属层损伤和多晶硅断裂都算,资料特别提到多晶硅断裂常发生在高阻抗相关工艺段。晶粒(grain)指多晶硅或金属的晶粒异常,形貌是局部晶粒粗大或异常取向,通常与沉积温度、退火条件相关。硅化物异常(salicide abnormal)是硅化物形成不良,表现为该有硅化物的区域发黑、缺失或形貌不均,直接影响到接触电阻。
底层图形失败(under_pat)是相对概念——它指下层图形本身出了问题,但在当前层的检测里被发现。判读这类缺陷必须调出前层的检测记录对照,只看当前层的图很容易误判成本层工艺问题。
4. 把缺陷代码落成判定规则:一份可抄的决策表
代码表背下来不等于会判。现场真正的难点是:一条缺陷同时具备两三个特征时,该归哪一类。解决办法是把判读顺序固定下来,减少自由发挥的空间。
4.1 判定顺序:层位、位置、形貌、上下文
第一步看层位:这条缺陷出现在哪一层、哪道工序之后。同一张形貌图,出现在多晶硅层和出现在金属层,结论可能完全相反。第二步看位置:片中心还是边缘、die 内相对位置、是否跨 die 边界重复出现。第三步看形貌:调焦看立体感、看边缘清晰度、看颜色与周围图形的对比。第四步看上下文:同片分布是否有规律、和前一批同层数据比是否异常、defect map 上是随机散点还是成带成环。
这个顺序不能颠倒。先看形貌再想层位,很容易被形状带偏;先看上下文再定形貌,容易被“上一批也有”这种心理暗示误导。顺序固定下来还有个好处——不同人判同一批数据,结论的一致性会明显提升。
4.2 决策表怎么写
把下面的表打印出来贴在 review 工位旁边,比翻 PPT 快得多。判据列只写最关键的区分点,不要写长篇描述。
| 缺陷代码 | 首要判据 | 次要判据 | 最易误判为 | 优先级 |
|---|---|---|---|---|
| False | 回看无实体 | 坐标偏移、与上批重复 | 微小颗粒 | 低 |
| Unknown | 有实体、无匹配代码 | 形貌罕见、位置异常 | 强行归入颗粒 | 中 |
| Fall on particle | 表面、边缘清晰、有阴影 | 随机分布、伴划痕 | 膜内颗粒 | 中 |
| In film particle | 嵌于膜内、边缘发虚 | 与膜层工序对应 | 表面颗粒 | 中高 |
| Scratch | 方向性强、长度长 | 平行多条、伴颗粒 | 残留 | 中 |
| Masking / Bridge | 应蚀刻未蚀刻 | 跨两条线以上为桥连 | 残留 | 高 |
| Blind | 孔未开、孔底有膜 | CT / Via 层 | 凹陷 | 高 |
| Peeling | 图形缺失或移位 | 集中于片边缘 | 图案损坏 | 高 |
| W residue | 局部多出金属薄层 | 与 CMP 边界吻合 | 色差 | 中高 |
| Pattern abnormal | 粗糙 / 失焦 / 偏移 | 整片或局部规律 | 颗粒 | 中 |
| Concave / COP | 规则凹坑、晶体学形状 | 与工艺无关、成批出现 | 划痕 | 中 |
这张表里,“优先级”这一列是现场调度用的。判出高优先级缺陷,不要等整批 review 完,立刻把图和坐标发给工艺端,尤其是桥连和盲孔——这两类缺陷如果在同片多处出现,基本可以判定这道工序出了系统性问题,继续等数据只会扩大损失。
4.3 复核抽样与代码一致性
判读质量靠两件事保证:抽样复核和代码一致性检查。抽样比例按批次的重要性定,量产监控批抽一成到两成,异常批和新配方首批全检。复核不是重判一遍,而是抽出一部分已经定过代码的缺陷,让另一个人独立判一次,比对差异。
差异集中在哪几类,就针对哪几类做专项对齐。常见的高分歧类别是颗粒与残留、膜内颗粒与凹陷、图案异常与划痕。分歧的原因往往不是眼力,而是判据描述太模糊。把分歧案例做成图集,每条配一句判据,比开三次会有效。
另外要定期看代码分布本身。如果某个月某个代码的数量突然翻倍,先别急着找工艺原因,先确认是不是判读习惯变了——换了个人、换了班次、或者代码表刚更新过,都会造成这种跳变。
5. 避坑与排查:五条现场记录
这一节里的每一条都对应真实翻过的车,按现象、原因、解决的顺序写,能对号入座的就直接拿去用。
5.1 假缺陷占比突然升高,追了一周工艺
现象:某批监控片跑出来缺陷总数比历史均值高出三倍,review 后一大半判为假缺陷,工艺端按缺陷分布查了一周设备,什么都没查到。
原因:查到最后是配方里的比对基线漂移。机台换过光源模块后没有重做黄金片校准,比对阈值仍然按旧基线设置,正常图形波动被大量误抓。另外 care area 在配方复制时被改动了边缘范围,把划片道的膜残留也圈了进去。
解决:建立“光源或光学模块动过必须重跑基线”的硬规则,在配方变更记录里单列一项。假缺陷率设一个上限,超过就停线做基线校验,不要带着漂移的配方继续跑量。
5.2 按坐标去 review,什么都看不到
现象:缺陷列表里明明有坐标,跳到对应位置是一片干净图形,连续几条都是这样。
原因:对准残差超标没有重做,坐标系整体偏移。偏移量小时,review 视野内还能碰运气看到;偏移量大时,缺陷实际落在隔壁一两个 die 的位置,按原坐标找必然扑空。
解决:对准完成后先看残差数值,超过设定门限强制重做,不要用“上次也这样”说服自己。review 时如果连续两条按坐标找不到,先停下来反查对准,而不是继续往下翻。
5.3 停止检查后数据没了,趋势断了一截
现象:机台报警后操作员直接终止任务,故障排除后重新跑片,结果发现前一片未扫完的数据没有保存,同批的趋势曲线中间出现一个无法解释的空洞。
原因:终止与暂停的语义没分清,终止会丢弃未落盘的扫描数据。
解决:非机台级故障一律先暂停、保存数据、记录已扫描比例,再决定是否终止。交接记录里必须有停机原因和数据处理方式,缺一项不算交接完成。
5.4 Unknown 越堆越多,Pareto 图失真
现象:某条产线的未知缺陷占比从个位数涨到两成,工艺端拿到的分布图里“其他”成了最大项,分析做不下去。
原因:新工艺导入后出现了几种新形貌,代码表没更新,判读人员为图省事就近归类,一部分塞进颗粒、一部分塞进残留,剩下的留在 unknown。
解决:每周统计一次 unknown 占比,超阈值就组织一次集中判读,能归类的补充代码并附图,不能归类的单独立观察项。同时把“就近归类”明确列为判读错误,纳入复核检查项。
5.5 Care area 设错,关键区域漏检
现象:电性测试发现某区域开路,回溯检测数据,该区域在 defect map 上干干净净。
原因:recipe 复制自另一层,care area 沿用了上一层的框选范围,本层的关键图形区有一部分落在框外,从来没被检测过。
解决:新建或复制配方后,必须把 care area 叠加到本层 die 布局图上逐一核对,重点看图形密集区和疏密交界处。配方上线前做一次已知缺陷片的验证跑片,确认该抓的能抓到,这一步不能省。
6. 用缺陷 Pareto 反推工艺:周报里该放的三张图和一段代码
缺陷数据如果只停留在“这批有多少条”,价值有限。真正能推动工艺动作的,是把分布、位置、时间三个维度叠起来看。我一般会在周报里放三张图:按代码排序的 Pareto 图、按晶圆位置的分布热力图、按批次的时间趋势图。三张图放一起,很多问题不用解释,看图的人自己就能得出结论。
Pareto 的算法不复杂,但要处理两个细节:一是 unknown 和 false 要不要计入,二是同一缺陷在不同层位的可比性。我的处理是 false 直接剔除,unknown 保留但单独着色,跨层对比时按层分组统计,不做全局合并。
import pandas as pd import numpy as np def pareto_by_layer(df, layer, top_n=10, drop_false=True): """ df: 至少包含 ['layer', 'defect_code', 'wafer_id', 'x', 'y'] 五列 layer: 要统计的层位,如 'poly1' top_n: 只保留前 N 类,其余合并为 OTHER,避免长尾把图压扁 drop_false: 是否剔除假缺陷,默认剔除 """ sub = df[df['layer'] == layer].copy() if drop_false: sub = sub[sub['defect_code'] != 'False'] # 按代码计数并降序排列,这是 Pareto 的基础 counts = sub['defect_code'].value_counts() # 长尾合并:前 top_n 类保留原名,其余归为 OTHER 且单独标记 head = counts.head(top_n) tail_sum = counts.iloc[top_n:].sum() if tail_sum > 0: head['OTHER'] = tail_sum result = head.reset_index() result.columns = ['defect_code', 'count'] result['ratio'] = result['count'] / result['count'].sum() result['cum_ratio'] = result['ratio'].cumsum() # 累积占比,用于找 80% 分界 # 标记是否落入前 80% 累积区间,方便在图上区分重点 result['is_key'] = result['cum_ratio'] <= 0.8 return result def wafer_zone_summary(df, layer, rings=3): """ 把缺陷按半径分环统计,用于判断是否集中在片边缘 rings: 分环数量,3 表示内 / 中 / 外三环 """ sub = df[(df['layer'] == layer) & (df['defect_code'] != 'False')].copy() # 假设坐标已归一化到 [-1, 1],中心为原点 sub['radius'] = np.sqrt(sub['x'] ** 2 + sub['y'] ** 2) sub['zone'] = pd.cut(sub['radius'], bins=rings, labels=[f'ring_{i+1}' for i in range(rings)]) return sub.groupby(['zone', 'defect_code']).size().unstack(fill_value=0)pareto_by_layer的关键参数是top_n和drop_false。top_n设得太大,图上一堆长尾类别,看不出重点;设得太小,容易把真正的次要问题合并进 OTHER 里丢掉。实际用下来 8 到 12 之间比较合适,具体看代码表长度。drop_false默认剔除,是因为假缺陷反映的是检测系统状态而不是工艺状态,混进来会干扰判断,但它要单独统计,作为配方健康度的指标。
wafer_zone_summary里的rings决定分环粒度。三环够用,能区分中心和边缘;要看更细的径向规律,可以加到五环。这个函数的输出直接对应热力图,如果某一环的某类缺陷明显突出,基本就能锁定是哪个工位的问题——边缘突出查传输和 CMP,中心突出查旋涂和曝光。
有一点要提醒:Pareto 图只能告诉你哪类多,不能告诉你为什么多。配合位置分布看,价值翻倍。我见过一次,某个缺陷代码数量翻了三倍,单看 Pareto 像是工艺恶化,叠上位置图才发现全部集中在片边缘一圈,最后查出来是传输环节的机械手沾污,跟工艺配方一点关系没有。
从那以后我每次做缺陷分析,都强制自己先把位置分布画出来再看代码排序,哪怕时间再紧也不跳过这一步。顺序反过来,很容易在错误的方向上写出一份看起来很专业的报告。希望帮到你。
本文还有配套的精品资源,点击获取