一段程式碼如何變成可製造的版圖
數位晶片設計是一條從抽象行為描述到可製造光罩資料的精煉管線,業界稱為 RTL→GDSII 流程。工程師寫的不是電路,而是 RTL(暫存器傳輸層)程式碼;EDA 工具把它一步步轉換、最佳化、驗證,最終產出 GDSII(或 OASIS)格式的版圖交給晶圓廠。整條流程的共同目標是在滿足功能正確的前提下,最佳化 PPA——performance(效能)、power(功耗)、area(面積) 這個鐵三角。
流程全貌
| 階段 | 輸入 | 輸出 | 核心問題 |
|---|---|---|---|
| RTL 設計與驗證 | 規格 | RTL + 測試 | 行為對不對 |
| 邏輯合成 | RTL + 約束 + .lib | 閘級網表 | 映射到標準單元、達 PPA |
| DFT 插入 | 網表 | 含掃描鏈網表 | 做好後測得出壞 |
| 佈局(placement) | 網表 + LEF | 單元座標 | 擺哪裡才好繞、好收時序 |
| 時脈樹合成(CTS) | 已佈局設計 | 時脈網路 | 把時脈準時送到每個正反器 |
| 繞線(routing) | 已 CTS 設計 | 完整連線 | 用金屬層接通且不違規 |
| 簽核(signoff) | 版圖 | 通過報告 | STA/DRC/LVS/IR 全過 |
| Tape-out | GDSII | 光罩資料 | 交付製造 |
約束驅動:設計從一份 SDC 開始
整條流程被設計約束主導,最核心的是 SDC(Synopsys design constraints):定義時脈週期、輸入輸出延遲、多週期路徑、假路徑、最大電容/轉態等。約束就是設計的「考卷」——工具一切最佳化都在試圖讓設計通過這份約束。約束寫錯(如時脈定義漏掉、假路徑誤設)會導致「工具報全過、晶片回來卻壞」的災難,因此約束審查本身是一門功夫。
從 RTL 到閘級:合成與最佳化
邏輯合成 把 RTL 翻譯成布林邏輯,再映射(mapping)到目標製程的標準單元庫(standard cell library)——一組預先設計、特徵化好的閘(INV、NAND、DFF 等),其時序與功耗封裝在 .lib(Liberty)檔。合成器在滿足時序約束下,於 PPA 之間做取捨:用更大的單元換速度(但耗面積與功耗)、或共享邏輯換面積(但可能變慢)。
合成輸出的閘級網表接著插入 DFT(design for test):把正反器串成掃描鏈(scan chain)、加入 MBIST、邊界掃描,讓晶片量產後能用 ATE 測出製造缺陷。DFT 會佔用面積與時序預算,這是「可測試性」與「PPA」之間的取捨,必須在流程早期規劃。
實體實作:把網表攤進矽
進入實體階段,抽象的網表變成有座標的版圖:
- Floorplan:劃定晶片邊界、擺放硬 IP(記憶體、PLL)、定義電源網(power grid)、IO 環。
- Placement:為數百萬標準單元決定座標。目標是讓連線總長最短、時序可收斂、密度均勻。這是一個超大規模的組合最佳化問題,現代工具用解析式(analytical)演算法配合合法化(legalization)求解。
- CTS(clock tree synthesis):時脈要同時到達數十萬個正反器。CTS 插入緩衝器建平衡的時脈樹,把時脈偏斜(skew) 壓到最小,否則 skew 直接吃掉時序餘裕。
- Routing:在十幾層金屬上把所有連線接通,需避開 DRC 違規、控制串擾(crosstalk)與繞線壅塞。
- 最佳化(opt):每一步後反覆做時序、功耗、設計規則最佳化,這是流程中最耗機時的部分。
簽核:四道把關
設計完成後進入 signoff,用最精確(但最慢)的工具做最終驗證,全過才能 tape-out:
- STA(靜態時序分析):不靠模擬,靜態窮舉所有時序路徑,檢查每條都滿足 setup 與 hold。核心是 slack(時序餘裕):
$$\mathrm{slack} = \mathrm{required\_time} - \mathrm{arrival\_time}$$
其中 $\mathrm{arrival\_time}$ 是訊號實際抵達終點的時間、$\mathrm{required\_time}$ 是為了不違規、訊號最晚必須抵達的時間。若 $\mathrm{slack} \geq 0$ 該路徑通過;$\mathrm{slack} < 0$ 即為違規(violation)。
setup(建立時間)違規讓晶片跑不到目標頻率,可降頻救;hold(保持時間)違規更致命——它與頻率無關,晶片在任何速度都會壞,必須插延遲緩衝修掉。
- DRC(設計規則檢查):版圖是否違反代工廠物理規則(最小線寬、間距、密度)。
- LVS(佈局與電路一致性):版圖萃取出的電路是否與原始網表等價,防止繞錯線。
- IR drop / EM:電源網壓降與金屬電遷移壽命分析,確保供電穩定且互連不會燒斷。
簽核全綠後,輸出 GDSII,這道交付動作稱為 tape-out(沿用早期把資料寫到磁帶交廠的歷史用語)。其後晶圓廠對版圖做 OPC(光學鄰近修正) 與光罩合成,才正式投片。
工程現實:迭代與收斂
教科書把流程畫成一條直線,現實是無數次回頭:時序收不了就回去改約束、改架構甚至改 RTL;繞線壅塞就回去重佈局;功耗超標就回頭做電源閘控與多臨界電壓設計。整條流程的本質是一個在 PPA 鐵三角上反覆逼近的最佳化迴圈,而「收斂(timing closure)」——讓所有路徑 slack 同時非負——往往是一個專案最後、也最痛苦的衝刺。前沿趨勢是用 AI 預測佈局繞線後的時序、自動調參,把這場收斂之戰縮短。
延伸閱讀:〈RTL 與邏輯合成〉、〈佈局與繞線(P&R)〉。