PCB 電源インテグリティ:2 つの電源解析ツールによる STM32MP215F-DK (MB2059) の PDN の DC PI 解析
KiPI と FYPA は、どちらも非常に優れた 2 つのオープンソース電源インテグリティ解析ツールです。Drew Maatman 氏がメンテナンスしている KiPI(github.com/drewsum/KiPI)は KiCad 向けで、ODB++ も読めるため、Tomachie からこれらのツールへのフローをデバッグ・検証する基盤になりました。anarthrous-eda がメンテナンスしている FYPA(github.com/anarthrous-eda/FYPA)は Altium 向けです。
STMicroelectronics の MB2059 PCB を使ったのは、Altium の .PcbDoc と ODB++ 出力の両方がそろっているためです。KiPI には ODB++ と Tomachie の pdn.json を入力し、FYPA は .PcbDoc と同じ Tomachie の pdn.json を使いました。
この取り組みの目的は、どちらが優れているかを決めることではなく、検証を得て、2 つのツールと Tomachie の両方に潜む誤りを見つけることでした。その結果、両方のプロジェクトに修正を還元しました(KiPI にマージされたプルリクエスト 6 件、FYPA に 1 件)。ここではその結果を共有します。異なるソルバーと異なる PCB データ(ODB++ と .PcbDoc)を使っているにもかかわらず、現在は両者が全レールで 0.2 mV 以内で一致しています。
Tomachie が MB2059 の回路図と各データシートを読み取り、1 つの電源ツリーファイルを作成しました。各レール、そのレギュレータ、レギュレータの出力許容差、各負荷のピンと最大電流、各負荷のデータシートが許す最小供給電圧です。その同じファイルを、KiPI と FYPA がボード自体の銅箔上で解きました。
すべてワーストケースです。各レギュレータはデータシートの出力範囲の下限、各負荷は最大電流、USB 入力は最小値。レールごとの問いは、負荷のピンでの電圧がその負荷のデータシート最小値を上回り続けるかどうかです。
STM32MP215F-DK (MB2059) の完全レポート
DC PI の結果(レール別)
| レール | 設定値 (V) | レギュレータ下限 (V) | 最も厳しい負荷 | 負荷の最小値 (V) | KiPI (V) | FYPA (V) | KiPI − FYPA (mV) | マージン (mV) | 判定 |
|---|---|---|---|---|---|---|---|---|---|
| VDDCORE | 0.82 | 0.8077 | U7 STM32MP215 | 0.792 | 0.8034 | 0.8034 | 0.0 | +11.4 | PASS |
| VDDCPU | 0.80 | 0.7880 | U7 STM32MP215 | 0.768 | 0.7861 | 0.7861 | 0.0 | +18.1 | PASS |
| VDD2_DDR | 1.10 | 1.0835 | U7 STM32MP215 | 1.060 | 1.0793 | 1.0795 | −0.2 | +19.3 | PASS |
| VDD1_DDR | 1.80 | 1.7280 | U8 LPDDR4 | 1.700 | 1.7273 | 1.7271 | +0.2 | +27.1 | PASS |
| VDDA1V8 | 1.80 | 1.7280 | U7 STM32MP215 | 1.710 | 1.7262 | 1.7260 | +0.2 | +16.0 | PASS FYPA:マージン小 |
| VDDA1V8_AON | 1.80 | 1.7280 | U7 STM32MP215 | 1.710 | 1.7272 | 1.7271 | +0.1 | +17.1 | PASS FYPA:マージン小 |
| VDDIO | 3.30 | 3.2300 | U7 STM32MP215 | 2.700 | 3.2282 | 3.2281 | +0.1 | +528.1 | PASS |
| 3V3 | 3.30 | 3.1530 | U15 LAN8742A | 3.000 | 3.1043 | 3.1042 | +0.1 | +104.2 | PASS |
マージン = 2 つの解析電圧のうち低い方から負荷のデータシート最小値を引いた値。FYPA はマージンがレール公称値の 1 % 未満の負荷にフラグを付けます(既定値)。KiPI は警告帯なしで電圧と余裕を報告します。
負荷の最小値:STM32MP215 表 17 p. 87、Micron MT53E LPDDR4 VDD1 / VDD2、LAN8742A 3.3 V 動作。レギュレータ範囲:STPMIC2 出力精度(buck ±1.5 %、LDO1 ±4 %、LDO2 / 5 / 6 ±2 %)、3V3 は ST1S31。
表からわかること
2 つの電源解析ツールは全レールで 0.2 mV 以内で一致しています。ソルバーのコードは共有していません。一致するのは、両者が同じ電源ツリーと同じ銅箔を読んでいるからです。
各マージンの大半を占めるのは銅箔ではなくレギュレータの許容差です。1.8 V の LDO は ±4 % の仕様なので、その下限(1.728 V)は銅箔を考慮する前から STM32MP215 の最小値 1.71 V より 18 mV 高いだけです。ボードの銅箔がそこから約 2 mV(うち 0.5 mV はグランドリターン)を消費し、残りは 16–17 mV。FYPA の 1 % ラインを下回り、レギュレータ選定に対する正しい指摘です。VDDCORE はミリボルトで見たマージンが最小(11.4 mV)ですが、0.82 V の 1.4 % にあたるため両ツールで合格です。
ボード上で最大の銅箔での電圧降下は 3V3 にあります。LAN8742A イーサネット PHY は最悪の動作点(トラフィックありの 10BASE-T、イーサネットトランスを通る送信電流、データシート表 5-5 p. 105)で 139 mA を消費し、そのうち 93 mA がフェライトビーズ L4 を通ってアナログ電源ピンへ流れます。この経路で 48 mV 降下し、U15 には最小値 3.0 V に対して 3.104 V が残ります。3V3 上のすべての負荷にデータシートの電流を設定しており、合計は 213.6 mA です。
まず DC PI、次に AC PI
ここで扱うのは DC PI、すなわちワーストケース電流での電圧降下で、すべてのレールがまず満たすべき条件です。AC PI は、負荷ステップとデカップリングに対して、PDN インピーダンスの周波数特性をターゲットインピーダンスと比較します。KiPI は PDN インピーダンスの掃引もできます。このボードの AC PI は次のステップです。
レポート
- KiPI レポート、最大電流 · 36 MB、単体 HTML
- KiPI レポート、標準電流 · 36 MB
- FYPA レポート、最大電流 · 1.7 MB
- FYPA レポート、標準電流 · 1.7 MB
- 4 つのレポートすべて · zip、32 MB
Drew Maatman 氏がメンテナンスする KiPI:KiCad 向けオープンソース電源インテグリティ解析ツール
anarthrous-eda がメンテナンスする FYPA:Altium 向けオープンソース DC 電源インテグリティツール