4. 器件识别与提取基础
版图一致性验证的核心,是把版图(Layout)中由几何图形构成的“形状”,还原成电路(Schematic)中由器件与网络构成的“电路”。nmLVS 的器件识别与提取(Device Recognition & Extraction)正是完成这一还原的关键环节:它决定了 LVS 比较时“左边有什么器件、右边有什么器件”。如果器件识别错误,即使连接关系完全正确,LVS 也会报出器件类型不匹配、参数不匹配或器件数量不一致。因此,理解每种器件的识别语句、识别层、识别条件与提取参数,是读懂 LVS 报告、定位 LVS 失败原因的基础。
一、器件识别的基本机制
在 Calibre nmLVS 中,器件识别由规则文件(Rule File)中的 DEVICE 语句族完成。一个典型的 MOS 器件定义包含四类信息:
- 识别层(Recognition Layers):用于判断“这里存在一个器件”的几何层,例如多晶硅(POLY)、有源区(ACTIVE/DIFF)、注入层(NIMP/PIMP)、阱层(NWELL/PWELL)。
- 识别条件(Recognition Conditions):这些层的组合关系与逻辑运算,例如“POLY 与 ACTIVE 相交且被 NIMP 覆盖”才构成 NMOS。
- 器件端子(Terminals):栅(G)、源(S)、漏(D)、衬底(B)分别由哪些层或接触(CONTACT/VIA)确定。
- 提取参数(Extracted Parameters):从几何尺寸换算出的 W、L、M(finger 数)、AD、AS、PD、PS 等,用于与网表参数比对。
识别层与识别条件共同构成“器件存在的判据”,端子定义决定“器件如何接入网络”,提取参数决定“器件是否与原理图数值一致”。三者缺一不可。
二、MOS 管的识别与提取
以常见的 CMOS 工艺为例,NMOS 的识别通常写作:
device nMOS nmos_model
recognition
poly AND active AND nimp
terminals
gate = poly NOT active
source = active NOT poly
drain = active NOT poly
bulk = pwell
properties
W = area(active AND poly) / length(poly)
L = length(poly) AND active
M = count(fingers)
这里的关键是“POLY 与 ACTIVE 相交区域”构成沟道。W 由相交区的宽度决定,L 由多晶硅在 ACTIVE 上的线宽决定。若工艺中多晶硅跨过有源区形成两个独立晶体管(例如共享源漏的串联结构),规则文件需要通过 M 参数或 finger 识别逻辑把它们合并或拆分,否则 LVS 会报出器件数量不一致。
PMOS 的识别条件则把 NIMP 换成 PIMP,阱层换成 NWELL。若版图中缺少 NWELL 或注入层画错,PMOS 会被识别成 NMOS,或根本不被识别为器件,此时 LVS 报告通常表现为“器件类型不匹配”或“器件缺失”。
三、BJT、二极管、电阻与电容
双极型晶体管(BJT)的识别依赖 NPN/PNP 的层次结构:以 NPN 为例,需要识别出基区(P 型)、发射区(N 型)和集电区(N 型)的嵌套关系。规则文件通常用 BJT 语句定义发射区、基区、集电区对应的层,并提取发射区面积作为 AE 参数。若发射区与基区的覆盖关系不满足,BJT 不会被识别,或会被识别为寄生二极管。
二极管的识别相对简单:PN 结由 P 型注入层与 N 型注入层(或阱)的相交区域确定,提取参数通常为结面积 AREA 与周长 PERIM。在 LVS 中,二极管常作为 ESD 保护器件出现,若识别层漏画,会导致“多出器件”或“器件缺失”。
电阻的识别有两种典型方式:一种是用专用电阻层(如 RPO、RES)与多晶硅或扩散区组合识别;另一种是用多晶硅本身的方块电阻模型识别。提取参数包括 R(由方块数 × 方块电阻计算)、W、L。若电阻的识别层与 MOS 的 POLY 层重叠,规则文件必须通过优先级或排除条件区分“这是电阻还是 MOS 的栅”,否则会出现器件误识别。
电容的识别通常基于两层导体(如 MIM 层、POLY 与扩散区)的重叠面积,提取参数为 C(面积 × 单位面积电容)与 PERIM。在 LVS 中,电容的识别层若与互连层混淆,可能被误识别为普通网络,导致器件缺失。
四、器件提取对 LVS 结果的影响
器件提取的结果直接决定 LVS 的比较内容。常见的失败模式包括:
- 器件类型错误:识别层或注入层画错,导致 NMOS 被识别为 PMOS,LVS 报“device type mismatch”。
- 器件数量错误:finger 合并逻辑不当,或识别条件过宽/过窄,导致器件数量与原理图不一致。
- 参数不匹配:W/L 提取值与原理图不符,通常由识别层边界偏移或单位换算错误引起。
- 端子连接错误:源漏识别不对称或衬底端子未正确接入,导致网络连接关系错误。
因此,在调试 LVS 时,应优先检查器件识别层是否完整、识别条件是否与工艺一致、提取参数是否与原理图预期相符。Calibre 提供的 LVS Report 与 Extracted Netlist 是判断器件识别是否正确的最直接依据。
五、调试要点与检查清单
当 LVS 报出器件相关错误时,可按以下顺序排查:
- 确认识别层是否在版图中完整存在,特别是注入层、阱层等容易被忽略的层。
- 检查识别条件的逻辑运算是否符合工艺规范,例如 AND 与 NOT 的优先级。
- 核对端子定义是否与原理图符号的引脚顺序一致,尤其是衬底端子。
- 检查提取参数的单位与换算关系,例如 W/L 的单位是微米还是纳米。
- 查看提取网表中的器件列表,与原理图网表逐项比对器件类型、数量与参数。
LVS Report 查看“Extracted Devices”部分,确认每个器件的类型、端子与参数。若提取网表中器件数量正确但参数不符,通常是识别层边界或单位换算问题;若器件数量不符,则优先检查识别条件与 finger 合并逻辑。
器件识别与提取是 LVS 验证的“第一道关口”。只有识别层、识别条件、端子定义与提取参数四者都与工艺和原理图预期一致,LVS 才能进入正确的比较阶段。掌握这些基础,才能在面对复杂的 LVS 报告时快速定位问题根源。