第2章 · DRC基础概念

设计规则检查,圈里人都叫它 DRC。说白了,它就是给芯片版图做「体检」——看看你画的每一层图形有没有违反代工厂定下的物理规矩。我刚开始做后端那会儿,觉得 DRC 就是跑个脚本,后来被一颗 28nm 芯片的金属间距问题折腾了两周,才真正明白:DRC 不是走形式,它是流片前的最后一道防线。

2.1 DRC 的基本原理

DRC 的核心逻辑其实特别简单:把版图上的多边形和代工厂的规则表做比对。每个规则都对应一个几何约束,比如「两根金属线不能离太近」「有源区必须被多晶硅完全覆盖」等等。工具会逐层扫描,一旦发现违规,就给你标一个错误标记。

我记得第一次看 DRC 报告时,满屏的红色方块,心里直发毛。后来才摸清门道——DRC 检查分两步:第一步是「提取」,把版图数据转换成几何图形;第二步是「运算」,用布尔运算和距离测量来验证规则。你想想看,一个 7nm 芯片可能有上百条规则,工具要在几小时内跑完,背后全是高效的几何算法。

💡 核心要点: DRC 不检查电路功能,只检查物理尺寸。它保证你的版图能被制造出来,但不保证它能正常工作——那是 LVS 和仿真的事。

2.2 常见规则类型

代工厂的 DRC 规则少则几百条,多则上千条。但别慌,大部分规则都能归到下面几类。我按项目里遇到的频率排了个序:

规则类型典型例子为什么重要
最小宽度金属线宽 ≥ 0.07μm太细的线会断,或者电阻过大
最小间距同层金属间距 ≥ 0.08μm防止短路或漏电
包围/覆盖接触孔被金属包围 ≥ 0.02μm确保连接可靠,不出现空洞
密度金属密度 20% ~ 80%密度太低或太高会导致刻蚀不均匀
天线效应栅极连接金属面积比 ≤ 400避免等离子损伤栅氧

这里面,最小宽度和间距是 DRC 里最常见的错误来源。我经手的一个 12nm 项目,光金属间距就占了 DRC 总数的 60%。所以新手一定要把这两类规则刻在脑子里。

🔧 避坑指南: 我曾经在 40nm 项目里忽略了一条「金属拐角最小间距」的规则,结果流片回来拐角处漏电严重。后来我养成了习惯——每次看 DRC 规则文件,先翻到「Corner & Notch」部分,那里面全是坑。

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 分成三块来读:输入层、中间层、检查层。这样即使有几百行规则,也不会看花眼。

⚠️ 注意: 同一个代工厂的不同工艺节点,Deck 的变量命名风格可能完全不同。比如 28nm 叫「M1_W1」,7nm 可能叫「M1_MIN_W」。千万别想当然,每次都要对照 rule manual 确认。
DRC 知识体系 · 核心结构 DRC 基本原理 几何比对 · 布尔运算 常见规则类型 宽度 · 间距 · 包围 · 密度 DRC Deck 结构 层定义 · 规则 · 输出 最小宽度 线宽不足 → 断路 最小间距 间距过小 → 短路 包围/覆盖 接触孔包围不足 密度/天线 工艺均匀性 层定义 (LAYER) GDS 层号映射 派生层 (DERIVED) 逻辑运算生成 规则检查 (RULE) WIDTH / SPACE / ENC 输出控制 错误标记 + 报告 🔍 三者关系:DRC 原理 → 规则类型 → Deck 实现,层层递进

这张图把 DRC 的三大块串起来了。我个人建议你把它当作「DRC 速查地图」——遇到问题先定位是原理没吃透,还是规则类型不熟,或者 Deck 读错了。方向对了,修复就快。

📌 我的习惯: 每次拿到新工艺的 DRC Deck,我会先搜「WIDTH」「SPACE」「ENC」这三个关键词,把数值列成一张小表。这样跑 DRC 之前心里就有数了,不会被几百条规则吓住。

嗯,DRC 基础概念就聊到这儿。记住:规则是死的,版图是活的。多跑几次 DRC,多读几遍错误标记,你慢慢就会形成「规则直觉」。下一章我们聊聊 DRC 工具怎么上手,到时候拿实际案例拆解。