Home
探索 Uedu
學生控制台
註冊會員/登入
研究知情同意中心
教師控制台
課程設定
支援與訊息
Uptime 數據

UeduGPTs

--

Jupyters

4

UG26 CISOSE26
臺北 AQI 40 · 臺中 AQI 26 · 臺南 AQI 24 · 高雄 AQI 28

AI 回覆桌面通知

AI 助教回覆完成時顯示桌面通知

聊天訊息通知

同學在討論區發送訊息時通知

聲音通知

每當有新通知時播放提示音

軟體與 EDA
軟體與 EDA

從 RTL 到 GDSII:數位設計流程

一段硬體描述語言,如何一步步變成可製造的版圖。

從 RTL 到 GDSII:數位設計流程 概念示意插圖
概念示意插圖(AI 生成,僅供輔助理解,非精確技術圖示)
研究所  ·  約 18 分鐘  ·  RTL合成布局繞線tape-out

一段程式碼如何變成可製造的版圖

數位晶片設計是一條從抽象行為描述可製造光罩資料的精煉管線,業界稱為 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)〉。

接著問 AI 助教

點一下複製提問,到 ClassroomGPT、優學伴(AIDA)或你的 UeduGPTs 頻道貼上,AI 會引用本專區內容回答。

AI 共讀助教正在陪你讀:從 RTL 到 GDSII:數位設計流程
嗨!我是這篇文章的共讀助教,只根據〈從 RTL 到 GDSII:數位設計流程〉的內容回答。可以問我「解釋某段」「舉個例子」「出題考我」,或反白文中段落後點下方「解釋選取段落」。