🏗️ 4.5 OpenLaneによる物理設計フロー

Physical Design Flow with OpenLane


この節では、Verilogで記述された設計を物理チップとして実現するための一連のステップを、OpenLaneを使って実行する手順とともに解説します。RTL(論理設計)からGDS(製造データ)への変換には多くの中間工程があり、それぞれの意味と設計者としての理解が求められます。


🔧 OpenLaneとは

OpenLaneは、Sky130プロセスを前提としたオープンソースの物理設計自動化ツールチェーンです。以下の主要工程を統合的に実行可能です:


🗺️ フローの全体像(Mermaid図)

📎 GitHubでMermaidフローチャートを見る

graph TD
    A[🔧 合成<br>Synthesis] --> B[📐 フロアプラン<br>Floorplan]
    B --> C[🧩 配置<br>Placement]
    C --> D[🕒 クロック合成<br>CTS]
    D --> E[🔀 配線<br>Routing]
    E --> F[🧪 DRC / LVS チェック<br>Verification]
    F --> G[💾 GDS 出力<br>GDS Export]

    classDef logic fill:#D0F0FD,stroke:#2B7A78,stroke-width:1px;
    classDef layout fill:#FFF3CD,stroke:#FFA000,stroke-width:1px;
    classDef check fill:#F8D7DA,stroke:#C2185B,stroke-width:1px;
    classDef gds fill:#E0E0E0,stroke:#555,stroke-width:1px;

    class A logic;
    class B,C,D,E layout;
    class F check;
    class G gds;

🔁 各ステップの簡易解説

工程 概要
Synthesis RTLからゲートレベルネットリストを生成
Floorplan ダイサイズやピン位置などの配置制約を設定
Placement 標準セルを配置
CTS クロック配線+バッファ挿入で遅延均一化
Routing 各ネットを配線
DRC/LVS レイアウト検証(ルール違反・回路一致)
GDS Export 最終製造データ(マスク用GDSファイル)出力

🧪 実行構成と手順

📁 必須ファイル一覧(例:designs/fsm/

▶ 実行コマンド(例:fsm)

cd OpenLane/
make DESIGN=fsm

📦 出力ファイル構成と確認ポイント

ディレクトリ 内容
results/placement/ DEFファイル(配置結果)
results/routing/ GDSファイル(配線含むレイアウト)
reports/ 面積・タイミング・DRC・LVSのログ

GTKWaveやKLayoutで確認可能。


🧩 config.tcl / Makefile の要点

set ::env(DESIGN_NAME) "fsm"
set ::env(CLOCK_PERIOD) "40.0"
set ::env(FP_CORE_UTIL) "30"
set ::env(PL_TARGET_DENSITY) "0.5"
make DESIGN=fsm run_synthesis
make DESIGN=fsm run_floorplan
make DESIGN=fsm run_routing

🎓 教材としての意義

物理設計は、「論理」→「物理」→「製造」へのブリッジです。OpenLaneにより、自動化と可視化を通じてその全体像を体験できます。これにより、設計者としての理解が実務レベルに近づきます。


🔗 次節への接続

次節 4.6: レイアウト結果と考察 では、GDSやDRC/STAレポートなどの結果を元に、設計品質を評価・考察します。