joy

joy的数字花园

一直游到海水变蓝
github

數字集成電路物理設計3.1:佈局規劃

前言#

簡單概括#

結合 OpenROAD 對 floorplan 的粗略概括:

  1. floorplan 的內容是對晶片內部介面的完整規劃與設計,包括:
    1. 晶片大小 (ifp):
      1. initializes floorplan constraints, die/core area, and makes tracks.
    2. 晶片 IO(ppl, pad
      1. pin placement: Place pins on the boundary of the die on the track grid to minimize net wirelengths.
      2. Chip-level Connections: either place an IO ring around the boundary of the chip and connect with either wirebond pads or a bump array
    3. macro placement (mpl, mpl2)
      1. The macro placer places macros/blocks honoring halos, channels and cell row “snapping”.
    4. 電源規劃 (pdn)
      1. PDN Generation: 指定應用於設計的一小套電網策略,例如使用的層數、條紋寬度和間距,然後讓實用程序生成實際的金屬帶
  2. floorplan 關係到晶片的時序收斂,布線通暢,電源穩定和良品率
  3. 從 floorplan 到完成 placement 一般需要佔據整個物理實施 1/3 時間

術語#

image.png

  • Bond Pad 是晶片與外部封裝進行電氣連接的關鍵接觸點,確保電信號傳輸和電源分佈。其佈局直接影響封裝工藝、信號完整性和晶片尺寸,是 Floorplan 設計中的重要內容。
  • Bump Array 是晶片與封裝基板或 PCB 進行電氣、機械、熱連接的關鍵結構,廣泛應用於 Flip-Chip3D IC 封裝中。Floorplan 階段需要精確規劃 Bump Array 的位置、密度和分佈,以優化信號性能、电源完整性和熱管理。

布圖規劃的內容和目標#

Floorplan 是晶片物理設計的第一步,用於確定核心區域、宏單元、IO 單元的位置以及布線資源和電源規劃,以優化晶片性能和面積。

floorplan 的目標主要包括:

  1. 面積:保證布線的同時儘量節約產成品本
  2. 時序收斂:需要對晶片延遲進行預估,考慮是否能最終滿足 SDC 要求,實現時序收斂
  3. 穩定性:保證晶片內部電源分佈均勻、供電充足
  4. 布線性:在保證布線通暢的同時,儘量縮短走線的長度,也即減小互連線的延遲,從而有效地提高晶片的性能

I/O 接口單元的放置與供電#

  • TODO

布圖規劃方案與延遲預估#

在做 floorplan 之前,會通過零線負載模型對綜合後的網表做延遲分析,以評估時序。如果時序較差則應當優化網表。

而在 floorplan 階段的時序與延遲預估方法,取決於晶片設計方法,即 1. 自下而上展平式(flatten)的矽虛擬原型設計方法(SVP, silicon virtual prototyping);2. 自上而下的層次化設計方法 (hierarchical)

PS: 當 design 在 500 萬門左右時,考慮採用層次化設計方案。

展平式設計#

在展平式設計中,對多個 floorplan 進行 place 後,採用 STA 對整個晶片進行延遲估算,然後使用時序違例(negative slack)來評估不同 floorplan 效果。

由於此階段尚未建立互連線,只能通過 WLM 估算延遲(書中描述的 "只能" 存疑,WLM 為一種統計模型,估算負載電容及線長,從而初步預測線延遲)。

WLM(Wire Load Model, 線負載模型) 是一種在 RTL-to-GDSII 流程早期(如綜合階段)用於估算信號網線電容、电阻和延遲的模型,主要基於電路規模、網線扇出和統計數據。

層次化設計#

層次化設計大致可分為三個步驟:晶片頂層設計規劃,子模塊分割(partition)與實現以及晶片頂層組裝實現。

image.png

在時序預算 (time budgeting),首先需要對整個晶片的時序進行分析。

  • TODO

模塊布放與布線通道#

模塊布放位置是建立在布圖規劃基礎上的,模塊佈局的結果又會對前期布圖規劃的期望目標產生直接影響,其中,能否保證布線的完成是通過布線通道的分析來進行。

routing channel 是每兩條或多條 track 的空間,channel 上不可以擺放標準單元。而在 macro 四周通常還預留不允許擺放標準單元的 halo(僅供專門布線)。

  • Routing Channel:佈局中預留的布線通道空間,通常出現在宏單元或單元間隙。
  • Routing Track:布線層上的規則網格線,每個軌跡表示可放置信號線的位置。

image.png

在層次化設計中,channel 按照形狀分為 TL 形兩種。當兩個子模塊相聚跨度較大時,還需要定義 feedthrough channel 來滿足時序和布線要求。

image.png

在層次化設計中引入了基於行的布線方法,即圖 b 中的無通道分割法 (channel-less)。圖 a 為基於 channel 的分割,圖 c 為混合法

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。