1. 课程导入与nmDRC定位
在先进工艺节点下,版图物理验证已经成为连接设计与制造的关键闸门。Calibre nmDRC 是 Mentor(现 Siemens EDA)Calibre 平台中负责设计规则检查(Design Rule Check)的核心引擎,它读取版图数据与规则文件,逐条判定版图是否满足晶圆厂给定的几何与电气约束,并输出违规坐标、规则名与图层信息。理解 nmDRC 在物理验证流程中的位置,是后续规则开发与调试的起点。
nmDRC 在物理验证流程中的角色
完整的物理验证通常包含 DRC、LVS(版图与原理图一致性)、ERC(电气规则检查)、天线检查、密度检查等。nmDRC 处于最前端:它不关心电路的连接关系,只关心几何图形是否“画得对”。其输入是 GDSII/OASIS 版图、工艺规则文件(通常为 SVRF 或 TVF 语法)以及运行控制文件;输出是违规数据库(ASCII 报告、RDB 或图形化结果)。
可以把 nmDRC 理解为一条“规则流水线”:版图数据被逐层读入,规则文件中的每条检查被编译成几何运算,引擎在版图上执行布尔运算、尺寸测量、间距判定,最后把不满足条件的图形位置标记出来。规则开发者的工作,就是写出正确的规则描述,并让引擎高效、准确地执行它。
规则开发与调试的完整工作流
规则开发不是“写一条规则、跑一次”这么简单。一个可交付的 nmDRC 规则集,通常经历以下阶段:
- 需求解读:从工艺设计套件(PDK)的规则手册中提取每条规则的图层、参数、条件和例外。例如“M1 最小宽度 0.05 μm,最小间距 0.05 μm,但在同电位节点处允许 0.04 μm”。
- 规则编写:用 SVRF 语法把自然语言规则翻译成可执行语句。典型结构包括图层定义、运算语句和检查语句。
- 试运行与冒烟测试:用一个小规模测试版图(test pattern)验证规则能否正确触发。测试版图应包含“刚好通过”和“刚好违规”两种图形。
- 结果比对:将 nmDRC 输出与参考结果(黄金规则集或人工标注)比对,定位漏报(false negative)和误报(false positive)。
- 性能调优:通过图层合并、运算顺序调整、层次化处理等方式降低运行时间与内存占用。
- 回归与签核:在完整芯片版图上运行,确认无违规或违规可接受,输出签核报告。
调试阶段最常用的手段是“最小复现”:从完整版图中截取违规位置附近的一小块区域,单独运行规则,观察中间图层运算结果。Calibre 提供的 RVE(Results Viewing Environment)可以把每条规则的中间图层高亮显示,帮助判断是规则写错、图层选错,还是版图本身确实违规。
学习路径与实战目标
本课程面向已经具备版图基础和基本 Linux 操作能力的工程师。学习路径按“先定位、再写规则、再调规则、最后优化”的顺序展开:
- 第 1~5 章:建立 nmDRC 的整体认知,掌握 SVRF 基本语法、图层操作与检查语句。
- 第 6~15 章:深入间距、宽度、包围、延伸、密度等典型规则的写法与参数含义。
- 第 16~24 章:学习调试方法,包括错误分类、日志解读、RVE 使用、最小复现构造。
- 第 25~30 章:性能优化、层次化处理、回归测试与签核交付。
实战目标很明确:给定一份规则手册和一块测试版图,能够独立写出可运行的 nmDRC 规则,定位并修复规则中的逻辑错误,最终让规则集在完整版图上稳定运行并输出可信的签核结果。
一个最小可运行示例
下面是一段简化的 SVRF 规则片段,用于检查 M1 最小宽度。假设 M1 图层号为 10/0,最小宽度为 0.05 μm:
// 定义图层
LAYER M1 10 0
// 最小宽度检查
M1_WIDTH = WIDTH(M1) < 0.05
DRC CHECK M1_WIDTH "M1 minimum width violation"
运行后,nmDRC 会在版图中找出所有宽度小于 0.05 μm 的 M1 图形,并在报告中输出违规坐标。如果测试版图中有一条 0.04 μm 宽的 M1 线,它应当被标记;如果有一条 0.06 μm 宽的线,则不应被标记。这个“一正一反”的测试用例,就是后续所有规则调试的基本模式。