第2章 · DRC基础概念
设计规则检查,圈里人都叫它 DRC。说白了,它就是给芯片版图做「体检」——看看你画的每一层图形有没有违反代工厂定下的物理规矩。我刚开始做后端那会儿,觉得 DRC 就是跑个脚本,后来被一颗 28nm 芯片的金属间距问题折腾了两周,才真正明白:DRC 不是走形式,它是流片前的最后一道防线。
2.1 DRC 的基本原理
DRC 的核心逻辑其实特别简单:把版图上的多边形和代工厂的规则表做比对。每个规则都对应一个几何约束,比如「两根金属线不能离太近」「有源区必须被多晶硅完全覆盖」等等。工具会逐层扫描,一旦发现违规,就给你标一个错误标记。
我记得第一次看 DRC 报告时,满屏的红色方块,心里直发毛。后来才摸清门道——DRC 检查分两步:第一步是「提取」,把版图数据转换成几何图形;第二步是「运算」,用布尔运算和距离测量来验证规则。你想想看,一个 7nm 芯片可能有上百条规则,工具要在几小时内跑完,背后全是高效的几何算法。
2.2 常见规则类型
代工厂的 DRC 规则少则几百条,多则上千条。但别慌,大部分规则都能归到下面几类。我按项目里遇到的频率排了个序:
| 规则类型 | 典型例子 | 为什么重要 |
|---|---|---|
| 最小宽度 | 金属线宽 ≥ 0.07μm | 太细的线会断,或者电阻过大 |
| 最小间距 | 同层金属间距 ≥ 0.08μm | 防止短路或漏电 |
| 包围/覆盖 | 接触孔被金属包围 ≥ 0.02μm | 确保连接可靠,不出现空洞 |
| 密度 | 金属密度 20% ~ 80% | 密度太低或太高会导致刻蚀不均匀 |
| 天线效应 | 栅极连接金属面积比 ≤ 400 | 避免等离子损伤栅氧 |
这里面,最小宽度和间距是 DRC 里最常见的错误来源。我经手的一个 12nm 项目,光金属间距就占了 DRC 总数的 60%。所以新手一定要把这两类规则刻在脑子里。
2.3 DRC Deck 的结构
DRC Deck 就是规则文件的「剧本」。它通常由代工厂提供,格式取决于工具(比如 Calibre、ICV、PVS)。但不管什么工具,Deck 的结构都大同小异。我拆解一个典型的 Calibre DRC Deck 给你看:
// ===== 1. 层定义 (LAYER) =====
LAYER M1 1001
LAYER V1 1101
LAYER M2 1002
// ===== 2. 派生层 (DERIVED) =====
M1_net = M1 AND NOT V1 // 去掉接触孔区域的金属
// ===== 3. 规则检查 (RULE) =====
// 最小宽度: M1 ≥ 0.07um
WIDTH M1_net < 0.07 "M1最小宽度违规"
// 最小间距: M1 到 M1 ≥ 0.08um
SPACE M1_net < 0.08 "M1间距违规"
// 包围检查: V1 被 M1 包围 ≥ 0.02um
ENC M1 V1 < 0.02 "V1包围不足"
// ===== 4. 输出控制 =====
OUTPUT "drc_results.gds" // 错误标记输出
你看,结构其实很清晰:层定义 → 逻辑运算 → 规则检查 → 结果输出。我个人习惯把 Deck 分成三块来读:输入层、中间层、检查层。这样即使有几百行规则,也不会看花眼。
这张图把 DRC 的三大块串起来了。我个人建议你把它当作「DRC 速查地图」——遇到问题先定位是原理没吃透,还是规则类型不熟,或者 Deck 读错了。方向对了,修复就快。
嗯,DRC 基础概念就聊到这儿。记住:规则是死的,版图是活的。多跑几次 DRC,多读几遍错误标记,你慢慢就会形成「规则直觉」。下一章我们聊聊 DRC 工具怎么上手,到时候拿实际案例拆解。