🔥

回路設計者のためのPythonライブラリまとめ

に公開

はじめに

EDAは工程ごとに道具立てが変わりやすい。回路設計はSPICE、デジタル設計はRTLと論理合成、物理設計は配置配線とレイアウト検証、さらに電磁界や熱といった物理現象は専用ソルバという形で、作業環境とデータ形式が分断されやすい。この分断は、設計の再現性、検証の回帰性、設計変更時の追従性を下げ、手作業の増加と判断遅れにつながる。

一方で、近年はPythonを中核に据えることで、設計・解析・検証・評価を同一の枠組みで連結しやすくなった。Pythonは数値計算、最適化、可視化、ファイル処理に強く、外部ツールの呼び出しやデータ変換も容易である。その結果、回路やRTLを計算機で扱える形に落とし込み、解析条件をコードとして固定し、結果処理と判定まで自動化する流れが現実的になっている。個別ツールの置き換えが目的ではなく、工程間の接続と再現性を強めるための共通言語としてPythonを使う、という立ち位置である。

本記事では、アナログ回路シミュレーション、RTL生成と検証、合成から配置配線、レイアウト生成、電磁界解析、熱解析、ネットリストの構造解析、最適化と自動探索までを対象とし、フルスタックEDAに必要なPythonエコシステムを体系的に整理する。単なる名称の列挙ではなく、どの工程で使うのか、どの実行場所で動かすのが現実的か、何を自動化できるのかを対応付けて示す。目的は、設計フローをPythonで統合し、設計変更に強い回帰可能な作業形態へ移行するための見取り図を作ることである。

フルスタックEDA向け Pythonライブラリ一覧

分類 ライブラリ/ツール どこで使えるか 何に使えるか(具体用途)
回路シミュレーション ngspice(CLI) Colab可 / Linuxローカル / WSL / Docker DC動作点、AC周波数応答、過渡解析、ノイズ解析、温度依存、モンテカルロ、パラメータ掃引、設計回帰試験
回路シミュレーション PySpice Colab可 / Linuxローカル Pythonからngspice制御、設計変数スイープ、メトリクス抽出、自動レポート、最適化連携
回路シミュレーション ngspice-shared(CTypes連携) Linuxローカル中心 ngspiceを共有ライブラリとして呼び出し、解析実行と波形取得をプロセス外部ファイルなしで連結
回路シミュレーション Xyce Linuxローカル / HPC 大規模回路の高速解析、並列過渡解析、長時間回帰解析
回路シミュレーション PyLTSpice Windowsローカル中心 LTspiceのバッチ実行、RAW抽出、条件比較、結果集計
純Python回路解析 Ahkab Colab可 / ローカル 外部SPICEなしのDC/AC/TRAN、教育用途の数値実験、小規模回路の検算
回路記述 SKiDL ローカル中心 Pythonで回路をコード化してnetlist生成、繰り返し構造の自動生成、設計の差分管理
記号回路解析 lcapy Colab可 / ローカル ラプラス領域での回路解析、伝達関数導出、等価回路合成、理論応答の確認
記号計算 sympy Colab可 / ローカル 小信号式導出、式の簡約、近似展開、方程式の解、感度解析の下準備
制御理論 control Colab可 / ローカル 伝達関数/状態空間、ボード線図、ステップ応答、極零解析、安定性評価
制御理論 slycot Linuxローカル中心 制御系の数値計算を高速化(リカッチ、固有値、最適レギュレータ系)
信号処理 scipy.signal Colab可 / ローカル フィルタ設計、周波数応答、ディジタル系の応答確認、制御・計測前処理
信号処理 spectrum Colab可 / ローカル PSD推定、AR法などのスペクトル推定、ノイズ床評価
信号処理 pywavelets Colab可 / ローカル ウェーブレット分解、ノイズ除去、過渡イベント抽出、特徴量作成
信号処理 CommPy Colab可 / ローカル 変調・復調、符号化、チャネルモデル、BER評価
推定 FilterPy Colab可 / ローカル カルマン/粒子フィルタ、センサ融合、状態推定
信号解析 PyEMD Colab可 / ローカル 非定常信号分解、振動・劣化兆候抽出
音響DSP librosa Colab可 / ローカル STFT、MFCC抽出、時間周波数解析
信号入出力 sounddevice ローカルのみ 実時間オーディオ入出力、計測検証
RF/マイクロ波 scikit-rf Colab可 / ローカル Sパラ解析、整合回路設計、安定性指標
波形データ処理 Spyci Colab可 / ローカル SPICE RAW高速読込、統計処理、回帰比較
数値計算 numpy Colab可 / ローカル 線形代数、統計、評価指標計算
数値高速化 numba Colab可 / ローカル 評価関数高速化、最適化ループ短縮
数値高速化 cupy Colab GPU / ローカルGPU GPUによる大規模配列処理
可視化 matplotlib Colab可 / ローカル 波形、周波数応答、統計分布描画
可視化 plotly Colab可 / ローカル 対話型可視化、HTML出力
3D可視化 PyVista ローカル中心 熱・電磁界・構造解析結果の3D表示
回路図生成 SchemDraw Colab可 / ローカル スクリプトで回路図自動生成
最適化 Optuna Colab可 / ローカル 回路パラメータ探索、自動最適化
最適化 scikit-optimize Colab可 / ローカル ベイズ最適化、探索履歴管理
最適化 nevergrad Colab可 / ローカル ブラックボックス最適化
最適化 casadi Colab可 / ローカル 制約付き非線形最適化
最適化 cvxpy Colab可 / ローカル 凸最適化問題の定式化と解法
Verilog生成 Amaranth Colab可 / ローカル PythonでRTL生成
Verilog生成 Migen Colab可 / ローカル FPGA向けHDL生成
Verilog生成/検証 PyMTL3 Colab可 / ローカル 高位モデル〜RTL変換
Verilog生成 MyHDL Colab可 / ローカル PythonからVerilog変換
Verilog検証 cocotb Linuxローカル / Docker Pythonテストベンチ、自動回帰
Verilog検証 pyuvm Linuxローカル / Docker UVM風検証環境構築
HDLユニットテスト VUnit Linuxローカル / Docker VHDL/SystemVerilog回帰試験
Verilog高速シミュ Verilator Colab可 / Linuxローカル RTL高速シミュレーション
VHDL検証 GHDL Linuxローカル / Docker VHDLシミュレーション
デジタル波形解析 pyvcd Colab可 / ローカル VCD波形解析
Verilog解析 PyVerilog Colab可 / ローカル 構文解析、依存関係抽出
HDLフロー抽象化 edalize Linuxローカル中心 複数EDAツール統合実行
合成 Yosys Colab可 / Linuxローカル 論理合成、ネットリスト生成
形式検証 SymbiYosys Linuxローカル中心 プロパティ検証
STA OpenSTA Linuxローカル中心 タイミング解析
SoC自動生成 LiteX Linuxローカル中心 FPGA SoC生成
IP管理 FuseSoC Colab可 / ローカル IP依存管理
協調検証 Renode Linux/Windowsローカル ソフト込み仮想実行
EDA統合 SiliconCompiler ローカル/CI中心 合成〜P&R自動化
レイアウト KLayout ローカル中心 GDS編集、DRC
レイアウト gdspy Colab可 / ローカル GDS生成
レイアウト gdsfactory Colab可 / ローカル PCell生成
レイアウト PHIDL Colab可 / ローカル 形状自動生成
レイアウト自動生成 ALIGN Linuxローカル / Docker アナログ配置配線自動化
物理設計フロー OpenROAD Linuxローカル / Docker 自動P&R
RTL-to-GDS OpenLane Docker / Linuxローカル RTLからGDS一括フロー
PDK管理 volare Colab可 / ローカル オープンPDK管理
アナログ自動化 BAG Linuxローカル中心 回路・レイアウト自動生成
セル生成/評価 LibreCell Linuxローカル中心 セル特性抽出
レイアウト検証 magic Linuxローカル DRC/LVS
PCB基板設計API pcbnew ローカル(KiCad) 基板編集自動化
PCB製造自動化 KiKit ローカル(KiCad) 面付け・製造データ生成
計測器制御 pyvisa ローカル 測定自動化
実機I/O pyserial ローカル UART通信制御
電磁界解析 OpenEMS Linux / WSL / Docker FDTD電磁界解析
熱解析/PDE FiPy Colab可 / ローカル 熱拡散解析
熱解析/PDE FEniCS ローカル / Docker FEMによる物理解析
トポロジー解析 NetworkX Colab可 / ローカル ネットリストをグラフ解析、ループ検出、経路計算
パワー解析 PowerGrid系ツール ローカル中心 IR drop解析、電源網評価

Discussion