物理設計

佈局利用率(placement utilization)

把晶片的核心區想像成一個停車場,標準單元就是一輛輛汽車。佈局利用率回答的就是一個問題:這個停車場停滿了多少?它表示你的邏輯實際佔用了多大比例的可用地面——把每個標準單元的面積加起來,再除以它們被允許擺放的核心區域面積。利用率 0.70 意味著 70% 的地面被單元佔據,剩下 30% 還是空著的柏油地。

那空著的 30% 並不是浪費,而是繞線器需要的喘息空間。導線並不是在另一個維度裡穿行——它們走在疊放於單元上方的金屬層上,還得透過導孔(via)往下鑽才能接到單元接腳,所以一塊單元密不透風、塞滿到牆角的地面,根本沒地方讓連線穿過去。把利用率推得太高——超過大約 80% 到 90%——繞線器就會用光繞線軌道,壅塞(congestion)驟增,於是你會遇到繞不通的網線,或者一大片 DRC 違例。這正是早期佈局規劃通常瞄準一個寬鬆的 60% 到 70% 的原因:你是在刻意留出餘量,好讓時脈樹緩衝器、修保持時間(hold)的單元,以及後期的 ECO 改動,在繞線和簽核(signoff)之前都還有地方落腳。

搞清楚你到底是除以哪塊面積,會很有幫助。利用率是相對核心區(可擺放區域)來衡量的,而不是整顆晶粒(die)——晶粒上還有 I/O 銲墊環和留邊,那些不歸你填。而當核心區裡坐著大塊硬巨集(hard macro,比如記憶體、PLL)或佈局阻擋(blockage)時,工具往往會按真正留給標準單元的那塊面積來報告一個有效利用率,這個數會比你最初設的原始數值高出不少。

utilization = (total standard-cell area) / (core placeable area); e.g. 0.65 = 65% full

最基本的比值——讓它遠低於 1.0,繞線器才有軌道可用。

利用率是一個會移動的目標,而不是撥一次就定死的旋鈕:它會隨著流程一路往上爬——CTS 加入時脈緩衝器、修時序又塞進更多單元——所以要在佈局規劃階段就留出餘量,而不是一開始就貼著天花板起步。

又稱
core utilizationcell utilizationutil核心利用率單元利用率