IC版图设计之GDS2文件格式详解

版图中GDS2文件格式详解

目录

  1. 什么是GDS2文件?
  2. GDS2文件的历史与发展
  3. GDS2文件的结构解析
  4. GDS2文件的核心元素
  5. GDS2 vs. OASIS: 核心差异
  6. 如何生成与查看GDS2文件?
  7. GDS2文件的局限性
  8. 应用场景
  9. 总结

什么是GDS2文件?

GDS2(Graphic Data System II)是一种用于集成电路(IC)设计和版图数据的二进制文件格式。它是GDS格式的第二个版本,由Calma公司在20世纪70年代开发,现已成为半导体行业中最广泛使用的版图数据交换标准之一。

GDS2文件主要用于描述芯片的物理布局信息,包括几何图形、层次结构、文本标注等。


GDS2文件的历史与发展

  • 1970年代:GDS格式由Calma公司开发,用于其版图设计系统。
  • 1980年代:GDS2成为行业标准,广泛应用于IC设计和制造。
  • 2000年代:OASIS格式出现,试图替代GDS2,但GDS2因其成熟性和广泛支持仍占据主导地位。
  • 至今:GDS2仍然是半导体行业中最常用的版图数据格式之一。

GDS2文件的结构解析

GDS2文件是一种二进制文件,由一系列记录(Records)组成。每个记录包含以下部分:

  • 记录头:2字节,表示记录类型。
  • 记录长度:2字节,表示记录的总长度。
  • 记录内容:可变长度,包含具体数据。

主要记录类型

  1. HEADER:文件头,包含版本信息。
  2. BGNLIB:库开始标记,包含创建和修改时间。
  3. LIBNAME:库名称。
  4. UNITS:定义用户单位与数据库单位的比例。
  5. STRUCT:结构定义开始。
  6. SNAME:结构名称。
  7. BOUNDARY:几何图形(多边形)定义。
  8. PATH:路径定义。
  9. TEXT:文本标注。
  10. ENDLIB:库结束标记。
    以下为test.gds案例 ,详细解释每个字段含义
hexdump -C test.gds
00000000  00 06 00 02 00 05 |00 1c  01 02 00 7d 00 02 00 06  |...........}....|
00000010  00 0e 00 09 00 2d 00 7d  00 02 00 06 00 0e 00 09  |.....-.}........|
00000020  00 33 |00 08 02 06 74 65  73 74 |00 14 03 05 3e 41  |.3....test....>A|
00000030  89 37 4b c6 a7 f0 39 44  b8 2f a0 9b 5a 54| 00 1c  |.7K...9D./..ZT..|
00000040  05 02 00 7d 00 02 00 06  00 0d 00 36 00 00 00 7d  |...}.......6...}|
00000050  00 02 00 06 00 0e 00 09  00 2d | 00 08 06 06 74 65  |.........-....te|
00000060  73 74 |00 04 08 00 |00 06  0d 02 00 00 |00 06 0e 02  |st..............|
00000070  00 00 | 00 2c 10 03 ff ff  ff b0 ff ff ff c7 00 00  |...,............|
00000080  00 52 ff ff ff c7 00 00  00 52 00 00 00 3a ff ff  |.R.......R...:..|
00000090  ff b0 00 00 00 3a ff ff  ff b0 ff ff ff c7 |00 04  |.....:..........|
000000a0  11 00 |00 04 07 00| 00 04  04 00 |00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000800

(1)00 06 00 02 00 05:据前两个字节00 06得到此模块共六个字符,根据00 02得知此模块为文件头,00 05为版本号;
(2)00 1c 01 02 00 7d 00 02 00 06 00 0e 00 09 00 2d 00 7d 00 02 00 06 00 0e 00 09
00 33 :
前两个字节00 1C得到此模块共28个字节,01 02可知为BGNLIB库文件头,00 7d 00 02 00 06 00 0e 00 09 00 2d和00 7d 00 02 00 06 00 0e 00 09
00 33定义了GDSII文件最后一次修改的时间2025年2月6日14点09分45秒和读取时间2025年2月6日14点33秒.
(3)00 08 02 06 74 65 73 74表示LIBNAME,它定义了文件库名,即test
(4)00 14 03 05 3e 41 89 37 4b c6 a7 f0 39 44 b8 2f a0 9b 5a 54 20个字节,为UNITS,后面跟了两个8字节的浮点数,UNITS 记录定义了两个浮点数,分别表示 用户单位 和 数据库单位。这两个浮点数用于坐标的缩放和转换。
前 4 字节:00 14 03 05 → 记录头和类型(UNITS)。
后 16 字节:两个 8 字节的浮点数(大端格式)。
(5)00 1c 05 02 00 7d 00 02 00 06 00 0d 00 36 00 00 00 7d 00 02 00 06 00 0e 00 09 00 2d:
05 02 表示BGNSTR模块结构头,后跟2个12字节记录创建时间以及修改时间。后面跟着若干cell即instance。
(6)00 08 06 06 74 65 73 74:STRNAME 模块结构名,cellname名为test;
(7) 00 04 08 004个字节,BOUNDARY多边形
(8) 00 06 0d 02 00 00 :6个字节,LAYER层,0层
(9) 00 06 0e 02 00 00: 6个字节,DATATYPE,0
(10) 00 2c 10 03 ff ff ff b0 ff ff ff c7 00 00 00 52 ff ff ff c7 00 00 00 52 00 00 00 3a ff ff ff b0 00 00 00 3a ff ff ff b0 ff ff ff c7 44个字节,XY,5对int32型的XY坐标: 5对有符号整数分别为(-80,-57),(82,-57),(82,58),(-80,58),(-80,-57);
(11) 00 04 11 00 4个字节,结束插入
(12) 00 04 07 00 4个字节,ENDSTR结束模块。
(13) 00 04 04 004个字节,ENDLIB结束库文件。

GDS2文件的核心元素

1. 层次结构(Hierarchy)

  • GDS2文件支持层次化设计,允许定义和复用结构(STRUCT)。
  • 每个结构可以包含几何图形、路径、文本等元素。

2. 几何图形(Geometry)

  • 使用BOUNDARY记录定义多边形,描述版图中的金属层、扩散层等。
  • 每个多边形由一系列顶点坐标组成。

3. 路径(Path)

  • 使用PATH记录定义线宽和路径形状,常用于描述导线。

4. 文本标注(Text)

  • 使用TEXT记录添加文本信息,如标签、注释等。

5. 单位定义(Units)

  • 使用UNITS记录定义用户单位与数据库单位的比例,确保数据的精确性。

GDS2 vs. OASIS: 核心差异

特性GDS2OASIS
文件格式二进制二进制
文件体积较大较小(压缩率更高)
兼容性广泛支持较新,支持较少
层次结构支持支持
扩展性有限更强(支持更多数据类型)

如何生成与查看GDS2文件?

生成GDS2文件

  1. EDA工具导出

    • 使用Cadence Virtuoso、Synopsys IC Compiler等工具导出GDS2文件。
    • 示例:在Cadence Virtuoso中,选择File > Export > Stream,设置输出格式为GDSII。
  2. 脚本生成

    • 使用Python库(如gdspy)编写脚本生成GDS2文件。

查看GDS2文件

  1. 专用查看器

    • 使用KLayout、GDSII Viewer等工具查看GDS2文件。
  2. EDA工具导入

    • 将GDS2文件导入EDA工具(如Cadence Virtuoso)进行查看和编辑。

GDS2文件的局限性

  1. 文件体积较大

    • GDS2文件是二进制格式,且未压缩,导致文件体积较大。
  2. 功能有限

    • 不支持现代设计中的一些高级特性(如参数化单元)。
  3. 版本老旧

    • GDS2格式自1980年代以来未进行重大更新,逐渐被OASIS取代。

应用场景

  1. IC设计与制造

    • GDS2文件用于描述芯片的物理布局,是流片(Tape-out)的关键数据。
  2. 版图验证

    • 使用DRC(设计规则检查)和LVS(版图与电路图一致性检查)工具验证GDS2文件。
  3. IP核交换

    • GDS2文件常用于IP核(Intellectual Property Core)的交付。

总结

GDS2文件作为半导体行业中最经典的版图数据格式,至今仍在IC设计和制造中发挥着重要作用。尽管其存在文件体积大、功能有限等局限性,但其广泛的兼容性和成熟性使其难以被完全取代。对于IC设计工程师而言,掌握GDS2文件的结构和使用方法是必备技能。


参考资料

  1. GDSII Format Specification
  2. KLayout GDSII Viewer
  3. Cadence Virtuoso User Guide
  4. OASIS vs. GDSII Comparison

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值