3. Calibre Pattern Matching环境与流程概览
Calibre Pattern Matching(简称 CPM)是 Siemens EDA 在 Calibre 平台上提供的版图图形匹配工具,它把版图中具有特定几何拓扑关系的图形集合定义为“模式(pattern)”,再在全芯片范围内搜索相同或相似的模式,用于热点检测、设计规则验证、OPC 检查、标准单元一致性核查等场景。要真正用好它,第一步不是急着写规则,而是把运行环境、文件类型和整体流程理清楚——因为 CPM 的输入输出关系比普通 DRC 更“多对多”,一旦文件角色搞混,后续调试会非常低效。
一、工具启动方式
CPM 并不是一个独立的图形界面程序,它依托 Calibre 的命令行执行框架运行。最常用的启动方式是 calibre -pm,配合规则文件与运行目录参数:
calibre -pm pattern_rule.svrf \
-hier \
-turbo 8 \
-runset runset.txt \
-gds layout.gds \
-topcell TOP \
-report hotspot.rpt
其中 -pm 明确告诉 Calibre 本次运行走 Pattern Matching 引擎;-hier 启用层次化处理,对全芯片版图尤其重要;-turbo 指定并行线程数;-runset 可把常用参数固化到运行集文件里,便于批量复现。规则文件通常以 .svrf 或 .pm 为后缀,内部使用 SVRF(Standard Verification Rule Format)语法。若在图形化环境(如 Calibre Workbench 或 DesignREV)中操作,则通过菜单选择 Pattern Matching 流程,本质仍是调用同一套命令行引擎,只是把参数封装成界面表单。
二、输入输出文件类型
CPM 的输入输出可以按“版图侧、规则侧、结果侧”三类理解。版图侧输入是 GDSII 或 OASIS 格式的版图数据,必须指定顶层单元名(topcell),否则工具无法确定展开起点;若版图来自 Milkyway 或 LEF/DEF 流程,需先转换为 GDS/OASIS。规则侧输入是 SVRF 规则文件,其中包含层定义、模式定义、匹配容差、输出控制等语句。结果侧输出主要有三类:一是热点报告文件(.rpt 或 ASCII 文本),逐条列出匹配到的位置、单元名、坐标和模式名;二是结果版图(GDS/OASIS),把匹配区域用标记层(marker layer)画出来,便于在版图工具中直接定位;三是 RDB(Results Database)格式,供 Calibre RVE 等结果查看器加载,实现与版图联动高亮。
LAYER hotspot_marker 1000,这样结果版图里的标记层不会与原始设计层冲突,后续在 Virtuoso 或 ICV 中打开时一眼就能识别。三、规则文件结构
一个典型的 CPM 规则文件按“层定义 → 模式定义 → 匹配控制 → 输出控制”四段组织。层定义段用 LAYER 语句把 GDS 层号映射为可读名称;模式定义段是核心,用 PATTERN 语句描述目标图形的几何关系,例如两个矩形的最小间距、一个矩形被另一个矩形包围的拓扑;匹配控制段设置容差、是否允许旋转/镜像、是否层次化匹配;输出控制段决定报告格式和标记层。下面是一个简化示例:
LAYER M1 10
LAYER VIA1 20
LAYER MARKER 1000
PATTERN via_shift
M1 AND VIA1
ENCLOSURE < 0.02
END PATTERN
MATCH TOLERANCE 0.001
MATCH NO_ROTATE
OUTPUT MARKER
REPORT hotspot.rpt
这段规则的含义是:在 M1 与 VIA1 的重叠区域中,寻找包围不足 0.02 微米的位置,匹配容差 0.001 微米,不允许旋转,结果输出到 hotspot.rpt 并生成标记层。实际项目中,模式定义往往更复杂,会用到 INTERACT、INSIDE、OUTSIDE、NOTCH 等几何操作符组合。
四、从版图到热点报告的完整流程
把上述要素串起来,CPM 的完整流程可以概括为:准备版图与规则 → 启动引擎 → 层次化展开与模式搜索 → 生成结果 → 结果查看与迭代。其中“层次化展开”是关键中间环节:Calibre 会先按 topcell 逐层展开版图,再在每个层次上执行模式匹配,最后把匹配结果映射回原始坐标。这一步直接决定运行时间和内存占用,对全芯片版图,通常需要配合 -hier 和合理的 cell 过滤策略。
流程中值得特别注意的是“结果复核”环节。CPM 报告里的匹配位置并不等于真实热点,它只是几何上满足模式定义的位置。工程师需要把 .rpt 中的坐标导入版图工具,结合原始设计意图判断该处是否真的存在工艺风险。例如,规则中定义“M1 对 VIA1 包围不足 0.02 μm”,但某些位置可能是故意设计的测试结构或 dummy 图形,此时需要在规则中增加排除层或 NOT 条件,而不是直接修改版图。这个“匹配 → 复核 → 调整规则 → 重跑”的闭环,是 CPM 实际项目中最耗时间也最有价值的部分。
五、环境准备与常见注意点
运行 CPM 前,需要确认三件事:一是 Calibre 版本支持 Pattern Matching 引擎(通常需要较新的版本,且 license 中包含 PM 特性);二是环境变量 MGC_HOME、CALIBRE_HOME 指向正确安装路径,PATH 中包含 calibre 可执行文件;三是运行目录有足够磁盘空间存放结果版图和 RDB,全芯片结果版图有时会达到数 GB。另外,规则文件中的层号必须与版图 GDS 中的层号严格一致,若版图经过层映射(layer map)处理,需在规则中同步调整,否则会出现“规则写了但匹配不到”的假阴性。
-topcell 写错,Calibre 可能只展开了一个空壳单元,报告为空却没有任何报错,排查起来非常费时。