GDSII(佈局交換格式)
GDSII 就是你真正交給晶圓代工廠的那個檔案——它是你這顆晶片最終、最完整的畫像,全部寫成純粹的幾何圖形。想像把完成的佈局一層層揭開,攤成一疊透明膠片,每張對應一個製造層(這層金屬、那個導孔、多晶矽、各種佈植),然後在每張膠片上把每一個圖形的精確輪廓都描下來:這裡一個矩形,那裡一根 L 形導線,一個做接觸窗的小方塊。GDSII 就是裝著所有這些描好的多邊形的二進位「模板冊」。上游的一切——布圖規劃、佈局、時脈樹、繞線、時序簽核、DRC 和 LVS——存在的意義就是產出這一個乾淨的檔案。它一旦離手,設計就算完成了;晶圓廠除了這些圖形,再不需要你提供任何東西。
從機制上看,GDSII(即 GDS II Stream Format,一種誕生於 1980 年代初的二進位格式)保存的是一個單元(cell)的階層結構:一個單元裡既可以裝裸的多邊形和路徑,每個都標上層號(layer number)和資料型別(datatype),也可以引用其他單元,按位置、旋轉、鏡像把它們擺進來,甚至擺成重複的陣列。正是這種階層結構,才讓一塊含有數百萬個相同位元單元的記憶體仍然是個大小可控的檔案——你只定義一次單元,然後到處實例化(instance),而不必把每一個副本都重畫一遍。關鍵在於,GDSII 只攜帶幾何圖形加上那些層號;它不記錄網路(net)、時序,也不記錄任何規則意圖。晶圓廠透過一張層映射表來讀它——比如「31 層、資料型別 0 是 Metal-1」——再用每一層上的圖形去製作該製程步驟所用的光罩。
因為這個格式已經有幾十年歷史,它也帶著種種侷限——停留在 16 位元時代的設定、建立在資料庫格點(database grid,常見為 1 奈米甚至更細)上的整數座標,以及在先進節點上動輒膨脹的檔案大小。它的現代繼任者 OASIS(Open Artwork System Interchange Standard)用緊湊得多的方式編碼同樣的內容,如今在最先進的流片中已相當常見;不過日常說到「要交出去的那份佈局」,大家用的詞依舊是「GDSII」。
BOUNDARY; LAYER 31; DATATYPE 0; XY 0,0 0,200 400,200 400,0 0,0; ENDEL
31 層(比如 Metal-1)上的一個矩形,正是 GDSII 所保存的那種記錄——一個多邊形輪廓,標上層號和資料型別。
GDSII 裡只有幾何圖形——你之所以敢相信這些圖形既合法、又確實對得上你的網表,靠的是流程更早階段通過的 DRC 和 LVS;GDS 檔案本身並不能告訴你這些。