3. PERC规则语言基础
PERC(Programmable Electrical Rule Check)建立在 Calibre 的 SVRF(Standard Verification Rule Format)语法体系之上。与 DRC 主要处理几何图形不同,PERC 的核心任务是把版图中的金属、通孔、扩散、多晶等几何对象,抽象成具有电气意义的节点(node)与路径(path),再在抽象后的电气网络上执行连通性、方向性、电位与保护关系检查。理解 SVRF 的语法要素、节点与路径的建模方式,以及常用内置函数与操作符,是写出可维护 PERC 规则的前提。
一、SVRF 语法要素:规则文件的基本骨架
一个 PERC 规则文件通常由若干条语句构成,每条语句以关键字开头,以换行或分号结束。最基础的语法要素包括:
- 层定义:用
LAYER把 GDS 层号/数据类型映射为规则中的逻辑层名,例如LAYER M1 31 0表示把 31/0 定义为 M1。 - 层运算:支持
AND、OR、NOT、XOR、INSIDE、OUTSIDE、SIZE等布尔与几何操作,用于构造派生层。 - 变量与常量:用
ASSIGN或直接赋值定义数值、字符串或层变量,便于参数化。 - 连接定义:用
CONNECT声明哪些层在物理接触时形成电气连接,例如金属与通孔、通孔与下层金属。 - 器件识别:用
DEVICE把特定几何组合识别为 MOS、二极管、电阻等器件,并提取其端子。 - 检查语句:用
PERC或ERC类关键字描述电气规则,输出违规结果。
这些要素不是孤立的,而是按“层→连接→器件→网络→检查”的顺序逐层构建。规则文件的可读性很大程度上取决于层名与变量命名是否清晰、连接关系是否显式声明。
二、电气节点与路径的建模方式
PERC 把版图抽象为一张电气图:节点代表等电位区域,边代表允许电流或信号通过的连接。建模时通常分三步:
- 提取连接层:把金属、通孔、扩散、多晶等导电层定义为可连接层,并声明层间接触关系。
- 合并等电位区域:通过
CONNECT与NET操作,把物理上接触的导电图形合并为同一个电气节点。 - 建立路径:在节点之间根据器件端子、通孔链、金属走线形成有向或无向路径,用于后续的电流方向、保护顺序与压降检查。
节点建模的关键是“什么算连接”。例如,若只声明 M1 与 VIA1 连接、VIA1 与 M2 连接,则 M1 与 M2 通过 VIA1 间接连通;若漏掉 VIA1 与 M2 的连接,网络会被错误地切成两段,导致漏报或误报。路径建模则要区分无向路径(只关心是否连通)与有向路径(关心电流从哪个端子流向哪个端子),后者常用于 ESD 保护路径与电源钳位检查。
三、常用内置函数与操作符
PERC 规则中频繁使用的内置函数与操作符大致可分为四类:
| 类别 | 典型函数/操作符 | 作用 |
|---|---|---|
| 层操作 | AND、OR、NOT、XOR、SIZE、INSIDE |
构造派生层、筛选区域、调整图形边界 |
| 连接与网络 | CONNECT、NET、NET AREA、NET NAME |
声明层间连接、提取网络、按面积或名称筛选网络 |
| 器件与端子 | DEVICE、TERMINAL、GATE、SOURCE、DRAIN |
识别器件并提取其电气端子,用于路径方向判定 |
| 检查与输出 | PERC、ERC、REPORT、DFM |
描述电气规则、输出违规结果与报告 |
操作符方面,比较常用的是 ==、!=、>、<、>=、<= 用于数值比较,&&、||、! 用于逻辑组合,+、-、*、/ 用于参数计算。例如,判断某网络是否同时连接到两个指定端子,可以写成 NET N1 CONNECTS TO TERMINAL A && NET N1 CONNECTS TO TERMINAL B 这类组合条件。
四、一个最小可运行的 PERC 规则片段
下面给出一个教学用的最小规则片段,用于检查 M1 与 M2 是否通过 VIA1 正确连通。示例中的层号与参数均为合理假设,实际项目需按工艺 PDK 替换。
LAYER M1 31 0
LAYER VIA1 51 0
LAYER M2 32 0
CONNECT M1 VIA1
CONNECT VIA1 M2
NET M1_NET = NET(M1)
NET M2_NET = NET(M2)
PERC CHECK_VIA_CONNECTIVITY {
@ 检查 M1 与 M2 是否通过 VIA1 连通
IF (M1_NET != M2_NET) {
REPORT "M1 and M2 are not connected through VIA1"
}
}
这段规则先定义三层,再声明 M1—VIA1、VIA1—M2 的连接关系,然后分别提取 M1 与 M2 的网络。若两者网络编号不同,说明 VIA1 没有把上下层金属连通,规则会输出报告。实际工程中还会加入 NET AREA 过滤、TERMINAL 方向判断以及多条件组合,但基本骨架与上述片段一致。
掌握 SVRF 语法要素、节点与路径建模方式以及常用内置函数与操作符后,就可以开始编写针对具体电气规则的 PERC 检查。下一阶段的工作,是把这些基础能力组合成完整的 ESD、Latch-up、电源钳位与浮空网络检查规则。