【半導体】 🏗️ 24. OpenLane 自動フローは魔法ではない|配置・配線・クロックの現実
topics: [“OpenLane”, “ASIC”, “PhysicalDesign”, “OpenROAD”, “EDA”]
🧭 はじめに:ボタン一発でGDSが出る、は幻想である
OpenLaneを触り始めた人が、
必ず一度はこう思います。
▶️ 「make run したら、あとは勝手にGDSが出るんでしょ?」
半分正しく、半分は完全に間違いです。
OpenLaneは確かに
RTL → GDSII を自動で流せます。
しかしそれは 「物理的に成立する設計」 に限られます。
本記事では、
OpenLane Guide Phase 2:Physical Design Reality を基に、
- なぜ自動フローは失敗するのか
- なぜ timing が突然壊れるのか
- GUIで何を見ないといけないのか
を 物理設計の現実として解説します。
🔗 OpenLane公式リポジトリ
https://github.com/The-OpenROAD-Project/OpenLane
🔗 体系的ガイド(元資料)
https://samizo-aitl.github.io/openlane-guide/
🧩 OpenLaneの正体:OpenROADベースの自動物理設計
OpenLaneの物理設計パートは、
OpenROAD を中核に構成されています。
- 🧱 Placement(配置)
- 🌳 CTS(クロックツリー合成)
- 🧵 Routing(配線)
- ⏱ STA(静的タイミング解析)
これらは 独立した工程ではありません。
🔗 すべてが相互に影響する一つの物理問題です。
🧱 Placement:最初に全てが決まる工程
Placement(配置)は、
後工程の9割を決める工程です。
- 標準セルの密度
- マクロ周辺の空間
- 配線混雑(Congestion)
ここで無理をすると、
- Routingで詰む
- CTSでクロックが引けない
- STAで突然Slackが吹き飛ぶ
という 連鎖破綻 が起きます。
⚠️ Placementが破綻した設計は、
その後どれだけ調整しても基本的に救えません。
🌳 CTS:クロックは「信号」ではない
CTS(Clock Tree Synthesis)で
多くの初心者が勘違いします。
⏱ クロックも信号線と同じでしょ?
全く違います。
クロックは、
- 全セルに届く
- スキューが命
- 遅延が設計制約そのもの
という 特権的なネットです。
CTSが破綻すると、
- Setup / Hold が同時に崩れる
- バッファが異常増殖する
- 消費電力が跳ね上がる
といった現象が起きます。
🧵 Routing:配線は「最後」ではない
多くの人が
Routingを「最後の作業」だと思っています。
🧵 配線はPlacementとCTSが終わった後でしょ?
これも誤解です。
実際には、
- 配線混雑はPlacementでほぼ決まる
- クロック配線はCTSで方向性が固定される
Routingは 結果が可視化される工程 に過ぎません。
❗ RoutingでDRCが大量に出た時点で、
問題はもっと前にあります。
⚖️ 面積・配線・クロックの三すくみ
OpenLaneが失敗する設計の多くは、
次の 三すくみ に陥っています。
- 📐 面積を小さくしたい
- 🧵 配線は詰めたくない
- ⏱ クロックは速くしたい
これは 同時に成立しません。
どれかを立てると、
必ずどれかが犠牲になります。
OpenLaneはこの矛盾を
自動で解決してくれる魔法のツールではありません。
👀 GUIで「失敗」を確認せよ
OpenLaneを使うなら、
GUI(OpenROAD / Magic)を見ることは必須です。
見るべきポイントは以下です。
- ❌ 標準セルが異常密集していないか
- ❌ クロックバッファが不自然に多くないか
- ❌ 特定領域だけ配線が真っ赤になっていないか
👁 見ておかしい設計は、必ず動きません。
STAログより、
レイアウトの見た目の方が正直な場合すらあります。
🧠 OpenROADの思想と限界
OpenROADは非常に優秀ですが、
万能ではありません。
- 人間の意図は完全には読めない
- 無理な制約はそのまま破綻として出る
- 「設計判断」はしてくれない
OpenLaneは、
🤖 設計者の代わりに悩むツールではない
という点を理解する必要があります。
🧱 なぜ自動フローは突然壊れるのか
理由は単純です。
⚠️ 物理的に成立しない設計を、
自動で成立させることはできない
環境(Phase 1)が正しく、
それでも壊れる場合、
原因はほぼ100%物理設計にあります。
📝 まとめ
- 🏗 Placementが全ての起点
- 🌳 クロックは特権ネット
- 🧵 Routingは結果表示
- ⚖️ 三すくみは避けられない
- 👀 GUIを見ない設計は危険
これが Phase 2:Physical Design Reality の結論です。
▶️ 次回予告
次回は Phase 3:Integration & Timing Truth。
- ⏱ STAは本当に信用できるのか
- 🔗 SDF / GLS は何を保証しているのか
- ❓ 「STAは通ったのに動かない」の正体
タイミングは嘘をつくのか?
その問いに正面から答えます。