一覺醒來

國立陽明交通大學
一覺醒來,整個數位 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——全部重出。」
然後,他看向我。
「同學,你願不願意——」
他停了一下。
「從下學期開始,來教我們什麼叫理解?」


