目录
[Calibre nmLVS 与 Calibre nmLVS-H](#Calibre nmLVS 与 Calibre nmLVS-H)
[1. 核心参数](#1. 核心参数)
[2. 典型应用场景](#2. 典型应用场景)
[1. 网表提取场景](#1. 网表提取场景)
[2. LVS 对比场景](#2. LVS 对比场景)
[3. 特殊场景](#3. 特殊场景)
[示例 1](#示例 1)
[示例 2](#示例 2)
[示例 3](#示例 3)
[示例 4](#示例 4)
[示例 5](#示例 5)
Calibre nmLVS 与 Calibre nmLVS-H
命令行功能
执行扁平化 与层次化的版图与电路图一致性检查(LVS)电路提取及对比操作。
使用语法
calibre [ -lvs [ [ { -tl || -ts } cnet_file_name ]
[ -nonames ] [ -cell ]
[ -dblayers "name1,..." ]
[ -bpf [ no-extents ] ] [ -nl ] [ -cb ]
] || [ -hier [ -automatch ||
-genhcells[=qs_tcl_file_name] ] ||
-flatten
]
[ -ixf ] [ -nxf ]
]
[ [ -spice spice_file_name ] || [ -layout spice_file_name ] ]
[ -hcell cell_correspondence_file_name ]
[ -siggen ]
[ -nowait | -wait n | -lmretry retry_args ]
[ -lmconfig licensing_config_filename ]
[ { -turbo [ number_of_processors ] [ -turbo_all ]
[ -lvs_supplement [ number_of_processors ] ] }
} [ { -remote host,host,... || -remotefile filename
|| -remotecommand filename count }
[ -remotedata [ -recoverremote | -recoveroff ] ] ]
[ -hyper [ pathchk ] [ remote | cmp ] ] ]
[ -waiver waiver_setup_file ]
[ -E svrf_output_from_tvf ] [ -tvfarg argument ]
rule_file_name
calibre {-lvs | -perc} [ -cs ] [ -cl ] [ -nowait | -wait n ]
[ -cb ] [ -lmconfig licensing_config_filename ]
[ -E svrf_output_from_tvf ] rule_file_name
1. 核心参数
| 参数 | 功能 | 使用约束 | 典型示例 |
|---|---|---|---|
-hier |
启用层级化 LVS 模式(nmLVS-H 专用) | 需搭配 hcell 配置(-hcell/-automatch/-genhcells);可与 -spice 搭配实现 "提取 + 对比" |
calibre -lvs -hier -hcell hcells.list rules.svrf |
-flatten |
启用平面化 LVS 模式,提取平面网表并对比 | 与 -hier 互斥;不可与 -tl/-ts/-bpf/-dblayers 等参数混用 |
calibre -lvs -flatten rules.svrf |
-spice 路径(别名 -spi) |
从几何版图提取 SPICE 网表并保存到指定路径 | 路径后缀 .Z/.gz 自动压缩;可单独使用(仅提取)或搭配 -lvs(提取 + 对比) |
仅提取:calibre -spice layout.sp rules.extract;提取 + 对比:calibre -lvs -hier -spice layout.sp rules.svrf |
-layout 网表路径 |
用指定 SPICE 网表作为版图网表(替代规则文件中的几何数据库配置) | 仅与 -lvs 搭配;不可与 -spice 混用 |
calibre -lvs -hier -layout layout.sp -hcell hcells.list rules.svrf |
-cb |
启用Calibre CB 模式(平面验证专用许可证) | 仅支持平面 DRC/LVS;不可用于层级模式 | calibre -lvs -cb flat_rules.svrf |
| 参数 | 功能 | 使用约束 | 关键说明 |
|---|---|---|---|
-hcell 路径 |
指定hcell 列表文件(定义版图与源网表的单元匹配关系) | 仅与 -hier 搭配;hcell 名称默认不区分大小写(可通过 LVS Compare Case 调整) |
推荐使用 "精简且精准的 hcell 列表" 提升性能 |
-automatch(别名 -auto) |
自动按名称匹配版图与源网表的单元 | 仅与 -hier 搭配;不可与 -genhcells 混用 |
仅适用于 "版图单元与源网表子电路器件完全一致" 的场景 |
-genhcells[=脚本路径] |
自动生成 hcell 列表(基于 Query Server Tcl 脚本) | 仅与 -hier 搭配;不可与 -automatch 混用;规则文件需配置 Source System SPICE 和 Source Path |
1. 省略脚本路径时使用默认脚本2. 生成的 hcell 列表保存到 SVDB 目录或工作目录 |
-xcell 路径 |
指定 xcell 文件(控制层级提取,与 Calibre xRC 联动) | 仅与 -hier 搭配;xcell 同时在 hcell 列表时,提取时不展开该单元 |
参考 Calibre xRC 手册的 "Hierarchy Control with Xcells" |
| 参数 | 功能 | 使用约束 | 关键说明 |
|---|---|---|---|
-turbo [n] |
启用单机多线程(MT)模式,n 为 CPU 核心数 |
仅适用于 -hier 模式(提取阶段并行,对比阶段仅主节点运行);省略 n 时使用最大可用许可核心数 |
不建议手动指定 n,避免许可证浪费 |
-turbo_all |
强制使用指定数量的 CPU 核心 | 必须与 -turbo 搭配 |
无法获取指定核心数时直接终止运行 |
-hyper [remote/cmp] [pathchk] |
启用超分模式,并行执行 SVRF 操作 | 必须与 -turbo 搭配;推荐 4 核以上机器使用 |
1. -hyper cmp:对比阶段部分任务并行(需搭配 -lvs -hier)2. -hyper remote:需同时用 -remotedata(分布式伪层级数据库)3. -hyper pathchk:ERC 运行时并行 Pathchk 操作 |
-remote host1,host2,... |
分布式多机(MTflex)模式,指定远程主机列表 | 必须与 -turbo 搭配;不可与 -remotefile/-remotecommand 混用;主机需同架构(如 64 位 Linux) |
对比阶段仅在主节点执行,提取阶段分布式并行 |
-remotefile 路径 |
通过配置文件定义分布式主机信息 | 必须与 -turbo 搭配;不可与 -remote/-remotecommand 混用;支持异构主机 |
配置文件需指定本地 / 远程主机 CPU 分配,主节点建议预留 8-16 核 |
-remotecommand 路径 数量 |
LSF 集群环境的分布式配置 | 必须与 -turbo 搭配;数量≥2 |
等效于 -remotefile 加载集群配置文件 |
-remotedata [-recoverremote/-recoveroff] |
控制远程数据服务器(数据恢复 / 关闭) | 必须与分布式参数(-remote/-remotefile/-remotecommand)搭配 | 用于分布式任务断点续跑 |
| 参数 | 功能 | 使用约束 | 关键说明 |
|---|---|---|---|
-ixf |
生成实例交叉引用文件(.ixf) | 不可与 -tl/-ts 混用 |
文件保存路径:SVDB 目录(规则文件指定 Mask SVDB Directory)或工作目录 |
-nxf |
生成网交叉引用文件(.nxf) | 不可与 -tl/-ts 混用 |
与 -ixf 保存路径规则一致 |
-siggen |
提取阶段在日志中生成器件签名 | 需 Calibre Advanced Device Properties 许可证;不可与 -tl/-ts 混用 |
关联规则文件 Device 语句的 SIGNATURE 关键字 |
-cs [数量] |
校验 Source Path 指定的源网表语法 |
仅支持 SPICE 格式源网表;数量为最大报错 / 警告数(默认 256) |
校验失败时退出码非 0,可通过 $? 查看 |
-cl [数量] |
校验 Layout Path 指定的版图网表语法 |
仅支持 SPICE 格式版图网表;数量为最大报错 / 警告数(默认 256) |
校验失败时退出码非 0 |
若需查看命令行相关信息,直接在命令行输入 calibre 且不带任何参数即可。
-
-lvs 必选参数,指定执行 LVS 对比操作。与
-flatten搭配使用时,Calibre nmLVS 会将源网表与扁平化的版图网表进行对比。若单独指定该参数,不会生成任何版图网表或电路提取报告(电路提取相关信息会输出至 LVS 报告中)。工具会将电路连通性信息存储至内存,并直接用于扁平化 LVS 对比。指定-nl命令行参数后,可查看扁平化连通性模型对应的 SPICE 格式表述。与-hier搭配使用时,Calibre nmLVS-H 会对源网表与版图网表执行层次化对比。若版图系统(Layout System)为几何格式,工具同时会执行 LVS 电路提取操作。 -
-automatch(或 -aut [o]) 指定在 Calibre nmLVS-H 对比过程中,按照单元名称自动匹配 层次化单元。启用该参数后,除了
-hcell参数或规则文件中Hcell语句指定的单元外,工具会将版图与源网表中名称相同的单元作为层次化实体进行对比,并将其余所有单元向下展开至下一层级的层次结构中。该参数不可与-genhcells参数同时使用 ,且不适用于-spice相关的层次化电路提取场景。仅当版图单元与同名的源子电路包含完全相同的器件时,才建议使用该参数。通常情况下,精心挑选一个简短的层次化单元(hcell)列表,相比直接使用-automatch参数,能获得更优的运行性能。-automatch参数允许工具根据性能最优原则自动处理层次结构,所有未被系统扁平化或展开的版图单元,只要在源网表中存在同名对应单元,都会被纳入对比范围。默认情况下,启用-automatch时单元名称的匹配不区分大小写 ;若在规则文件中指定LVS Compare Case YES或LVS Compare Case TYPES,则会区分大小写 ------ 此时版图与源网表中名称相同但大小写不同的单元将无法匹配。需要注意的是,顶层单元无论名称是否一致,始终默认相互对应。工具在性能优化过程中生成的、名称格式为ICV_n的伪单元,不参与-automatch的自动匹配流程。这类单元由工具在内部生成,属于人工构建的层次层级,不适合作为层次化单元(hcell)。若需排除可能被-automatch选中的层次化单元,可在规则文件中使用LVS Exclude Hcell规格描述语句。 -
-bpf [no-extents] 该参数的使用场景较少,作用是生成包含二进制多边形格式(BPF)文件 、版图交叉引用文件及端口文件的数据库,这类数据库主要用于第三方工具。该参数可用于传统的扁平化运行模式(即仅指定
-lvs而不搭配-flatten)以及 CNET 格式转换任务,使用时通常需要与-nl参数搭配。不可与-flatten、-hier或-spice参数同时使用 ,否则 Calibre 会返回错误。附加参数no-extents用于指定 BPF 写入器输出所有图形的实际坐标;若不指定该参数,部分边缘与数据库坐标轴非正交的多边形,会以其外接矩形的范围来表示。默认情况下,Calibre 会输出所有的连通层(Connect)与器件种子层(Device seed layers)。若需指定特定层集合,可搭配-dblayers参数使用。 -
-cell(或 -c) 使用场景较少,指定 CNET 写入器仅扫描顶层单元 (不进行层次化解析)。该参数仅可与
-tl或-ts参数搭配使用。 -
-cl [message_limit] 指定 LVS 工具读取并验证规则文件中
Layout Path语句所指向的 SPICE 网表,工具会将所有适用的警告或错误信息输出至日志文件,并将整体校验结果写入 LVS 报告。Calibre nmLVS 会以层次化方式读取该 SPICE 网表(与-hier参数的处理逻辑一致),但不会生成任何 LVS 对比结构。若语法校验通过,LVS 报告中的核心状态信息为SYNTAX OK;若校验失败,则为SYNTAX CHECK FAILED。默认情况下,工具对每种类型的错误或警告差异信息,最多输出 256 条;达到该数量上限后,将不再输出同类型信息。可选参数message_limit为正整数,用于指定每种类型差异信息的最大输出条数。该参数仅适用于 SPICE 网表输入系统 ,不支持其他输入格式。使用该参数时,Calibre nmLVS 会占用一个扁平化模式的软件授权。若语法校验失败,Calibre nmLVS 会以非零状态码退出程序。在大多数 UNIX 终端中,可通过查看环境变量$?的值来获取程序退出状态,具体可参考-cs参数对应的示例 Shell 脚本。 -
-cs [message_limit] 指定 LVS 工具读取并验证规则文件中
Source Path语句所指向的 SPICE 网表,工具会将所有适用的警告或错误信息输出至日志文件,并将整体校验结果写入 LVS 报告。Calibre nmLVS 会读取该 SPICE 网表,但不会生成任何 LVS 对比结构。若语法校验通过,LVS 报告中的核心状态信息为SYNTAX OK;若校验失败,则为SYNTAX CHECK FAILED。默认情况下,工具对每种类型的错误或警告差异信息,最多输出 256 条;达到该数量上限后,将不再输出同类型信息。可选参数message_limit为正整数,用于指定每种类型差异信息的最大输出条数。若语法校验失败,Calibre nmLVS 会以非零状态码退出程序。在大多数 UNIX 终端中,可通过查看环境变量$?的值来获取程序退出状态。该参数仅适用于 SPICE 网表输入系统,不支持其他输入格式。使用该参数时,Calibre nmLVS 会占用一个扁平化模式的软件授权。 -
-dblayers "name1, ..."(或 -db "name1, ...") 适用于 Pyxis Layout 设计流程,用于控制写入掩膜结果数据库(Mask Results Database) 的层图形 ------ 该数据库不被 Calibre RVE 工具使用。参数值为引号包裹的、以逗号分隔的层名称列表,Calibre 仅会将这些指定层写入掩膜结果数据库,该操作仅在 Pyxis Layout 流程中有效。列表中的每个名称,需为规则文件中已定义的层名称或层编号。若省略该参数,Calibre 会将所有相关层写入掩膜结果数据库,包括规则文件中出现在
Connect与Sconnect操作中的层、所有器件种子层与引脚层、以及所有Stamp目标层。需要注意的是,根据Mask Results Database规格描述语句的配置,接触层(contact layers)可能会被排除在外。该参数不可与-flatten参数同时使用。 -
-flatten 指定电路提取生成扁平化 SPICE 网表 ,且电路对比操作也以扁平化模式执行。运行过程的输出日志,与使用层次化引擎处理扁平化设计输入时的日志格式类似。与
-spice参数搭配使用,或在隐式提取版图网表的场景下,生成的版图网表为扁平化格式,同时工具会输出一份电路提取报告。与-lvs参数搭配使用时,工具会执行网表到网表的 LVS 对比(逻辑与-hier参数类似),但最终输出的对比结果为扁平化格式。若同时指定-lvs -flatten参数、不指定-spice参数,且版图输入为几何数据库,则 Calibre 会在单次运行中完成版图网表提取 与电路对比 两项任务。若规则文件中指定了Mask SVDB Directory语句,提取的网表会以layout_primary.sp为文件名写入该目录(其中layout_primary为顶层单元名称);若未指定该语句,则网表会以lvs_report_name.sp为文件名写入当前工作目录(其中lvs_report_name来自规则文件中的LVS Report规格描述语句)。该参数不可与-bpf、-cell、-dblayers、-nl、-nonames、-tl及-ts参数同时使用 ,这些层次化相关参数与扁平化模式不兼容;但可与-cb、-ixf及-nxf参数搭配使用。 -
-genhcells[=qs_tcl_file] 指定在电路提取过程中,通过查询服务器 Tcl Shell(Query Server Tcl shell) 自动生成层次化单元(hcell)列表,该列表会用于后续的电路提取与 LVS-H 对比流程。该参数不可与
-automatch参数同时使用 ,且在处理部分大型设计时,运行耗时可能较长。使用该参数时,规则文件中必须启用Source System SPICE与Source Path语句,否则工具会返回错误。若在电路提取时仅指定-genhcells参数、不带=qs_tcl_file后缀,运行过程中会执行以下默认的查询服务器 Tcl 脚本:hcells::automatch -on hcells::read -auto_expand preset hcells::add_matching_hcells hcells::print_hcells -file $CALIBRE_GENHCELLS_OUTPUT puts "\n\nGenerated HCELL Status:" puts [ hcells::status ] puts "GENERATED HCELL File: $CALIBRE_GENHCELLS_OUTPUT"(此用法下,
hcells::read命令无需-rules参数)生成的层次化单元列表,会以topcell.hcells为文件名存储至Mask SVDB Directory指定的目录(其中topcell为顶层单元名称);若未指定该目录,则以lvs_report_name.topcell.hcells为文件名写入当前工作目录(其中lvs_report_name对应规则文件中的LVS Report语句)。该列表生成后,会被纳入本次运行的总层次化单元列表中。若在电路提取时指定=qs_tcl_file后缀,则工具会执行用户自定义的查询服务器 Tcl 脚本(即qs_tcl_file指定的文件),而非上述默认脚本。 -
全局 Tcl 变量
CALIBRE_GENHCELLS_OUTPUT用于指定输出文件的名称与路径,用户脚本中必须引用该变量,才能输出层次化单元列表。若输出文件为空,则本次生成的列表不会向总层次化单元列表中添加任何单元。若层次化单元列表生成失败,工具会抛出运行时错误。电路提取过程中层次化单元的展开行为,由规则文件中的LVS Auto Expand Hcells语句控制。若在仅对比模式 (即不执行电路提取)下使用该参数,则必须确保上述自动生成路径对应的层次化单元文件已存在,否则工具会返回错误。此时该文件中的列表会被纳入对比所用的总层次化单元列表,但工具不会在仅对比模式下生成新的层次化单元列表,且该模式下不支持=qs_tcl_file后缀。无论采用何种层次化单元指定方式,规则文件中LVS Exclude Hcell语句列出的单元名称,均不会在本次运行中作为层次化单元参与处理。 -
-hcell cell_correspondence_file_name 指定在电路提取与对比过程中,保留单元对应文件 (即层次化单元列表文件)中定义的单元。电路提取过程中层次化单元的展开行为,由规则文件中的
LVS Auto Expand Hcells语句控制;未被指定为层次化单元的子电路,会在电路对比阶段被展开。在 LVS 对比过程中,该参数指定的文件用于定义需要相互对比的对应单元。通常情况下,精心挑选一个简短的层次化单元列表,能让工具获得更优的运行性能。除该参数外,也可通过-genhcells参数或规则文件中的Hcell规格描述语句来定义单元对应关系。若启用-automatch参数,自动匹配的子电路名称会被加入电路对比阶段的内部层次化单元列表(但不会加入电路提取阶段的列表)。所有方式指定的层次化单元列表,会在工具内部被合并为一个总列表。默认情况下,层次化单元名称的匹配不区分大小写 ;若在规则文件中指定LVS Compare Case YES或LVS Compare Case TYPES,则会区分大小写 ------ 此时版图与源网表中名称相同但大小写不同的单元将无法匹配。若文件中列出的单元名称在输入数据中不存在,工具会输出警告信息。层次化单元列表文件名两端的双引号会被视为普通字符处理,但规则文件中Hcell语句对文件名的处理逻辑与此不同。若需仅在电路提取阶段 阻止层次结构被修改(对比阶段不限制),建议使用规则文件中的Layout Preserve Cell List规格描述语句,而非层次化单元列表。 -
-hier 指定以层次化模式 执行 SPICE 网表到网表的对比操作,仅可与
-lvs参数搭配使用 。若要实现源网表与版图网表的层次化对比,必须通过层次化单元列表告知工具如何匹配子电路名称。该列表可通过-hcell、-genhcells、-automatch命令行参数,或规则文件中的Hcell规格描述语句指定。通过这三种方式指定的所有层次化单元,会被合并为一个总列表,工具根据该列表确定版图与源网表中需要对比的子电路;若未指定任何层次化单元相关参数,LVS 对比会自动以扁平化模式执行。若同时指定-spice与-hier参数,则版图系统(Layout System)必须为几何格式(如 GDSII 或 OASIS)。工具会将提取的版图网表输出至-spice参数指定的文件,然后与Source Path语句指向的源网表进行对比。若指定-hier参数、不指定-spice参数,且版图输入为几何数据库,则 Calibre nmLVS-H 会在单次运行中完成版图网表提取 与电路对比 两项任务。若规则文件中指定了Mask SVDB Directory语句,提取的网表会以layout_primary.sp为文件名写入该目录(其中layout_primary为顶层单元名称);若未指定该语句,则网表会以lvs_report_name.sp为文件名写入当前工作目录(其中lvs_report_name来自规则文件中的LVS Report规格描述语句)。提取的网表文件名会在运行日志末尾输出,且该命名方式与 Calibre xRC 工具的标准命名规范兼容。 -
-hyper [remote | cmp] [pathchk] 启用超扩展模式(Hyperscaling mode) ,该模式支持 SVRF 操作的并发并行执行,从而提升多线程(MT)与 Calibre MTflex 环境下的 CPU 利用率和系统可扩展性。该参数仅可与
-turbo参数搭配使用 ,且建议在 CPU 数量不少于 4 核的设备上启用。该参数支持在连通性提取过程中并行执行图层操作,详细说明参见第 296 页的《面向 LVS 连通性提取的超扩展技术》章节。若在同一运行任务中同时执行连通性提取与-lvs -hier操作,并指定-hyper cmp参数,则 LVS 对比模块会在提取阶段提前执行部分原本仅在对比阶段才会进行的任务。该参数在包含电气规则检查(ERC)、软连接检查、短路隔离检查的运行任务中,性能提升效果最为显著。需要注意的是,启用-hyper参数会增加主控主机的内存占用。附加参数remote用于触发远程伪层次化数据库技术 ,该参数必须与-remotedata参数搭配使用,两者结合可实现伪层次化数据库(pseudo HDBs)在远程主机间的分布式存储。 -
-ixf 生成实例交叉引用文件 。生成的文件名为
lvs_report_name.ixf(其中lvs_report_name来自规则文件中的LVS Report语句)。若同时指定-ixf参数与规则文件中的Mask SVDB Directory语句,Calibre nmLVS 会将该文件写入 SVDB 目录,文件名为layout_primary.ixf(其中layout_primary来自规则文件中的Layout Primary语句);若未指定Layout Primary语句,则文件名中的layout_primary会被替换为ICV_UNNAMED_TOP。扁平化 Calibre nmLVS 模式下通过-ixf参数生成的交叉引用文件,与 Calibre nmLVS-H 模式下生成的文件格式不兼容 。该参数不可与-tl及-ts参数同时使用。 -
-layout spice_file_name 覆盖规则文件中
Layout Path与Layout System语句的配置(这两个语句默认指定用于电路提取的几何版图),强制将spice_file_name指定的网表作为版图网表 参与对比。该参数仅可与-lvs参数搭配使用 ,且不可与-spice参数同时使用。 -
-lmconfig licensing_config_filename 启用用户自定义的授权搜索策略,用于查找默认授权或备用授权,替代工具默认的授权获取逻辑。参数
licensing_config_filename指定配置文件的路径,该文件用于控制授权搜索的流程。 -
-lmretry retry_args 指定使用传统授权模式 或循环授权模式
-
-lvs_supplement [number_of_processors] 该参数仅在同时使用
-perc与-turbo参数时有效。 -
-nl 使用场景较少,作用是从版图中提取扁平化网表 。该参数不可与
-spice或-flatten参数同时使用。 -
-nonames(或 -non) 使用场景较少,指定 CNET 写入器不在 CNET 数据库中生成网表名称文件与实例名称文件 。该参数仅可与
-tl或-ts参数搭配使用。 -
-nowait 使 Calibre 在尝试获取备用授权前,仅短暂等待约 10 秒。该参数等效于输入命令
-wait 0。 -
-nxf 生成网表交叉引用文件 。关于交叉引用文件的更多信息,参见第 619 页的《SVDB 交叉引用文件》章节。生成的文件名为
lvs_report_name.nxf(其中lvs_report_name来自规则文件中的LVS Report语句)。若同时指定-nxf参数与规则文件中的Mask SVDB Directory语句,Calibre nmLVS 会将该文件写入 SVDB 目录,文件名为layout_primary.nxf(其中layout_primary来自规则文件中的Layout Primary语句);若未指定Layout Primary语句,则文件名中的layout_primary会被替换为ICV_UNNAMED_TOP。扁平化 Calibre nmLVS 模式下通过-nxf参数生成的交叉引用文件,与 Calibre nmLVS-H 模式下生成的文件格式不兼容。 -
-remote host[, host ...] 指定使用 Calibre MTflex 多线程并行处理架构 ,仅可与
-turbo参数搭配使用,支持在分布式网络的远程主机上启用多线程操作。使用时必须至少指定一个主机参数,多个主机名之间用逗号分隔,表示这些主机将共同参与多线程运算。执行任务前,需确保拥有足够的软件授权数量。该参数仅适用于同构主机集群 上的层次化应用场景,即所有参与运算的设备需为相同的支持平台类型(例如 Linux 系统),且必须采用相同的地址空间。建议不要将主控机指定为远程主机,否则可能会对运行性能产生负面影响。在分布式处理器上通过 Calibre MTflex 运行 Calibre nmLVS-H 时,连通性提取模块会以多线程模式运行,而 LVS 对比模块仅会在主控处理器上运行。更多详细信息,参见《Calibre 管理员指南》中的《命令行参数参考目录》章节。 -
-remotecommand filename count 适用于 LSF 环境下的 Calibre MTflex 运行任务,支持直接从命令行指定两个参数。该参数仅可与
-turbo参数搭配使用 ,且不可与-remotefile或-remote参数同时使用。参数filename指定远程命令配置文件的路径,参数count指定LAUNCH CLUSTER命令中的COUNT参数值,且count的取值必须大于或等于 2。使用-remotecommand参数,等效于结合-remotefile参数使用以下配置文件内容:LAUNCH CLUSTER MINCOUNT 2 COUNT <count> REMOTE COMMAND <filename> ARGUMENTS [ %H:%P %C ] -
-remotedata [ -recoverremote | -recoveroff ] 用于控制 Calibre 远程数据服务器 的运行行为,仅可与
-remote、-remotefile或-remotecommand参数搭配使用。 -
-remotefile filename 指定使用 Calibre MTflex 多线程并行处理架构 ,支持在分布式网络的远程主机上启用多线程操作,仅可与
-turbo参数搭配使用。参数filename为配置文件的路径,该文件需包含本地主机和远程主机的相关信息。执行任务前,需确保拥有足够的软件授权数量。使用该参数时,远程主机可以是异构主机集群 ,即主机的平台类型和地址空间可以不同,但仍建议使用地址空间相同的主机以获得更优性能。通常情况下,不建议占用主控机的 CPU 资源作为远程 CPU 使用。若确有需要,可在配置文件中添加语句REMOTE HOST master spare_CPUs,仅占用主控机的空闲 CPU 资源,且请勿使用LOCAL HOST WORKER命令实现此目的。建议为控制机预留 8-16 个 CPU 资源,用于执行必要的系统任务。在分布式处理器上通过 Calibre MTflex 运行 Calibre nmLVS-H 时,连通性提取模块会以多线程模式运行,而 LVS 对比模块仅会在主控处理器上运行。 -
-siggen 指定 LVS 工具在电路提取阶段,于日志文件中生成器件特征码 ,该参数与
Device语句中的SIGNATURE关键字相关联。关于器件特征码的详细信息,参见第 331 页的《器件特征码》章节。使用该参数需要 Calibre 高级器件属性授权 。该参数不可与-tl及-ts参数同时使用。 -
-spice spice_file_name(或 -spi spice_file_name) 从几何版图中提取 SPICE 网表 ,并将输出定向至
spice_file_name指定的文件。提取的网表会替代原始的几何版图,用于与源网表进行对比。若spice_file_name的后缀为.Z或.gz,工具会分别调用 UNIX 系统的compress或gzip命令对输出文件进行压缩。使用该功能前,需确保系统环境中已安装对应的压缩工具。关于如何不使用-spice参数、以隐式方式执行电路提取的详细说明,参见-hier与-flatten参数的相关描述。若在单次运行中同时执行电路提取与对比操作,Calibre 会在执行提取步骤前,先校验规则文件中是否已指定Source Path与LVS Report文件路径,且确保这些路径均可访问。若仅指定-spice参数而不搭配-lvs,则不会执行该校验步骤。注意 若需将提取的网表用于 Calibre xRC 工具,则
spice_file_name必须为显式路径,且文件需保存至 SVDB 目录,格式为<directory_path>/layout_primary.sp------ 其中<directory_path>与layout_primary分别对应规则文件中Mask SVDB Directory与Layout Primary语句的配置值。若计划使用提取的网表运行 Calibre xRC,建议在规则文件中指定Mask SVDB Directory XRC语句。该配置会将电路提取结果写入层次化数据库(HDB),并存储至 SVDB 目录。 -
-tl cnet_file_name 使用场景较少,作用是将版图转换为 CNET 格式网表 ,输出文件由
cnet_file_name指定。版图的输入路径由规则文件中的Layout Path语句指定。该参数不可与-flatten参数同时使用。 -
-ts cnet_file_name 使用场景较少,作用是将源网表转换为 CNET 格式网表 ,输出文件由
cnet_file_name指定。源网表的输入路径由规则文件中的Source Path语句指定。生成的网表中,除了与带文本标注的端口对象相连的网表外,其余网表均仅用数字 ID 标识,不包含名称信息;与带文本标注端口相连的网表,会以对应端口对象的名称来表示。若某一网表同时与多个带文本标注的端口相连,则工具会随机选择其中一个端口的名称作为该网表的标识。网表格式会受到规则文件中LVS NL Pin Locations语句的影响。该参数生成的网表可用于部分第三方工具,但不建议 用于常规的电路提取或 LVS 调试场景。该参数不可与-flatten参数同时使用。 -
-turbo [number_of_processors] 指示 Calibre nmLVS-H 启用多线程并行处理 模式。可选参数
number_of_processors为正整数,用于指定使用的 CPU 数量。若未指定该参数,Calibre nmLVS-H 会使用当前已授权的最大可用 CPU 数量。通常情况下,不建议手动指定该参数。该参数仅适用于层次化电路提取阶段 ,不适用于电路对比阶段(即-lvs -hier对应的流程)。但超扩展模式(-hyper参数)可作用于电路提取阶段,因此建议在 CPU 数量不少于 4 核的设备上同时启用-hyper参数。若在-lvs -hier -turbo的基础上额外指定-hyper cmp,则 LVS 对比模块会在连通性提取阶段提前执行部分任务(例如读取源网表)。若指定的 CPU 数量超过最大可用数量,Calibre nmLVS-H 会自动以最大可用 CPU 数量运行。示例如下:calibre -lvs -hier ... -turbo 3 ...在一台仅配备 2 个 CPU 的设备上,上述命令实际仅会调用 2 个处理器运行。
-
-turbo_all 需与
-turbo参数搭配使用,作用是强制校验 CPU 数量 ------ 若工具无法获取到-turbo参数指定的 CPU 数量,则直接终止运行。若指定-turbo参数但未明确 CPU 数量,等效于指定使用设备的最大可用 CPU 数量。示例如下:calibre -spice layout.net -turbo -turbo_all rule_file在一台 8 核设备上运行上述层次化 LVS 命令,等效于执行以下命令:
calibre -spice layout.net -turbo 8 -turbo_all rule_file若不指定
-turbo_all参数,当授权数量或可用 CPU 数量无法满足需求时,Calibre 会自动降级使用少于请求数量的线程运行。 -
-tvfarg argument 指定传递给编译时 TVF 脚本 的参数,该参数值不可包含空格字符。在 TVF 规则文件中,可通过
tvf::get_tvf_arg命令读取该参数值。 -
-wait n 设置 Calibre 等待获取指定授权的最长时长(单位:分钟)。若等待
n分钟后仍未获取到目标授权,Calibre 会尝试获取其他可用的备用授权;若未配置任何备用授权,则直接退出程序。参数n的最大取值为 45000。calibre -lvs -wait 5 rules上述命令会使工具等待 5 分钟以获取授权。若 5 分钟后仍未获取到授权,程序会输出以下信息并退出:
plaintext
// Queue time specified by -wait switch has elapsed. -
-waiver waiver_setup_file 指定运行自动错误豁免流程 所需的豁免配置文件。启用该参数后,工具会在完成相应的数据预处理后,自动豁免部分电气规则检查(ERC)的违规项。该参数仅在执行连通性提取的场景下有效。
-
-xcell file_name 指定 xcell 文件 ,该文件主要用于 Calibre xRC 工具。若某一版图单元名称同时出现在 xcell 文件与 LVS 层次化单元列表中,则该单元在连通性提取阶段不会被展开。
-
rule_file_name必选参数,指定规则文件的路径。
功能描述
Calibre nmLVS 执行扁平化 的版图与电路图一致性检查(LVS),电路提取在内存中完成,并与几何版图数据库的扁平化视图进行对比。Calibre nmLVS-H 支持从几何版图中提取层次化 SPICE 网表 ,并对 SPICE 网表执行层次化 LVS 检查。若启用 -flatten 参数,工具的运行行为与 Calibre nmLVS-H 类似,但网表提取与 LVS 对比均以扁平化模式执行。
工具内部采用符号量值格式 或二进制补码格式存储整数,数据库坐标的最大精度范围为 ±2⁶¹。
2. 典型应用场景
1. 网表提取场景
| 场景 | 命令示例 |
|---|---|
| 提取层级 SPICE 网表(单机多线程 + 超分) | calibre -spice layout.sp -turbo -hyper rules.extract |
| 提取层级 SPICE 网表(分布式多机) | calibre -spice layout.sp -turbo -remote node1,node2 -hyper rules.extract |
| 提取平面 SPICE 网表 | calibre -spice layout_flat.sp -flatten rules.extract |
2. LVS 对比场景
| 场景 | 命令示例 |
|---|---|
| 平面 LVS 对比(几何版图 vs 源网表) | calibre -lvs -flatten rules.compare |
| 层级 LVS 对比(指定 hcell 列表) | calibre -lvs -hier -hcell hcells.list rules.compare |
| 层级 LVS 对比(自动匹配单元名称) | calibre -lvs -hier -automatch rules.compare |
| 提取 + 层级对比(单步运行,超分优化) | calibre -lvs -hier -spice layout.sp -hcell hcells.list -turbo -hyper cmp rules.compare |
| 分布式层级 LVS 对比(提取阶段并行) | calibre -lvs -hier -spice layout.sp -hcell hcells.list -turbo -remote node1,node2 -hyper rules.compare |
3. 特殊场景
| 场景 | 命令示例 |
|---|---|
| 校验源网表语法 | calibre -lvs -cs 100 rules.compare |
| 校验版图网表语法 | calibre -lvs -cl 100 rules.compare |
| CB 模式平面 LVS 对比 | calibre -lvs -cb flat_rules.compare |
| 生成实例 + 网交叉引用文件 | calibre -lvs -hier -hcell hcells.list -ixf -nxf rules.compare |
示例 1
从几何版图中提取层次化 SPICE 网表 ,并写入 layout.net 文件:
calibre -spice layout.net rules.extract
以下两个示例分别展示了如何通过多线程(MT)模式 与 Calibre MTflex 模式结合超扩展技术执行上述任务:
calibre -spice layout.net -turbo -hyper rules.extract
calibre -spice layout.net -turbo -remote host1,host2 -hyper rules.extract
示例 2
对 SPICE 格式的版图网表与源网表执行层次化 LVS 对比 ,通过 cells 文件指定单元对应关系。规则文件配置:
// 版图为 SPICE 格式
LAYOUT SYSTEM SPICE
LAYOUT PATH "./layout.net"
LAYOUT PRIMARY top
...
命令行执行语句:
calibre -lvs -hier -hcell cells rules.compare
示例 3
从几何版图中提取层次化 SPICE 网表 layout.net,并与 SPICE 格式源网表进行层次化对比。电路提取与对比均为层次化模式,通过 cells 文件指定层次化单元对应关系;若未指定该文件,则对比会自动以扁平化模式执行。规则文件配置:
// 版图为几何格式
LAYOUT SYSTEM GDSII
LAYOUT PATH "./design.gds"
LAYOUT PRIMARY "top"
SOURCE SYSTEM SPICE
SOURCE PATH "./top.spi"
SOURCE PRIMARY top
...
电路提取与对比命令:
calibre -spice layout.net -lvs -hier -hcell cells rules
若省略 -spice 参数,提取的网表会以 lvs_report.sp 为文件名写入当前工作目录;若规则文件中指定了 Mask SVDB Directory 语句,则网表会写入该目录,文件名包含顶层单元名称。
注意若在单次运行中同时执行电路提取与对比,一旦提取阶段出现错误,对比阶段几乎必然会失败,造成计算资源的浪费。
若在上述两条命令的基础上添加 -turbo -hyper cmp 参数,则连通性提取会启用超扩展模式,且 LVS 对比模块会在提取阶段提前执行部分任务(例如读取源网表)。
示例 4
从几何版图系统中提取扁平化 SPICE 网表 ,并与 SPICE 格式源网表进行扁平化对比。规则文件配置:
// 几何格式版图
LAYOUT SYSTEM GDSII
LAYOUT PATH "./design.gds"
LAYOUT PRIMARY "top"
SOURCE SYSTEM SPICE
...
命令行执行语句:
calibre -lvs -flatten rules
提取的 SPICE 网表的存储路径与命名规则,与示例 3 一致。
示例 5
对 SPICE 格式的版图网表与源网表执行层次化 LVS 对比,通过单元名称自动匹配对应单元:
plaintext
calibre -lvs -hier -automatch rules
注意 仅当版图单元与同名的源子电路包含完全相同的器件时,才建议使用
-automatch参数。