📊 設計レポート解析:面積・タイミング・電力の可視化(OpenLane v2 完全版)

Analysis of Area, Timing, and Power Reports in OpenLane v2 Flow


📘 概要|Overview

この章では OpenLane v2 が生成するレポート群を
Python により解析・CSV化・可視化する方法を解説します。

扱う指標は:

OpenLane v2 の出力構造に完全準拠した 最新版教材 です。


🎯 学習目的|Objectives


🗂️ レポートディレクトリ構成(OpenLane v2 正式構造)

以下は designs/inverter/runs/run1/ の出力例:

runs/run1/
├── logs/                   
├── reports/               
│   ├── synthesis/          ← yosys 合成ログ
│   ├── floorplan/
│   ├── placement/
│   ├── cts/
│   ├── routing/
│   ├── parasitics/         ← SPEF, R/C 抽出
│   ├── timing/             ← metrics.csv / slack rpt
│   ├── power/              ← total_power.rpt
│   └── signoff/            ← drc / lvs
└── results/
    └── final/
        └── gds/inverter.gds

v2 では timing, power, parasitics, signoff が独立ディレクトリに整理される。
“log” ではなく “rpt (report)” 形式が多い点が v1 と異なる。


🧰 Python 解析スクリプト構成(最新版)

以下は v2 レポートを正しく解析するための公式対応ファイル例:

スクリプト名 解析対象
parse_synthesis_log.py reports/synthesis/1-yosys.log
parse_power_report.py reports/power/total_power.rpt
parse_timing_summary.py reports/timing/metrics.csv
plot_metric_trend.py runs/*/reports/ を横断解析

✅ 解析対象ファイル一覧(OpenLane v2)

項目 ファイル例 内容
合成 1-yosys.log セル数・ゲート数・面積
タイミング metrics.csv WNS/TNS/遅延/ルート特性
電力 total_power.rpt static / dynamic / internal / switching
配線 route.rpt ワイヤ長・ビア数
抽出 parasitics/*.spef RC情報(STAに利用)
サインオフ drc.rpt, lvs.rpt DRC/LVS結果

🚀 Python 解析例|Usage Example

✅ 電力レポート → CSV

python3 parse_power_report.py \
  --input ./designs/inverter/runs/run1/reports/power/total_power.rpt \
  --output ./output/power_metrics.csv

✅ 複数Run比較

python3 plot_metric_trend.py \
  --input-dir ./designs/inverter/runs/

📈 可視化例(想定)


🧠 教育的意義|Educational Significance

観点 内容
📊 データ解析 数値変化を俯瞰し、設計品質の変化を理解
🔁 改善サイクル design → run → analyze → optimize の流れを体験
🐍 実務力 Python によるレポート処理は企業でも必須スキル

📦 必要パッケージ(軽量構成)|Required Python Packages

pip install pandas matplotlib

✅ seaborn は 必須ではない(教育・再現性の観点で非推奨)。
必要なら optional として追加してもよい。


📝 Notes(補足)


🔗 関連リンク