🧠

【半導体】02. <OpenLane2> なぜPythonベースなのか ― Nix推奨・Docker可・venv運用という整理

に公開

はじめに

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

  • なぜ OpenLane2 という別系統が存在するのか?
  • なぜ Python パッケージなのか?
  • Docker ではダメなのか?

この記事では、OpenLane2 を

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

として整理します。


OpenLane1 と OpenLane2 の関係

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

  • OpenLane1

    • Docker ベース
    • 教育・PoC向け
    • フローを「一周体験」するための環境
  • OpenLane2

    • Python ベース
    • 設計・研究向け
    • フローを「管理・再構成」するための環境

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


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

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

  • フローをスクリプトで組み替える
  • 設計条件を変えて反復実行する
  • マクロ(SRAM など)を体系的に統合する
  • 設計環境そのものを管理する

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

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


OpenLane2 が Python ベースである理由

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

これは、

  • フローをコードとして扱う
  • 設計条件を構造化する
  • 実験・比較・自動化を行う

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

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


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

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

OpenLane2 の公式スタンス

  • Nix を推奨
  • Docker もサポート対象
  • Python パッケージとして配布(pip)

つまり OpenLane2 は、

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

のが特徴です。


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

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

  • Python 仮想環境(venv)を用い
  • OpenLane2 をローカルに隔離して使う

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

これは、

  • 既存の OpenLane1 を壊さない
  • PDK を共有する
  • 実験的なフロー変更を安全に行う

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

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


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

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

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


OpenLane2 が向いている用途

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

  • SRAM / マクロ統合
  • パラメトリック設計
  • 反復設計・回帰実行
  • 設計フローそのものの検証

逆に、

  • 初学者
  • とにかく一度 GDS を出したい

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


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

重要なので明言します。

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

  • OpenLane1:理解と体験
  • OpenLane2:設計と運用

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


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

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

  • どの PDK が OpenLane に適しているのか?
  • なぜ Sky130 は素直で、GF180 は難しいのか?

次の記事では、

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

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


まとめ

  • OpenLane2 は設計者向けに再設計された基盤
  • Python ベースなのはフロー制御のため
  • 公式推奨は Nix、Docker も可
  • venv 運用は共存重視の一実装例
  • OpenLane1 と競合するものではない

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

GitHubで編集を提案

Discussion