目录
[1. gds 版图格式](#1. gds 版图格式)
[2. OASIS 版图格式](#2. OASIS 版图格式)
[3. 第三方版图格式](#3. 第三方版图格式)
[4. ASCII 版图格式](#4. ASCII 版图格式)
[5. 二进制版图格式](#5. 二进制版图格式)
[1. GDSII Layout Format(最常用)](#1. GDSII Layout Format(最常用))
[1.1 基础配置要求](#1.1 基础配置要求)
[1.2 关键限制与解决方案](#1.2 关键限制与解决方案)
[1.3 支持的 GDSII 记录](#1.3 支持的 GDSII 记录)
[2. OASIS Layout Format(推荐大规模设计)](#2. OASIS Layout Format(推荐大规模设计))
[2.1 核心优势](#2.1 核心优势)
[2.2 配置要点](#2.2 配置要点)
[3. 第三方布局格式(LEF/DEF、Milkyway、OpenAccess)](#3. 第三方布局格式(LEF/DEF、Milkyway、OpenAccess))
[3.1 基础配置](#3.1 基础配置)
[3.2 关键环境变量(批量处理必配)](#3.2 关键环境变量(批量处理必配))
[4. ASCII Layout Format(扁平化设计专用)](#4. ASCII Layout Format(扁平化设计专用))
[4.1 格式规范](#4.1 格式规范)
[4.2 限制与补充](#4.2 限制与补充)
[5. Binary Layout Format(归档专用)](#5. Binary Layout Format(归档专用))
[5.1 核心特点](#5.1 核心特点)
[5.2 格式规范](#5.2 格式规范)
[1. GDSII 格式(最常用)](#1. GDSII 格式(最常用))
[2. OpenAccess 格式(与 Virtuoso 协同)](#2. OpenAccess 格式(与 Virtuoso 协同))
本文档基于 Calibre v2017.1 官方手册,提炼了各类布局格式的支持范围、关键限制、配置命令及适用场景,聚焦 DRC/LVS 流程中的实际应用需求,便于快速查阅和规则配置。
一、核心布局格式对比总览
1. gds 版图格式
Calibre 仅支持处理 GDSII 6.0 版本 ,不支持更高版本。除受主机平台的内存或磁盘容量限制外,该工具对数据库大小、输入数据库数量、多边形数量、层次深度以及单元数量均无实际限制。
当版图数据库格式为 GDSII(通过 LAYOUT SYSTEM GDSII 语句指定)时,**必须在 LAYOUT PATH 规则语句中指定文件路径,同时在 LAYOUT PRIMARY 规则语句中定义最高层级单元的名称。**工具会对指定的顶层版图单元及其层级结构下的所有子单元进行处理。
单元名称允许使用的字符包括大小写字母(A-Z、a-z)、数字(1-9)、下划线(_)、问号(?)和美元符号($)。GDS 文件的单元名称默认最大长度为 32 个字符,而 Calibre nmDRC 可通过 DRC MAXIMUM CELL NAME LENGTH 语句突破此限制。
LAYOUT PATH 语句可多次指定,且每次可配置多个文件名,以此实现多数据库的读取。多个输入数据库会被视为所有结构记录均嵌入在第一个指定的文件中,且每个输入文件都必须满足语法完整性要求。
可通过可选规则语句 LAYOUT DEPTH 指定图形的版图读取深度:使用关键字 ALL(默认配置)时,工具会从顶层单元到最底层单元逐层读取图形;使用关键字 PRIMARY 时,则仅读取顶层单元中的图形。
Calibre 可处理的 GDSII 记录如下:HEADER、BGNLIB、LIBNAME、UNITSENDLIB、BGNSTR、STRNAME、ENDSTRBOUNDARY、PATH、PATHTYPE、WIDTHBGNEXTN、ENDEXTN、XY、COLROW
LAYOUT INPUT EXCEPTION SEVERITY 规则语句用于控制 Calibre 对版图输入异常的处理方式,多数异常的严重级别(致命错误、警告、忽略)均可根据需求进行调整。
Calibre 无法保留从 GDSII 数据库中读取的非正交网格(非正交是指网格中坐标点 (X1,Y1) 指向 (X2,Y2) 与 (X1,Y1) 指向 (X3,Y3) 的两条矢量不垂直)。读取 GDSII 数据时,工具会检测非正交网格的存在,并在数据读入过程中对其阵列进行扩展处理。
顶点数为 0 的 BOUNDARY 和 PATH 记录会触发致命读取错误。Calibre 支持读取顶点数最多为 8192 的 GDSII 多边形,超出此限制的多边形同样会触发致命错误。若存在顶点数超限的多边形,可将其分割为多个顶点数低于 8192 的小多边形,或考虑将数据库格式转换为 OASIS。
Calibre 默认输出的 GDSII 多边形顶点数上限为 8190,同时支持最高输出 2³² 个顶点,具体输出顶点数可通过 DRC MAXIMUM VERTEX 规则语句进行配置。
默认情况下,Calibre 不会处理 BOX 和 BOXTYPE 记录,也不会处理 NODE 和 NODETYPE 记录,因为这类记录并非用于掩膜数据生成。尽管它们属于 GDSII 规范的一部分,但随着计算机性能提升和地址空间扩大,其应用场景已十分有限,不过部分现代版图设计工具仍可能生成此类记录。
从历史应用来看,用户可自定义字体并应用于 TEXT 元素:BOX 元素作为字体字符的参考基准,用于定义字符图形的周边间距,它不会被输出到掩膜上,仅在字体字符创建阶段可见,在 TEXT 元素中调用时则处于隐藏状态。NODE 元素(又称吸附节点)用于标记几何元素的吸附位置,例如单元中的引脚:在大视图设计场景中,引脚可能因尺寸过小难以精准定位,此时可在引脚几何图形的目标连接位置放置 NODE 元素,无需放大视图即可确保 PATH 或顶点与引脚精准连接。
BOXTYPE 和 NODETYPE 元素需与各自对应的基础元素配合使用,作用是将总图层容量扩展至 64 层以上,其功能与 PATH 或 BOUNDARY 元素的 DATATYPE 属性类似。
LAYER、DATATYPE、SREF、AREFSNAME、TEXT、TEXTTYPE、STRINGSTRANS、MAG、ANGLE、ENDEL
2. OASIS 版图格式
Calibre 支持 OASIS 1.0 版本。该工具对 OASIS 数据的处理方式与 GDSII 在诸多方面类似,适用于 GDSII 的大部分规则语句同样可用于 OASIS 格式。
OASIS 格式相比 GDSII 具备多项优势,最核心的是文件体积更小 ------ 同一设计的 OASIS 文件体积通常仅为 GDSII 文件的十分之一。此外,OASIS 格式在单元名称的字符类型和长度上均无 GDSII 那样的限制。
两者的一个重要区别在于顶点数上限:Calibre 可读取顶点数高达 2³² 的 OASIS 多边形,而 GDSII 格式的读取上限仅为 2¹²(即 4096)个顶点。
3. 第三方版图格式
Calibre 工具支持读取 LEF/DEF、Milkyway 和 OpenAccess 三种第三方版图格式。
对这类第三方版图格式的处理流程,与前文 "GDSII 版图格式" 和 "OASIS 版图格式" 中介绍的处理方式极为相似。
在规则文件中,需通过 LAYOUT SYSTEM 语句指定第三方版图格式。对于 OpenAccess 系统,LAYOUT PATH 语句还需指定对应的设计库路径。
Calibre Interactive 和 Calibre 版图查看器均支持将这些第三方格式作为输入格式,但 Calibre 工具不支持输出这些格式。
++openAccess 支持说明++ ++:OpenAccess 正逐渐成为 EDA 行业的标准数据库。Si2 发布新版本后,明导国际(Mentor Graphics Corp.)通常会在约一个自然季度内完成版本验证与适配。由于 Cadence 公司提供 OpenAccess 的参考实现,部分 Cadence 工具可能会与 Si2 的版本同步发布,因此 Calibre 的 OpenAccess 库版本可能会比最新的 Cadence 工具版本滞后最多一个季度。++
++请确保所有第三方参数化单元(pcell)解析器均与 Calibre 支持的最新 OA 版本兼容,推荐使用的 Virtuoso 版本为 IC615。++
4. ASCII 版图格式
当版图数据库格式为 ASCII(通过 LAYOUT SYSTEM ASCII 语句指定)时,版图数据以一组名为 icv_data_n 的多边形文件形式存储(其中 n 代表对应的版图层编号),工具默认在当前工作目录中读取这些文件。该格式仅适用于平面模式的 Calibre 工具和 ICverify。
ASCII 多边形文件的格式定义为:**文件内容由若干个多边形组成,每个多边形的描述规则为顶点数量 + 顶点坐标序列,**具体语法如下:
<ascii polygon file> -> WS* [ <polygon> WS+ [ ... <polygon> ] ] WS*
<polygon> -> <vertex count> WS+ <vertex> WS+ <vertex> [ ... WS+ <vertex>
]
<vertex count> -> positive integer
<vertex> -> <x> WS+ <y>
<x>, <y> -> positive or negative integer
其中,空白字符* 表示零个或多个空白字符,空白字符+ 表示一个或多个空白字符。每个多边形的顶点数量由 <顶点数量> 字段指定,顶点坐标以数据库单位表示。仅有两个顶点的多边形会被视为与数据库坐标轴正交的矩形。
ASCII 数据库格式不支持用于电路连接关系提取的文本标签。对于此类数据库,可通过规则文件中的 TEXT 规则语句指定连接关系提取所需的文本信息。
5. 二进制版图格式
这是一种遗留格式,仅适用于平面模式的 Calibre 工具和 ICverify。
当版图格式为二进制(通过 LAYOUT SYSTEM BINARY 语句指定)时,版图数据以一组名为 icv_data_n 的多边形文件形式存储(其中 n 代表对应的版图层编号),工具默认在当前工作目录中读取这些文件。
二进制版图格式的优势在于文件体积更小,且数据读取速度更快。但该格式不被 Calibre DESIGNrev 和 Calibre RVE 支持,因此其主要用途是作为归档格式,适用于两个平面数据库之间的对比场景。
二进制多边形格式的语法可通过以下巴科斯 - 诺尔范式(BNF)描述:
<bpf file> -> <bpf record> [ ... <bpf record> ] EOF
<bpf_record> -> <node record> | <non-node record>
<node record> -> <node vertex count> <node number> <vertices>
<non-node record> -> <vertex count> <vertices>
<node vertex count> -> <short16 with MSB set>
<vertex count> -> <short16 with MSB unset>
<vertices> -> <vertex> [ ... <vertex> ]
<vertex> -> <x> <y>
<x> -> <int32>
<y> -> <int32>
<node_number> -> <int32>
| 格式类型 | 支持版本 | 核心优势 | 关键限制 | 主要应用场景 |
|---|---|---|---|---|
| GDSII | 6.0(高版本不支持) | 行业标准,兼容性强 | 单多边形最大 8192 顶点;细胞名 32 字符限制 | 绝大多数芯片设计的主流格式 |
| OASIS | 1.0 | 文件体积小(约为 GDSII 的 1/10)、无字符 / 长度限制 | 单多边形最大 2³² 顶点 | 大规模设计、需压缩文件体积场景 |
| 第三方格式 | LEF/DEF、Milkyway、OpenAccess | 兼容主流 EDA 工具(如 ICC、Virtuoso) | 仅支持输入,不支持输出 | 与前端设计工具协同验证 |
| ASCII | 无版本限制 | 格式直观,易人工编辑 | 仅支持扁平化设计;无文本标签功能 | 简单原型验证、小型扁平化布局 |
| Binary | 无版本限制 | 文件小、读取速度快 | 仅支持扁平化设计;不兼容 Viewer 工具 | 扁平化设计归档、快速对比验证 |
二、各格式详细技术要点
1. GDSII Layout Format(最常用)
1.1 基础配置要求
-
必须通过规则文件指定两个核心语句: svrf
LAYOUT SYSTEM GDSII # 声明格式类型 LAYOUT PATH "/path/to/file.gds" # 指定文件路径(可多个文件,用空格分隔) LAYOUT PRIMARY "TOP_CELL" # 指定顶层细胞名(处理该细胞及其下层级) -
多文件导入:
LAYOUT PATH可多次声明,所有文件视为嵌入第一个文件的结构,需保证每个文件语法完整。
1.2 关键限制与解决方案
| 限制项 | 具体要求 | 突破方法 |
|---|---|---|
| cell名 | 允许字符:A-Z/a-z/1-9/_/?/$;默认 32 字符 | 用 DRC MAXIMUM CELL NAME LENGTH <数值> 扩展 |
| 多边形顶点数 | 最大 8192 个(超量报 Fatal Error) | 1. 分割为≤8192 顶点的子多边形;2. 切换为 OASIS 格式 |
| 输出顶点数 | 默认最大 8190 个 | 用 DRC MAXIMUM VERTEX <数值> 扩展(最大 2³²) |
| 不支持的记录 | BOX/BOXTYPE/NODE/NODETYPE(默认不处理) | 需处理时添加规则:LAYOUT PROCESS BOX RECORD YES``LAYOUT PROCESS NODE RECORD YES |
| 非正交晶格 | 无法保留,导入时自动展开数组 | 无额外配置,工具自动处理 |
1.3 支持的 GDSII 记录
HEADER、BGNLIB、LIBNAME、UNITS、ENDLIB、BGNSTR、STRNAME、ENDSTR、BOUNDARY、PATH、PATHTYPE、WIDTH、BGNEXTN、ENDEXTN、XY、COLROW、LAYER、DATATYPE、SREF、AREF、SNAME、TEXT、TEXTTYPE、STRING、STRANS、MAG、ANGLE、ENDEL
2. OASIS Layout Format(推荐大规模设计)
2.1 核心优势
- 体积优化:比同设计 GDSII 小 10 倍,减少存储和传输成本;
- 无限制:细胞名字符 / 长度无约束,多边形顶点数支持到 2³²(远超 GDSII);
- 兼容性:大部分 GDSII 的配置语句(如
LAYOUT PATH、LAYOUT PRIMARY)直接复用。
2.2 配置要点
- 声明格式:
LAYOUT SYSTEM OASIS; - 其他配置(如层级深度、多文件导入)与 GDSII 完全一致;
3. 第三方布局格式(LEF/DEF、Milkyway、OpenAccess)
3.1 基础配置
- 声明格式:
LAYOUT SYSTEM <格式名>(如LEFDEF、MILKYWAY、OPENACCESS); - 路径配置:
LAYOUT PATH需指定设计库路径(OpenAccess)或 LEF/DEF 文件集合; - 仅支持输入:Calibre 工具无法输出这些格式,需转换为 GDSII/OASIS 归档。
3.2 关键环境变量(批量处理必配)
| 环境变量名 | 作用 | 核心参数 / 示例 | 优先级 |
|---|---|---|---|
| ICC_PATH | 指定 icc_shell 路径 | /opt/synopsys/icc/bin |
未在 PATH 中时需配置 |
| LD_LIBRARY_PATH | 加载 libstdc++.so.6.0.8 | /usr/lib64(RHEL4u6 以下系统) |
仅 OpenAccess 需要 |
| MGC_CALIBRE_DB_READ_OPTIONS | 控制第三方数据库读取选项 | -layerMap ./layer.map -child_depth 99 |
低于专用文件变量 |
| MGC_CALIBRE_LAYERMAP_FILE | 指定层映射文件 | ./layer_mapping.txt |
覆盖上述 -layerMap 选项 |
| MGC_CALIBRE_CELLMAP_FILE | 指定细胞映射文件 | ./cell_mapping.txt |
覆盖上述 -cellMap 选项 |
| MGC_CALIBRE_MW_STREAM_MODE | Milkyway 流模式 | ICC(默认,用 write_stream)/MW(用 fdi2gds) |
影响数据读取效率 |
| MGC_FDI_OA_VERSION | 指定 OpenAccess 版本 | 22.43(默认)/22.50 |
工具参数优先于环境变量 |
4. ASCII Layout Format(扁平化设计专用)
4.1 格式规范
-
文件命名:
icv_data_<层号>(如icv_data_1对应层 1),默认存于当前目录; -
语法(BNF 简化):
多边形文件 → [顶点数 x1 y1 x2 y2 ... xn yn] + 示例:4 0 0 0 100 100 100 100 0 # 矩形(4顶点) 2 0 0 200 200 # 正交矩形(简化写法,2顶点) -
单位:顶点坐标为数据库单位(需与规则文件
UNITS一致)。
4.2 限制与补充
- 仅支持扁平化设计,无层级结构;
- 无文本标签:需用规则语句补充连接性信息:
TEXT "NET1" LAYER 10 XY 50 50。
5. Binary Layout Format(归档专用)
5.1 核心特点
- 文件命名:同 ASCII(
icv_data_<层号>); - 优势:文件体积最小、读取速度最快;
- 限制:不支持层级设计,Calibre DESIGNrev/RVE 无法读取,仅用于扁平化设计归档和对比。
5.2 格式规范
-
二进制结构:每个记录包含顶点数(16 位短整数,MSB 标识是否为节点记录)+ 顶点坐标(32 位整数);
-
节点记录:含节点编号,非节点记录仅含顶点数据。
三、快速配置模板(规则文件片段)
1. GDSII 格式(最常用)
svrf
UNITS DIEAREA 0 0 10000 10000 ; 数据库单位与芯片面积
LAYOUT SYSTEM GDSII
LAYOUT PATH "./top.gds ./sub.gds" ; 多文件导入
LAYOUT PRIMARY "TOP_CELL"
LAYOUT DEPTH ALL ; 读取所有层级
LAYOUT PROCESS BOX RECORD YES ; 处理BOX记录(如需)
DRC MAXIMUM CELL NAME LENGTH 64 ; 扩展cell名长度限制
DRC MAXIMUM VERTEX 16384 ; 扩展输出顶点数限制
2. OpenAccess 格式(与 Virtuoso 协同)
svrf
LAYOUT SYSTEM OPENACCESS
LAYOUT PATH "./oa_design_lib" ; OA设计库路径
LAYOUT PRIMARY "TOP"
配套环境变量配置(Linux 终端):
bash
运行
export MGC_CALIBRE_LAYERMAP_FILE="./oa_layer.map"
export MGC_FDI_OA_VERSION="22.50"
export LD_LIBRARY_PATH="/usr/lib64:$LD_LIBRARY_PATH"