HOME ABOUT CONTACT

介紹 top

GDSII(GDS II Stream Format)是用於交換與封存積體電路版圖的二進位格式。它以階層方式組織結構(structure/cell)及其圖形元素,描述版圖中的幾何形狀、文字標籤、圖層與結構參考,它不是電路連線網表 (Netlist),也不會單獨定義各製程圖層的物理意義。GDS 檔通常由 EDA 工具從版圖資料庫匯出,並交付給下游工具或晶圓廠使用。

另一種常見格式是 OASIS(Open Artwork System Interchange Standard)。相較於 GDSII,OASIS 支援更有效率的資料表示與壓縮,並能利用重複結構減少大型版圖的檔案體積。實際的讀寫、載入與繪圖效能仍取決於設計內容及 EDA 工具,GDSII 因相容性與既有流程成熟,至今仍廣泛使用。

資料格式介紹 top

GDSII 是由一連串可變長度的 record 組成。每筆 record 的前 4 個位元組是 header,其中前 2 個位元組表示整筆 record 的長度(以 byte 計,包含這 4 個 header bytes),第 3 個位元組是 record type,第 4 個位元組是 data type。數值以 big-endian 儲存;record 長度為偶數,下一筆 record 緊接在本筆結尾。

Header 之後才是 payload,data type 會指出 payload 的基本表示方式,例如 bit array、2-byte 有號整數、4-byte 有號整數、8-byte REAL,以及 ASCII 字串;實際欄位意義、數值個數和排列順序則由 record type 規定。版圖 XY 座標是以 4-byte 有號整數儲存,並以 UNITS record 定義的 database unit 解讀;GDSII 的 REAL 格式也不是 IEEE 754 浮點數格式。

檔案架構介紹 top

GDSII 的 record 順序並非任意,而是依格式規範排列。常見的 library 開頭包含 HEADER(版本)、BGNLIB(library 的修改與存取時間)、LIBNAME(library 名稱)及 UNITS(使用者單位與 database unit 的換算);之後是多個 structure,最後以 ENDLIB 結束。每個 structure 通常由 BGNSTR、STRNAME 開始,包含多個 element,並以 ENDSTR 結束。詳細順序可參考GDSII Stream Format Manual。

UNITS record 很重要:它定義 user unit 與 database unit 的比例,以及一個 database unit 對應的實際長度(公尺)。XY 座標本身是整數,不直接帶有 um 或 nm 等單位;讀取座標時必須搭配 UNITS 解讀。Layer number 和 datatype 也是數值代碼,其對應的金屬層、繪圖用途等意義,通常由製程 layer map 或技術文件定義。

版圖 element 常見的類型有以下 7 種:

這些元素通常依序由元素起始 record(例如 BOUNDARY 或 PATH)、屬性 record(如 LAYER、DATATYPE、XY)描述,並以 ENDEL 結束。GDSII 保留的是階層與幾何表示;像 SREF/AREF 這類引用讓重複 cell 不必在檔案中展開複製,讀取工具再依結構參考與變換還原其位置。

幾何重疊檢測(Geometric Overlap Detection)

在處理 GDSII 版圖資料時,常見的演算法包括幾何布林運算(Boolean Operations)、版圖縮放(Layout Scaling)、網格化(Tiling)以及重複結構展開(Instance Expansion)等。這些演算法通常需要考慮階層結構、元素類型、座標精度與單位轉換等因素,以確保處理後的版圖仍保持設計意圖。

另外還有常見的幾何重疊檢測(Geometric Overlap Detection),用於追蹤同層和不同層的 Metal 連結關係,這裡想針對 Metal 的重疊檢測進行說明。

由於 GDSII 可能涵蓋大量的幾何圖形,因此分成兩大步驟的操作,分別是快速篩選(Broad Phase)與精確檢測(Narrow Phase)。快速篩選通常利用空間資料結構(如四叉樹、R 樹),以及 Bounding Box 快速排除不可能重疊的元素,縮小候選集合,其中 Bounding Box 會使用 AABB(Axis-Aligned Bounding Box)的方式進行檢測,是使用了 GDSII 表示的一種特性,因每個 Polygon 的邊界都可以用最小的軸對齊矩形來包覆,從而快速判斷潛在的重疊情況。

精確檢測則對候選集合中的元素進行逐一幾何重疊判定,以確保檢測結果的正確性,通常會包含 Polygon Intersection、Edge Intersection 以及 Point in Polygon 等幾何判定方法,其中 Point in Polygon 會使用 Ray Casting 演算法進行判定。

影片參考

參考來源 top

Last updated: