2015年6月5日

[EDA] Design Chanllenges of Standard Cells

Standard cell (中譯:標準元件) 是數位 IC 設計的基本單元,指的就是諸如 AND 閘、OR 閘 ... 等等的邏輯閘或是 Flip-flop、latch 等記憶單元。因為數位 IC 有絕大部分都是這些基本邏輯閘,因此設計良好的 standard cell 絕對會對最後的 IC 成品有舉足輕重的影響。這篇只是簡單聊聊現在 standard cell 及其相關設計會遇到的問題,不會深入去談技術細節 (人懶就說)

先來談談一般 standard cell 會顧慮的幾個點:
  1. 面積:現在 IC 中的邏輯閘起碼都是以百萬計算的,因此就算面積只多了 1%,最後整體的面積膨脹率也是相當驚人。
  2. 效能:同上,特別是在 CPU 這種極端注重效能誘非常複雜的 IC。以現在 CPU 的時脈來看可是連 1 ps (pico-second) 都要斤斤計較的。
  3. 功率:我想你應該很希望你的手機充一次電能用越久越好。
以上是 3 個設計 standard cell 時最基本會看重的指標,當然一般來說很難三者同時滿足,特別是第 2 跟第 3 點,兩者是互斥的概念,因此現在的設計多半是先看主要是著重於哪一點,另一個就盡可能的去滿足條件而已。

而隨著技術的演進,電晶體持續微縮,雖然帶來的好處包含效能提高、耗電量下降 ... 等等,然而也同時帶來了大麻煩:對於電晶體的控制越來越差。舉例來說,現在的場效電晶體是透過在電晶體的閘極上控制電壓,藉此讓電晶體呈現開 (電流導通,邏輯上為 1) 或關 (電流無法流通,邏輯上為 0)。不過當電晶體縮小時,現在越來越容易出現電晶體內的電子本身不需要外加電場就能自己流通的問題,所以就出現大問題了:
  1. 電晶體即便在關閉狀態還是會有潛在的電流 (俗稱漏電流),因此會持續耗電
  2. 為了讓 IC 的耗電量降低,最有效的方法就是降低供應電壓,但是在有漏電流的情況下,請問現在的電晶體是導通還是關閉狀態? 這個切換點就變得隱晦不清難以拿捏
問題很明顯,只是該怎麼解決呢? 這十幾年來半導體物理這一塊針對電晶體架構有提出了許多改善方法,這幾年最夯的我想就是 Fin-FET (鳍式場效電晶體) 了。不過這些架構雖然都不太一樣,但是針對的目標其實都很明確:如何加強對閘極的控制,藉此降低電晶體尺寸縮小時的種種問題。像是一個閘極不夠,你有沒有用兩個? (bi-gate),兩個不夠你有沒有用三個? (tri-gate),平面的不好控制那就改用立體的。諸如此類。

這些架構雖然雖然提升了對於電晶體的控制,然而潛在問題就是電晶體內部有越來越多耦合、寄生電容/電阻,帶來了許多奇奇怪怪的物理效應,因此如何模擬電晶體的運作就變成大難關了。想要精確? 你先確定時間夠不夠用;想要快? 你先確定精準度是否符合要求。用錯 model 模擬? 你會得到一大堆看似不錯但實際上完全無用的數據。全部的操作都一如預期,但是結果卻不盡理想? 你大概踩到了目前仍未知的雷XD 根據了解,現在的電晶體模型設集 7 個參數,要解 7 個偏微分方程式 XD

以上是設計 standard cell 時會遇到的挑戰,設計完要實際把 standard cell 的 layout 畫出來時會遇上同樣煩人的難關,而且也是來自於製程進步後帶來的困擾 XD 簡單來說就是製程雖然進步了,尺寸縮小了,但是要製造一個僅僅幾十奈米而且還繼續縮小的電晶體,物理上的限制讓畫 layout 時要遵守的規範是前一個製程的好幾倍 XD 另一方面,即便是利用相同的設計畫出來的 layout 當然也會有好壞之分,因為設計時只會規劃總共要有幾個電晶體、彼此之間怎麼連線、電晶體的架構為何 ... 等等,但是最基本的三大指標則是必須要等到實際的 layout 畫完了才有辦法計算精確且正確的結果,因此不止要畫得出來,還要畫得好是現在的工程師要面對的一大難關。

根據了解,一個有經驗的工程師大約 1 天可以畫完一種 standard cell,不過一個 standard cell library 有幾十種甚至上百種 standard cell,像是記憶單元這種特別複雜的一天也不見得畫得完,畫完後當然還要持續的調整改善,然後跟據摩爾定律每 18 個月會有新製程,所以又要重畫新製程的 standard cell,因此現在的工程師越來越命苦 XD 而且 standard cell 這邊還沒有非常有效的自動化軟體,主要原因來自於一個有經驗的工程師畫 layout 時會有他們自己的奇淫巧計加以優化,致於問他們原因為何,通常答案是 "經驗告訴我這樣比較好" 這種讓寫軟體的人會腦溢血的答案,所以早期並沒有有效的自動化軟體輔助設計的原因在此,因為這類奇淫巧計太多,自動化軟體難以作出可以媲美工程師手畫的 layout。當然,製程持續的進步,現在人工的負擔越來越高,所以未來勢必會需要發展足以輔佐的自動化軟體,只是這條路還有很長的距離要走。




沒有留言:

張貼留言