前言#
簡単な概要#
OpenROAD によるフロアプランの粗い概要:
- フロアプランの内容は、チップ内部インターフェースの完全な計画と設計を含みます:
- チップサイズ (
ifp
):- フロアプラン制約、ダイ / コア面積を初期化し、トラックを作成します。
- チップ IO(
ppl
,pad
)- ピン配置:ネットワイヤ長を最小限に抑えるために、トラックグリッドのダイの境界にピンを配置します。
- チップレベル接続:IO リングをチップの境界に配置し、ワイヤボンドパッドまたはバンプアレイで接続します。
- マクロ配置 (
mpl
,mpl2
)- マクロプレースは、ハロー、チャネル、セル行の「スナッピング」を尊重してマクロ / ブロックを配置します。
- 電源計画 (
pdn
)- PDN 生成:設計に適用される小さなセットの電源ネットワーク戦略を指定します。例えば、使用する層数、ストライプ幅、間隔などを指定し、実用プログラムが実際の金属ストリップを生成します。
- チップサイズ (
- フロアプランはチップのタイミング収束、配線のスムーズさ、電源の安定性、良品率に関係しています。
- フロアプランから配置完了までには、一般的に物理実装の1/3の時間を占めます。
用語#
- ボンドパッドは、チップと外部パッケージとの電気接続の重要な接触点であり、電気信号の伝送と電源分配を確保します。そのレイアウトは、パッケージングプロセス、信号の完全性、チップサイズに直接影響を与え、フロアプラン設計の重要な要素です。
- バンプアレイは、チップとパッケージ基板または PCB との電気的、機械的、熱的接続の重要な構造であり、フリップチップや3D ICパッケージで広く使用されています。フロアプラン段階では、信号性能、電源の完全性、熱管理を最適化するために、バンプアレイの位置、密度、分布を正確に計画する必要があります。
フロアプランの内容と目標#
フロアプランはチップの物理設計の第一歩であり、コア領域、マクロユニット、IO ユニットの位置、配線リソースと電源計画を決定し、チップの性能と面積を最適化します。
フロアプランの目標は主に以下を含みます:
- 面積:配線を保証しつつ、製品コストをできるだけ節約します。
- タイミング収束:チップの遅延を予測し、最終的に SDC 要件を満たすかどうかを考慮し、タイミング収束を実現します。
- 安定性:チップ内部の電源分配が均一で、供給が十分であることを保証します。
- 配線性:配線のスムーズさを保証しつつ、配線の長さをできるだけ短くし、すなわち相互接続線の遅延を減少させ、チップの性能を効果的に向上させます。
I/O インターフェースユニットの配置と電源供給#
- TODO
フロアプランの提案と遅延予測#
フロアプランを作成する前に、ゼロ線負荷モデルを使用して合成後のネットリストの遅延分析を行い、タイミングを評価します。タイミングが悪い場合は、ネットリストを最適化する必要があります。
フロアプラン段階のタイミングと遅延予測方法は、チップ設計手法に依存します。すなわち、1. 自下から上へのフラット化されたシリコン仮想プロトタイピング手法(SVP);2. 自上から下への階層化設計手法(hierarchical)。
PS: デザインが 500 万ゲート程度の場合は、階層化設計を検討します。
フラット化設計#
フラット化設計では、複数のフロアプランを配置した後、STA を使用してチップ全体の遅延を推定し、タイミング違反(negative slack)を使用して異なるフロアプランの効果を評価します。
この段階ではまだ相互接続線が確立されていないため、のみWLM を使用して遅延を推定します(書籍での「のみ」という記述には疑問があります。WLM は統計モデルであり、負荷容量や線長を推定し、初期的に線の遅延を予測します)。
WLM(ワイヤ負荷モデル)は、RTL-to-GDSII プロセスの初期段階(合成段階など)で信号ネットワイヤの容量、抵抗、遅延を推定するために使用されるモデルであり、主に回路規模、ネットワイヤのファンアウト、統計データに基づいています。
階層化設計#
階層化設計は大きく分けて三つのステップに分かれます:チップのトップレベル設計計画、サブモジュールの分割(partition)と実装、そしてチップのトップレベル組み立て実装です。
タイミング予算(time budgeting)では、まずチップ全体のタイミングを分析する必要があります。
- TODO
モジュール配置と配線チャネル#
モジュールの配置位置はフロアプラン計画に基づいており、モジュールレイアウトの結果は前期のフロアプラン計画の期待目標に直接影響を与えます。その中で、配線の完了を保証できるかどうかは、配線チャネルの分析によって行われます。
routing channelは、2 つ以上のトラックの間のスペースであり、チャネル上には標準セルを配置できません。マクロの周囲には通常、標準セルを配置できないハロー(専用の配線用)を残します。
- Routing Channel:レイアウトで予約された配線チャネルのスペースで、通常はマクロユニットまたはユニット間の隙間に現れます。
- Routing Track:配線層上の規則的なグリッド線であり、各トラックは信号線を配置できる位置を示します。
階層化設計では、チャネルは形状に応じてT形とL形の 2 種類に分かれます。2 つのサブモジュールの間隔が大きい場合は、タイミングと配線要件を満たすためにフィードスルーチャネルを定義する必要があります。
階層化設計では、行ベースの配線方法が導入されており、図 b の無チャネル分割法(channel-less)が示されています。図 a はチャネルベースの分割、図 c は混合法です。