3. 工艺设计套件与规则文件解析

在Calibre流片签核交付工程中,PDK(Process Design Kit,工艺设计套件)是连接晶圆厂工艺能力与设计公司版图实现的唯一契约。它并不是一个单一文件,而是一套经过晶圆厂验证、版本受控、与特定工艺节点绑定的文件集合。理解PDK的组成结构,以及DRC、LVS、ERC规则文件的组织方式,是判断签核结果是否可信、能否复现的前提。

一、PDK的组成:不只是规则文件

一个完整的PDK通常包含以下几类内容,它们各自承担不同职责,缺一不可:

  • 工艺层定义文件:如Calibre的.layermap或layer.map,定义GDSII层号/数据类型与工艺层名称(如poly、active、via1)的映射关系。这是所有规则文件能正确识别版图图形的基础。
  • 器件模型与符号:SPICE模型文件(.lib/.scs)、器件符号库、CDF参数定义,用于原理图仿真与LVS器件识别。
  • 规则文件集:DRC、LVS、ERC、天线检查(ANT)、密度检查(DFM)等Calibre规则文件,通常以.cal或.rule为扩展名。
  • 技术文件与显示资源:.tf(Technology File)、.drf(Display Resource),供版图工具正确显示层次与颜色。
  • Pcell与参数化单元:由晶圆厂提供的参数化版图单元,保证器件几何与工艺规则一致。
  • 文档与版本说明:工艺规范、规则变更记录(Release Note)、已知问题列表。

在签核交付中,最容易被忽视的是版本一致性:PDK版本、Calibre版本、规则文件版本三者必须匹配。晶圆厂通常会在规则文件头部用注释声明适用版本,例如# PDK: 55nm_LL, Rev 1.8, Calibre 2023.4。若版本错配,可能出现“规则通过但流片失败”的隐性风险。

二、DRC规则文件结构解析

Calibre DRC规则文件本质是一段可执行的规则描述程序,其典型结构可分为五个区段:

// 1. 版本与头信息
# DRC RULE FILE FOR 55nm_LL
# Rev 1.8  2024-03-15
PRECISION 1000
LAYOUT PATH "top.gds"
LAYOUT PRIMARY "top"

// 2. 层定义
LAYER poly    1
LAYER active  2
LAYER via1    10

// 3. 规则主体
// 最小宽度
WIDTH poly < 0.06 ABUT < 90 REGION
// 最小间距
SPACE poly poly < 0.07 ABUT < 90 REGION
// 包围
ENCLOSURE via1 poly > 0.03

// 4. 输出控制
DRC RESULTS DATABASE "drc.results" ASCII
DRC MAXIMUM RESULTS 1000

// 5. 结束
END

其中PRECISION 1000表示数据库单位与用户单位的换算精度,直接影响尺寸判断的舍入行为;LAYER语句将GDS层号绑定到规则中使用的层名;WIDTH、SPACE、ENCLOSURE是三类最基本的几何检查算子。规则主体通常按“层—检查类型—条件—输出”组织,同一层可能有多条规则,执行顺序会影响结果数据库中的记录顺序,但不影响最终违例集合。

三、LVS与ERC规则文件结构

LVS规则文件的目标是从版图提取器件与连接关系,并与原理图网表比对。其结构比DRC更复杂,核心区段包括:

  • 层定义与器件识别:通过LAYER和DEVICE语句定义MOS、电阻、电容等器件的识别条件,例如DEVICE MOS (poly active) (poly) ...。
  • 连接性提取:CONNECT语句声明哪些层之间通过接触/通孔形成电连接,如CONNECT via1 poly active。
  • 端口与文本:PORT、TEXT语句定义版图端口与标签的识别方式。
  • 网表输出与比对:LVS SPICE、LVS COMPARE控制输出格式与比对策略。

ERC(Electrical Rule Check)通常与LVS共用同一套提取结果,检查的是电气合理性而非几何尺寸,例如:浮空栅(floating gate)、电源/地短路、衬底未连接、多驱动冲突等。ERC规则往往以ERC关键字或独立规则段出现,其判断依赖LVS提取出的网表拓扑,因此ERC必须在LVS通过后才有意义。

四、层次化规则与include机制

先进工艺的规则文件动辄数万行,直接维护单文件不可行。Calibre通过INCLUDE机制实现模块化:

// 主规则文件 top_drc.cal
INCLUDE "layers.cal"
INCLUDE "drc_core.cal"
INCLUDE "drc_density.cal"
INCLUDE "drc_antenna.cal"

INCLUDE在解析时将被包含文件的内容原地展开,因此被包含文件中的层定义、变量、规则对后续内容可见。这带来两个工程要点:一是包含顺序即作用域顺序,层定义必须在使用之前;二是变量覆盖,若多个文件定义同名变量,后包含者生效,容易造成隐性冲突。

层次化规则还体现在版图层次的处理上。Calibre默认对版图进行层次化检查,利用单元(cell)的重复引用减少计算量。规则中可用HIERARCHY、FLATTEN等语句控制展开策略。对于跨层次的结构(如跨cell的间距),需要显式声明层次穿透条件,否则可能漏检。签核时若发现“单cell通过、顶层失败”,往往就是层次化规则与展开策略不匹配所致。

PDK组成与规则文件解析关系图 PDK 工艺设计套件 层定义文件 layermap / .tf GDS层号↔层名 器件模型 SPICE .lib/.scs 符号库 / CDF 规则文件集 DRC / LVS / ERC ANT / DFM Pcell 库 参数化版图单元 几何与规则一致 文档与版本 Release Note 已知问题列表 规则文件解析结构 DRC 规则文件 ① 版本与头信息 PRECISION ② 层定义 LAYER ③ 规则主体 WIDTH/SPACE ④ 输出控制 RESULTS DATABASE ⑤ 结束 END LVS / ERC 规则文件 ① 层定义与器件识别 DEVICE ② 连接性提取 CONNECT ③ 端口与文本 PORT/TEXT ④ 网表输出与比对 COMPARE ⑤ ERC:浮空栅/短路/衬底 INCLUDE 层次化机制 top_drc.cal(主文件) INCLUDE "layers.cal" layers.cal → 层定义展开 drc_core.cal → 核心规则 顺序即作用域,后包含覆盖前 注:图中参数与文件名为教学示例,实际以晶圆厂发布的PDK版本为准

五、签核交付中的检查要点

基于上述结构,在Calibre签核交付时建议按以下顺序确认:

  1. 版本核对:检查PDK Release Note中声明的Calibre最低版本、规则文件Rev号,与本地环境比对。
  2. 层映射验证:用calibre -drc -hier或规则文件中的LAYOUT段确认GDS层号与规则层名一致,避免“层错位”导致假通过。
  3. INCLUDE展开检查:用calibre -drc -precompile或查看展开后的中间文件,确认所有被包含文件均存在且顺序正确。
  4. 层次化策略确认:对跨cell规则,确认是否使用了HIERARCHY穿透;必要时对关键规则做FLATTEN对比,观察违例数量是否变化。
  5. ERC依赖确认:确保LVS先通过,再运行ERC;若LVS未通过,ERC结果不可作为签核依据。
教学示例:某55nm项目在顶层DRC中报告“poly间距违例”,但单cell检查通过。排查发现规则文件中SPACE poly poly未声明跨层次穿透,而顶层两个相邻cell的poly恰好跨越边界。在规则中加入HIERARCHY穿透条件后,违例被正确捕获。这说明层次化规则与展开策略必须与版图实际层次结构匹配。

PDK与规则文件的解析能力,直接决定了签核结果的可信度。把PDK当作“黑盒”直接跑规则,可能在版本错配、层映射错误或层次穿透缺失时得到虚假的“干净”结果。只有理解其组成、结构与include机制,才能在交付前做出正确判断。