B.1 PDK 檔案格式速查:Techfile、LEF/DEF、Liberty 與 SPEF#
一份 PDK 由多種檔案格式組成,各司其職:有的描述製程規則、有的描述元件外觀、有的描述電氣模型。本附錄以表格搭配範例,快速比對各格式的用途、產生者與消費者。
總覽#
| 格式 | 副檔名 | 用途 | 由誰產生 | 被誰消費 |
|---|---|---|---|---|
| Techfile | .tf、.drf | 製程層次與 DRD 規則 | 晶圓廠 | 版圖編輯器(Virtuoso)、DRD 檢查 |
| Technology LEF | .lef | 製程層、金屬與 via 資訊 | 晶圓廠 | P&R、萃取、時序工具 |
| Cell LEF | .lef | 單元的外觀、pin、遮蔽區 | 晶圓廠/單元庫廠商 | P&R、萃取工具 |
| DEF | .def | 設計的版圖資訊(placement/routing) | P&R 工具 | 萃取、signoff、GDS 產生 |
| Liberty | .lib | 單元時序/功耗/面積模型 | 單元庫廠商(特徵化) | 合成、P&R、STA |
| SPICE model card | .spi、.scs | 電晶體 SPICE 模型參數 | 晶圓廠(foundry model team) | SPICE 模擬器、特徵化 |
| SPEF | .spef | 寄生電阻電容網路 | 寄生萃取工具 | STA、gatesim |
| GDSII / OASIS | .gds、.oas | 最終版圖幾何資料 | 版圖工具/P&R | 光罩製作、DRC/LVS |
| Rule deck | .svrf、.icv 等 | DRC/LVS 規則集 | 晶圓廠 + EDA 廠商 | Calibre、IC Validator |
| SDC | .sdc | 時序約束 | 設計者/前端工具 | 合成、P&R、STA |
Techfile(DRD 規則)#
Techfile 描述製程的所有層次(layer)與其間距、線寬、包覆等設計規則(DRD, Design Rule Deck),是版圖環境的基礎。通常由晶圓廠提供,供版圖編輯器建立技術檔,並可匯出給 DRC 工具使用。
layer M1
width = 0.14
spacing = 0.14
min_area = 0.1
end
via V1
enclosure = 0.02
end
LEF:Technology LEF 與 Cell LEF#
LEF(Library Exchange Format)分兩部分。Technology LEF 描述製程金屬層、via 定義與繞線方向;Cell LEF 描述每個標準單元或硬 IP 的抽象外觀(abstract view):邊界、pin 位置與金屬形狀。兩者皆由晶圓廠或庫廠產生,由 P&R(如本書的 veryl-eda ASIC 流程)、寄生萃取與 DEF 產生工具消費。
MACRO INVX1
CLASS CORE ;
SIZE 1.0 BY 2.7 ;
PIN A
DIRECTION INPUT ;
LAYER M1 ; RECT 0.1 0.8 0.5 1.2 ;
END
END INVX1
DEF#
DEF(Design Exchange Format)記錄「這顆晶片實際被擺成什麼樣」:die area、row、單元擺放(placement)、繞線(routing)與電源網路。由 P&R 工具輸出,交給寄生萃取、實體驗證與 GDS 流工具。
VERSION 5.8 ;
DIEAREA ( 0 0 ) ( 1000 1000 ) ;
COMPONENTS 2 ;
- INVX1 _u1 + PLACED ( 200 270 ) N ;
END COMPONENTS
END DESIGN
Liberty(.lib)#
Liberty 是單元的電氣抽象模型:每個 corner 一份檔案,內含 cell 面積、pin 方向與電容、以 lookup table 表示的 delay/transition/功耗,以及時序arc。由庫廠以 SPICE 特徵化(characterization)產生,被合成、P&R 與 STA 消費。
library (sky130_fd_sc_hd__tt) {
cell (INVX1) {
area : 4.0 ;
pin (A) { direction : input ; capacitance : 0.006 ; }
pin (Y) {
timing () {
cell_rise ("delay_template") { index_1("0.1"); index_2("0.5"); values("0.12"); }
}
}
}
}
SPICE model card#
晶圓廠量測實際元件後擬合出的電晶體模型參數(如 BSIM4 參數集),以文字形式提供 TT/SS/FF 等 corner。由 foundry 的模型團隊產生,被 SPICE 模擬器(ngspice、Spectre)與 Liberty 特徵化工具消費。本書 v2c ASIC 流程做 gatesim 前,支援的 PDK 即需要這類模型。
.MODEL nch nmos level=54 version=4.5
+ tox=4.15e-9 vth0=0.45 u0=0.025
SPEF#
SPEF(Standard Parasitic Exchange Format)記錄寄生萃取後的每條 net 之 R/C 值與節點連接,以電阻電容網路形式描述真實互連。由寄生萃取工具(讀取 LEF/DEF 或 GDS)產生,被 STA(含 crosstalk 分析)與 gate-level 模擬消費。
*D_NET net_17 0.0032
*CONN
*I _u1:Y O
*I _u2:A I
*CAP
1 _u1:Y 0.0021
*RES
1 _u1:Y _u2:A 45.0
*END
GDSII / OASIS#
GDSII 是流交換的業界標準版圖格式,OASIS 是其較新的壓縮繼承者。由版圖編輯器或 P&R→GDS 流工具產生,是最終交給光罩製作(mask shop)與 DRC/LVS 物理驗證的資料。
DRC / LVS rule deck#
DRC/LVS 規則集(rule deck)是晶圓廠規則與 EDA 語法的結合:以 Mentor Calibre 的 SVRF(Standard Verification Rule Format)或 Synopsys IC Validator 的 ICV 格式撰寫,內含層次運算(AND/OR/NOT/SIZE)與檢查語句。由晶圓廠與 EDA 廠商共同維護,僅被對應的驗證工具消費。概念上長這樣:
LAYER m1 = M1 ;
WIDTH m1 < 0.14 ERROR "M1.W.1" ;
SDC#
SDC(Synopsys Design Constraints)以 Tcl 語法描述時序意圖:clock 定義、輸入輸出延遲、false path 等。由設計者(或前端工具從 RTL 註解產生)撰寫,被合成、P&R 與 STA 沿用,確保各階段對「時間」的認知一致。
create_clock -name clk -period 10.0 [get_ports clk]
set_input_delay 2.0 -clock clk [all_inputs]
set_output_delay 2.0 -clock clk [all_outputs]
小結#
理解這些格式的分工,就能看懂一條 ASIC 流程:RTL 經合成讀 Liberty 變成 netlist;P&R 讀 LEF/SDC 產出 DEF;萃取工具由 DEF 產出 SPEF;STA 讀 SPEF 做 signoff;最後 DEF + LEF 轉成 GDS 交給 DRC/LVS rule deck 驗證並送 tapeout。