首页 / 资讯中心 / 文章详情

晶圆缺陷检测:21xx平台缺陷图谱与代码判读实战

晶圆缺陷检测:21xx平台缺陷图谱与代码判读实战 ★ FEATURED ARTICLE
简介面向半导体晶圆制造与良率分析岗位的入门到进阶培训资料围绕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_n10, drop_falseTrue): 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, rings3): 把缺陷按半径分环统计用于判断是否集中在片边缘 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], binsrings, labels[fring_{i1} for i in range(rings)]) return sub.groupby([zone, defect_code]).size().unstack(fill_value0)pareto_by_layer的关键参数是top_n和drop_false。top_n设得太大图上一堆长尾类别看不出重点设得太小容易把真正的次要问题合并进 OTHER 里丢掉。实际用下来 8 到 12 之间比较合适具体看代码表长度。drop_false默认剔除是因为假缺陷反映的是检测系统状态而不是工艺状态混进来会干扰判断但它要单独统计作为配方健康度的指标。wafer_zone_summary里的rings决定分环粒度。三环够用能区分中心和边缘要看更细的径向规律可以加到五环。这个函数的输出直接对应热力图如果某一环的某类缺陷明显突出基本就能锁定是哪个工位的问题——边缘突出查传输和 CMP中心突出查旋涂和曝光。有一点要提醒Pareto 图只能告诉你哪类多不能告诉你为什么多。配合位置分布看价值翻倍。我见过一次某个缺陷代码数量翻了三倍单看 Pareto 像是工艺恶化叠上位置图才发现全部集中在片边缘一圈最后查出来是传输环节的机械手沾污跟工艺配方一点关系没有。从那以后我每次做缺陷分析都强制自己先把位置分布画出来再看代码排序哪怕时间再紧也不跳过这一步。顺序反过来很容易在错误的方向上写出一份看起来很专业的报告。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站