一覺醒來

一覺醒來,整個數位 IC 設計界大變樣。從業界到學界,理解能力彷彿被抹平,所有人都只剩下背誦等級的知識。 就連 李鎮宜教授,也只能熟練地背出: 「Setup time 要滿足、Hold time 不能違反、Slack 要是正的。」 但一被問到 「為什麼 clock skew 對 setup 與 hold 的影響方向相反?」 「為什麼 APR 後一定要重新做 timing sign-off?」 他卻只能停頓良久,無法回答。 那些原本屬於真正數位 IC 設計核心的理解,彷彿一夜之間從世界上消失了。 而我,卻保留了原來的水準。 ⸻ 第二天,我走進 期末考試教室。 四周傳來壓低音量的恐慌聲: 「怎麼辦,我連 synchronous 跟 asynchronous path 都快分不清了……」 「Clock tree 不就是把 clock 接起來而已嗎?」 「IR drop 應該只影響 power 吧,跟 timing 有什麼關係?」 我一頭霧水。 直到考卷發下來。 整張試卷,全是這樣的題目: • 下列哪一種情況最容易造成 hold violation? • 為什麼 實體實現後 timing 可能比邏輯階段更差? • 哪一種設計行為 會同時增加功耗與時序風險? • 哪些 path 不應該被當成一般 timing path 分析? 我忍不住舉手。 「教授,這份考題是不是出錯了?」 「怎麼……全都是這麼直覺的題目?」 教室瞬間安靜。 ⸻ 李鎮宜教授抬起頭,眼神中帶著難以置信。 「直覺?」 「那你說說看——」 「為什麼 hold violation 通常不能單靠 data path 加 buffer 解決?」 我想了一下,回答得很平靜: 「因為 hold violation 的本質是最短資料路徑與 launch/capture clock 關係的問題。」 「在資料路徑亂加延遲,雖然可能暫時救到 hold,卻會同時破壞 setup, 真正該處理的是 clock skew、時脈樹結構,或重新定義 path 本身。」 全場倒抽一口氣。 ⸻ 教授後退半步,聲音開始顫抖。 「那……那你再說——」 「為什麼 IR drop 會影響 timing?」 我淡淡一笑: 「因為供應電壓下降會讓 cell 延遲上升,最後直接反映在 critical path 的 slack 上。」 「功耗完整性問題,本來就不是只屬於 power 的領域,而是時序設計的一部分。」 已經有人低頭不敢再看考卷。 ⸻ 我補了一句: 「還有,如果 RTL 階段沒有把 sequential 與 combinational 行為寫清楚,到了實體階段,問題只會被放大,不會被掩蓋。」 李鎮宜教授沉默了。 他轉頭對身旁的助教低聲說: 「去請院長來吧。」 院長來得很快。 那天早上, EDA server 的 queue 幾乎空了。 沒有 Innovus error log, 沒有「CTS failed」的哀號, 沒有凌晨三點還在 rerun 的 STA report。 大家都卡在同一件事上——看不懂。 他們可以照著投影片操作: set_clock_uncertainty set_false_path report_timing 但一離開指令, 一問「為什麼」, 腦中就是一片空白。 彷彿整個世界 只剩下 流程記憶, 卻失去了 因果理解。 ⸻ 院長站在教室門口, 看著我,又看著李鎮宜教授。 「這就是你說的那個學生?」 教授點頭。 院長轉向我,語氣試探: 「同學,你覺得—— 現在的數位 IC 設計,最核心的是什麼?」 我沒有立刻回答。 我看了一眼考卷, 再看了一眼周圍那些 會背公式、卻不敢推導的眼神。 然後我說: 「不是 timing。」 「也不是 power。」 「甚至不是 area。」 「而是判斷哪些東西不該被工具自動決定。」 ⸻ 教室裡有人皺眉。 我繼續說: 「工具只會優化你告訴它要優化的東西。」 「但什麼是 path、什麼是例外、什麼該被忽略——那是設計者的責任。」 「如果設計者自己不理解系統的行為,APR 只是在把錯誤具象化。」 院長沉默了很久。 ⸻ 助教終於忍不住插話: 「那你怎麼知道哪些 path 不該算 timing?」 我看向他: 「CDC 沒同步的 asynchronous path。」 「Reset tree。」 「Test mode。」 「功能上永遠不會同時 valid 的 mutually exclusive path。」 「如果你事後才靠 false path 去蓋, 代表你 一開始 就沒想清楚架構。」 助教的臉色白了。 ⸻ 院長深吸一口氣。 「那你覺得——現在這個世界,出了什麼問題?」 我這次回答得很慢: 「理解被壓縮成 checklist。」 「設計被簡化成 flow。」 「學生被訓練成工具操作員,而不是系統設計者。」 「所以一旦理解消失,整個領域就只剩下背誦。」 ⸻ 李鎮宜教授低聲問: 「那你為什麼沒受影響?」 教室裡所有人都在等答案。 我抬起頭,語氣第一次不那麼平靜: 「因為我從來不是從『怎麼過驗證』開始想。」 「我是從『如果這個系統真的跑在晶片上,它會怎麼做』開始想。」 「我記住的不是 rule,而是後果。」 ⸻ 院長轉身,對身後的人說了一句話: 「把課程大綱、考題、Lab——全部重出。」 然後,他看向我。 「同學,你願不願意——」 他停了一下。 「從下學期開始,來教我們什麼叫理解?」
愛心
哈哈
跪
190
18
全部留言