4. DRC规则编写基础:几何规则、电气规则与密度规则

DRC(Design Rule Check)规则文件是版图验证的核心。Calibre DRC 使用标准规则语言(SVRF 或 Tcl)描述版图必须满足的物理约束。本章聚焦三类最基础的规则类型:几何规则、电气规则和密度规则,并给出对应的编写范例与调试要点。

4.1 几何规则:宽度、间距与包围

几何规则是 DRC 中最基础、最常用的规则,直接控制版图图形的尺寸和相对位置。主要包括以下三类:

规则类型 描述 典型检查对象 违反后果
宽度 (Width) 检查同一层上连续图形的最小/最大宽度 金属线宽、多晶硅栅宽 短路、断路、电迁移
间距 (Spacing) 检查同一层或不同层之间图形的最小间距 金属-金属间距、阱-阱间距 桥接、漏电、闩锁效应
包围 (Enclosure) 检查一层图形对另一层图形的覆盖余量 接触孔/通孔被金属包围、有源区被多晶包围 接触不良、工艺偏差失效

4.1.1 宽度规则编写示例

宽度规则通常使用 WIDTH 语句。以下示例检查 M1 层最小宽度为 0.18 µm:

// 规则:M1 最小宽度 0.18 µm
M1_WIDTH {
    @ M1 minimum width must be >= 0.18 µm
    WIDTH M1 < 0.18
}

4.1.2 间距规则编写示例

间距规则使用 SPACE 语句。以下示例检查同一 M1 层图形之间的最小间距:

// 规则:M1 最小间距 0.20 µm
M1_SPACE {
    @ M1 minimum spacing must be >= 0.20 µm
    SPACE M1 < 0.20
}

4.1.3 包围规则编写示例

包围规则使用 ENC 语句。以下示例检查 V1 通孔被 M2 包围的最小余量:

// 规则:V1 被 M2 包围至少 0.05 µm
V1_M2_ENC {
    @ V1 enclosure by M2 must be >= 0.05 µm
    ENC V1 M2 < 0.05
}
调试提示:几何规则违反通常表现为“边缘标记”。在 Calibre RVE 中,点击违反结果会自动高亮对应的图形边缘。检查宽度违反时,注意区分“线宽不足”与“图形缺口”;检查间距违反时,注意“同层间距”与“异层间距”的规则差异。
几何规则三类检查示意图 宽度检查 WIDTH < 0.18 线宽不足 检查连续图形最小宽度 间距检查 间距 SPACE < 0.20 检查图形间最小距离 包围检查 余量 ENC < 0.05 检查覆盖余量 图例: 违反标记 测量方向 被检查图形

4.2 电气规则

电气规则用于检查版图在电学特性上是否满足设计要求,通常涉及电流密度、电压降、寄生参数等。与几何规则不同,电气规则往往需要结合电路网表或工艺参数进行验证。

规则类型 检查内容 典型语句 应用场景
电流密度 (Current Density) 检查金属线宽是否满足最大电流承载 WIDTH + DERIVED 电源/地线、大电流信号
电压降 (IR Drop) 检查电源网络上的电压损失 RESISTANCE + VOLTAGE 芯片供电网络
天线效应 (Antenna) 检查栅氧化层在制造过程中是否被破坏 ANTENNA 长金属线连接栅极

4.2.1 天线效应规则示例

天线效应规则检查金属层面积与栅面积的比例是否超过阈值:

// 天线效应规则:M1 面积 / 栅面积 <= 1000
ANTENNA_M1 {
    @ M1 antenna ratio must be <= 1000
    ANTENNA GATE M1 < 1000
}
注意:电气规则通常需要额外的工艺参数文件(如 .rules 或 .tech 文件)提供电阻率、电流密度阈值等数据。在调试电气规则违反时,除了检查版图图形,还需要确认工艺参数是否正确加载。

4.3 密度规则

密度规则用于确保版图各层的图形密度在工艺允许范围内,避免化学机械抛光(CMP)等工艺步骤中出现不平坦或过度腐蚀问题。

规则类型 检查内容 典型语句 窗口大小
最小密度 (Min Density) 检查窗口内图形面积占比是否低于下限 DENSITY < value 通常 100 µm × 100 µm
最大密度 (Max Density) 检查窗口内图形面积占比是否超过上限 DENSITY > value 通常 100 µm × 100 µm
梯度密度 (Density Gradient) 检查相邻窗口之间的密度变化率 DENSITY_GRADIENT 滑动窗口

4.3.1 密度规则编写示例

// M1 最小密度规则:100 µm × 100 µm 窗口内密度 >= 30%
M1_MIN_DENSITY {
    @ M1 minimum density must be >= 30% in 100x100 window
    DENSITY M1 < 0.30 [100 100]
}

// M1 最大密度规则:100 µm × 100 µm 窗口内密度 <= 70%
M1_MAX_DENSITY {
    @ M1 maximum density must be <= 70% in 100x100 window
    DENSITY M1 > 0.70 [100 100]
}
密度规则调试要点:
  • 密度违反通常表现为“热点区域”,在版图中呈现为大片空白或密集图形区域。
  • 最小密度违反:需要在空白区域添加虚拟填充(Dummy Fill)图形。
  • 最大密度违反:需要分散或移除部分图形,或使用开槽(Slotting)技术。
  • 梯度密度违反:需要均匀化图形分布,避免密度突变。
密度规则窗口扫描与违反示例 版图区域 密集 稀疏 窗口 1 (密度高) 窗口 2 (密度正常) 窗口 3 (密度低) 密度规则违反类型 • 窗口 1:密度 > 70% → 最大密度违反 需要分散图形或开槽 • 窗口 3:密度 < 30% → 最小密度违反 需要添加虚拟填充 • 窗口 1→2→3 密度突变 → 梯度密度违反 需要均匀化图形分布 窗口大小:100 µm × 100 µm(可配置)

4.4 规则编写通用规范

无论编写哪种类型的 DRC 规则,都应遵循以下规范,以确保规则文件的可读性、可维护性和执行效率:

  1. 规则命名:使用有意义的名称,如 M1_MIN_WIDTH、CONT_VIA_ENC,便于在 RVE 中快速定位。
  2. 注释:每个规则前添加 @ 注释,描述规则目的和阈值。
  3. 层次化:将规则按功能分组(如几何规则、电气规则、密度规则),使用 // 或 /* */ 添加章节分隔。
  4. 变量化:将阈值定义为变量,便于工艺节点迁移时统一修改。
// 变量定义示例
M1_MIN_WIDTH_VAL = 0.18
M1_MIN_SPACE_VAL = 0.20
V1_M2_ENC_VAL = 0.05

// 使用变量编写规则
M1_WIDTH {
    @ M1 minimum width must be >= M1_MIN_WIDTH_VAL
    WIDTH M1 < M1_MIN_WIDTH_VAL
}

M1_SPACE {
    @ M1 minimum spacing must be >= M1_MIN_SPACE_VAL
    SPACE M1 < M1_MIN_SPACE_VAL
}

V1_M2_ENC {
    @ V1 enclosure by M2 must be >= V1_M2_ENC_VAL
    ENC V1 M2 < V1_M2_ENC_VAL
}
进阶技巧:在调试复杂规则时,可以使用 DRC RESULTS DATABASE 语句将违反结果输出为 GDS 或 ASCII 文件,便于在版图编辑器中叠加显示。同时,善用 Calibre 的 DRC CHECK MAP 功能,可以快速查看所有规则的检查状态和违反数量。