製程角(PVT corner)
下線的晶片沒有兩顆是一模一樣的,而且誰也不會運行在一間溫控完美的房間裡。電晶體做出來會比教科書上的標稱值略快或略慢(這就是製造上的離散性),供電電壓會有些下陷或衝高,矽晶片則可能在從冰冷到滾燙的任何溫度下工作。製程角就是一份刻意悲觀的配方,它把這三個旋鈕一次性釘在最壞(或最好)的設定上——Process(製程)、Voltage(電壓)、Temperature(溫度),因此叫 PVT——並且規定:晶片在這裡也必須能用。你可以把它想像成給一座橋做應力測試時,不按平均車流量來壓,而是在最熱的那天、用最便宜那批鋼材、壓上最重的卡車。如果它扛得住這些極端角,你就相信它扛得住中間的一切情況。
這些角的簡稱來自電晶體最終做成什麼樣。SS 指慢-慢矽晶片(NMOS 慢、PMOS 也慢),FF 指快-快,TT 是典型的中心點,而 SF / FS 描述的是偏斜情形——一種類型的電晶體偏快、另一種偏慢。你把每個製程點再配上一個電壓和一個溫度。哪個角會咬人,直覺是這樣的:建立時間檢查(setup,資料是否足夠快、能趕在時脈緣之前到達?)通常在慢、低電壓的角最糟,因為一切都拖沓遲緩;保持時間檢查(hold,資料是否停留得夠久?)通常在快、高電壓的角最糟,因為訊號搶跑衝在了前面。溫度過去很簡單——越熱越慢——但在如今的低電壓製程節點上這關係可能反轉,於是冷的矽晶片有時反而是慢的那一種情況。這正是為什麼你不該靠手算去推某一個角;你要讓工具把所有角都掃一遍。
一個角一個角地查會查到天荒地老,還會漏掉它們之間的相互作用,所以簽核採用 MMMC——多模式多製程角(multi-mode multi-corner)。一個模式(mode)就是晶片所處的一種工作場景(正常功能、掃描測試 scan、低功耗休眠態、加速 turbo 態),每個模式關心的是不同的時脈和不同的約束集合。MMMC 會把每一個模式與每一個相關製程角交叉,搭出完整的網格,並在繞線之後、把真實提取出的寄生參數(parasitics)放進時序模型裡,對它們一次性一起分析。所謂收斂時序(close timing),就是這張網格裡的任何一格都沒有失敗的路徑——只有到這一步,設計才算真正在它將要面對的矽晶片、供電、溫度的整個包絡範圍內都滿足了時序。
一個粗略的經驗法則,告訴你哪個 PVT 製程角會對哪種時序檢查施加最大壓力——但務必用工具來確認,因為在先進節點上溫度反轉可能會把最壞情況的溫度翻轉過來。
製程角本身就是刻意留了悲觀的,所以別把同一份餘量算兩遍——基於製程角的快/慢邊界與晶片內偏差(on-chip-variation)降額要小心地層層疊加(而且越來越多地被統計式 / POCV 簽核所取代),以免過度設計,白白搭進面積、功耗或時脈速度。