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

UeduGPTs

--

Jupyters

4

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

AI 回覆桌面通知

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

聊天訊息通知

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

聲音通知

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

軟體與 EDA
軟體與 EDA

佈局與繞線(P&R)

把幾十億個元件擺進晶片、再用密如蛛網的金屬線接通。

佈局與繞線(P&R) 概念示意插圖
概念示意插圖(AI 生成,僅供輔助理解,非精確技術圖示)
研究所  ·  約 19 分鐘  ·  佈局繞線P&REDA

從合成網表到實體版圖:P&R 的問題定義

邏輯合成(synthesis)輸出的是一份閘級網表(gate-level netlist):一張由標準單元(standard cell)與連線構成的拓樸圖,但其中沒有任何幾何座標。佈局與繞線(Place & Route,P&R)的任務,是把這張抽象圖映射到二維晶片平面上——決定每個單元的實體位置、再用多達 10~15+ 層的金屬互連把它們接通——同時滿足時序、功耗、面積、訊號完整性與可製造性等彼此衝突的約束。

現代 SoC 一顆可能含 數十億個電晶體、上千萬個標準單元。把這麼多元件擺進晶片本質上是 NP-hard 的組合最佳化問題,無法求全域最佳解,只能靠啟發式(heuristic)演算法逼近。P&R 因此是整個數位設計流程中最吃計算資源、迭代最久的階段,動輒數十小時到數天。

佈局(Placement):最小化線長的數學最佳化

目標函數與 HPWL

佈局的核心目標是最小化總線長,因為線長直接決定寄生 RC 延遲繞線壅塞。業界最常用的線長估計是 HPWL(Half-Perimeter Wire Length,半周長線長):對每條網路(net)取其所有接腳的外接矩形(bounding box),線長近似為矩形的半周長。整體目標可寫成:

$$\text{minimize} \quad \sum_{\mathrm{net}} \mathrm{HPWL}(\mathrm{net})$$

受限於:單元不重疊(non-overlap)、單元落在合法 row/site 上(legalization)、時序約束(setup/hold slack $\geq 0$)、繞線壅塞密度 $< 1.0$。

三階段流程

現代 placer(如解析式佈局 analytical placement)分三階段:

  • Global placement(全域佈局):放鬆不重疊約束,把問題鬆弛成連續最佳化。常用二次規劃(quadratic placement,把線長近似為 $\sum w_{ij}(x_i-x_j)^2$ 的二次型,解大型稀疏線性系統)或非線性最佳化(以 log-sum-exp 平滑 HPWL,再加密度懲罰項,用共軛梯度法求解)。
  • Legalization(合法化):把重疊的單元推開、對齊到合法位置,盡量不破壞全域結果。
  • Detailed placement(細部佈局):局部交換、滑動單元,進一步壓低線長與壅塞。

近年 AI 輔助佈局(強化學習擺放巨集 macro placement)開始進入商用工具,但解析式方法仍是主力。

時鐘樹合成(CTS):對抗時鐘歪斜

佈局後、繞線前要做 CTS(Clock Tree Synthesis,時鐘樹合成)。時鐘訊號必須同時到達數十萬個正反器(flip-flop),任何到達時間差稱為時鐘歪斜(clock skew)。CTS 插入緩衝器(buffer)與反相器建立平衡樹(如 H-tree 或多級 mesh),把 skew 壓到數十 ps 以內。

代價是顯著的功耗:時鐘網路常占整顆晶片動態功耗的 20~40%,因為它在每個週期翻轉。先進設計改用 clock meshmulti-source CTS 來換取更低 skew,但繞線資源與功耗成本更高,這是典型的取捨。

繞線(Routing):在多層金屬間找通路

全域繞線與細部繞線

繞線把每條 net 實際接通,分兩層次:

  • Global routing(全域繞線):把晶片切成網格(gcell),決定每條 net 大致走哪些網格與哪幾層金屬,目標是讓壅塞(congestion)均勻、不超過各邊的繞線容量。常建模為多商品流(multi-commodity flow)問題。
  • Detailed routing(細部繞線):在金屬層的合法軌道(track)上指定確切幾何路徑與通孔(via),必須遵守所有設計規則。底層演算法源自 Lee maze routing(迷宮繞線)A* 搜尋,並以 ripup-and-reroute(拆線重繞)迭代消除違規。

金屬堆疊與層指派

先進製程的 BEOL 有 10~15+ 層金屬:底層(M1~M3)線細、間距小,走局部短線;上層(如 redistribution 與 power)線粗、電阻低,走長距離與電源。層指派要平衡:長 net 拉到上層降低 RC,但通孔切換本身有電阻與面積代價。

寄生效應與時序收斂

RC 延遲的物理

互連延遲主要來自寄生電阻 R 與電容 C 的乘積。一段導線的延遲近似 Elmore delay $\approx R\cdot C$,對分布式 RC 線則正比於長度平方($t \propto \frac{1}{2}RCL^2$)。隨製程微縮,導線變細使 R 上升、間距變小使耦合 C 上升,互連延遲已超越閘延遲成為主導。這正是 P&R 必須極力壓低線長的根本原因。

STA 與時序收斂

繞線後做靜態時序分析(STA, Static Timing Analysis)驗證每條路徑:

# setup(建立時間)檢查:資料要在時鐘邊緣前穩定
slack_setup = T_clk - (T_launch + T_logic + T_net - T_capture - T_setup)
# hold(保持時間)檢查:資料不能太早改變
slack_hold  = (T_launch + T_logic + T_net) - (T_capture + T_hold)
# 全部 net 都要 slack ≥ 0 才算時序收斂(timing closure)

達不到時,工具會自動緩衝器插入、上尺寸(upsizing)、調整佈局反覆迭代。時序收斂往往是 tape-out 前最痛苦、最耗時的環節。

訊號完整性、功耗網路與失效模式

P&R 還要處理多種第二序效應與失效模式:

  • 串擾(crosstalk):相鄰平行長線的耦合電容造成雜訊與延遲變化,需加 spacing 或 shielding。
  • IR drop(電壓降):電源網路(PDN)電阻造成局部電壓不足,使單元變慢甚至失效;需足夠寬的 power rail 與密集 via。
  • 電遷移(electromigration):長期大電流使金屬原子遷移、導線斷裂,是可靠度殺手,需限制電流密度。
  • 天線效應(antenna effect):製程中累積電荷打穿閘氧化層,需加 antenna diode 洩流。
約束維度 衝突對象 典型取捨
線長/延遲 面積 拉近單元 vs. 壅塞爆掉
時鐘 skew 功耗 mesh 低 skew vs. 高功耗
繞線層數 成本 多層好繞 vs. 光罩變貴
IR drop 面積 寬電源軌 vs. 訊號繞線空間

前沿現況

當前 P&R 的前沿集中在幾個方向:機器學習用於壅塞預測與巨集擺放、雲端大規模平行化縮短迭代、以及配合 GAA 電晶體背面供電(BSPDN)的新繞線範式——把電源網路搬到晶圓背面後,正面訊號繞線資源大增,但 P&R 工具需重新建模雙面互連。隨著設計規模逼近數百億電晶體,P&R 的執行時間與品質仍是限制晶片上市速度的關鍵瓶頸。

延伸閱讀:〈RTL 與邏輯合成〉、〈從 RTL 到 GDSII:數位設計流程〉、〈設計規則與可製造性設計(DFM)〉。

接著問 AI 助教

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

AI 共讀助教正在陪你讀:佈局與繞線(P&R)
嗨!我是這篇文章的共讀助教,只根據〈佈局與繞線(P&R)〉的內容回答。可以問我「解釋某段」「舉個例子」「出題考我」,或反白文中段落後點下方「解釋選取段落」。