欢迎光临
我们一直在努力

Calibre LVS Circuit Comparison(1)

本文档聚焦 Calibre nmLVS 的核心功能 —— 电路对比,详细阐述其数据流程、对比机制、关键概念(如初始对应点、组件类型、内置器件)及结果分类,是验证版图拓扑与源网表功能一致性的核心参考,对规则文件配置、对比效率优化和差异调试至关重要。

一、LVS 电路对比概述

1. 核心目标与作用

  • 目标:对比版图设计的拓扑结构与源网表(如 SPICE),验证版图是否正确实现了源网表的功能意图。

  • 核心动作:建立版图与源网表中电路元素(实例、网、端口、实例引脚)的一一对应关系;若存在差异,从源正确、版图错误和版图正确、源错误两个视角生成差异报告。

2. 数据流程

LVS 支持单步流程和两步流程,核心输入输出如下:

(1)输入文件

Calibre nmLVS 的输入包括:SVRF 规则文件、版图网表或几何数据库、以及原始网表。在层次化 LVS(LVS-H)模式下,还会使用层次化单元(hcell)对应列表,该列表可在独立文件、规则文件中指定,或在版图与原始网表的单元名称匹配时自动生成。

  • 规则文件(SVRF);
  • 版图数据(几何数据库或提取的网表);
  • 源网表(SPICE 格式);
  • 分层 LVS(LVS-H)额外需要 hcell 对应列表(可在规则文件、独立文件中指定,或自动基于单元名匹配生成)。
(2)流程类型

 

图 1 展示了在单步流程中同时执行电路提取和网表对比的 LVS 数据流程。

若运行 Calibre nmLVS-H 时指定 -spice 选项,工具会输出 SPICE 格式的版图网表及电路提取报告。以下场景也会触发该输出:

  • 指定 -hier 选项(但未指定 -spice 选项);
  • 版图系统为几何数据库;
  • 指定了掩模 SVDB 目录(用于 Calibre RVE 中的交互式 LVS 调试)。

-flatten 选项用于提取扁平化的版图网表。

若指定运行 ERC 检查、短路隔离检查或软连接检查,LVS 会在电路提取过程中为这些检查生成 DRC 格式的结果数据库。

执行网表对比(指定 -lvs 选项)时,工具始终会生成 LVS 报告。

图 2 展示了在两步流程中分别执行电路提取和对比的 Calibre nmLVS-H 数据流程。

流程类型执行逻辑关键命令示例
单步流程 电路提取 + 网表对比一次性完成 calibre -lvs -hier layout.gds source.spi rules
两步流程 先执行电路提取生成版图网表,再执行网表对比 1. calibre -spice layout.net -hier layout.gds rules(提取)2. calibre -lvs -hier layout.net source.spi rules(对比)
(3)输出文件
  • 提取的版图网表(.net);
  • 电路提取报告、LVS 对比报告(核心差异文档);
  • 结果数据库(可在 Calibre RVE 中交叉探测);
  • 超大规模(hyperscaling)模式下额外生成对比日志(lvs_report_name.log)。

二、核心对比机制

LVS 工具对比指定原始网表和版图中的电路连接关系。当对比的电路完全等效时,LVS 会在原始网表的电路元件(实例、网络、端口、实例引脚)与版图电路的对应元件之间,建立一一对应的映射关系。

对于存在差异的设计,LVS 报告中会列出两个电路的不一致之处。报告将分别从原始网表视角和版图视角呈现差异:首先假设原始网表数据正确、版图数据错误,然后假设版图数据正确、原始网表数据错误。这种呈现方式可帮助用户对比两种可能的数据分析视角。

Calibre nmLVS 会报告与错误电路元件相关的差异,并提供辅助分类和定位错误的附加信息。为确保不同元件的匹配不会产生误导性结果,工具会应用内部启发式算法。这些内部技术会在程序不同阶段,从多种方法生成的结果中选择最优解决方案。

Calibre nmLVS 会尽可能匹配更多元件,包括对比电路中存在差异的元件。例如,若两个网络的大部分连接是等效的,即使部分连接不同,也可进行匹配。元件之间的对应关系可用于 Calibre RVE 中的交叉探测功能。

用户无需强制提供电路元件之间的初始对应点或 LVS Cpoint 语句),但提供初始对应点通常可以缩短运行时间。对于版图与原始网表中名称不匹配的网络,指定初始对应点(Cpoint)尤为有用。

注意通常建议在默认配置下运行 Calibre nmLVS。这意味着,除非有特殊需求必须修改 LVS 默认设置,否则一般无需在规则文件中指定除 LVS Report、LVS Power Name 和 LVS Ground Name 之外的其他 LVS 专用语句。LVS 报告中会列出所有规则文件规范语句的设置,包括保持默认值的选项。


2.1 网表对比的超大规模优化(Hyperscaling)

通过命令行选项 -hyper cmp,可在 Calibre nmLVS-H 中启用超大规模优化(Hyperscaling)。该优化适用于电路提取模块,且会在提取过程中执行部分对比模块任务(如读取原始网表)。仅当同时指定 -turbo 选项时,才能使用 -hyper cmp 选项。

启用超大规模优化的命令行示例如下:

# MT 模式
calibre -spice layout.net -turbo -hyper cmp -lvs -hier -hcell hcells rules
# MTflex 模式
calibre -turbo -remotefile config.txt -hyper cmp -lvs -hier -hcell hcells rules

当版图系统为几何数据库时,后一条命令行会触发电路提取;否则,仅执行 LVS 对比。

注意-hyper remote 选项会导致 LVS 对比模块不执行 cmp 选项触发的优化。

启用超大规模优化后,运行过程中对比阶段的记录会写入文件 lvs_report_name.log(其中 lvs_report_name 为 LVS 报告的名称)。重要的对比信息仍会输出到标准输出(stdout),但完整的信息集将写入上述日志文件。详情请参见第 542 页的「带超大规模优化记录的层次化对比」章节。

当启用超大规模优化时,若规则文件中指定了 LVS Abort On ERC Error YES、LVS Abort On Supply Error YES 或 LVS Abort On Softchk YES 语句,LVS 会在读取原始网表后、执行对比前终止运行。


2.2 初始对应点

Calibre nmLVS 将原始网表和版图电路中具有相同用户定义名称的网络对、实例对和端口对,作为初始对应点。工具不要求必须存在初始对应点,但建议通过在顶层单元的输入引脚上添加文本,为原始网表和版图的端口指定初始对应点。

Calibre nmLVS 会信任初始对应点,并强制匹配构成初始对应点的元件,即使这些元件本身存在差异。用户也可在规则文件中通过 LVS Cpoint 规范语句指定对应点。

在 Calibre nmLVS-H 中,若初始对应点出现在底层单元,不会阻止逻辑注入、逻辑门形成、串并联器件归并等转换操作;但在顶层单元中,初始对应点会阻止此类转换。


2.3 元件类型

LVS 元件类型是一个名称,用于唯一标识版图或原始网表实例的电气或逻辑功能。Calibre nmLVS 在匹配版图与原始网表实例的过程中会使用元件类型值。实例必须具有相同的元件类型才能被正确匹配。若实例的元件类型不同,但连接关系完全一致,工具有时也会进行匹配,但会在这种情况下报告差异。

1. 掩模版图

提取的版图器件的元件类型,等效于规则文件中对应 Device 操作的 element_name 参数值。例如,语句:

device MP tran poly(g) srcdrn(s) srcdrn(d) bulk(b)

指定了一个 MOS 晶体管器件,其元件类型为 MP。

2. SPICE 网表

SPICE 元件的元件类型描述请参见第 673 页的「元件语句」章节。

LVS Compare Case 语句结合 Layout Case 和 Source Case 语句,可控制 LVS 对比网络、实例、端口、元件及模型名称时的大小写敏感性。LVS 默认不区分大小写。

2.4 元件子类型

LVS 元件子类型(模型)是一个可选名称,与元件类型共同对版图或原始网表实例的电气或逻辑功能进行分类。元件子类型不是匹配原始网表与版图实例的必要条件。仅当两个匹配实例均指定了子类型时,Calibre nmLVS 才会报告其子类型的差异。

以下章节描述了 Calibre nmLVS 用于确定实例元件子类型的规则。

1. 掩模版图

提取的版图器件的元件子类型,等效于对应 Device 操作中可选的 model_name 参数值。例如,操作:

device C(PM) cap poly(pos) metal(neg)

指定了一个电容器件,其元件类型为 C,子类型为 PM。若 Device 操作中未指定 model_name,则该器件无子类型。

2. SPICE 网表

SPICE 元件的子类型描述请参见第 673 页的「元件语句」章节。

LVS Compare Case 语句结合 Layout Case 和 Source Case 语句,可控制 LVS 对比网络、实例、端口、元件及模型名称时的大小写敏感性。LVS 默认不区分大小写。

2.5 必需的器件模型名称

在规则文件的 Device 语句中,器件元件名称 MP、MN、ME、MD、Q 和 D 必须附带与原始网表中使用的模型名称完全一致的模型名。这是网表到网表对比流程的强制要求。

该规则存在两个例外情况:

  • 若原始网表中对应的模型名称分别为 P、N、E 和 D,则可在规则文件中为器件元件名称 MP、MN、ME 和 MD 省略模型名。

  • 若原始网表中对应的模型名称分别为 Q 和 D,则可在规则文件中为器件元件名称 Q 和 D 省略模型名。

  • 三、命名规范与大小写敏感性

    LVS 使用多种命名规则,这些规则会体现在 LVS 报告、运行记录和掩模 SVDB 目录结果中。在调试结果时,熟悉这些规则将有助于提高效率。

    LVS 的命名规范直接影响初始对应点的生成和对比结果,需重点关注实例引脚、网 / 实例名、端口名、电源地网络的定义,以及大小写敏感性的配置。

    3.1. 实例引脚与引脚名称

    Calibre nmLVS 在连接关系对比过程中,使用实例引脚名称匹配电路元件。引脚及引脚名称通常由实例从规则文件操作和 SPICE 网表元件中继承。

    3.1.1  掩模版图

    Calibre nmLVS 在规则文件中指定提取的版图器件的引脚名称,或采用默认规则。

    • 内置器件:此类器件具有默认的引脚命名和排序规则,并会被 LVS 进行特殊处理:器件类型 C、D、MD、ME、MN、MP、Q 和 R 对于器件识别和 LVS 对比均为内置类型。每种类型都有一组必须使用的硬编码引脚名称。若遵循第 395 页「内置器件类型」中指定的引脚名称,器件类型 J、L、LDD、LDDD、LDDE、LDDN、LDDP、M 和 V 在 LVS 对比中会被视为内置类型。若使用 LVS Device Type 规范语句,且遵循标准引脚命名和排序规则,任意命名的器件都可被视为内置类型。

    • 用户定义器件:规则文件中的 Device 操作可指定用户定义器件(此处的「用户定义」指针对器件识别的目的)。此类器件具有用户定义的引脚名称,提取网表中的引脚顺序遵循对应 Device 语句中指定的顺序。若未遵循第 395 页「内置器件类型」中指定的引脚名称,器件类型 J、L、LDD、LDDD、LDDE、LDDN、LDDP、M 和 V 会被视为用户定义类型。

    3.1.2 SPICE 网表

    SPICE 元件的引脚名称描述;

    3.1.3  引脚过滤

    Calibre nmLVS 仅处理具有名称的实例引脚。在单个设计中,可使用同一元件类型但引脚数量不同的实例。例如,在单个设计中可同时存在双引脚电阻和三引脚电阻。

    对于给定的元件类型和引脚数量,对应的版图和原始网表引脚应具有完全相同的名称。但允许版图元件实例的引脚不存在于对应的原始网表元件中,反之亦然。LVS 对比算法在建立版图与原始网表元件的对应关系时,会过滤掉这些不存在的引脚。

    Calibre nmLVS 过滤缺失引脚的目的,是为了允许高层版图元件拥有对应的原理图元件中不存在的引脚(如电源和地引脚)。经过引脚过滤后,实例必须具有相同的引脚数量和引脚名称,才能被正确匹配。若实例的引脚数量或名称不同,但连接关系相似,工具有时也会进行匹配,但会在这种情况下报告差异。

    对于每种元件类型,版图中存在但原始网表中缺失的引脚,以及原始网表中存在但版图中缺失的引脚,都会在 LVS 报告中列出。缺失的电源或地引脚会被报告为警告,其他缺失的引脚会被报告为错误。

    若在 LVS Power Name 或 LVS Ground Name 规范语句中分别指定了电源或地引脚的名称,Calibre nmLVS 会对这些引脚名称进行分类。

    3.2  网络与实例名称

    网络和实例名称在几何版图和 SPICE 网表中指定,两种设计类型的名称获取方式不同。

    3.2.1 掩模版图

    Calibre nmLVS (默认情况下)从顶层单元中版图图形和路径上的文本对象值获取版图网络名称。这些值在 LVS 触发的电路提取过程中被分配为网络的名称。在掩模 LVS 中,无法为版图实例命名。

    3.2.2 SPICE 网表

    Calibre nmLVS 从网表中的节点名称获取网络名称,从网表中的元件名称获取实例名称。

    3. 3 端口与端口名称

    设计端口和端口名称在几何版图和 SPICE 网表中指定。

    3.3.1 掩模版图

    Calibre nmLVS 通过规则文件中的 Port Layer Text、Port Layer Polygon 和 Port Layer Merged Polygon 规范语句,指定几何版图的端口。

    3.3.2 SPICE 网表

    Calibre nmLVS 通过两种方式指定设计端口:

  • 若指定了顶层子电路,其子电路的外部节点将作为 LVS 中的设计端口。

  • 除非在规则文件中指定 LVS Globals Are Ports NO,否则 .GLOBAL 语句中指定的所有具有用户定义名称的节点,都将作为 LVS 中的设计端口。

  • 在上述两种情况下,节点名称均作为端口名称。

    3. 4. 电源与地网络

    Calibre nmLVS 在逻辑门识别、未使用 MOS 晶体管过滤及其他应用中会使用电源和地网络。单个设计中允许存在多个电源网络和多个地网络。

    当满足以下任一条件时,一个网络将被视为电源网络(或地网络):

  • 网络名称出现在 LVS Power Name 或 LVS Ground Name 规范语句中。

  • 网络连接到一个端口,且该端口名称出现在 LVS Power Name 或 LVS Ground Name 规范语句中,同时同一设计中没有其他网络使用该名称。若存在多个具有相同电源(或地)名称的端口连接到不同网络,则仅使用其中一个。

  • 通过 LVS Cell Supply 语句,与 LVS Power Name 和 LVS Ground Name 设置匹配的单元端口名称,可在层次结构中向上和向下传播电源和地网络名称,传递至连接到这些端口的网络。

    3. 5. 用户定义名称

    版图和原始网表数据库的网络、实例和端口可具有用户定义名称、系统生成名称,或同时具有两者。Calibre nmLVS 会报告版图和原始网表元件的用户定义名称之间的差异。

    匹配的用户定义名称会在 LVS 中建立初始对应点。

    Calibre nmLVS 按以下规则判断一个名称是否为用户定义名称:

    • 掩模版图:若一个名称不以 n$、N$、i$ 或 I$ 开头,且不包含超过一个斜杠(/)字符(允许一个前导斜杠),则该名称为用户定义名称。若存在前导斜杠,该斜杠将被忽略。例如,版图名称 /ABC 是用户定义名称,会与原始网表名称 ABC 形成初始对应点;版图名称 ABC 也是用户定义名称,同样会与原始网表名称 ABC 形成初始对应点。

    • SPICE 网表:

      • 若一个节点名称至少包含一个非数字字符(字母),且不包含超过一个斜杠(/)字符(允许一个前导斜杠),则该节点名称为用户定义名称。若存在前导斜杠,该斜杠将被忽略。

      • 若一个元件名称(排除第一个字符)至少包含一个非数字且非等号(=)的字符,则该元件名称为用户定义名称(SPICE 元件名称的第一个字符始终为 SPICE 元件类型)。此外,该名称不得包含任何 / 字符。例如,C2a、Xabc 和 M1==A 是用户定义元件名称,而 C123、X1、Xabc/X2 和 M1==2 不是。请注意,当原始 SPICE 网表的层次结构被展开时,源自层次结构底层的节点和元件名称永远无法成为用户定义名称,因为这些名称会变成包含 / 字符的层次化路径名。

    按照惯例,前缀 n$ 和 i$ 表示 Mentor Graphics 原理图数据库中的系统生成网络和实例名称。/ 用作分隔符以形成层次化路径名。等号(=)被 SPICE 解析器用于为通过 M 参数复制的元件生成名称。

    3. 6. 名称的大小写敏感处理

    默认情况下,版图和原始网表名称的处理不区分大小写。

    网表处理分为两个不同的阶段:读取时的网表解析,以及网表对比。这些阶段由不同的规范语句分别控制。

    用户可通过 Layout Case 和 Source Case 规范语句,控制输入网表解析时的大小写敏感性。默认情况下,两者均设置为 NO。当设置为 NO 时,SPICE 解析器会在内部统一网表的大小写格式。若将其中任意一个设置为 YES,则 SPICE 网表解析器会以区分大小写的方式处理对应的网表,名称仅大小写不同的网表元件会被视为不同的元件。

    当设计中存在仅大小写不同、且需要被视为不同网络的网络名称时,用户可能需要以区分大小写的方式处理输入网表。例如:

    $$ SOURCE
    .SUBCKT BLOCK SIG sig Y $$ SIG 和 sig 是有意区分的网络
    …
    $$ LAYOUT
    .SUBCKT BLOCK 1 2 3
    …

    由于 SIG 和 sig 应被视为不同的网络,用户需要在规则文件中指定 Source Case YES,以确保这些网络能够正确对比。

    若希望以区分大小写的方式执行 LVS 对比,需要将 LVS Compare Case 指定为 NO 以外的选项。同时,还应将 Layout Case 和 Source Case 设置为 YES;否则,输入网表的文本大小写将无法保留,大小写对比也无法达到预期效果。Layout Case 和 Source Case 语句本身不会触发区分大小写的对比。

    下表展示了五种可能有用的大小写敏感性语句组合。未展示的三种组合在大多数设计流程中通常没有实用价值。

    命名类型版图来源源网表来源关键说明
    实例引脚 内置器件:硬编码引脚名(如 MOS 管的 G/S/D);用户定义器件:DEVICE 语句指定的引脚名 SPICE 元素的引脚定义(如电阻的 POS/NEG) 仅处理有名称的引脚;缺失引脚会被过滤,电源地引脚缺失报警告,其他报错误
    网 / 实例名 网名:顶层单元中图形的文本值;实例名:不支持在 Mask LVS 中命名 网名:节点名;实例名:元素名(如 M1、R2) 用户定义名需满足特定格式(不包含 n$/i$、最多一个 /),系统生成名会被自动识别
    端口名 由 Port Layer Text/Polygon 语句指定 顶层子电路的外部节点;.GLOBAL 语句指定的节点(需 LVS Globals Are Ports YES) 端口名是重要的初始对应点来源
    电源地网络 满足 LVS Power Name/Ground Name 的网名或端口名 同上 支持多个电源 / 地网络;用于逻辑门识别、未使用器件过滤等
    3.7 区分大小写语句的不良影响

    启用大小写敏感性可能会导致一些不良副作用,例如丢失初始对应点(详情请参见第 385 页的「初始对应点」)。假设原始网表中有网络 a,版图中有网络 A:在不区分大小写的对比中,这些网络会形成初始对应点;但在启用大小写敏感性后,它们将不会形成初始对应点,从而导致性能下降。

    对于给定元件的文本大小写不统一的网表,启用大小写敏感性可能会在解析网表时导致错误。例如,假设原始网表中包含以下内容:

    .SUBCKT inst pos neg
    .ENDS
    …
    X3 vss vdd INST

    若设置 Source Case NO,子电路名称 inst 和 INST 可被正确解析;但若设置 Source Case YES,且原始网表中不存在名为 INST 的子电路,则会导致错误。网表中此类大小写差异在启用大小写敏感性时可能会引发问题。

    请注意,当将 Layout Case 或 Source Case 设置为 YES 时,Layout Primary 和 Source Primary 单元名称的处理会区分大小写。若规则文件与网表中的顶层单元名称存在大小写不匹配,将导致错误。

    四、内置器件类型与特殊处理

    Calibre 对内置器件提供特殊处理(如器件归约、引脚交换、逻辑门识别),前提是器件满足固定的引脚命名规则;若不满足,则视为用户定义器件,无特殊处理。

    1. 核心内置器件及引脚要求

    请注意,这些器件类型是相对于 LVS 电路对比子系统的内置类型。其中部分(但非全部)器件类型,对于由 Device 操作管辖的器件识别模块也是内置类型。

    表 2 中以上标 ¹ 标记的器件,是对于器件识别和 LVS 对比均为内置的类型。此类器件具有硬编码的引脚名称,无法被覆盖。

    对于器件识别非内置的器件,其引脚名称并非硬编码。表 13-2 中以上标 ² 标记的器件,若使用公认的引脚名称,在 LVS 对比中会表现为内置器件;但若指定了用户定义的引脚名称,则这些器件会被视为用户定义类型。此行为的详细描述请参见本节后续内容。

    为了执行以下章节中描述的特殊处理,Calibre nmLVS 要求内置器件必须遵循关于引脚数量和引脚名称的特定规则。对于不遵循这些规则的内置器件,将不会执行任何特殊处理。关于如何确定原始网表电路和版图中的引脚名称,请参见第 388 页的「实例引脚与引脚名称」章节。

    用户可通过 LVS Device Type 规范语句,将任意名称的器件指定为内置器件。此类器件必须遵循本节讨论的引脚命名规则,才能参与 LVS 流程(如归并、过滤、引脚交换等)。

    1. MOS 晶体管

    被识别为内置器件的普通 MOS 晶体管,会被 Calibre nmLVS 进行以下特殊处理:逻辑门识别、并联晶体管归并、分裂栅归并、未使用晶体管过滤、默认启用源 / 漏引脚交换、软衬底引脚处理,且引脚名称始终不区分大小写。

    为了表现为内置器件,MOS 晶体管(元件类型 MN、MP、ME、MD、M、LDDN、LDDP、LDDE、LDDD、LDD,以及通过 LVS Device Type 规范语句指定的等效类型)必须至少具有三个引脚—— 栅极(Gate)、源极(Source)和漏极(Drain),如表 13-3 所示。此外,它们可具有任意数量的附加引脚,名称不限。第四个引脚通常代表衬底连接,按照惯例命名为 B。规则文件的 Device 语句语法会强制遵循此惯例,但 LVS 电路对比模块不强制。可选引脚可代表一个或多个衬底连接,或用于其他任何目的。

    表 3  MOS 晶体管的必需引脚名称

    引脚引脚名称
    MOS 晶体管栅极 G 或 GATE
    MOS 晶体管源极 S 或 SOURCE
    MOS 晶体管漏极 D 或 DRAIN
    可选引脚 任意名称(第四个引脚若要通过 Device M* 或 LDD* 语法检查,必须为 B)

    LDD 器件是源极和漏极引脚不可交换的 MOS 晶体管。五种 LDD 晶体管类型 LDDN、LDDP、LDDE、LDDD 和 LDD 分别对应五种普通晶体管类型 MN、MP、ME、MD 和 M。LDD 是轻掺杂漏极(Lightly Doped Drain)的缩写。

    若 MOS LDD 晶体管遵循表 13-3 的引脚规则,会被进行以下处理:逻辑门识别、并联晶体管归并、分裂栅归并、未使用晶体管过滤、软衬底引脚处理,且引脚名称始终不区分大小写。

    若 MOS 器件 M、LDDN、LDDP、LDDE、LDDD 和 LDD 不具有表 13-3 所示的必需引脚名称,将不会得到任何特殊的 LVS 对比处理,会被视为用户定义类型。请注意,用户定义器件的引脚顺序取自规则文件中对应的 Device 语句。

    以下规范语句控制 Calibre nmLVS 用于 MOS 晶体管的特殊处理功能:

    • LVS Builtin Device Pin Swap
    • LVS Builtin MOS NRD_NRS
    • LVS Device Type
    • LVS Discard Pins By Device
    • LVS Ignore Device Pin
    • LVS Filter
    • LVS Filter Unused MOS
    • LVS Map Device
    • LVS MOS Swappable Properties
    • LVS Property Map
    • LVS Recognize Gates
    • LVS Reduce
    • LVS Reduce Parallel MOS
    • LVS Reduce Semi Series MOS
    • LVS Reduce Series MOS
    • LVS Reduce Split Gates
    • LVS Spice Rename Parameter
    • LVS Short Equivalent Nodes
    2. 电容器

    Calibre nmLVS 对内置电容器进行以下处理:串联电容器归并、并联电容器归并、按需启用引脚交换、软衬底引脚处理,且引脚名称始终不区分大小写。

    为了表现为内置器件,电容器(元件类型 C,以及通过 LVS Device Type 规范语句指定的等效类型)必须至少具有两个引脚,且符合表 4 的引脚名称。此外,它们可具有任意数量的附加引脚,名称不限。第三个引脚通常代表衬底连接,器件提取器默认将其命名为 SUB,但在 Device 语句中可使用任意名称。可选引脚可代表一个或多个衬底连接,或用于其他任何目的。

    若在 Device 语句中指定的电容器器件与表 4 所示不同,这些器件会被视为用户定义类型,不会得到 LVS 的任何特殊对比处理。用户定义器件的引脚顺序取自规则文件中对应的 Device 语句。

    表 4 电容器的必需引脚名称

    引脚引脚名称
    电容器正极引脚 POS 或 P
    电容器负极引脚 NEG 或 N
    可选引脚 任意名称

    以下规范语句控制 Calibre nmLVS 用于电容器的特殊处理功能:

    • LVS Device Type
    • LVS Discard Pins By Device
    • LVS Map Device
    • LVS Netlist Comment Coded Properties
    • LVS Property Map
    • LVS Reduce
    • LVS Reduce Parallel Capacitors
    • LVS Reduce Series Capacitors
    • LVS Spice Rename Parameter
    3. 电阻器

    Calibre nmLVS 对电阻器进行以下处理:串联电阻器归并、并联电阻器归并、默认启用引脚交换、软衬底引脚处理,且引脚名称始终不区分大小写。

    为了表现为内置器件,电阻器(元件类型 R,以及通过 LVS Device Type 规范语句指定的等效类型)必须至少具有两个引脚,且符合表 5 的引脚名称。此外,它们可具有任意数量的附加引脚,名称不限。第三个引脚通常代表衬底连接,器件提取器默认将其命名为 SUB,但在 Device 语句中可使用任意名称。可选引脚可代表一个或多个衬底连接,或用于其他任何目的。

    若在 Device 语句中指定的电阻器器件与表 5 所示不同,这些器件会被视为用户定义类型,不会得到 LVS 的任何特殊对比处理。用户定义器件的引脚顺序取自规则文件中对应的 Device 语句。

    表 5 电阻器的必需引脚名称

    引脚引脚名称
    电阻器正极引脚 POS 或 P
    电阻器负极引脚 NEG 或 N
    可选引脚 任意名称

    以下规范语句控制 Calibre nmLVS 用于电阻器的特殊处理功能:

    • LVS Builtin Device Pin Swap
    • LVS Device Type
    • LVS Discard Pins By Device
    • LVS Ignore Device Pin
    • LVS Map Device
    • LVS Property Map
    • LVS Reduce
    • LVS Reduce Parallel Resistors
    • LVS Reduce Series Resistors
    • LVS Spice Rename Parameter
    4. 二极管

    Calibre nmLVS 对二极管进行以下处理:并联二极管归并、软衬底引脚处理,且引脚名称始终不区分大小写。

    为了表现为内置器件,二极管(元件类型 D,以及通过 LVS Device Type 规范语句指定的等效类型)必须至少具有两个引脚,且符合表 6 的规则。此外,它们可具有任意数量的附加引脚,名称不限。第三个引脚通常代表衬底连接,器件提取器默认将其命名为 SUB,但在 Device 语句中可使用任意名称。可选引脚可代表一个或多个衬底连接,或用于其他任何目的。

    若在 Device 语句中指定的二极管器件与表 6 所示不同,这些器件会被视为用户定义类型,不会得到 LVS 的任何特殊对比处理。用户定义器件的引脚顺序取自规则文件中对应的 Device 语句。

    表 6 二极管的必需引脚名称

    引脚引脚名称
    二极管正极引脚 POS 或 P
    二极管负极引脚 NEG 或 N
    可选引脚 任意名称

    以下规范语句控制 Calibre nmLVS 用于二极管的特殊处理功能:

    • LVS Device Type
    • LVS Discard Pins By Device
    • LVS Filter
    • LVS Filter Unused Diodes
    • LVS Ignore Device Pin
    • LVS Map Device
    • LVS Property Map
    • LVS Reduce
    • LVS Reduce Parallel Diodes
    • LVS Spice Rename Parameter
    5. 双极晶体管

    Calibre nmLVS 对双极器件进行以下处理:并联双极晶体管归并、未使用双极晶体管过滤、软衬底引脚处理,且引脚名称始终不区分大小写。

    为了表现为内置器件,双极器件(元件类型 Q,以及通过 LVS Device Type 规范语句指定的等效类型)必须至少具有三个引脚—— 集电极(Collector)、基极(Base)和发射极(Emitter)。此外,它们可具有任意数量的附加引脚,名称不限。第四个引脚通常代表衬底连接,按照惯例命名为 S。规则文件的 Device 定义语法会强制遵循此惯例,但 LVS 电路对比模块不强制。可选引脚可代表一个或多个衬底连接,或用于其他任何目的。表 7 列出了引脚名称:

    表 7 双极晶体管的必需引脚名称

    引脚引脚名称
    Q 晶体管集电极 C
    Q 晶体管基极 B
    Q 晶体管发射极 E
    其他引脚 任意名称(第四个引脚若要通过 Device Q 语句语法检查,必须为 S)

    若在 Device 语句中指定的双极器件与表7 所示不同,这些器件会被视为用户定义类型,不会得到 LVS 的任何特殊对比处理。用户定义器件的引脚顺序取自规则文件中对应的 Device 语句。

    以下规范语句控制 Calibre nmLVS 用于双极晶体管的特殊处理功能:

    • LVS Device Type
    • LVS Discard Pins By Device
    • LVS Filter
    • LVS Filter Unused Bipolar
    • LVS Ignore Device Pin
    • LVS Map Device
    • LVS Netlist Comment Coded Properties
    • LVS Property Map
    • LVS Reduce
    • LVS Reduce Parallel Bipolar
    • LVS Spice Rename Parameter
    6. JFET 晶体管

    JFET 晶体管器件(元件类型 J)必须至少具有三个引脚—— 栅极、源极和漏极。此外,它们可具有任意数量的附加引脚,名称不限。可选引脚可代表一个或多个衬底连接,或用于其他任何目的。

    若 JFET 符合表 8 的规则,Calibre nmLVS 会对其进行以下处理:软衬底引脚处理;引脚名称始终不区分大小写。

    表 8 JFET 晶体管的公认引脚名称

    引脚引脚名称
    J 晶体管栅极 G 或 GATE
    J 晶体管源极 S 或 SOURCE
    J 晶体管漏极 D 或 DRAIN
    其他引脚 任意名称

    若在 Device 语句中指定的 J 器件与表 8 所示不同,这些器件会被视为用户定义类型,不会得到 LVS 的任何特殊对比处理。用户定义器件的引脚顺序取自规则文件中对应的 Device 语句。

    以下规范语句控制 Calibre nmLVS 用于 JFET 晶体管的特殊处理功能:

    • LVS Discard Pins By Device
    • LVS Filter
    • LVS Ignore Device Pin
    • LVS Map Device
    • LVS Property Map
    • LVS Reduce
    • LVS Spice Rename Parameter
    7. 电感器

    电感器件(元件类型 L)必须至少具有两个引脚—— 正极和负极。此外,它们可具有任意数量的附加引脚,名称不限。可选引脚可代表一个或多个衬底连接,或用于其他任何目的。

    若电感器符合表 9 的规则,Calibre nmLVS 会对其进行以下处理:软衬底引脚处理;引脚名称始终不区分大小写。

    表 9 电感器的公认引脚名称

    引脚引脚名称
    电感器正极引脚 POS 或 P
    电感器负极引脚 NEG 或 N
    可选引脚 任意名称

    若在 Device 语句中指定的 L 器件与表 9 所示不同,这些器件会被视为用户定义类型,不会得到 LVS 的任何特殊对比处理。用户定义器件的引脚顺序取自规则文件中对应的 Device 语句。

    以下规范语句控制 Calibre nmLVS 用于电感器的特殊处理功能:

    • LVS Discard Pins By Device
    • LVS Filter
    • LVS Ignore Device Pin
    • LVS Map Device
    • LVS Property Map
    • LVS Reduce
    • LVS Spice Rename Parameter
    8. 电压源

    电压源器件(元件类型 V)必须至少具有两个引脚—— 正极和负极。此外,它们可具有任意数量的附加引脚,名称不限。可选引脚可代表一个或多个衬底连接,或用于其他任何目的。

    若电压源符合表 10 的规则,Calibre nmLVS 会对其进行以下处理:软衬底引脚处理;引脚名称始终不区分大小写。

    表 10 电压源的公认引脚名称

    引脚引脚名称
    电压源正极引脚 POS 或 P
    电压源负极引脚 NEG 或 N
    可选引脚 任意名称

    若在 Device 语句中指定的 V 器件与表10 所示不同,这些器件会被视为用户定义类型,不会得到 LVS 的任何特殊对比处理。用户定义器件的引脚顺序取自规则文件中对应的 Device 语句。

    以下规范语句控制 Calibre nmLVS 用于电压源的特殊处理功能:

    • LVS Discard Pins By Device
    • LVS Filter
    • LVS Ignore Device Pin
    • LVS Map Device
    • LVS Property Map
    • LVS Reduce
    • LVS Spice Rename Parameter
    9. X+ 器件

    X+ 器件是子类型以字母 X 开头且至少包含一个其他字符的 MOS 晶体管。

    规则文件示例:

    DEVICE M(XP) gate poly sd sd well // X+ 器件
    DEVICE M(XABC) gate poly sd sd well // X+ 器件
    DEVICE M(X) gate poly sd sd well // 普通 MOS 器件

    SPICE 网表示例:

    M1 1 2 3 4 XP $ X+ 器件
    M2 1 2 3 4 XABC $ X+ 器件
    M3 1 2 3 4 X $ 普通 MOS 器件

    X+ 器件会阻止逻辑门的形成,并对分裂栅归并(参见第 418 页的「分裂栅归并」)产生限制作用。在其他方面,它们的行为与普通 MOS 晶体管一致;例如,它们会受 LVS Reduce Parallel MOS、LVS Reduce Series MOS 等语句的管辖。

    10. MS 和 MF 原理图器件

    MS 和 MF 是 LVS 支持的特殊器件类型。它们是三引脚原理图符号,代表四引脚 CMOS 晶体管。第四个衬底引脚由器件类型隐含定义:

    • MS 器件的衬底引脚隐含连接到源极;
    • MF 器件的衬底引脚浮空。

    Calibre nmLVS 会在内部为原理图中的所有 MS 实例添加一个虚拟衬底引脚,该引脚在内部连接到实例的源极网络,引脚名称为 B。

    Calibre nmLVS 会在内部为原理图中的所有 MF 实例添加一个虚拟衬底引脚,并为每个实例在内部创建一个虚拟网络以表示浮空的衬底节点,实例的衬底引脚在内部连接到该虚拟网络,引脚名称为 B。

    要触发此特殊处理,实例的 LVS 元件类型必须为 MN、MP、LDDN 或 LDDP,且实例必须恰好具有三个引脚,并使用第 395 页「内置器件类型」中指定的标准引脚名称。这意味着,必须使用除元件或 SPICE 模型以外的其他属性(建议选择 phy_comp 属性),为这些实例指定 LVS 元件类型。

    2. 电路元件匹配方法

    Calibre nmLVS 在两种元件匹配方法之间迭代:基于特征的哈希方法和追踪方法。

    1. 基于特征的方法

    Calibre nmLVS 根据网络和实例的类型及连接关系,为两个电路中的网络和实例分配特征(Signature)。然后,工具会根据以下因素对电路元件进行哈希处理:

    • 元件的特征
    • 邻近环境中元件的特征
    • 环境中是否存在先前匹配的元件

    环境规模会不断增大,直到找到至少一对唯一匹配的元件。工具会为所有找到的唯一匹配元件建立对应关系。

    2. 追踪方法

    Calibre nmLVS 将先前匹配的元件作为初始对应点,从这些对应点开始,逐步追踪两个电路。工具会在每一步为可唯一匹配的元件建立对应关系。追踪过程会持续进行,直到发生以下情况之一:

    • 所有元件均被匹配
    • 检测到阻止进一步追踪的差异
    • 检测到阻止进一步追踪的电路可互换部分

    Calibre nmLVS 会重复上述两种方法,直到所有元件均被匹配,或无法再匹配更多元件。在后一种情况下,工具会在内部尝试修正部分错误。若错误可被修正,则会匹配更多元件,并重复该过程。


    3. 电路对比结果

    Calibre nmLVS 将两个对比电路的元件(网络、实例、端口)分为以下三类:

    1. 正确(Correct)

    这些元件属于电路中实现正确的部分。它们是与相同元件唯一匹配的元件,且在另一个电路中始终具有对应的正确元件。

    2. 错误(Incorrect)

    这些元件确定存在错误。它们是在另一个电路中没有相同元件的元件。错误元件可能会与另一个电路中的不同元件匹配,或保持未匹配状态(工具会给出建议匹配)。尽管原始网表电路被视为参考,但从版图视角来看,其元件也可能被分类为错误。

    3. 未匹配(Unmatched)

    这些元件无法唯一匹配到另一个电路中的元件,也无法被分类为错误。这可能是由附近的错误元件导致的。

    Calibre nmLVS 区分错误元件和未匹配元件,以帮助用户分析错误。在大多数情况下,只需修复被分类为错误的元件,而忽略未匹配元件列表即可。当错误元件被修复后,未匹配元件在大多数情况下会被重新分类为正确。(更多信息请参见第 547 页的「LVS 报告」章节。)

    4. 歧义解决(Ambiguity Resolution)

    歧义通常出现在高度并行和对称的电路中。在这些电路中,部分电路可以互换而不影响连接关系,因此无法区分这些可互换部分。

    Calibre nmLVS 使用命名的网络、实例和端口作为初始对应点,以解决歧义情况。此外,工具还会使用元件子类型解决歧义,并通过检查 Trace Property 规范语句追踪的属性来解决歧义。后一种技术仅适用于每组包含不超过一定数量元件的歧义元件组,该数量由规则文件中的 LVS Property Resolution Maximum 规范语句指定,默认值为 32。

    Calibre nmLVS 会为哈希电路元件所用的环境规模设置最大限制。环境规模由多种因素决定,包括电路大小。若超过环境限制且无法找到唯一匹配,LVS 会进入歧义解决阶段。在该阶段,工具会对无法通过其他方式解决的部分元件进行任意匹配。工具仅允许进行最少量的任意匹配,任意匹配的元件会在 LVS 报告中列出。若任意匹配不正确,Calibre nmLVS 会在后续阶段产生差异。在这种情况下,用户应为任意匹配的元件或其附近的其他元件分配版图文本名称。

    为避免任意匹配,用户应为电路可互换部分的网络命名。可为每个可互换部分命名一个元件。对于对称电路的外部端口,应始终进行命名。

    器件类型组件类型必需引脚名特殊处理
    MOS 管(含 LDD 型) MN/MP/ME/MD/M/LDDN/LDDP G/GATE、S/SOURCE、D/DRAIN 并行 / 串联归约、分裂栅归约、S/D 引脚交换、逻辑门识别、未使用器件过滤
    电阻 R POS/P、NEG/N 并行 / 串联归约、引脚交换
    电容 C POS/P、NEG/N 并行 / 串联归约、可选引脚交换
    二极管 D POS/P、NEG/N 并行归约
    双极晶体管 Q C(集电极)、B(基极)、E(发射极) 并行归约、未使用器件过滤

    七、关键注意事项

  • 默认配置优先:除非有特殊需求,否则无需修改 LVS 的默认配置,仅需指定报告、电源地网络即可;

  • 初始对应点的重要性:顶层端口的命名是最有效的初始对应点,能大幅提升对比效率;

  • 内置器件的引脚规则:严格遵循内置器件的引脚命名要求,才能获得归约、引脚交换等特殊处理,减少差异报告的数量;

  • 大小写敏感的副作用:开启前需确保网表中名称的大小写一致性,避免丢失初始对应点或解析错误。

  • 赞(0)
    未经允许不得转载:171主机测评 » Calibre LVS Circuit Comparison(1)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址