目录
[一、eqDRC 核心价值与适用场景](#一、eqDRC 核心价值与适用场景)
[二、传统 DRC 的局限性:以宽金属间距为例](#二、传统 DRC 的局限性:以宽金属间距为例)
[传统 DRC 的解决方案(低效且不准确)](#传统 DRC 的解决方案(低效且不准确))
[传统 DRC 的致命缺陷](#传统 DRC 的致命缺陷)
[三、eqDRC 实战:宽金属间距规则编写完整流程](#三、eqDRC 实战:宽金属间距规则编写完整流程)
[步骤 1:明确物理模型与方程推导](#步骤 1:明确物理模型与方程推导)
[步骤 2:编写 eqDRC 规则(SVRF 语法)](#步骤 2:编写 eqDRC 规则(SVRF 语法))
[步骤 3:运行 eqDRC 与结果查看](#步骤 3:运行 eqDRC 与结果查看)
本文基于 Calibre v2017.1 官方手册,聚焦 eqDRC(Equation-based DRC) 这一高级特性,从核心价值、传统 DRC 局限性、实战案例(宽金属间距)、规则编写流程四个维度,拆解其技术原理与落地方法,助力先进工艺(<32nm)复杂设计规则的高效验证。
一、eqDRC 核心价值与适用场景
从历史实践来看,物理验证一直依赖独立的一维规则检查,来识别版图中那些在制造环节最容易失效的图形特征。但随着工艺节点不断缩小,制造偏差逐渐增大,验证规则的编写必须能够应对各类新型的复杂设计图形。
基于方程的 DRC(简称 eqDRC) 是 Calibre 扩展的 SVRF 语法集,通过连续数学方程替代传统 DRC 的 "区间桶(Buckets)" 规则,解决复杂几何交互验证难题,核心价值体现在:
| 核心优势 | 具体说明 |
|---|---|
| 精准控制良率 | 避免传统 DRC 的 "过约束"(浪费芯片面积)或 "欠约束"(遗漏制造风险),通过连续函数精准匹配工艺变化 |
| 简化规则编写 | 用 1 个方程替代数十个单维度区间规则,大幅减少规则文件复杂度,降低维护成本 |
| 高效调试 | 直接输出版图修正建议(如 "增加间距 2.98um""减小总宽度 0.38um"),无需设计师手动计算 |
| 支持复杂场景 | 验证传统 DRC 无法实现的多变量交互规则(如宽金属间距、间距 - 宽度关联、DFM 约束等) |
| 兼容先进工艺 | 适配 32nm 以下节点的限制性设计规则(RDR),如间距 - 栅格匹配、图案密度约束等 |
典型适用场景
- 宽金属 CMP 侵蚀风险验证(本文重点案例);
- 先进工艺 DFM(可制造性设计)规则(如图案密度、线宽 - 间距协同约束);
- 多变量关联规则(如 "线宽 × 间距≤阈值""总宽度与间距的对数关系约束");
- 限制性设计规则(RDR)验证(如固定间距栅格、特定图案匹配)。
二、传统 DRC 的局限性:以宽金属间距为例
宽金属间距问题的核心是:宽金属条带与氧化物区域的比例失衡导致 CMP 工艺侵蚀(铜比氧化物软,氧化物区域过小会失去抛光阻力,导致金属凹陷,引发电阻异常或开路)。
为说明 eqDRC 的优势,我们以宽金属线间距规则 为例展开分析。宽金属线间距是一项典型的设计挑战 ------ 当两条较宽的金属条之间仅隔着狭窄的二氧化硅区域时,极易引发性能与良率问题。由于铜的硬度低于氧化物,在化学机械抛光(CMP)工艺中,铜更容易被去除,进而导致金属线出现腐蚀现象。

图1
若两条铜金属条的宽度,相对于它们之间的氧化物区域宽度过大,金属腐蚀的风险会显著增加。这是因为狭窄的氧化物区域无法为抛光垫提供足够的阻力,两条铜金属条会在抛光过程中表现得如同一个整体的大面积铜层。腐蚀加剧不仅会导致金属线的电阻和电容发生不良变化,甚至可能引发电路开路。因此,设计人员必须针对不同的金属线宽度,确保金属条之间的最小间距,以此避免腐蚀问题。
传统 DRC 的解决方案(低效且不准确)
解决金属腐蚀问题的常规方法,是制定一系列一维设计规则,为单条金属条及两条金属条的不同宽度区间,分别设定对应的最小间距要求。
传统 DRC 通过 "宽度区间 + 对应最小间距" 的离散规则实现,例如:
svrf
// 传统DRC:7个区间规则,覆盖宽金属间距约束
Rule1: 0.09 minimum M1 Space if both bands >= 0.09 wide
Rule2: 0.25 minimum M1 Space if one band >= 0.36 wide
Rule3: 0.30 minimum M1 Space if both bands >= 0.36 wide
Rule4: 0.40 minimum M1 Space if one band >= 1.44 wide
Rule5: 0.50 minimum M1 Space if both bands >= 1.44 wide
Rule6: 0.55 minimum M1 Space if one band >= 4.50 wide
Rule7: 0.60 minimum M1 Space if both bands >= 4.50 wide
以下几个案例可以证明,这种传统方法的有效性存在局限,无法从根本上帮助设计人员规避腐蚀风险。
案例1:
两条金属线的宽度均为 1.44 单位,间距为 0.49 单位。按照规则 5 的要求,该设计判定为违规。

图2
案例2:
两条金属条的宽度分别为 1.44 单位和 1.43 单位,间距为 0.40 单位。此时适用的规则从规则 5 变为规则 4,该设计判定为合规。

图3
与但从腐蚀风险的角度分析,案例1 中的违规案例,实际的可靠性反而优于图2 中的合规案例。因为在图2的合规案例中,金属条之间的氧化物区域面积更小,抛光过程中发生的腐蚀会更严重。
案例3:
在图 4 的案例中,一条金属线的宽度为 1.44 单位,另一条金属线的宽度被大幅缩减至 0.09 单位。由于存在一条宽度为 1.44 单位的金属线,该设计违反规则 4,设计人员必须增大金属条之间的间距。但同样从腐蚀风险的角度来看,图 4-5 的设计方案要远优于图 4-4。

图4
传统 DRC 的致命缺陷
- 判断失真:离散区间导致 "合理设计判错、风险设计判对",例如:
案例 1:两金属宽 1.44um,间距 0.49um → 违反 RULE5(判错),但实际氧化物区域较大,侵蚀风险低;
案例 2:两金属宽 1.44um/1.43um,间距 0.4um → 符合 RULE4(判对),但氧化物区域更小,侵蚀风险更高;
- 规则冗余:需编写大量区间规则覆盖所有宽度组合,维护成本高;
- 无修正指导:仅提示违规,不告知设计师需调整的具体数值(如 "需增加多少间距")。
三、eqDRC 实战:宽金属间距规则编写完整流程
eqDRC 的核心逻辑是:将离散规则拟合为连续数学方程,通过方程判断合规性,并推导修正值。以下是完整落地步骤。具体实现步骤如下:首先,根据传统 DRC 规则定义的离散数值,拟合出一条最优曲线(如图 5所示)。在本案例中,传统 DRC 测量区间对应的分段线性图近似呈对数分布,因此使用支持对数曲线拟合的工具会更有帮助。

图5 Traditional DRC Versus eqDRC
需要注意的是,在传统 DRC 的曲线图中,每个最小间距值对应的分段区间都向右无限延伸。这是因为传统规则仅对单条或两条金属条的宽度设定了下限(即宽度需大于等于某一最小值),而未设置上限。因此,在任意一个间距要求下,金属条的总宽度都可以无限增加,且不会违反任何传统 DRC 规则。
图5 清晰地反映出,传统 DRC 规则要么会对设计造成过约束(牺牲芯片面积),要么会导致约束不足(牺牲芯片良率)。那些位于 eqDRC 曲线上方的区间,代表对图形的过约束 ------ 这些区间错误地排除了本应合法的几何尺寸;而位于 eqDRC 曲线下方的区间,则代表对图形的约束不足 ------ 这些区间错误地允许了本应禁止的几何尺寸。
步骤 1:明确物理模型与方程推导
首先需基于工艺数据,拟合宽金属间距**(space)** 与总宽度**(width1 + width2)**的连续函数。手册案例中,通过对数曲线拟合得到核心方程:

可以通过将等式两边同时除以间距 来创建一项 DRC 风格的检查,再将 1 设为 DRC 的判定阈值------ 若计算结果小于或等于 1,则该条件判定通过;若计算结果大于 1,则该条件判定失败。

对于判定失败的条件,显示满足该条件所需的间距或线宽修改量是很有帮助的。具体操作如下:首先,通过对每个变量求解来推导额外的等式;由于这些孤立变量代表了满足条件所需的目标值,因此可以将其表示为「原始值 + 偏差值(delta (value))」,其中偏差值(delta (value))即为原始值需要调整的量,调整后即可满足该 DRC 条件。




这些信息会被保存至可制造性设计结果数据库(DFM RDB)或可制造性设计数据库(DFM database),并在版图查看器中对每个几何图形进行可视化展示。
以下步骤说明如何在规则文件中实现这一功能:
-
创建一个衍生误差层,该层的边缘簇用于标记金属条带之间的间距。此层将作为步骤 3 中 ** 可制造性设计属性(DFM Property)** 操作的主输入层。
mtlspc = EXT MET1 <= 0.60 OPPOSITE -
创建一个衍生误差层,该层的边缘簇用于标记每条金属条带的线宽。
mtlwid = INT MET1 <= 5.00 OPPOSITE -
创建一个附加有三个属性(
error_value、change_space_by、change_sum_width_by)的衍生误差层eqdrc_err。该eqdrc_err层是可制造性设计属性操作主输入层的子集,仅包含满足属性约束条件的几何图形。每个属性均由可制造性设计表达式定义,其中使用 ** 有效宽度测量函数(EW measurement function)** 对衍生误差层的间距进行测量。eqdrc_err = DFM PROPERTY mtlspc mtlwid OVERLAP ABUT ALSO MULTI [error_value = 0.09/(EW(mtlspc)*LOG(2)) * log(EW(mtlwid)/0.09)] > 1 [change_space_by = (0.09/LOG(2))*(EW(mtlwid)/0.09)-EW(mtlspc)] [change_sum_width_by = 0.09*EXP((EW(mtlspc)*LOG(2))/0.09) -EW(mtlwid)] -
将带有属性信息的
eqdrc_err层输出至一个名为eqDRC.rdb的可制造性设计结果数据库文件中。eqDRC_rule { DFM RDB eqdrc_err eqDRC.rdb COMMENT "Wide metal spacing Rule: Use the property values to determine the error magnitude and adjustments needed to fix the violation" }
- 变量定义:
space= 两金属间距,total_width= 两金属宽度之和; - 合规判据:
error_value ≤ 1→ 合规;error_value > 1→ 违规; - 修正值推导:通过解方程得到两个修正方向:
- 调整间距:
change_space_by = (0.09 / log(2)) × log(total_width / 0.09) - space(正数表示需增加间距); - 调整总宽度:
change_sum_width_by = 0.09 × exp((space × log(2)) / 0.09) - total_width(负数表示需减小总宽度)。
- 调整间距:
图6 Wide Metal Spacing Output in Calibre DESIGNrev
图6 展示了在 Calibre DESIGNrev 中,一对违规金属条的检查结果。图中显示的属性数值表明,要使该设计合规,有两种调整方案:一是将金属条间距增大约 2.98 单位,二是将金属条总宽度减小约 0.38 单位。
通过在设计规则手册中引入方程,晶圆代工厂能够将实际的工艺偏差指标,表达为多维设计变量的函数,从而以传统方法无法实现的方式,对潜在的设计问题进行优先级排序和标记。此外,这些方程可以完全替代传统的阈值表格,不仅能实现更精准的检查,还能让规则的定义和调试变得更加简单。当出现新的工艺或设计需求时,只需新增或修改对应的方程,即可持续保障芯片的良率和性能目标。

图7 DRC Process Design Rule Manual

图8 eqDRC Process Design Rule Manual
若无法对工艺设计规则手册进行修改,仍可将传统的区间式规则与 eqDRC 结合使用,这样既能简化规则代码的复杂度,又能在版图查看器中直接显示设计的修正数值。
步骤 2:编写 eqDRC 规则(SVRF 语法)
eqDRC 规则的核心是 DFM PROPERTY 操作,用于关联几何测量与方程计算,输出带修正属性的错误层。完整规则如下:
svrf
// 宽金属间距eqDRC规则(可直接复用,需根据工艺调整参数)
UNITS DIEAREA 0 0 10000 10000 ; 数据库单位与芯片面积(需适配实际设计)
LAYOUT SYSTEM GDSII
LAYOUT PATH "./top.gds"
LAYOUT PRIMARY "TOP_CELL"
// 步骤1:生成间距测量层(mtlspc)- 捕获两金属间的间距边缘簇
// EXT MET1 <= 0.60:测量MET1层≤0.6um的间距;OPPOSITE:输出间距区域(而非边缘)
mtlspc = EXT MET1 <= 0.60 OPPOSITE
// 步骤2:生成宽度测量层(mtlwid)- 捕获单个金属的宽度边缘簇
// INT MET1 <= 5.00:测量MET1层≤5um的宽度;OPPOSITE:输出宽度区域
mtlwid = INT MET1 <= 5.00 OPPOSITE
// 步骤3:通过DFM PROPERTY计算eqDRC错误层与修正属性
// 核心参数解析:
// - mtlspc/mtlwid:输入层(间距测量层+宽度测量层)
// - OVERLAP ABUT ALSO:关联两输入层的重叠/相邻区域(确保测量对象对应)
// - MULTI:支持多个几何对象的关联计算
// - [error_value = ...]:方程计算违规程度
// - [change_space_by = ...]:输出间距修正值
// - [change_sum_width_by = ...]:输出总宽度修正值
eqdrc_err = DFM PROPERTY mtlspc mtlwid OVERLAP ABUT ALSO MULTI
[error_value = 0.09/(EW(mtlspc)*LOG(2)) * LOG(EW(mtlwid)/0.09)] > 1 // 违规判据
[change_space_by = (0.09/LOG(2))*LOG(EW(mtlwid)/0.09) - EW(mtlspc)] // 间距修正值
[change_sum_width_by = 0.09*EXP((EW(mtlspc)*LOG(2))/0.09) - EW(mtlwid)] // 总宽度修正值
// 步骤4:输出错误层与属性到DFM RDB文件(用于Calibre RVE/DESIGNrev查看)
WIDE_METAL_SPACING_EQDRC {
DFM RDB eqdrc_err "./eqDRC.rdb" // 输出RDB文件(含属性数据)
COMMENT "Wide Metal Spacing eqDRC Rule: Check CMP erosion risk"
COMMENT "Violation Fix: Increase space by [change_space_by] or decrease total width by [abs(change_sum_width_by)]"
}
关键语法解析
- 测量函数 EW () :用于测量
DFM PROPERTY输入层的 "有效宽度"(Equivalent Width),对应方程中的space(EW(mtlspc))和total_width(EW(mtlwid))。 - 数学函数支持 :eqDRC 支持对数(
LOG())、指数(EXP())、绝对值(ABS())等基础数学运算,可根据工艺模型扩展。 - 属性输出 :
[属性名=表达式]定义的属性会随错误层存储到 RDB 文件,在 Calibre RVE/DESIGNrev 中可直接查看每个违规区域的修正建议。
步骤 3:运行 eqDRC 与结果查看
-
命令行运行 :
bash
运行
calibre -drc -hier eqdrc_rules.svrf # 层级化运行eqDRC -
结果查看 :用 Calibre DESIGNrev 或 RVE 打开
eqDRC.rdb文件,违规区域会显示三个关键属性:error_value:违规严重程度(>1 表示违规,数值越大风险越高);change_space_by:需调整的间距(如 2.98um 表示需增加 2.98um);change_sum_width_by:需调整的总宽度(如 - 0.38um 表示需减小 0.38um)。
四、关键注意事项
- 方程拟合精度:eqDRC 的核心是方程与工艺数据的匹配度,需基于实测数据(如 CMP 侵蚀实验结果)进行曲线拟合,避免主观设定参数;
- 性能优化 :复杂方程(如多变量非线性函数)可能增加运行时间,建议:
- 用
LAYOUT REGION限定检查区域(如仅核心电路区); - 合理设置测量层的阈值(如
EXT MET1 <= 0.60而非EXT MET1 ANY),减少计算量;
- 用
- 兼容性 :
- DFM RDB 文件需用 Calibre RVE/DESIGNrev 2017.1 及以上版本打开;
- 若需输出 GDSII/OASIS 格式结果,需搭配
DRC CHECK MAP并设置DRC MAXIMUM RESULTS ALL。
五、summary
eqDRC 是 Calibre nmDRC 针对先进工艺的核心增强特性,通过 "连续方程 + 几何测量 + 修正建议" 的闭环,解决了传统 DRC 的精准度与效率瓶颈。其核心价值不仅在于简化规则编写,更在于将 "被动违规检测" 升级为 "主动设计指导",帮助设计师快速优化版图以满足制造约束。
对于 32nm 以下节点的复杂设计,eqDRC 已成为 DFM 验证的必备工具,建议优先在宽金属、图案密度、多变量协同约束等场景中落地,逐步替代传统离散规则,提升验证效率与良率保障能力。
