3、缺陷分类与编码:标准缺陷分类体系(ADC)、手动分类技巧、编码规范与数据库管理
各位工程师,咱们今天聊聊缺陷分类与编码。说实话,这活儿看着不起眼,但做不好,后面所有分析都是空中楼阁。我见过太多团队,数据一塌糊涂,最后查来查去,发现是分类标准没统一。嗯,咱们今天就把这事儿掰扯清楚。
3.1 标准缺陷分类体系(ADC)
ADC,全称是 Automatic Defect Classification。说白了,就是让机器帮咱们把缺陷分好类。但机器不是万能的,它需要一套标准体系来支撑。
我个人习惯把ADC体系分成三个层级:
- 一级分类(大类):比如颗粒、划伤、污染、图案异常。这是最粗的粒度,一眼就能看出来。
- 二级分类(中类):比如颗粒再细分成「金属颗粒」和「有机颗粒」。这需要一点经验判断。
- 三级分类(细类):比如「金属颗粒」再细分成「铜颗粒」和「铝颗粒」。这通常需要结合成分分析。
我在项目中遇到过一个问题:ADC把一个大颗粒误判成了「污染」。为什么?因为颗粒表面有氧化层,光学特征变了。后来我们加了一个「表面粗糙度」的特征参数,准确率才提上来。
核心要点:ADC不是万能的。它的准确率取决于你喂给它的训练数据。数据脏,结果就脏。数据偏,结果就偏。
3.2 手动分类技巧
机器搞不定的,还得靠人。手动分类,说白了就是「用眼睛看,用脑子想」。但这里头有门道。
技巧一:先看轮廓,再看细节。
我建议你拿到一张缺陷图,先退一步看整体。是圆的?是长的?是散开的?轮廓决定了它大概率是什么类型。然后再放大看细节,比如边缘是否光滑、内部是否有纹理。
技巧二:对比参考图。
每个fab都应该有一套「缺陷图鉴」。我习惯把常见缺陷的典型图打印出来,贴在工位上。新工程师来了,先看图鉴,再上手。你想想看,连标准长什么样都不知道,怎么分得准?
技巧三:交叉验证。
一个人分,容易有偏见。我建议同一个lot,至少两个人独立分类。不一致的,拿出来讨论。我曾经因为一个「疑似划伤」的缺陷,跟同事争论了半小时。最后发现是清洗工艺留下的水痕。嗯,从那以后,我们建立了「争议缺陷会诊制度」。
避坑指南:我曾经犯过一个低级错误——把「静电击穿」分成了「颗粒」。为什么?因为击穿点周围有一圈溅射物,看起来像颗粒。后来我养成了一个习惯:凡是带「晕圈」的缺陷,先怀疑静电,再考虑其他。
3.3 编码规范
编码这事儿,看着简单,但坑最多。我见过最离谱的编码:有人用「A1」「B2」这种,结果半年后自己都忘了A1代表什么。
我推荐一套编码规则:
| 字段 | 位数 | 说明 | 示例 |
|---|---|---|---|
| 大类 | 2位字母 | PT=颗粒, SC=划伤, CT=污染 | PT |
| 中类 | 2位数字 | 01=金属, 02=有机, 03=未知 | 01 |
| 细类 | 2位数字 | 01=铜, 02=铝, 99=其他 | 01 |
| 置信度 | 1位字母 | H=高, M=中, L=低 | H |
举个例子:一个「高置信度的铜颗粒」,编码就是 PT-01-01-H。你看,一目了然。
注意:编码里不要用特殊符号,比如斜杠、反斜杠、冒号。这些符号在数据库里容易出问题。我吃过这个亏,一个批次的数据因为编码里带了「/」,导入数据库时全乱了。
3.4 数据库管理
数据存进去,不是终点。怎么查、怎么用,才是关键。
第一,建索引。
我建议按「批次号+晶圆号+缺陷ID」建主键。这样查一个缺陷,秒出。别小看这个,我见过有人全表扫描,查一次要五分钟。
第二,做版本控制。
缺陷分类标准会变。比如去年「小颗粒」是<0.5μm,今年改成<0.3μm。怎么办?我习惯在数据库里加一个「版本号」字段。每次改标准,旧数据不删,只是标记为旧版本。这样回溯分析时,不会乱。
第三,定期清洗。
数据库里总会有一些「孤儿数据」——比如缺陷坐标超出晶圆范围的。我建议每个月跑一次清洗脚本,把这些垃圾数据清理掉。不然时间长了,查询会越来越慢。
这里给一个简单的清洗脚本示例:
-- 清洗缺陷坐标超出晶圆范围的数据
DELETE FROM defect_table
WHERE x_coord < 0 OR x_coord > 300
OR y_coord < 0 OR y_coord > 300;
嗯,代码很简单,但很实用。我每次跑这个脚本前,都会先备份。你懂的,手滑是工程师的天敌。
总结一下:缺陷分类与编码,不是「分完就完」的事。它是一个闭环——分对了,编码规范了,数据库管理好了,后面的良率分析才有根。否则,你就是在沙子上盖楼。
好了,这一章就到这儿。下一章咱们聊聊「缺陷空间分布分析」,那是我个人觉得最有意思的部分。到时候见。