MST · エンジニアリングのためのAI · MPW準備
MPW実践ガイド:ログ・環境・見積
再現可能な3つの演習で問題点と未確認事項を整理し、次の技術確認に備えます。
サンプルはMSTがMITライセンスで提供するもので、顧客設計やファウンドリPDKを含みません。技術識別子と元のログは原文のまま表示します。
検証ログの確認
対応形式を確認し、最初のエラーと繰り返しの警告を区別します。メッセージの長さだけで原因を判断しないでください。
操作手順
- 検証ログの確認を開き、ラベル付きテキスト形式でサンプルを読み込みます。
- 4件の記録が3グループになります。PSM-0038は2回、最初のエラーは4行目です。原文も確認できます。
- KLayout形式に切り替えてサンプルを再度読み込みます。3件、2カテゴリとなり、元の矩形座標が表示されます。単位はµmで、対応するセルを基準とします。
- レポートを保存し、KLayoutのマーカーブラウザーでmarkers.lyrdbを開いて照合します。実際の問題は元の設計と実行記録を併せて調査します。
- INFOだけの抜粋、未対応テキスト、途中で切れたXMLも試します。いずれも検証合格とは表示されません。
期待される結果
サンプルはラベル付き記録4件、またはKLayout記録3件・重み付きマーカー3件です。適用除外後の欠陥数ではありません。タグとコメントを保持し、除外の承認は行いません。

ローカルで再現
スクリプトはKLayout 0.30.12で合成マーカーのデータベースを作ります。ファウンドリのルールデックは実行しません。独立した仮想環境で実行後、verify.pyで確認します。
python3 -m venv .venv .venv/bin/python -m pip install -r requirements.txt .venv/bin/python generate_markers.py .venv/bin/python verify.py
出典と対応バージョン
PDK環境の比較
ノード名だけでは十分ではありません。実行結果の比較前に、PDKバリアント、ソース一覧の指紋、ツールバージョン、モデルファイルの有無を確認します。
操作手順
- サンプルを読み込みます。左が要件、右が差異のある環境です。どちらも合成データです。
- PDKリビジョンとKLayoutバージョンの不一致、モデルの不足を確認します。ngspiceは未確認であり、不足や互換性ありとは判定しません。
- 右側を同梱のobserved-match.jsonに置き換えると記録は一致します。ただしシミュレーション実行の証明ではありません。
- EDAを実行する同じ環境で情報を収集します。収集スクリプトは指定ディレクトリとバージョンを読み取るだけで、PDKをインストール・変更しません。
- 承認済み要件をプロジェクト責任者から取得します。環境を修正して再収集し、ツール公式手順に従って承認済みの参照設計を実行します。
期待される結果
不一致サンプルは不一致2件、ファイル不足1件、バージョン未確認1件、一致2件です。整合サンプルは6件一致します。収集値pdk_revisionはSOURCESのSHA-256であり、推測したプロセス名ではありません。

ローカルで再現
EDA環境内でPython 3.9以降を使い、実際のSKY130バリアントディレクトリを指定します。ツールやSOURCESがなければnullのままです。モデルの存在は読み込み成功を意味しません。OpenLaneの使用バージョンに対応するPDK_ROOTとバージョン固定の公式手順を参照してください。
python3 collect_environment.py --pdk-dir /path/to/sky130A > observed.json python3 verify.py
出典と対応バージョン
MPW見積範囲の比較
面積単価が安くても最低課金面積が大きければ総額は高くなります。サンプルの形態と試験範囲を分けて比較します。
操作手順
- 架空のサンプルを読み込みます。面積4 mm²、両見積ともパッケージ品20個で、パッケージ・試験の識別子も同じです。
- Aは10 mm²×100 USD/mm²、Bは4 mm²×200 USD/mm²で計算します。製造費だけなら1,000 USDと800 USDです。
- Aの試験費は空欄です。確認済み小計1,550 USDだけを表示し、総額の推測やBとの順位付けはしません。
- Aの試験費を100にすると、入力項目の合計は1,650 USDと1,260 USD、差額A − Bは390 USDです。
- Bの通貨、パッケージ仕様、試験範囲、数量を変更すると、同条件になるまで差額は表示されません。
期待される結果
A:max(4,10) × 100 + 200 + 300 + 100 + 50 = 1,650 USD。B:max(4,4) × 200 + 0 + 300 + 100 + 60 = 1,260 USD。実際の試験内容や除外条件が異なれば、購入時の単純比較はできません。

ローカルで再現
verify.pyはPython Decimalでサンプルの合計を独立検証し、ブラウザーはスケール付き整数で正確に計算します。供給者の価格や為替レートを提供・仮定するものではありません。
python3 verify.py