🛠️ 07_magic_lvs_drc_setup
Magic + Netgen:DRC / LVS セットアップ(中厚版)
Magic + Netgen: DRC / LVS Setup (Mid-Level Version)
📘 概要|Overview
本章では OpenLane が生成した GDS を用いて
Magic による DRC(デザインルールチェック)と
Netgen による LVS(回路一致チェック)を実行するための環境構築を行います。
This chapter explains how to set up Magic for DRC and Netgen for LVS using GDS files generated from OpenLane.
✅ 1. 必須ツールのインストール|Install Required Tools
| Tool | Version | Purpose | |——|———|———| | Magic | 8.3.x | Layout viewer, DRC | | Netgen | 1.5.x | LVS comparison | | KLayout(任意) | 最新 | GDS viewer |
Linux / WSL2 インストール
sudo apt install magic netgen klayout -y
✅ 2. Magic の起動と GDS 読み込み|Open GDS in Magic
export PDK_ROOT="$HOME/openlane/pdks"
magic -d XR -T $PDK_ROOT/sky130A/libs.tech/magic/sky130A.tech ~/openlane/designs/simple_inv/runs/*/results/final/gds/inverter.gds &
正しくロードされていれば:
Technology: sky130A
✅ 3. DRC の実行|Run DRC in Magic
drc check
drc count
drc why
✅ 4. Extract → SPICE 抽出|Layout Extraction
extract all
ext2spice
✅ 5. 権限問題の回避(重要)|Fix Permission Issue
RUN_DIR=$(ls -d ~/openlane/designs/simple_inv/runs/RUN_* | tail -1)
sudo chown -R $USER:$USER "$RUN_DIR"
✅ 6. Netgen LVS セットアップ|Prepare Netgen LVS
VERILOG=$RUN_DIR/results/synthesis/inverter.v
LAYOUT=$RUN_DIR/results/final/gds/inverter.spice
SETUP=$PDK_ROOT/sky130A/libs.tech/netgen/sky130A_setup.tcl
netgen -batch lvs "$VERILOG inverter" "$LAYOUT inverter" $SETUP lvs_report.out
成功例:
Circuits match uniquely.
✅ 7. Mermaid 図:DRC/LVS フロー
graph TD
A[GDS from OpenLane] --> B[Magic Load]
B --> C[DRC Check]
B --> D[Extract all → ext2spice]
D --> E[Layout SPICE]
A --> F[Verilog from Synthesis]
E --> G[LVS with Netgen]
F --> G
✅ 8. よくあるエラー|Common Issues
| エラー | 原因 | 対処 | |——–|——|——-| | minimum.tech がロードされる | tech ファイル未指定 | -T sky130A.tech 指定 | | Cannot open output file | 権限不足 | chown -R | | No matching nets | ブラックボックス不足 | setup.tcl を確認 | | Unknown layer | GDS ロード誤り | safe-mode 起動 |
✅ 9. チェックリスト
| 項目 | OK | |——|—-| | Magic で GDS を開ける | ✅ | | DRC 実行 | ✅ | | extract → ext2spice 成功 | ✅ | | Netgen LVS が完走 | ✅ | | Circuits match が出る | ✅ |
👤 Author
三溝 真一(Shinichi Samizo)
GitHub: https://github.com/Samizo-AITL