【半導体:13】🧩 OpenLane2

― なぜPythonベースなのか ― Nix推奨・Docker可・venv運用という整理

topics: [“openlane”, “asic”, “eda”, “python”, “nix”]


🧭 はじめに

OpenLane を使い始めて OpenLane1(Docker版)を一度流すと、
次に必ずこの疑問が出てきます。

この記事では、OpenLane2 を

「新しい OpenLane」ではなく、
設計者向けに再定義された別系統のフロー基盤

として整理します。


🔁 OpenLane1 と OpenLane2 の関係

最初に関係をはっきりさせます。

どちらが上位でも後継でもありません。
目的が違うだけです。


🎯 OpenLane2 は何を解決しようとしているか

OpenLane1 では、次のことが難しくなります。

OpenLane2 は、これらを可能にするために設計されています。

OpenLane2 の主眼は「設計環境の制御」です。


🐍 OpenLane2 が Python ベースである理由

OpenLane2 は Python パッケージとして提供されています。

これは、

という用途に適しているためです。

👉 Python は制御言語であって、EDAツールではない
という割り切りが見えます。


📦 公式が推奨するインストール方法(重要)

ここは誤解されやすい点なので明確にします。

OpenLane2 の公式スタンス

つまり OpenLane2 は、

特定のインストール方法に固定されていない

のが特徴です。


🧪 venv 運用は何なのか(openlane2-sram の立場)

一方で、openlane2-sram などの実例では、

という運用が採られています。

これは、

ための 運用上の選択です。

venv は「公式唯一解」ではなく、
共存と隔離を重視した一つの実装例です。


🧭 Docker と venv / Nix の違い(整理)

観点 Docker Nix / venv
環境固定 強い 選択的
再現性 高い 非常に高い(Nix)
フロー改変 困難 容易
設計者向け

この違いが、OpenLane1 / OpenLane2 の思想差です。


🧩 OpenLane2 が向いている用途

OpenLane2 が本領を発揮するのは次のような場面です。

逆に、

という場合は、OpenLane1 の方が適切です。


🚦 OpenLane2 は「置き換え」ではない

重要なので明言します。

OpenLane2 は OpenLane1 の後継ではない。
役割分担のための別系統である。

この使い分けが、最も健全です。


❓ 次に出てくる疑問:PDK の問題

OpenLane2 を使い始めると、次の疑問に行き着きます。

次の記事では、

OpenLane が暗黙に前提としている PDK 条件
GF180 Open PDK が適用しづらい理由

を、設計前提の違いとして整理します。


📝 まとめ

OpenLane2 は、
設計を「回す側」に進むための道具です。