版图与电路图验证(Layout Versus Schematic, LVS)是集成电路(IC)设计流程中至关重要的一步,其目的是确保物理版图在器件、连接关系以及可选的器件参数方面精确地反映了原始电路图(网表)的设计意图1。西门子 EDA 的Calibre® nmLVS™ 工具是业界领先的 LVS 解决方案,通过比较版图和电路图中的器件及连接性,在完整的 IC 验证工具套件中扮演着关键角色 2。
Calibre nmLVS 通过对全芯片的实际器件几何形状进行测量,实现精确的电路验证,从而提取出精确的器件参数。这些参数可用于反标到源电路图,并为后续的仿真提供全面的数据2。该工具不仅能进行器件和连接关系的比较,还能在用户定义的容差范围内比较器件属性 1。
控制Calibre LVS 操作的核心是标准验证规则格式(Standard Verification Rule Format, SVRF)文件,通常被称为规则文件、规则集或命令文件 3。这些文件包含了一系列的规范声明(Specification Statements)和操作(Operations),用于指导Calibre 工具的功能 4。精确的 LVS 对于防止芯片制造缺陷、确保电路功能和可靠性、以及最终影响产品良率至关重要2。
SVRF文件的这种双重结构——规范声明和操作——从根本上决定了LVS 规则文件的组织方式和执行流程。规范声明负责建立验证环境、定义输入输出以及设定全局参数;而操作则是在这些设定基础上执行的实际几何运算和逻辑判断,用以完成版图提取和电路图比较。如果规范声明不正确或不完整,后续操作可能无法 正确执行,甚至产生无意义的验证结果。同样,LVS 的准确性直接依赖于 SVRF 规则的精确性和正确性。规则文件中的任何含糊不清或错误都可能导致 LVS 结果失真,从而可能使得有缺陷的设计通过验证,或者使正确的设计反而验证失败 1。因此,用于定义层、连接关系和器件的SVRF 命令是保证 LVS 精确性的核心。
理解SVRF 的基本语法和 LVS 规则文件的典型结构对于编写和维护 LVS 规则至关重要。
SVRF语句通常遵循以下语法约定:
●参数顺序:对于某些命令,参数的顺序至关重要。例如,在双层与(AND)操作中,层的顺序会影响连接性信息的传递4。
●大小写敏感性:大多数 SVRF 语句的关键字不区分大小写,但单元名称、文件名以及可能的网表名等用户自定义标识符通常是区分大小写的。这是一个需要用户特别注意的细节。
●文字关键字与可变参数:语句使用文字关键字(如 AND, LAYER)和可变参数(用户定义的值或名称)。
●空白字符:Calibre 能够识别预留符号,无论其周围是否有空白字符 5。然而,空白字符主要用于分隔关键字和参数。
●预留关键字:规范声明、操作和二级关键字的名称是预留的,不能用作变量名、单元名、规则检查(RuleCheck)名或层名 4。
●预留符号:Calibre 识别特定的符号,包括 //, @, /*, */, {, }, ", ', (, ), [, ], <, ==, >, <=, >=,!=, -, +, *, /,!, %, =, &&, ||, ::, ,,? 4。
SVRF支持多种注释方式:
●// (C++ 风格):从 // 开始到该行结束均为注释。
●/*... */ (C 风格):可以跨越多行,但不可嵌套。
●@ (DRC 用户注释):从 @ 开始到该行结束。虽然主要用于DRC,但在 LVS 上下文中,某些检查或在 RVE (Results Viewing Environment) 中查看时,这些注释也可能可见。
变量可以在规则文件中定义和使用:
●规则文件内部定义:VARIABLE 变量名 值
○例如:VARIABLE pspace 3.0
●通过环境变量定义:VARIABLE 变量名 ENVIRONMENT
○例如:VARIABLE pspace ENVIRONMENT (此时需要在执行 Calibre前设置相应的环境变量,如 setenv pspace 3.0)
INCLUDE文件名 语句允许将另一个规则文件的全部内容插入到当前文件中。这对于规则文件的模块化管理非常有用,例如,工艺厂商(Foundry)提供的基础规则可以通过 INCLUDE 语句被用户规则文件调用6。现代 PDK (Process Design Kit) 的规则集管理广泛采用此机制,它允许Foundry提供一套基础的、经过验证的“黄金”规则,用户可以在不修改核心规则的情况下,通过创建自己的规则文件来包含这些基础规则,并添加或覆盖特定项目的规则。这种分离是业界推荐的最佳实践。
规则文件在使用前必须经过编译:
●当从命令行调用 Calibre 或在图形用户界面(GUI)中加载规则文件时,会自动进行编译。
●编译过程包括检查语法 正确性、特定操作的层使用是否正确,并解析所有语句和操作之间的依赖关系。 规则文件的编译顺序和依赖关系解析意味着 SVRF 处理器在执行前会构建一个完整的规则模型。这表明在一定程度上可能支持前向引用,但循环依赖可能会被标记为错误。
一个典型的 Calibre LVS 规则文件通常包含以下部分(基于 4):
1.可选的文件头注释,提供规则文件的基本信息。
2.TITLE声明,为报告提供标题。
3.INCLUDE语句,用于包含通用的或 Foundry 提供的规则模块。
4.核心 LVS 规范声明(详见下一节)。
5.LAYER定义语句,用于定义原始(drawn)层和派生(derived)层。
6.连接性建立语句,如 CONNECT 和 SCONNECT。
7.端口(Port)定义语句。
8.DEVICE器件识别语句。
9.LVS控制和报告相关语句。
SVRF语法的某些特性,例如对名称的大小写敏感性,是用户常遇到的问题来源,清晰地记录这些特性至关重要。例如,4中提到“大多数 SVRF 语句不区分大小写,但单元名、文件名和可能的网表名除外”。这意味着用户为层名键入 Metal1 而不是 metal1 可能仍然有效,但对单元名使用 MyCell 而不是 mycell 则很可能导致问题。这种不一致性需要特别指出。
核心LVS 规范声明用于定义 LVS 运行的基本输入、输出和全局设置。
表 1: 核心 LVS 规范声明
命令 | 目的 | 关键参数和语法示例 | 典型用法/示例 | 主要参考 |
LAYOUT SYSTEM type | 指定版图数据库的格式。 | type: GDSII, OASIS, LEFDEF, OPENACCESS, SPICE 等。必需,且仅出现一次。 | LAYOUT SYSTEM GDSII | 4 |
LAYOUT PATH "filename" [...] | 指定一个或多个版图数据库文件的路径。 | filename: 版图文件名。必需,至少出现一次。 | LAYOUT PATH "design.gds" | 4 |
`LAYOUT PRIMARY "cellname" | *` | 指定版图中的顶层单元名称。 | cellname: 顶层单元名。* 可匹配任意主单元,但若存在多个主单元,则匹配遇到的第一个 8。GDSII, OASIS, OpenAccess 数据库必需。 | LAYOUT PRIMARY "TOP_CELL" |
`LAYOUT CASE {YES | NO}` | 控制读取版图数据库时的大小写敏感性(针对单元名、文本串等)。 | YES: 区分大小写 (默认)。 NO: 不区分大小写。 | LAYOUT CASE YES 9 |
SOURCE SYSTEM type | 指定源网表文件的格式。 | type: SPICE, VERILOG, CNET, EDIF 等。必需,且仅出现一次。 | SOURCE SYSTEM SPICE | 4 |
SOURCE PATH "filename" | 指定源网表文件的路径。 | filename: 网表文件名。只能使用一次。 | SOURCE PATH "design.src.net" | 4 |
SOURCE PRIMARY "cellname" | 指定源网表中的顶层单元或子电路名称。 | cellname: 顶层单元名。 | SOURCE PRIMARY "TOP_SUBCKT" | 4 |
`SOURCE CASE {YES | NO}` | 控制读取源网表时的大小写敏感性。 | YES: 区分大小写 (默认)。 NO: 不区分大小写。 | SOURCE CASE YES 9 |
LVS REPORT "filename" | 指定 LVS 报告文件的名称。 | filename: 报告文件名。LVS 运行时必需。 | LVS REPORT "lvs_results/design.lvs.report" 7 | 4 |
MASK SVDB DIRECTORY "dir_path" [options] | 指定标准验证数据库 (SVDB) 的目录及生成的 LVS 文件类型。 | dir_path: 目录路径。 options: QUERY (RVE 必需), XRC, CCI, IXF, NXF, PHDB, PINLOC, NETLIST 等。 | MASK SVDB DIRECTORY svdb QUERY 10 | 4 |
PRECISION value | 定义数据库单位精度。 | value: 整数值,代表每用户单位对应的数据库单位数。 | PRECISION 1000 7 | 4 |
RESOLUTION value | 定义数据库单位分辨率。 | value: 整数值,代表数据库的最小可分辨单位。 | RESOLUTION 1 (通常与 PRECISION 结合使用,例如 PRECISION 1000 RESOLUTION 1) 7 | 4 |
LAYOUT PRIMARY 和SOURCE PRIMARY 语句是 LVS 比较的起点。这些声明中的不匹配或不正确的指定将从根本上导致比较的失败。虽然 * 通配符为 LAYOUT PRIMARY 提供了一定的便利性,特别是在批处理运行中,但如8所述,在包含多个顶层单元的 GDS 文件中,它仅匹配遇到的第一个单元记录,这对于复杂设计或包含多个无关设计的GDS 文件来说是一个重要的警示。
版图、电路图和比较规则中的大小写敏感性(由 LAYOUT CASE, SOURCE CASE, LVS COMPARE CASE 等命令控制)是 LVS 差异的一个常见来源。在整个流程中保持一致的大小写处理至关重要。例如,如果电路图使用 "VDD" 而版图使用 "vdd",并且比较时启用了大小写敏感,除非进行了名称映射或调整了规则,否则这将导致不匹配。Foundry 通常会在其 PDK 中规定特定的大小写处理方式。
MASK SVDB DIRECTORY 命令及其 QUERY 选项不仅是一个输出设置,更是利用 Calibre RVE 进行交互式调试的前提条件4。没有正确生成的包含 QUERY 数据的 SVDB,用户将失去强大的交互式调试能力,只能依赖文本报告,这将大大增加错误定位的难度。因此,QUERY 选项已成为现代 LVS 流程中的事实标准。
在LVS 规则文件中,必须首先定义版图中的物理层,然后通过几何运算派生出用于器件识别和连接性分析的逻辑层。
●LAYER layer_name layer_number:此命令为 GDSII/OASIS 中的层号赋予一个易于理解的名称 4。这是所有后续层操作的基础。
○示例:layer M1 40 (将 GDS 层号 40 定义为 M1)
○示例 (来自 FreePDK45 7):layer active 1,layer poly 9
●LAYER MAP original_layer_number new_layer_name:此命令允许将特定 GDS 层号和数据类型(DATATYPE)映射为一个新的 SVRF 层 11。这对于处理具有复杂层结构或特殊数据类型的工艺非常有用。
○示例 (来自 11):LAYER MAP 19 TEXTTYPE == 32 M3_PORT_TEXT (将GDS 层 19、数据类型 32 上的文本对象映射到 SVRF 层 M3_PORT_TEXT)
布尔运算是 LVS 规则中创建器件识别层(如晶体管的栅极、源漏区、注入区等)的核心操作 4。
●AND layer1 layer2 [constraint]:取 layer1 和 layer2 的交集。在双层 AND 操作中,层的顺序会影响网络 ID 的传递 4。
○示例 (来自 FreePDK45 7):pdif = active and pimplant (P扩散区 = 有源区 与 P注入 交叠部分)
●OR layer1 layer2:取layer1 和 layer2 的并集。
○示例:metal_stack = M1 or M2
●NOT layer1 [layer2...]:从 layer1 中减去与 layer2 (及后续层) 重叠的部分。
○示例:field_ox = ALL_LAYOUT not active (场氧 = 所有版图区域 减去 有源区)
●XOR layer1 layer2:取layer1 和 layer2 的异或部分 (即,存在于其中一层但不同时存在于两层中的区域)。
LVS中器件识别的准确性直接取决于使用布尔运算和尺寸调整操作精确定义派生层。例如,MOSFET 器件由多个物理层的交集定义(如多晶硅层跨有源区,并在特定的注入区内)。7中的 ngate1 = poly and ndif 就是一个典型例子。如果 poly 或 ndif 层的定义不正确(例如,GDS 层号错误,或应用了不正确的尺寸调整),那么 ngate1 就会出错,进而导致 NMOS 晶体管被错误识别,或者其 W/L 参数计算错误。
此外,双层布尔运算(尤其是 AND 和 NOT)中层的顺序可能会影响网络 ID 的传播 4。虽然这在 DRC 的连接性检查中可能更为关键,但如果派生层用于 CONNECT 语句,LVS 规则编写者也应意识到这一细微差别。例如,4指出:“由双层 AND 操作派生的层接收layer1 的网络 ID。” 如果此派生层随后用于 CONNECT 语句,则继承的网络 ID 可能会影响连接性的解析方式。
●SIZE layer_name BY value [direction_options]:将指定层上的多边形扩大(正 value)或缩小(负 value)指定的尺寸 12。此操作对于调整层以适应器件识别(例如,创建栅极扩展区)或考虑工艺偏差至关重要。
○示例:gate_ext = SIZE poly BY 0.1 (将 poly 层扩大 0.1 用户单位)
○SIZE操作不仅用于几何修改,对于模拟工艺效应(如过刻蚀/欠刻蚀)或创建鲁棒器件终端识别所需的特定几何条件也至关重要。例如,在 LVS 中,可以对扩散层进行轻微的尺寸放大,以确保与接触层(contact)的可靠重叠,从而稳健地定义终端;或者对多晶硅层进行尺寸调整,以定义一个考虑到光刻效应的有效沟道长度。
这些操作虽然不常直接用于 LVS 器件构建,但可用于条件检查或复杂的层派生。
●INSIDE layer1 layer2:选择 layer1 中完全位于 layer2 内部的多边形 13。
●OUTSIDE layer1 layer2:选择 layer1 中完全位于 layer2 外部的多边形 13。
●INSIDE EDGE layer1 layer2:选择 layer1 的边中,完全位于 layer2 内部的部分 13。
●OUTSIDE EDGE layer1 layer2:选择 layer1 的边中,完全位于 layer2 外部的部分 13。
连接性命令用于定义版图中不同导电层之间如何形成电气网络。
●CONNECT layer1... layerN:此命令定义指定层上邻接或重叠的多边形之间的电气连接4。BY layerC 子句指定了一个相互连接层,例如用于连接 metal1 和 metal2 的通孔(via)层。
○示例 (来自 FreePDK45 7):connect metal1 metal2 by via1
○示例 (来自 14):connect met3 met2 by via2
○15提到,在 PEX GROUND LAYER(用于寄生参数提取)中指定的层也应出现在CONNECT 语句中,这表明 CONNECT 建立了基础的电气网络。
CONNECT语句是 LVS 中网络提取的基石。整个 LVS 比较的准确性取决于是否正确定义了所有导电层和通孔如何连接在一起。LVS 比较的是网表,而网表是器件及其互连的图形表示。CONNECT 语句正是告诉 Calibre 如何从几何图形构建“版图网表”的。如果缺少某个 CONNECT 语句(例如,某个通孔层的连接定义),网络将被断开,导致大量错误的开路(open)错误。如果进行了不正确的 CONNECT 定义,则可能导致错误的短路(short)错误。
CONNECT命令中的 BY layerC 子句对于通孔连接至关重要。它明确定义了“桥接”层。没有它,CONNECT metal1 via1 metal2 可能意味着这三层必须同时重叠,这与通孔的典型工作方式不符。connect metal1 metal2 by via1 的例子清楚地表明了这一点:metal1连接到 via1,via1 连接到 metal2,BY via1 使via1 成为中介。
软连接通常用于处理高电阻率层(如阱或衬底)或有特殊连接需求的场景。
●SCONNECT upper_layer lower_layer [LINK name]
●SCONNECT upper_layer lower_layer...lower_layerN BY contact_layer [LINK name]:此命令指定从上层到下层的单向连接 4。
○示例:SCONNECT NWELL VDD_PAD BY NWCONT (N阱通过阱接触层软连接到 VDD 焊盘层)
●LVS SOFTCHK lower_layer {CONTACT|UPPER|LOWER} [ALL]:检测并报告由 SCONNECT 操作产生的冲突连接 4。
●LVS ABORT ON SOFTCHK {YES|NO}:决定如果发现软连接冲突,LVS 处理是否应停止。默认通常是 YES 4。
SCONNECT和LVS SOFTCHK 是处理非理想连接的专门工具,这些连接通常与衬底或阱的连接有关,其连接路径可能具有电阻性或特定的电流流动假设。滥用这些命令或忽略 LVS SOFTCHK 警告可能会掩盖真实的连接问题或产生虚假的连接问题。例如,P型衬底可能通过 SCONNECT 连接到 VSS,但如果另一个 SCONNECT 无意中将其连接到不同的电位,LVS SOFTCHK 应该会标记这个问题。
端口(Port)是电路模块与外部连接的接口,在 LVS 中,精确的端口定义对于顶层连接和模块级验证至关重要。
Calibre LVS 可以通过物理图形或文本标签来识别端口。
●PORT LAYER POLYGON layer1 [layerN...]:将指定层上的多边形(物理图形)视为端口区域4。
○示例:PORT LAYER POLYGON M_TOP PAD_SHAPE (将顶层金属上的PAD_SHAPE 层图形定义为端口)
●PORT LAYER TEXT layer_name [layer_name2...]:将指定层上的文本对象(标签)视为端口标识4。这些文本标签定义了端口的名称和逻辑位置。
○示例 (来自 FreePDK45 7):PORT LAYER TEXT metal1 metal2 metal3 metal4 metal5 metal6 metal7 metal8 metal9 metal10
文本层不仅用于端口,也用于标记内部网络。对于端口而言,文本标签必须与其对应的导电层相关联。
●TEXT LAYER layer_name [layer_name2... ]:定义包含用于标记网络和端口的文本对象的层7。ATTACH 关键字至关重要,它将文本标签与一个或多个导电层(layer_to_attach_to)关联起来。
○示例 (来自 FreePDK45 7):TEXT LAYER metal1 metal2 metal3 metal4 metal5 metal6 metal7 metal8 metal9 metal10 (这里假设这些金属层本身也承载文本,或者有单独的文本层需要通过 ATTACH 关联)
○示例 (来自 14):TEXT LAYER 161 ATTACH 161 met1 (将层号 161 上的文本附加到 met1 层上)
○11和16讨论了 TEXT LAYER 及其 ATTACH 对于文本参与连接性的重要性。如16所述:“当一个标签存在于层 137 上,并且其下方有 metal1 层的多边形时,Calibre 会将此标签附加到该多边形上。”
正确的端口定义对于 LVS 至关重要。端口是版图和电路图之间的主要对应点 17。不匹配的端口通常是调试 LVS 时的首要问题。17指出:“端口为 Calibre 提供了连接性的起点。首先调试任何不匹配的端口非常重要,尤其是电源/地端口。” 如果端口在名称、数量或位置(如果检查位置)上不匹配,LVS 工具将无法可靠地比较连接到这些端口的内部电路。
基于文本的端口定义(PORT LAYER TEXT, TEXT LAYER)非常普遍。ATTACH 机制(或通过 LABEL ORDER 等命令实现的隐式附加,尽管 ATTACH 更为明确)对于将逻辑端口名称(文本)链接到物理导体至关重要。未附加的标签是 LVS 中常见的警告 16。一个悬浮在空中的文本标签"VDD" 对 LVS 毫无意义;它必须与实际承载 VDD 网络的金属图形相关联。
●LVS IGNORE PORTS {YES|NO}:指定 LVS 在比较过程中是否应忽略源电路图和版图的端口 4。默认值为 NO。
○示例 (来自 FreePDK45 7):LVS IGNORE PORTS no
●LVS CHECK PORT NAMES {NO|YES}:指定工具是否应比较匹配端口的名称4。默认值为 YES。
○若设为 NO,则只比较端口数量和连接,不比较名称。
LVS IGNORE PORTS NO 和LVS CHECK PORT NAMES YES (默认设置) 强制执行严格的端口匹配,这通常是稳健验证所期望的。更改这些设置可能会掩盖真实的设计错误。例如,如果电路图中的端口 "ENABLE" 对应于版图中的 "ENBL",LVS CHECK PORT NAMES YES 会标记此问题,这是一个实际存在的问题。禁用此检查则会隐藏该问题。
●TEXT DEPTH PRIMARY | ALL | integer:控制在层次结构中搜索或应用文本对象的深度14。
○PRIMARY:仅在顶层单元。
○ALL:在所有层级。
○integer:指定层级深度。
○示例 (来自 14):TEXT DEPTH PRIMARY
器件识别是将版图中的几何图形转换为电路元器件(如晶体管、电阻、电容等)的过程,并提取其相关参数用于 LVS 比较。
●DEVICE Mname device_type gate_layer source_drain_layer [bulk_layer][model_name][property_assignments]:此核心命令定义了如何从版图层识别特定类型的器件 5。
○Mname:器件名称前缀 (例如,MOSFET 通常用 M)。
○device_type:器件类型,如 N (NMOS), P (PMOS), R (电阻), C (电容), D (二极管)。
○gate_layer, source_drain_layer, bulk_layer: 之前定义的原始层或派生层,用于构成器件。
○model_name:可选,用于指定 SPICE 模型名称。
○property_assignments:可选,用于直接定义或计算器件属性。
○19明确指出:“在 Calibre LVS 中……器件识别命令以 DEVICE 语句开始。”并提到了使用派生层(如 g_poly = poly and active)作为 DEVICE 语句的输入。
○示例 (NMOS):DEVICE MN N poly_gate_n active_n nwell NMOS W=w L=l (其中 poly_gate_n, active_n, nwell 是派生层, w 和 l 是待计算的属性)。
DEVICE语句是 LVS 提取的核心,它将原始的版图多边形转换为可识别的电路组件。其准确性至关重要,所使用的层(例如 gate_layer, sd_layer)必须经过精心派生。LVS 旨在比较电路图组件与版图组件。电路图已经包含组件(如 M1, R1, C1)。DEVICE 语句的作用就是在版图中“找到”这些 M1, R1, C1。如果 DEVICE MN ngate ndiff nwell NMOS W=... L=... 的定义有缺陷(例如,ngate 层错误),那么 NMOS 器件将无法被找到,或者其 W/L 参数将不正确,从而导致不匹配。
●PROPERTY property_name property_type:定义要为器件提取的属性及其类型(如长度、面积、用户定义等)5。
○示例:PROPERTY L LENGTH,PROPERTY W LENGTH
●TRACE PROPERTY device_model_name(spice_property_name) layout_property_name [tolerance]:指示 Calibre 跟踪(提取并比较)指定的器件属性 20。spice_property_name 是电路图中的属性名,layout_property_name 是版图中通过 DEVICE 语句或 LVS PARAMETER 计算得到的属性名。
○示例:TRACE PROPERTY NMOS(W) W_LAYOUT,TRACE PROPERTY NMOS(L) L_LAYOUT
○21提到可以在 TRACE PROPERTY 中使用容差因子。
●LVS COMPONENT TYPE PROPERTY property_name_for_element:将版图中器件的一个属性(该属性的值通常是 SPICE 元件类型,如 'M', 'R', 'C')映射到 SPICE 网表中的元件类型声明 7。
○示例 (来自 FreePDK45 7):LVS COMPONENT TYPE PROPERTY element (假设器件上有一个名为 element 的属性,其值为 'M')
●LVS COMPONENT SUBTYPE PROPERTY property_name_for_model:将版图中器件的一个属性(该属性的值通常是SPICE 模型名)映射到 SPICE 网表中的模型名称 7。
○示例 (来自 FreePDK45 7):LVS COMPONENT SUBTYPE PROPERTY model (假设器件上有一个名为 model 的属性,其值为 'NMOS_VTG')
LVS COMPONENT TYPE PROPERTY 和 LVS COMPONENT SUBTYPE PROPERTY 对于生成与源网表(通常是SPICE 格式)语法兼容的版图网表至关重要。它们弥合了通用器件识别与特定网表约定之间的差距。例如,Calibre内部可能将器件识别为 "mosfet_type_N"。但是 SPICE 网表需要 Minstance D G S B model PARAMS 这样的格式。通过这两个命令,可以确保提取的网表使用正确的 'M' 前缀和模型名称。
●LVS PARAMETER param_name "value_expression":允许用户基于其他已提取的属性或几何测量值,通过表达式计算器件参数 2。这为处理复杂器件特性或非标准参数计算提供了极大的灵活性,是先进工艺或定制器件的关键。
○2强调:“凭借创建用户自定义参数进行提取的能力,nmLVS 是‘面向未来的’。”
○示例:LVS PARAMETER WEFF "W - 2*delta_W_process_bias" (计算有效宽度,考虑工艺偏差)
●LVS PROPERTY MAP property_name layout_property_name source_property_name:当版图属性和源网表属性名称不同但意义相同时,用于映射它们 4。
○示例:LVS PROPERTY MAP L L_drawn L_schematic
表 2: 常用 LVS 器件识别与属性命令
命令 | 目的 | 关键参数/语法片段 | 示例用法 (概念性) | 主要参考 |
DEVICE | 从版图层识别器件。 | DEVICE M_prefix type gate_lay sd_lay [bulk_lay][model][prop=val...] | DEVICE MN N poly_g active_d n_well NMOS W=w L=l | 4 |
PROPERTY | 定义器件属性及其类型。 | PROPERTY prop_name type | PROPERTY W LENGTH,PROPERTY R RESISTANCE | 4 |
LVS COMPONENT TYPE PROPERTY | 将器件的某个属性值映射为 SPICE 元件类型 (如 M, R, C)。 | LVS COMPONENT TYPE PROPERTY prop_element_type | LVS COMPONENT TYPE PROPERTY element (其中 element 属性值为 "M") | 7 |
LVS COMPONENT SUBTYPE PROPERTY | 将器件的某个属性值映射为 SPICE 模型名称。 | LVS COMPONENT SUBTYPE PROPERTY prop_model_name | LVS COMPONENT SUBTYPE PROPERTY model (其中 model 属性值为 "nmos_ll") | 7 |
LVS PARAMETER | 计算用户定义的器件参数。 | LVS PARAMETER new_param "expression" | LVS PARAMETER AREA "W * L" | 2 |
TRACE PROPERTY | 指示 LVS 比较特定的器件属性。 | TRACE PROPERTY model_name(spice_prop) layout_prop [tol] | TRACE PROPERTY NMOS(W) W_ext | 20 |
这些命令用于控制 LVS 在比较版图提取网表和源网表时的行为,例如处理大小写、简化器件、识别逻辑门等。
●LVS COMPARE CASE {YES|NO}:控制在比较阶段对器件名称、类型、子类型和属性值的大小写敏感性4。
○YES (默认):区分大小写。
○NAMES:只对名称区分大小写。
○示例 (来自 9):LVS COMPARE CASE NAMES
这些命令通过将多个简单器件组合成一个等效器件来简化比较过程,这对于包含大量串并联器件的电路(常见于功率级或定制模拟电路)可以显著提高 LVS 运行速度并使报告更清晰。然而,如果单元器件之一存在故障,简化可能会掩盖确切的位置。
●LVS REDUCE PARALLEL MOS {YES|NO}:合并并联的 MOS 晶体管 4。
○示例 (来自 FreePDK45 7):LVS REDUCE PARALLEL MOS yes
●LVS REDUCE SERIES MOS {YES|NO}:合并串联的 MOS 晶体管 4。
○示例 (来自 FreePDK45 7):LVS REDUCE SERIES MOS yes
●LVS REDUCE SEMI SERIES MOS {YES|NO}:合并半串联(semi-series)连接的 MOS 晶体管 4。
○示例 (来自 FreePDK45 7):LVS REDUCE SEMI SERIES MOS yes
●类似的 LVS REDUCE 命令也存在于电阻和电容。
●LVS RECOGNIZE GATES {ALL|NONE|schematic_driven_option}:使能从晶体管配置中识别逻辑门(如与门、或门等)4。
○ALL:尝试识别所有可能的逻辑门。
○NONE:禁止逻辑门识别。
○示例 (来自 FreePDK45 7):LVS RECOGNIZE GATES all
○LVS RECOGNIZE GATES ALL 对于数字模块可能非常有效,但如果在模拟或混合信号设计中不通过 HCELL 或 LVS BOX 仔细管理,可能会引入复杂性或意外行为,因为它改变了比较的“抽象级别”。如果 LVS 将版图和电路图都识别为一个与非门,它会将它们作为与非门进行比较,这很高效。但是,如果电路图设计了一个定制的晶体管级结构,而这个结构恰好看起来像一个与非门,那么 LVS RECOGNIZE GATES 可能会执行门级匹配,除非同时也仔细比较属性,否则可能会忽略细微的晶体管级差异。
●LVS FILTER UNUSED OPTION option:控制如何处理和报告未使用的器件(即,存在于一个网表中但不在另一个网表中,或未连接的器件)4。
○示例 (来自 FreePDK45 7):LVS FILTER UNUSED MOS no (此处的 MOS no 可能是特定于该规则文件的简化写法,标准SVRF中 LVS FILTER UNUSED OPTION 后跟如 NOFILTER 等选项,或者使用 LVS FILTER device_type...格式)。
●LVS FILTER device_type [(subtype)][property_name [(spice_value)][filter_constraint]] {SHORT | OPEN}:更细致地过滤特定类型和属性的器件 20。
○示例 (来自 20):LVS FILTER mp w > 3 < 5 OPEN LAYOUT MASK (过滤版图中 w 属性值在 3 和 5 之间的 mp 型器件,使其连接的网断开)
○LVS FILTER UNUSED OPTION 对于管理由未完成设计、包含未使用内部组件的 IP 模块或有意差异(例如,仅用于版图的测试结构)引起的差异至关重要。过滤的选择(以及是从源、版图还是两者都过滤)直接影响哪些内容被视为“错误”。
●LVS MAP DEVICE layout_device_name source_device_name [layout_subtype source_subtype]:当版图和源网表中的器件类型或模型名称不同但功能等效时,用于映射它们4。
○示例:LVS MAP DEVICE RESISTOR_LAYOUT R_SCHEMATIC
●LVS COMPARE SEED [options]:可能用于通过识别除端口之外的初始匹配点来指导比较过程4。此命令的详细用法在提供的材料中信息较少。
●LVS JOIN NETS layout_net_name source_net_name:在比较之前合并版图或源网表中指定的逻辑上等效但名称不同的网络4。此命令的详细用法在提供的材料中信息较少。
这些命令用于配置 LVS 报告的内容、详细程度以及 SVDB (Standard Verification Database) 的生成,SVDB 对于使用 RVE (Results Viewing Environment) 进行图形化调试至关重要。
●LVS REPORT OPTION option_char1 [option_char2...]:控制 LVS 报告的详细程度和内容 4。
○S:报告 SCONNECT(软连接)冲突。
○V:报告虚拟连接。
○F或FX:包含修复建议 (Fix Suggestions) 10。
○N:(来自 FreePDK45 示例 7) 可能控制网表/名称报告的细节,具体含义需查阅 SVRF 手册。
○其他选项可能控制属性错误、未匹配引脚等的报告。
○LVS REPORT OPTION 是一个强大的工具,可以根据验证阶段或正在调试的错误类型定制 LVS 报告。使用 FX 可以显著帮助新手用户或加快常见错误的修复速度。
表 3: 常用 LVS REPORT OPTION 标志
选项标志 | 描述 |
A | 报告所有不匹配的属性 (All property errors)。 |
B | 报告所有黑盒单元 (Black boxed cells)。 |
E | 报告提取错误 (Extraction errors)。 |
F 或 FX | 包含修复建议 (Fix suggestions)。 |
I | 报告被忽略的实例 (Ignored instances)。 |
N | 控制网络名称和编号的报告方式 (Net name/number reporting)。 |
P | 报告被过滤的端口 (Filtered ports)。 |
S | 报告软连接冲突 (Soft connect conflicts)。 |
U | 报告未使用的器件/网络 (Unused devices/nets)。 |
V | 报告虚拟连接 (Virtual connections)。 |
X | 报告交叉引用信息 (Cross-reference information)。 |
注意: 上述列表并非详尽无遗,具体选项及其行为请参考最新的 Calibre SVRF 手册。
●LVS REPORT MAXIMUM {number | ALL}:设置 LVS 报告中每个部分列出的差异(例如,不匹配的网络、器件)的最大数量 4。ALL 表示列出所有。
○示例 (来自 FreePDK45 7):LVS REPORT MAXIMUM 50
○LVS REPORT MAXIMUM 对于管理包含大量错误的超大型设计的报告大小至关重要。设置过低可能会隐藏问题的全部范围,而 ALL 则可能生成巨大的报告。
●MASK SVDB DIRECTORY "directory_path" [options]:如核心规范声明部分所述,此命令还规定了为RVE 查看和其他工具存储哪些 LVS 数据 4。
○QUERY:生成 RVE 调试所需的数据。
○IXF:生成实例交叉引用文件。
○NXF:生成网络交叉引用文件。
○PINLOC:生成引脚位置信息。
○这些选项对于全面的调试和数据传递至关重要。
层次化 LVS 是处理大型和复杂设计的关键技术,它通过在设计的不同层级进行比较来提高性能和简化调试。
●HCELL layout_cell_name source_cell_name:指定版图单元 layout_cell_name 对应于源电路图单元 source_cell_name,并且应作为一个独立的模块进行比较6。
○HCELL命令可以写在主规则文件中,也可以写在一个单独的 HCELL 文件中,并通过 calibre 命令的 -hcell 选项在运行时指定 25。
○BY NAME 选项指示 LVS 仅通过名称匹配单元,而不考虑其内部结构是否完全相同,这在某些情况下用于强制对应。
○24深入探讨了 Hcell 列表对于平衡 LVS 性能和可调试性的重要性,以及 Calibre Interactive 中自动生成 Hcell 的功能。
●LVS BOX layout_cell_name [source_cell_name]:将 layout_cell_name 的内部内容从比较中排除,仅检查其边界连接或进行有限的内部检查 17。
○BLACK:完全忽略内部结构,仅检查到盒子的引脚连接性。常用于已验证的 IP 核或模拟宏模块。
○GRAY:允许一定程度的属性检查或引脚信息传递,但仍不比较内部电路。
○CELL:将单元视为一个基本器件,用于比较。
○CUT:在比较中剪切掉此单元。
○如果省略 source_cell_name,则假定其与 layout_cell_name 相同。
○26提到较新版本的 Calibre 可能支持在 LVS BOX 的单元名中使用通配符,如 LVS Box BLACK mycell*。
●LVS BOX PORT original_port_layer text_layer interconnect_layer [options]:定义如何在黑盒单元上识别端口,将text_layer 上的文本标签链接到构成 original_port_layer 的物理 interconnect_layer 图形 18。对于黑盒化的单元,尤其是 BLACK 盒子,LVS BOX PORT 语句是 LVS 理解如何连接到盒子引脚的唯一途径。
○示例:LVS BOX PORT M2_PIN M2_TEXT M2_CONNECT (概念性示例)
●LVS BOX CUT EXTENT {YES|NO}:控制连接是在黑盒单元的边界处被切断,还是允许稍微延伸18。
●LVS BOX PEEK LAYER layer_name...:允许 LVS“窥探”黑盒单元内部指定的层,例如用于电源/地连接 18。
●LVS PUSH DEVICES {YES | NO | SEPARATE PROPERTIES YES |...}:控制器件是“下推”到其定义几何形状所在的单元中,还是“上拉”到其例化所在的层级 4。
○YES (默认):将器件下推到其几何图形所在的最低层级单元。
○NO:将器件保留在其实例化发生的层级。这可以简化 LVS 看到的层次结构,但可能需要 LVS EXPAND SEED NAMES 等命令来辅助匹配。
○SEPARATE PROPERTIES YES:影响属性的处理方式,可能生成单独的属性文件27。
○此命令显著影响层次化 LVS 的行为以及 HCELL 的处理方式。如果一个单元 MY_CELL 包含晶体管,并且设置了 LVS PUSH DEVICES NO,那么在 LVS 比较期间,这些晶体管可能被视为 MY_CELL 父级的一部分。如果 MY_CELL 也在 HCELL 列表中,LVS 期望比较版图 MY_CELL 与电路图 MY_CELL。如果电路图 MY_CELL 包含晶体管,但由于器件被上推,版图 MY_CELL 的 LVS 视图为空,这将导致不匹配。
有效的层次化 LVS 是一个权衡过程。HCELL 保留部分层次结构以进行详细匹配,而 LVS BOX 则抽象掉其他部分(如供应商 IP 或尚未完成 LVS 清理的模拟模块)。LVS PUSH DEVICES 从根本上改变了器件与层次级别的关联方式,从而影响 HCELL 和 LVS BOX 策略。
表 4: 层次化 LVS 命令摘要
命令 | 在层次化 LVS 中的目的 | 关键选项/注意事项 | 主要参考 |
HCELL layout_cell source_cell | 定义版图和电路图之间对应的层次化单元,作为一个整体进行比较。 | BY NAME 选项。可用于主规则文件或单独的 HCELL 文件。对性能与调试的平衡至关重要。 | 6 |
LVS BOX cell_name [source_cell] | 从比较中排除指定单元的内部内容,或以特定方式处理。 | BLACK (仅检查引脚连接), GRAY (有限检查), CELL (视为基本器件)。通配符可能支持。 | 17 |
LVS BOX PORT orig_port_lay text_lay interconnect_lay [options] | 为 LVS BOX 定义的黑盒单元指定端口识别方式。 | 对黑盒单元的外部连接至关重要。必须正确指定文本层、连接层和原始端口层。 | 18 |
`LVS PUSH DEVICES {YES | NO | SEPARATE PROPERTIES YES | ...}` |
除了通用的 LVS 控制命令外,还有一些针对特定验证任务的命令。
正确识别和验证电源 (Power) 和地 (Ground) 网络对于确保电路的正常工作至关重要。
●LVS POWER NAME "name1" ["name2"...]:声明全局电源网络名称 4。LVS 会对这些网络进行特殊处理。
○示例 (来自 FreePDK45 7):LVS POWER NAME VDD
●LVS GROUND NAME "name1" ["name2"...]:声明全局地网络名称 4。
○示例 (来自 FreePDK45 7):LVS GROUND NAME VSS GROUND (注意:示例中的 GROUND 是 VSS 之外的另一个地网络名称)
○LVS POWER NAME 和LVS GROUND NAME 不仅仅是信息性的;它们允许 LVS 对这些关键网络应用特殊检查和处理,例如确保它们是分开的并且正确分布。它们还有助于正确识别器件终端(例如,MOS 的体连接)。
●LVS ISOLATE SHORTS {YES|NO}]:识别并帮助定位短路,尤其适用于电源/地短路 4。
○推荐设置 (来自 10):LVS Isolate Shorts YES BY CELL BY LAYER CELL ALL
○此命令通过报告相同网络上文本之间的最短路径(按层和单元分解)来精确定位短路的物理位置,而不仅仅是简单地检测短路。输出通常是一个可在 RVE 中查看的数据库,从而显著加快短路调试速度 17。
●LVS ISOLATE PORT port_name [net_name]:可能用于隔离连接到特定端口的网络以进行调试4。具体用法和选项在所提供的材料中信息较少。
天线效应是由于工艺过程(如等离子刻蚀)中导体连接到栅极时电荷积累导致的栅氧化层损伤。保护二极管可以泄放这些电荷。LVS 需要验证这些二极管的存在和正确连接。
●NET AREA RATIO conductor_layer gate_layer ratio_value_without_diode [options]:该命令主要用于 DRC,检查天线规则,通过计算连接到栅极层的导体层(天线)面积与栅极本身面积的比率5。
○DIODE diode_protection_layer ratio_value_with_diode 选项至关重要:它允许指定保护二极管层,并在存在连接到栅极的二极管时应用一个(通常更大的)允许比率值。
○虽然这是一个 DRC 类型的检查,但它经常包含在 LVS 规则文件中或与 LVS 一同运行,因为天线保护二极管是 LVS 必须识别和正确连接的器件。
○NET AREA RATIO... DIODE... 的有效性首先依赖于 LVS 正确识别和连接保护二极管。如果 LVS 未能识别二极管,即使物理上存在二极管,天线检查也可能失败(或者如果规则结构允许,则使用更严格的无二极管比率)。
○示例 (概念性,强调 DIODE 用法): ANTENNA_CHECK { NET AREA RATIO METAL1 POLY_GATE DIODE NDIFF_DIODE 400 200 > 0 } (如果 METAL1 连接到POLY_GATE,且 POLY_GATE 连接到一个位于NDIFF_DIODE 层的二极管,则面积比允许达到 400;否则,允许比率为 200。)
○注意:关于 NET AREA RATIO 及其 DIODE 参数用于天线检查的完整 SVRF 语法和所有选项,在提供的摘要信息中并不全面,通常需要参考 Calibre 验证用户手册。
这些命令提供了更细致的 LVS 控制或用于特定场景。
●LVS CPOINT layout_net_name source_net_name:通过名称手动指定版图网络和源网络之间的对应关系4。这可以在模糊的情况下帮助引导 LVS,但应谨慎使用,因为它可能掩盖了阻止自动对应的根本问题(如端口定义错误、连接断开或器件识别问题)。
●LAYOUT PRESERVE CASE {YES|NO}:如果为 NO (默认),则在网表提取过程中,仅大小写不同的版图网络名称被视为相同。如果为 YES,则它们被视为不同 4。此命令与 LAYOUT CASE 和 LVS COMPARE CASE 相互作用。
●SOURCE PRESERVE CASE {YES|NO}:对源网表名称类似处理 (虽然未在 4中明确列出,但逻辑上应存在对应命令)。
●各种 CASE 控制命令(LAYOUT CASE, SOURCE CASE, LVS COMPARE CASE, LAYOUT PRESERVE CASE 等)共同提供了对 LVS 不同阶段如何处理大小写敏感性的细粒度控制。PDK 或设计团队定义的一致策略对于避免不匹配至关重要。
●ERC PATHCHK path_type layer_name...:电气规则检查(ERC),例如检查悬空阱或栅极,有时可以作为 LVS 运行的一部分,特别是当它们依赖于已提取的连接性时10。ERC PATHCHK 是一个常见的 ERC 命令。
○10提到 ERC 结果可以显示在 LVS RVE 中,这表明 ERC 检查可以与 LVS 运行集成。
●TITLE "string":为 LVS 报告和运行输出添加标题 7。
○示例 (来自 FreePDK45 7):TITLE "LVS Rule File for FreePDK45"
虽然没有直接的 LVS ECO 命令,但 32和33讨论了工程变更指令 (ECO) 流程。LVS 在 ECO 中对于验证增量更改至关重要。现有的 LVS 规则命令将被使用,但 LVS 策略可能涉及诸如对设计中未更改部分使用 LVS BOX 等技术,以加快 ECO 验证运行速度。ECO 通常只修改大型设计的一小部分。重新运行全芯片 LVS 可能非常耗时。常见的 ECO LVS 策略是对成熟的、未更改的模块进行黑盒处理(LVS BOX),并仅对修改部分及其接口运行 LVS。这需要稳健的 LVS BOX PORT 定义和对顶层网表的仔细管理。
SVRF命令是定义精确高效的 Calibre LVS 验证流程的基石。深刻理解核心概念——包括层定义、连接性建立、器件识别、端口定义和层次化管理——对于成功进行 LVS 至关重要。
推荐的最佳实践包括:
●基于Foundry规则:始终以Foundry提供的规则集为起点,在充分理解其内容后再进行修改或扩展。
●模块化设计:利用 INCLUDE 语句实现规则文件的模块化,便于维护和复用。
●精确的层定义:特别注意用于器件识别的层的定义和派生逻辑的准确性。
●可靠的连接性:确保所有 CONNECT 语句的正确性,尤其是通孔连接中的 BY 子句。
●细致的端口处理:使用 PORT LAYER TEXT 和 TEXT LAYER ATTACH (或其他有效附加机制) 精心定义所有端口。
●策略性层次化:对于复杂设计,策略性地使用 HCELL 和 LVS BOX 来平衡验证范围、性能和可调试性。
●高效调试:利用 LVS REPORT OPTION 定制报告内容,并充分使用 Calibre RVE 进行图形化调试。
●一致的大小写处理:在整个规则文件和相关输入(版图、电路图)中保持大小写处理的一致性。
●参考官方文档:对于权威的语法细节和高级选项,务必参考最新的 Calibre SVRF 用户手册和相关文档,因为技术和命令集 会不断发展 34。
一个结构良好、注释清晰的 LVS 规则文件不仅是一段代码,更是一份关键的设计文档,它记录了特定工艺的电气规则以及设计者关于版图如何映射到电路图的意图。随着开源 PDK(如 7等所示例)的兴起,越来越多的 LVS 规则文件(或其他工具的等效文件)变得公开可用。这些文件是有价值的学习资源,同时也凸显了对其所使用的 SVRF 命令进行标准化和清晰文档化的需求。理解本报告中讨论的标准 SVRF 命令,将有助于用户更好地解读、调整和调试这些开源规则文件,或在不同 PDK 之间迁移设计。
通过遵循这些实践并深入理解 SVRF 命令的功能,设计和验证工程师可以更有效地确保其 IC 设计的物理实现与逻辑意图的一致性,从而提高首次成功的几率并加速产品上市时间。
1.What is Layout Versus Schematic Checking (LVS)? - Synopsys, 访问时间为 五月 9, 2025, https://www.synopsys.com/glossary/what-is-layout-versus-schematic-checking.html
2.Calibre nmLVS - EDA Solutions, 访问时间为 五月 9, 2025, https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1747494452586_2apj8j.pdf
3.Design rule checking - Wikipedia, 访问时间为 五月 9, 2025, https://en.wikiped ia.org/wiki/Design_rule_checking
4.Calibre Rule Writing PDF | PDF | Reserved Word | Parameter (Computer Programming) - Scribd, 访问时间为 五月 9, 2025, https://www.scribd.com/document/457133871/Calibre-Rule-Writing-pdf
5.Calibre Writing DRC/LVS Rules - Siemens Xcelerator Academy: On-Demand Training, 访问时间为 五月 9, 2025, https://training.plm.automation.siemens.com/mytraining/viewlibrary.cfm?memTypeID=288311&memID=288311
6.Review of Calibre deck files - INFN Torino Wiki, 访问时间为 五月 9, 2025, https://wiki.to.infn.it/vlsi/workbook/verification/calibre/files
7.calibre-lvs.rule - mflowgen/freepdk-45nm - GitHub, 访问时间为 五月 9, 2025, https://github.com/mflowgen/freepdk-45nm/blob/master/calibre-lvs.rule
8.How do I run Calibre LVS on an entire library? - SIEMENS Community, 访问时间为 五月 9, 2025, https://community.sw.siemens.com/s/question/0D54O000070D2TYSA0/how-do-i-run-calibre-lvs-on-an-entire-library
9.Jinhua Wang 1. LVS is used to check if the layout connection is correct, compared to the schemat, 访问时间为 五月 9, 2025, https://www.mics.ece.vt.edu/content/dam/mics_ece_vt_edu/ICDesign/Tutorials/tsmc180/n07_Layout%20Versus%20Schematic.pdf
10. Calibre RVE for LVS Quick Reference 2010. - Scribd, 访问时间为 五月 9, 2025, https://www.scribd.com/document/328491995/LVS-Quick-Reference
11. Need an example of how to use LAYOUT TEXT. I tried LAYOUT TEXT div_bus3 98.787000 0.056000 19.20 It seems to be not taking . in layer number - SIEMENS Community, 访问时间为 五月 9, 2025, https://community.sw.siemens.com/s/question/0D54O00006uSXZPSA4/need-an-example-of-how-to-use-layout-text-i-tried-layout-text-divbus3-98787000-0056000-1920-it-seems-to-be-not-taking-in-layer-number
12. Calibre nmDRC - InnoFour, 访问时间为 五月 9, 2025, https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1747494425519_2b0mfl.pdf
13. DRC Verification by Calibre :네이버 블로그, 访问时间为 五月 9, 2025, https://blog.naver.com/beahey/90087958178?viewType=pc
14. Extracting a net with Mentor Calibre ? | CAD Forums, 访问时间为 五月 9, 2025, https://www.thecadforums.com/threads/extracting-a-net-with-mentor-calibre.36699/
15. How to Make Calibre PEX Recognize your Ground Layers - Siemens Support Center, 访问时间为 五月 9, 2025, https://support.sw.siemens.com/en-US/okba/MG616849/How-to-Make-Calibre-PEX-Recognize-Your-Ground-Layers/media/51d90699-a755-4bb2-93c0-5962aec443b1.pdf
16. calibre lvs warnings with unattached label | Forum for Electronics - EDABoard, 访问时间为 五月 9, 2025, https://www.edaboard.com/threads/calibre-lvs-warnings-with-unattached-label.182617/
17. www.ijraset.com, 访问时间为 五月 9, 2025, https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1747494440004_cb657t.php
18. LVS BLACK BOX PORT - SIEMENS Community, 访问时间为 五月 9, 2025, https://community.sw.siemens.com/s/question/0D54O00006eo5gISAQ/lvs-black-box-port
19. MOSFET as black box in LVS - Forum for Electronics, 访问时间为 五月 9, 2025, https://www.edaboard.com/threads/mosfet-as-black-box-in-lvs.397406/
20. Calibre nmLVS: Filter elements from layout or source - EDA Solutions, 访问时间为 五月 9, 2025, https://www.eda-solutions.com/tn061/
21. About the Calibre LVS | Forum for Electronics, 访问时间为 五月 9, 2025, https://www.edaboard.com/threads/about-the-calibre-lvs.137711/
22. www.southampton.ac.uk, 访问时间为 五月 9, 2025, https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1747494411470_ds87jg.jpg
23. Chenyuan Zhao 1. In this tutorial, the layout versus schematic (LVS) checking process would be i, 访问时间为 五月 9, 2025, https://www.mics.ece.vt.edu/content/dam/mics_ece_vt_edu/ICDesign/Tutorials/tsmc180/08_Layout%20Versus%20Schematic.pdf
24. Balancing performance vs. debuggability in LVS circuit verification ..., 访问时间为 五月 9, 2025, https://blogs.sw.siemens.com/calibre/2024/04/23/balancing-performance-vs-debuggability-in-lvs-circuit-verification/
25. LVS Best - Practice - and - Debugging | PDF - Scribd, 访问时间为 五月 9, 2025, https://www.scribd.com/document/783014975/LVS-Best-Practice-and-Debugging
26. LVS Black Box with PCell - SIEMENS Community, 访问时间为 五月 9, 2025, https://community.sw.siemens.com/s/question/0D54O00006eo5cPSAQ/lvs-black-box-with-pcell
27. How to fix *WARNING* The number of errors was detected in Extract Tab: 1 in Calibre QRC run. - Custom IC Design - Cadence Technology Forums, 访问时间为 五月 9, 2025, https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/41265/how-to-fix-warning-the-number-of-errors-was-detected-in-extract-tab-1-in-calibre-qrc-run/1359356
28. "NO LVS PUSH DEVICES" warning? - Mentor Graphics Communities, 访问时间为 五月 9, 2025, https://mentor889.rssing.com/chan-26396768/all_p44.html
29. Calbr Query User | PDF - Scribd, 访问时间为 五月 9, 2025, https://ru.scribd.com/document/690835824/Calbr-Query-User
30. calibre SVRF command for cell fill. - SIEMENS Community, 访问时间为 五月 9, 2025, https://community.sw.siemens.com/s/question/0D5Vb00000Z22xzKAB/calibre-svrf-command-for-cell-fill
31. Calibre DRC how to get connected metals - SIEMENS Community, 访问时间为 五月 9, 2025, https://community.sw.siemens.com/s/question/0D54O00006wEVnXSAW/calibre-drc-how-to-get-connected-metals
32. 7. Using the ECO Compilation Flow - Intel, 访问时间为 五月 9, 2025, https://www.intel.com/content/www/us/en/docs/programmable/683641/25-1/using-the-eco-compilation-flow.html
33. How to remove fill shapes after a design ECO using Calibre DESIGNrev - YouTube, 访问时间为 五月 9, 2025, https://www.yout ube.com/watch?v=WMB7L9ykmzg
34. Calibre Svrf Guide, 访问时间为 五月 9, 2025, https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1747494409720_8jewbk.pdf
35. Predictive PDK (ASAP) – ASU Engineering, 访问时间为 五月 9, 2025, https://asap.asu.edu/
36. skywater-pdk/docs/rules/periphery/periphery.csv at main - GitHub, 访问时间为 五月 9, 2025, https://public.fangzhenxiu.com/fixComment/commentContent/imgs/1747494421550_420gvi.csv
37. IHP-GmbH/IHP-Open-PDK: 130nm BiCMOS Open Source PDK, dedicated for Analog, Mixed Signal and RF Design - GitHub, 访问时间为 五月 9, 2025, https://github.com/IHP-GmbH/IHP-Open-PDK