Real-Time Dynamic IR-drop Prediction for IR ECO
Real-Time Dynamic IR-drop Prediction for IR ECO
背景與痛點 (Introduction)
晶片設計的最後一哩路:Sign-off 與 ECO
- 當晶片設計快要完成時,會進入「簽核 (Sign-off)」階段。這時候必須確保所有指標都合格。
- 當電流流過電線時,電壓會因為電阻而下降(歐姆定律)。如果電壓降太多(IR-drop),晶片就會跑不動或是算錯 。
- 為了修復這些電壓問題,工程師會進行 ECO (Engineering Change Order)。最常用的方法是「移動元件 (Cell Moving)」,把吃電怪獸移開,或是把元件移到電壓比較穩的地方 。
為什麼現在的流程很痛苦?
- 不確定性高: 你移動了一個元件,可能會影響到旁邊的元件。就像你在擠滿人的電梯裡移動位置,可能會踩到別人的腳。所以修復結果是很不確定的,通常要試錯好幾次 。
- 時間成本太高: 每次移動完(產生一個 ECO 候選方案),如果想知道修好了沒,必須跑一次「全電路模擬」。這非常慢(好幾個小時),導致設計師沒時間嘗試太多種修法 。
現有 AI 方法的缺陷 (Prior Works)
既然模擬太慢,之前已經有人想過用 AI (機器學習) 來預測結果,但這篇論文指出了它們的兩個大問題:
還是不夠快 (依賴部分模擬)
- 以前的 AI 模型雖然預測很快,但在預測之前,仍然需要跑一種「部分模擬 (Partial Simulation)」來更新電路特徵(比如電阻值變化)。
- 這個「部分模擬」本身就很慢,導致整體時間並沒有省下多少 。
視野狹隘 (Local View 導致困惑)
- 以前的 AI 在看一個元件的周圍環境時,是把周圍的每一個小格子(Tile)都當成獨立的特徵來學習。
- 問題: AI 會因為不同位置的鄰居狀況不同而感到混亂(Confused),無法學到真正影響電壓的規律 。
這篇論文的解決方案 (Proposed Method)
作者提出了一套全新的流程,核心在於「完全不用跑模擬」就能預測結果。
全局視野特徵 (Global View Features)
這是為了解決 AI「視野狹隘」的問題。- 做法: 不再單獨看每一個鄰居格子。而是統計周圍 5x5 範圍內所有鄰居的:
- 最大值 (Max): 最耗電、影響最大的那個鄰居是誰?
- 最小值 (Min): 最安靜的鄰居是誰?
- 總和 (Overall): 這一區總共的耗電量是多少?
- 篩選 (Correlation Ranking): 他們還計算了相關係數,只保留那些跟電壓降最相關的特徵,把雜訊過濾掉,讓模型更精準 。
- 做法: 不再單獨看每一個鄰居格子。而是統計周圍 5x5 範圍內所有鄰居的:
快速特徵更新技術 (Fast Feature Update)
這是為了解決「還要跑部分模擬」的問題。- 概念: 作者發明了一種演算法,利用 「移動前的舊資料」 + 「移動後的座標」,直接推算出移動後的新特徵。
- 為什麼能這樣做?
- 元件本身的電氣特性(如電容、電流)在移動時幾乎不會變 。
- 會變的是「鄰居是誰」。所以演算法只需要重新計算「現在誰搬到了誰隔壁」,然後把新鄰居的數值加總起來就好 。
- 結果: 這個過程只要幾秒鐘或幾分鐘,完全不需要跑耗時的電路模擬 。
創新的 ECO 流程
- 因為預測變成了 Real-time 的,設計師現在可以在同一輪修改中,平行嘗試 多個 ECO 方案 (ECO 1, ECO 2… ECO n)。
- AI 會瞬間告訴你哪個方案最好,你再選那個去執行。這大大增加了修復成功的機率 。
實驗結果 (Experimental Results)
準確度 (Accuracy)
- 模型表現: 他們使用的模型是 XGBoost 。
- 成功率: 對於那些經過修復的元件,AI 能成功檢測出 96% 的修復狀況 。
- 誤差值: 預測電壓與真實電壓的平均誤差 (MAE) 只有 8.75mV。考慮到電壓標準是 800mV,這個誤差非常小,符合工業界需求 。
速度 (Speed)
- 對比商用工具 (Voltus): 快了 88 倍 (1.45 分鐘 vs 127 分鐘) 。
- 對比傳統 AI: 快了 64 倍 (因為省去了部分模擬的時間) 。
全局特徵的有效性
- 實驗證明,使用他們提出的「全局視野特徵」,預測誤差比舊的「局部視野」方法降低了 20.2%
- 這證明了不只看單一鄰居,而是看整體統計數據是正確的方向。
- 實驗證明,使用他們提出的「全局視野特徵」,預測誤差比舊的「局部視野」方法降低了 20.2%
總結
- 不用再跑模擬了: 用我的「快速特徵更新法」,用算的就能知道特徵變化。
- 用「全局視野特徵」來訓練 AI,它才不會被鄰居搞混。
- 既然預測這麼快,現在可以一次嘗試十種修復方案,挑最好的來用。
筆記
ECO 舉例
在真實的晶片設計軟體(如 Voltus)中,設計師看到的畫面像是一張熱力圖 (Heatmap)。
- 紅色區域 (Red Zone): 電壓降很嚴重的地方(像是擁擠的市中心,大家都在搶電)。
- 綠色區域 (Green Zone): 電壓很穩定的地方(像是郊區,電力充足)。
假設 Cell A 在紅色區域,設計師可以嘗試把 Cell A 往綠色區域移動,看看能不能改善電壓問題。但是
- 你把 Cell A 移到綠區,但 Cell A 自己也是會吃電的。它一搬過去,原本那邊的「綠區」可能會因為多了一張嘴吃飯,反而變成「紅區」,害原本住在那邊的鄰居出問題 。
- 這就是為什麼要預測:
- 舊方法: 移過去 -> 跑幾小時模擬 -> 發現害死鄰居 -> 移回來 -> 再試別的地方。
- 這篇論文的方法: AI 瞬間告訴你:「如果你移到這裡,你和新鄰居都會沒事」或者「別移過來,這裡會爆掉」。這樣設計師就能馬上判斷能不能移 。
Local View vs Global View
舊方法 (Local View):死記硬背「位置」
- 舊方法把這 25 個格子(5x5)當成 25 個獨立的變數 餵給 AI。
- AI 會嘗試去學:「左上角的格子 (Tile 1) 如果耗電高,會不會導致電壓降?」、「右邊的格子 (Tile 3) 耗電低,會怎樣?」
- 衝突點 (Confusion):
- 情況 A: 左上角鄰居很吵 $\rightarrow$ 我失眠(IR-drop 違規)。
- 情況 B: 左上角鄰居很安靜,但右下角鄰居超吵 $\rightarrow$ 我還是失眠。
- 這時候 AI 盯著「左上角」看,就會覺得困惑:「奇怪,有時候它安靜我也失眠,有時候它吵我也失眠,到底規則是什麼?」
- 因為特徵太多(125 個),且位置關係太複雜,AI 很難歸納出通則。
新方法 (Global View):抓「重點摘要」
- 新方法雖然也看這 5x5 的範圍,但它不把 25 個格子的數據直接餵給 AI。 它是先經過一道數學手續,把這 25 個格子濃縮成 3 個指標 :
- 最大值 (Max): 這一圈鄰居裡,最吵的那個人分貝是多少?(不管他是住左上還是右下)。
- 總和 (Overall): 這一圈鄰居加起來總共製造了多少噪音?
- 最小值 (Min): 這一圈裡最安靜的程度?
- 新方法雖然也看這 5x5 的範圍,但它不把 25 個格子的數據直接餵給 AI。 它是先經過一道數學手續,把這 25 個格子濃縮成 3 個指標 :
省去「部分模擬」的時間
- 舊方法:每次移動元件後,都要跑一個「部分模擬」,來重新計算整個 PDN 的電阻值 (R)、電感值 (L),然後再用這些新數據去更新特徵。 這個部分模擬通常要花好幾十分鐘到幾個小時,非常耗時。
- 新方法:作者發現,其實元件本身的電氣特性(像是電容、電流)在移動時幾乎不會變。 會變的只是「鄰居是誰」。所以他們設計了一個演算法,只需要根據「新鄰居」來重新計算特徵,而不需要跑模擬。 這個過程只要幾秒鐘或幾分鐘,大大加快了速度。
Real-Time Dynamic IR-drop Prediction for IR ECO
https://933yee.github.io/notes/2025/12/23/real-time_dynamic_ir-drop_prediction_for_ir_eco/