物理設計

金屬層(BEOL,後段製程)

電晶體在矽晶片裡刻好之後,光有它們還派不上用場——你得先把它們連起來,而現代晶片裡有數十億個電晶體。這件事沒法在一個平面上完成,就像一座城市沒法只靠一條街道把每棟樓都連通一樣。於是晶圓廠在電晶體上方一層層地架起一張立體路網:十幾層甚至更多的金屬佈線,一層疊一層,層與層之間填著絕緣體,再由一種叫「導孔(via)」的微型垂直電梯穿過去,把這一層的導線接到上一層的導線上。這整套金屬堆疊就是後段製程,也就是 BEOL——之所以叫「後段」,是因為它是在電晶體本身(前段製程,FEOL)做好之後,一層一層疊在它們上面才造出來的。佈局繞線在「繞線」時,畫導線用的正是這些層。

這些層故意做得不一樣。靠近電晶體的最底層金屬(常叫 M1、M2 往上)又薄又密、線距很細——是供相鄰單元之間做短距離本地跳接的窄巷子,這裡要的是密度,而不是速度。順著堆疊往上爬,導線越來越寬、越來越厚,到頂層就是幾條又粗又胖的金屬,專門幹兩件活:把乾淨的電源和地送遍整片晶片(也就是供電網路 PDN),以及把長距離訊號從晶片這頭送到那頭。原因很簡單,就是電阻。一根導線的電阻是 R = rho*L/A——與長度成正比,與橫截面積成反比——所以一條長走線如果走在又薄的底層,電阻會高得離譜、訊號也慢得要命;把它提到橫截面又大的厚頂層,每毫米的電阻就驟然下降。這正是好的繞線器會把短網路往低層放、把長網路或電流大的網路往高層送的道理。

不過這些銅導線並不理想:每一根都帶著實實在在的電阻,還會與左右鄰線以及上下各層之間形成電容。這些寄生參數,正是寄生參數萃取要從最終佈局裡挖出來、再交給靜態時序分析的東西——因為在先進製程節點上,金屬導線的延遲可以逼近甚至超過它所連接的邏輯閘的延遲。所以金屬堆疊絕不是收尾時隨手裝上去的「水管」:一個網路走在哪一層、各層尺寸怎麼定,都是頭等的設計決策,直接關係到晶片能不能滿足時序、扛不扛得住供電需求。

R = rho * L / A (resistance rises with wire length L, falls with cross-sectional area A)

為什麼長網路和電源網路要提到厚的上層金屬:橫截面 A 越大,單位長度的電阻就越小,於是同一條長走線,放在又薄的底層會拖垮效能,放到上面的厚層就變得可以接受了。

層數和命名因晶圓廠、因製程節點而異,頂部的「厚」金屬有時還會再細分成重佈線層與超厚電源層——但原理是通用的:底部又薄又密,留給本地網路;頂部又厚又疏,留給電源和長距離訊號。

又稱
BEOLback-end-of-lineinterconnect stackmetal stackMx layers金属层互连层金属互连堆叠