版圖中GDS2文件格式詳解
目錄
- 什么是GDS2文件?
- GDS2文件的歷史與發展
- GDS2文件的結構解析
- GDS2文件的核心元素
- GDS2 vs. OASIS: 核心差異
- 如何生成與查看GDS2文件?
- GDS2文件的局限性
- 應用場景
- 總結
什么是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字節,表示記錄的總長度。
- 記錄內容:可變長度,包含具體數據。
主要記錄類型
- HEADER:文件頭,包含版本信息。
- BGNLIB:庫開始標記,包含創建和修改時間。
- LIBNAME:庫名稱。
- UNITS:定義用戶單位與數據庫單位的比例。
- STRUCT:結構定義開始。
- SNAME:結構名稱。
- BOUNDARY:幾何圖形(多邊形)定義。
- PATH:路徑定義。
- TEXT:文本標注。
- 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: 核心差異
特性 | GDS2 | OASIS |
---|---|---|
文件格式 | 二進制 | 二進制 |
文件體積 | 較大 | 較小(壓縮率更高) |
兼容性 | 廣泛支持 | 較新,支持較少 |
層次結構 | 支持 | 支持 |
擴展性 | 有限 | 更強(支持更多數據類型) |
如何生成與查看GDS2文件?
生成GDS2文件
-
EDA工具導出
- 使用Cadence Virtuoso、Synopsys IC Compiler等工具導出GDS2文件。
- 示例:在Cadence Virtuoso中,選擇
File > Export > Stream
,設置輸出格式為GDSII。
-
腳本生成
- 使用Python庫(如
gdspy
)編寫腳本生成GDS2文件。
- 使用Python庫(如
查看GDS2文件
-
專用查看器
- 使用KLayout、GDSII Viewer等工具查看GDS2文件。
-
EDA工具導入
- 將GDS2文件導入EDA工具(如Cadence Virtuoso)進行查看和編輯。
GDS2文件的局限性
-
文件體積較大
- GDS2文件是二進制格式,且未壓縮,導致文件體積較大。
-
功能有限
- 不支持現代設計中的一些高級特性(如參數化單元)。
-
版本老舊
- GDS2格式自1980年代以來未進行重大更新,逐漸被OASIS取代。
應用場景
-
IC設計與制造
- GDS2文件用于描述芯片的物理布局,是流片(Tape-out)的關鍵數據。
-
版圖驗證
- 使用DRC(設計規則檢查)和LVS(版圖與電路圖一致性檢查)工具驗證GDS2文件。
-
IP核交換
- GDS2文件常用于IP核(Intellectual Property Core)的交付。
總結
GDS2文件作為半導體行業中最經典的版圖數據格式,至今仍在IC設計和制造中發揮著重要作用。盡管其存在文件體積大、功能有限等局限性,但其廣泛的兼容性和成熟性使其難以被完全取代。對于IC設計工程師而言,掌握GDS2文件的結構和使用方法是必備技能。
參考資料
- GDSII Format Specification
- KLayout GDSII Viewer
- Cadence Virtuoso User Guide
- OASIS vs. GDSII Comparison