第二章:设计规则检查(DRC)迁移:从28nm到7nm

各位同学,今天我们来聊聊DRC迁移。说实话,这是工艺迁移中最磨人的环节之一。28nm时代你还能靠肉眼检查版图,到了7nm?嗯,不借助工具基本寸步难行。

我最早接触28nm时,觉得DRC规则已经够复杂了。直到第一次拿到7nm的规则文件,打开一看——好家伙,光是多重 patterning 的规则就有几百条。今天我就把这些年踩过的坑、总结的经验,一次性讲清楚。

2.1 28nm DRC规则回顾

先说说28nm的DRC规则。说白了,28nm还是单次曝光(Single Patterning)的天下。规则虽然多,但逻辑相对简单。

我记得刚做28nm项目时,最常碰到的就是这几类检查:

  • 最小宽度检查:金属层最小宽度通常是60nm左右
  • 最小间距检查:同层金属间距一般要求70nm以上
  • 最小面积检查:比如通孔面积不能小于0.04μm²
  • 密度检查:每层金属的密度要在20%-80%之间

这些规则在28nm时代还算友好。你想想看,60nm的线宽,用193nm光刻机一次曝光就能搞定。但到了7nm,线宽缩到20nm以下,单次曝光就彻底没戏了。

个人经验: 28nm的DRC脚本我建议保留一份。虽然7nm规则完全不同,但脚本框架、变量定义这些基础结构是可以复用的。我每次做新工艺,都会把旧脚本当模板来改。

2.2 7nm DRC新规则:多重 patterning 与 SAQP

7nm最大的变化是什么?多重 patterning。说白了就是一次曝光搞不定,那就分两次、三次甚至四次。

这里我重点讲两个概念:

2.2.1 多重 patterning(LELE、LELELE)

LELE 是 Litho-Etch-Litho-Etch 的缩写。简单说就是把一层版图拆成两个掩模版,分两次曝光。我在项目中遇到过最头疼的问题——拆分后的图形间距检查。因为两次曝光之间会有套刻误差,所以规则里会多出一类叫「跨掩模版间距」的检查。

举个例子:

// 28nm 的间距检查(单次曝光)
MIN_SPACING M1 0.07

// 7nm 的间距检查(LELE)
MIN_SPACING M1_A 0.07  // 同一掩模版内
MIN_SPACING M1_B 0.07
MIN_SPACING M1_A M1_B 0.10  // 跨掩模版,间距更大

为什么会这样?因为两次曝光之间总有对准误差,所以跨掩模版的间距必须留出余量。这个余量通常是5-10nm,别小看这点空间,在7nm节点上寸土寸金。

2.2.2 SAQP(自对准四重 patterning)

SAQP 就更复杂了。它利用侧墙沉积技术,把一次曝光变成四条线。我刚开始接触时也一头雾水,后来做了几个项目才摸清楚。

SAQP 的核心规则包括:

  • Mandrel 间距:芯轴图形的间距必须严格统一
  • 侧墙宽度:侧墙沉积厚度决定了最终线宽
  • 切割层规则:用于切断不需要的线条
避坑指南: 我曾经在SAQP设计中犯过一个低级错误——没检查切割层与芯轴层的对准关系。结果流片回来,有一半的线条没切断,导致短路。从那以后,我每次做SAQP都会额外加一条检查:切割层必须完全覆盖芯轴层的端头。

2.3 DRC脚本迁移实战

好了,理论讲完,咱们来点实际的。DRC脚本迁移,说白了就是把28nm的规则文件改写成7nm能用的格式。

我习惯用 Calibre SVRF 格式,因为台积电的官方规则文件也是这个格式。下面是一个迁移实例:

2.3.1 28nm 原始脚本(部分)

// 金属层最小间距
M1_SPACING {
  @ M1 minimum spacing
  M1 = INT M1
  EXT M1 < 0.07 ABUT < 90 SINGULAR REGION
}

2.3.2 7nm 迁移后脚本(部分)

// 金属层最小间距 - 考虑多重 patterning
M1_SPACING_INTRA {
  @ M1 intra-mask spacing
  M1_A = INT M1_A
  M1_B = INT M1_B
  EXT M1_A < 0.07 ABUT < 90 SINGULAR REGION
  EXT M1_B < 0.07 ABUT < 90 SINGULAR REGION
}

M1_SPACING_INTER {
  @ M1 inter-mask spacing
  EXT M1_A M1_B < 0.10 ABUT < 90 SINGULAR REGION
}

// SAQP 专用检查
SAQP_MANDREL_SPACING {
  @ SAQP mandrel uniform spacing
  MANDREL = INT MANDREL
  EXT MANDREL < 0.12 ABUT < 90 SINGULAR REGION
  // 注意:芯轴间距必须严格等于 0.12μm
}

你看,从28nm到7nm,规则数量翻了一倍不止。但核心思路没变——把单次曝光的规则拆成多次曝光的组合规则。

我的建议: 迁移脚本时,不要直接改原文件。先复制一份,然后逐条对照台积电的官方规则文档修改。我习惯在每条规则前加注释,注明对应的是哪条官方规则。这样后期调试时能省不少时间。

2.4 迁移中的常见陷阱

最后说说我这些年遇到的几个坑:

陷阱类型 28nm 做法 7nm 正确做法
间距检查 统一间距规则 区分 intra-mask 和 inter-mask
密度检查 全局密度 分掩模版密度 + 全局密度
通孔规则 单通孔检查 考虑通孔与金属层的对准关系
天线效应 简单面积比 分掩模版计算天线比

嗯,这里要特别提醒一下天线效应检查。7nm因为用了多重 patterning,每层金属被拆成多个掩模版,天线比的计算方式完全变了。我有个同事就是没注意这点,流片回来芯片ESD失效,查了两个月才发现是天线规则没更新。

好了,今天的DRC迁移就讲到这里。下一章我们会聊更刺激的——LVS迁移,到时候见。