4. 规则分层策略:将规则按层次(金属层、有源区、通孔层)拆分,减少单次检查的规则数量

在大型 SoC 或先进工艺节点(如 7nm/5nm)的物理验证中,DRC 规则集通常包含数万至数十万条检查语句。若将所有规则一次性加载并执行,不仅会耗尽内存资源,还会因规则间的交叉引用导致运行时间呈指数级增长。规则分层策略的核心思想是:按照物理层次(Layer)或工艺模块(Module)将规则集拆分为多个独立的检查子集,每次只运行与当前层次相关的规则,从而大幅降低单次检查的复杂度。

4.1 分层策略的基本原理

现代工艺的 DRC 规则天然具有层次属性。例如,金属层的规则只涉及金属线宽、间距、最小面积等几何约束,与有源区(AA)的注入规则完全解耦。通过将规则按层次拆分,可以实现:

  • 规则集瘦身:单次检查的规则数量减少 60%–80%,降低解析与编译开销。
  • 内存占用降低:只需加载当前层次的几何数据与规则,避免全芯片数据驻留。
  • 并行化基础:不同层次可独立提交至不同计算节点,实现线性加速。
  • 增量验证:修改某层版图后,只需重新运行该层的 DRC,无需全量重跑。
关键指标:某 12nm 芯片项目采用分层策略后,单次 DRC 运行时间从 48 小时降至 6 小时,内存峰值从 256 GB 降至 64 GB。

4.2 典型分层结构

下表展示了基于工艺模块的规则分层方案,每个模块对应一个独立的 DRC 运行脚本:

层次模块 包含规则类型 典型规则数量 检查对象
有源区 (AA / OD) 最小宽度、间距、有源区到阱边距、OD 密度 ~1,200 扩散层、阱层
多晶硅 (PO / Poly) 栅极长度、多晶硅间距、栅极延伸、PO 密度 ~800 多晶硅层、栅氧化层
接触孔 (CA / CO) 接触孔尺寸、孔到有源区包覆、孔到栅极间距 ~600 接触孔层、有源区、多晶硅
金属层 (M1–Mx) 线宽、线间距、最小面积、通孔包覆、金属密度 ~2,500/层 各金属层、对应通孔层
通孔层 (V1–Vx) 通孔尺寸、通孔间距、通孔到金属包覆、阵列规则 ~1,000/层 通孔层、上下金属层
顶层金属 / 钝化层 顶层线宽、钝化开窗、焊盘间距、ESD 规则 ~400 顶层金属、钝化层、焊盘层
实践建议:分层时需注意跨层规则(如通孔到金属包覆)的处理。通常将跨层规则归入“上层”模块,或单独建立“接口规则”子集,避免重复检查。

4.3 分层策略的 SVG 架构图

下图展示了规则分层策略的整体架构,从原始规则集到分层模块,再到并行执行与结果合并:

规则分层策略架构图 规则分层策略架构 原始 DRC 规则集 有源区模块 多晶硅模块 接触孔模块 金属层模块 通孔层模块 并行 DRC 1 并行 DRC 2 并行 DRC 3 并行 DRC 4 并行 DRC 5 结果合并与报告

4.4 分层策略的实施步骤

在实际项目中实施规则分层策略,建议遵循以下步骤:

  1. 规则审计与分类:遍历所有 DRC 规则,按所属物理层次(AA、PO、M1、V1 等)打标签,识别跨层规则。
  2. 模块划分:将同层规则归入同一模块,跨层规则归入“接口模块”或附加到上层模块。
  3. 脚本拆分:为每个模块创建独立的 DRC 运行脚本(如 drc_aa.drc、drc_m1.drc),确保脚本内无冗余依赖。
  4. 数据准备:按模块提取对应的 GDS/OASIS 层次数据,可使用 layermap 或 clip 命令过滤。
  5. 并行调度:利用 LSF、SGE 或云原生调度器,将各模块提交至不同计算节点并行执行。
  6. 结果合并:收集各模块的 DRC 结果(如 .drc.summary、.drc.db),使用合并工具生成全芯片报告。
常见陷阱:分层后若跨层规则被遗漏,会导致“假通过”。务必在接口模块中显式包含所有跨层约束,并在合并阶段进行交叉验证。

4.5 分层策略的收益对比

以下表格对比了未分层与分层策略在典型 28nm 芯片项目中的实测数据:

指标 未分层(单次全量) 分层并行(5 模块) 提升比例
规则数量 18,000 3,600 / 模块 80% 减少
内存峰值 128 GB 32 GB 75% 降低
运行时间 36 小时 7.2 小时 80% 缩短
增量验证时间 36 小时(全量重跑) 1.5 小时(单模块) 96% 缩短

4.6 分层策略的适用场景与限制

分层策略并非万能,以下场景特别适合:

  • 芯片规模大(>100 mm²),层次结构清晰。
  • 工艺节点先进(≤28nm),规则数量多且层次独立性强。
  • 团队具备并行计算基础设施(LSF、Kubernetes 等)。

以下场景需谨慎使用:

  • 层次间存在大量复杂跨层约束(如 3D NAND、BCD 工艺)。
  • 规则引擎不支持增量合并或结果合并工具缺失。
  • 芯片面积小(<10 mm²),分层带来的调度开销可能超过收益。
进阶技巧:对于跨层约束密集的工艺,可采用“混合分层”——将强耦合层次(如 M1+V1)合并为一个模块,弱耦合层次独立拆分。例如,将 M1 与 V1 合并为“后端第一层模块”,M2 与 V2 合并为“后端第二层模块”,以此类推。