2. DRC规则基础:常见物理设计规则、规则单位与坐标系
物理设计规则是集成电路版图验证的“法律条文”,它们定义了制造工艺对几何图形的约束条件。DRC脚本的核心任务就是将人类语言描述的规则转化为计算机可执行的几何检查。本章将系统梳理最常见的物理设计规则类型、规则单位体系以及版图坐标系,为后续脚本开发奠定基础。
2.1 常见物理设计规则分类
根据检查对象和约束性质,物理设计规则通常分为以下五大类。每一类规则都对应一组特定的DRC检查命令。
| 规则类别 | 典型规则名称 | 检查内容 | DRC检查类型 |
|---|---|---|---|
| 宽度规则 | 最小宽度 (Min Width) | 导线、有源区、多晶硅等图形的最小横向尺寸 | WIDTH |
| 间距规则 | 最小间距 (Min Space) | 同层或不同层图形之间的最小距离 | SPACE / ENCLOSURE |
| 包围规则 | 最小包围 (Min Enclosure) | 一层图形对另一层图形的覆盖余量(如接触孔被金属包围) | ENCLOSURE / EXTENSION |
| 面积规则 | 最小面积 (Min Area) | 孤立图形或开窗区域的最小面积 | AREA |
| 密度规则 | 密度范围 (Density Range) | 指定窗口内图形面积占比的上限和下限 | DENSITY |
提示: 在DRC脚本中,宽度和间距是最基础、出现频率最高的两类规则。初学者应优先掌握WIDTH和SPACE检查的语法与参数配置。
2.2 核心规则详解
2.2.1 最小宽度规则
最小宽度规则确保版图中每一段连续导线的宽度不小于工艺允许的最小值。宽度不足会导致导线电阻过大、电迁移失效或光刻断线。
- 检查对象: 单层多边形(如M1、POLY、ACTIVE)。
- 典型值: 先进工艺中M1最小宽度约为0.1μm~0.5μm。
- 脚本示例:
// 检查M1层最小宽度为0.15um
WIDTH M1 < 0.15 {
@ 错误:M1宽度小于0.15um
report("M1_MIN_WIDTH_ERR")
}
2.2.2 最小间距规则
最小间距规则约束同一层或不同层图形之间的边缘距离。间距不足可能引起短路、漏电或寄生耦合。
- 同层间距: 同一层两个独立图形之间的最小距离。
- 异层间距: 不同层图形之间的最小距离(如M1与M2之间)。
- 脚本示例:
// 检查M1层图形之间的最小间距为0.2um
SPACE M1 < 0.2 {
@ 错误:M1间距小于0.2um
report("M1_MIN_SPACE_ERR")
}
2.2.3 最小包围规则
最小包围规则用于检查一层图形对另一层图形的覆盖余量。最常见的场景是接触孔(CONT)或通孔(VIA)被金属层包围的余量。
- 检查方向: 从孔边缘到包围层边缘的距离。
- 典型值: 金属包围接触孔的最小余量通常为0.1μm~0.3μm。
- 脚本示例:
// 检查M1对CONT的包围余量不小于0.12um
ENCLOSURE M1 CONT < 0.12 {
@ 错误:M1包围CONT余量不足
report("M1_CONT_ENCLOSURE_ERR")
}
注意: 包围规则有“内部包围”和“外部包围”之分。内部包围指孔在金属内部,外部包围指金属在孔外部。大多数DRC工具默认检查外部包围,但需确认具体语法。
2.3 规则单位与坐标系
DRC脚本中的数值必须与版图数据库的单位体系严格对齐。理解单位换算和坐标系是避免“差之毫厘,谬以千里”的关键。
2.3.1 单位体系
版图数据通常采用数据库单位(Database Unit, DBU)作为最小存储单位,而DRC规则使用微米(μm)或纳米(nm)作为用户单位。两者之间的换算关系由工艺库定义。
| 单位类型 | 说明 | 常见换算 |
|---|---|---|
| 数据库单位 (DBU) | 版图文件内部存储的最小网格单位 | 1 DBU = 0.001μm ~ 0.005μm |
| 微米 (μm) | DRC规则书写时最常用的用户单位 | 1 μm = 1000 nm |
| 纳米 (nm) | 先进工艺中规则书写的常用单位 | 1 nm = 0.001 μm |
| 分辨率 | 版图网格的精度,通常等于1 DBU | 典型值:0.001μm (1nm) |
关键换算公式:
规则值(μm) = 规则值(DBU) × DBU精度(μm/DBU)
例如:若DBU精度为0.001μm,则规则值0.15μm = 150 DBU。
规则值(μm) = 规则值(DBU) × DBU精度(μm/DBU)
例如:若DBU精度为0.001μm,则规则值0.15μm = 150 DBU。
2.3.2 版图坐标系
版图坐标系采用笛卡尔右手坐标系,原点通常位于芯片左下角。所有几何图形的顶点坐标均以数据库单位(DBU)存储。
- X轴: 水平方向,向右为正。
- Y轴: 垂直方向,向上为正。
- 坐标原点: (0, 0) 位于版图左下角。
- 坐标值: 均为整数(DBU单位),不允许小数。
下图展示了版图坐标系与规则检查的关系:
2.4 规则单位换算实战
在DRC脚本开发中,经常需要在不同单位之间进行换算。以下是一个典型的换算流程:
- 获取工艺DBU精度: 从工艺库文档或LEF文件中读取,例如
DATABASE MICRONS 1000表示1μm = 1000 DBU。 - 将规则值转换为DBU: 规则值(μm) × DBU精度 = DBU值。例如0.15μm × 1000 = 150 DBU。
- 在脚本中直接使用DBU或微米: 大多数DRC工具支持直接写微米值,但底层仍会转换为DBU进行运算。
- 验证坐标对齐: 确保版图网格分辨率与DBU精度一致,避免舍入误差。
实战案例:
某工艺库定义:1μm = 2000 DBU。规则要求M1最小宽度为0.18μm。
换算:0.18 × 2000 = 360 DBU。
脚本写法:
某工艺库定义:1μm = 2000 DBU。规则要求M1最小宽度为0.18μm。
换算:0.18 × 2000 = 360 DBU。
脚本写法:
WIDTH M1 < 0.18 或 WIDTH M1 < 360(取决于工具配置)。
2.5 规则检查的几何基础
DRC工具执行规则检查时,本质上是进行几何运算。理解这些几何操作有助于编写高效的脚本。
| 几何操作 | 说明 | 对应规则 |
|---|---|---|
| 边缘检测 | 提取多边形所有边,计算边到边的距离 | 宽度、间距 |
| 布尔运算 | AND/OR/NOT/XOR操作,用于生成检查层 | 包围、密度 |
| 尺寸测量 | 计算图形的最小/最大尺寸、面积、周长 | 宽度、面积 |
| 邻近搜索 | 在指定半径内查找相邻图形 | 间距、密度 |
下图展示了DRC规则检查的几何运算流程:
2.6 本章小结
- 物理设计规则分为宽度、间距、包围、面积、密度五大类,每类对应特定的DRC检查命令。
- 最小宽度和最小间距是最基础的规则,初学者应优先掌握。
- 规则单位体系以DBU为底层存储单位,用户单位通常为μm或nm,换算关系由工艺库定义。
- 版图坐标系采用笛卡尔右手系,原点在左下角,所有坐标以整数DBU存储。
- DRC规则检查的本质是几何运算(边缘检测、布尔运算、尺寸测量、邻近搜索)与阈值比较。