前言#
簡單概括#
結合 OpenROAD 對 floorplan 的粗略概括:
- floorplan 的內容是對晶片內部介面的完整規劃與設計,包括:
- 晶片大小 (
ifp
):- initializes floorplan constraints, die/core area, and makes tracks.
- 晶片 IO(
ppl
,pad
)- pin placement: Place pins on the boundary of the die on the track grid to minimize net wirelengths.
- Chip-level Connections: either place an IO ring around the boundary of the chip and connect with either wirebond pads or a bump array
- macro placement (
mpl
,mpl2
)- The macro placer places macros/blocks honoring halos, channels and cell row “snapping”.
- 電源規劃 (
pdn
)- PDN Generation: 指定應用於設計的一小套電網策略,例如使用的層數、條紋寬度和間距,然後讓實用程序生成實際的金屬帶
- 晶片大小 (
- floorplan 關係到晶片的時序收斂,布線通暢,電源穩定和良品率
- 從 floorplan 到完成 placement 一般需要佔據整個物理實施 1/3 時間
術語#
- Bond Pad 是晶片與外部封裝進行電氣連接的關鍵接觸點,確保電信號傳輸和電源分佈。其佈局直接影響封裝工藝、信號完整性和晶片尺寸,是 Floorplan 設計中的重要內容。
- Bump Array 是晶片與封裝基板或 PCB 進行電氣、機械、熱連接的關鍵結構,廣泛應用於 Flip-Chip 和 3D IC 封裝中。Floorplan 階段需要精確規劃 Bump Array 的位置、密度和分佈,以優化信號性能、电源完整性和熱管理。
布圖規劃的內容和目標#
Floorplan 是晶片物理設計的第一步,用於確定核心區域、宏單元、IO 單元的位置以及布線資源和電源規劃,以優化晶片性能和面積。
floorplan 的目標主要包括:
- 面積:保證布線的同時儘量節約產成品本
- 時序收斂:需要對晶片延遲進行預估,考慮是否能最終滿足 SDC 要求,實現時序收斂
- 穩定性:保證晶片內部電源分佈均勻、供電充足
- 布線性:在保證布線通暢的同時,儘量縮短走線的長度,也即減小互連線的延遲,從而有效地提高晶片的性能
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)與實現以及晶片頂層組裝實現。
在時序預算 (time budgeting),首先需要對整個晶片的時序進行分析。
- TODO
模塊布放與布線通道#
模塊布放位置是建立在布圖規劃基礎上的,模塊佈局的結果又會對前期布圖規劃的期望目標產生直接影響,其中,能否保證布線的完成是通過布線通道的分析來進行。
routing channel 是每兩條或多條 track 的空間,channel 上不可以擺放標準單元。而在 macro 四周通常還預留不允許擺放標準單元的 halo(僅供專門布線)。
- Routing Channel:佈局中預留的布線通道空間,通常出現在宏單元或單元間隙。
- Routing Track:布線層上的規則網格線,每個軌跡表示可放置信號線的位置。
在層次化設計中,channel 按照形狀分為 T 和 L 形兩種。當兩個子模塊相聚跨度較大時,還需要定義 feedthrough channel 來滿足時序和布線要求。
在層次化設計中引入了基於行的布線方法,即圖 b 中的無通道分割法 (channel-less)。圖 a 為基於 channel 的分割,圖 c 為混合法。