FPGA を実装するボードの設計をする時に FPGA を含めた各デバイスの消費電力を調べると思いますが、
皆さんは FPGA の消費電力をどのように調べていますか?
FPGA の消費電力は「FPGA の消費電力の種類と計算方法」でも触れているように、スタティック+ダイナミック+ I/O で構成され、
また デザイン(論理回路)にも依存します。
インテル® では FPGA ユーザー向けに
Early Power Estimator (EPE) および インテル® FPGA Power and Thermal Calculator (PTC) という見積もりツールを用意しています。
今回は、その EPE および PTC の概要と、見積もる際の操作フローを 簡単に説明します。
EPE / インテル® FPGA PTC の概要
EPE および インテル® FPGA PTC は、論理回路(デザイン)設計中の 比較的早い段階で消費電力を見積もる際に使用します。
なお デザインの完成後は、Quartus® Prime の Power Analyzer で解析することを推奨しています。

EPE と インテル® PTC は、下表のとおり 開発する FPGA に応じて使い分けます。
Early Power Estimator (EPE) |
インテル® FPGA Power and Thermal Calculator (PTC) |
||||||||||
対象 FPGA |
Stratix® シリーズ(Stratix® 10 を除く) Arria® シリーズ Cyclone® シリーズ MAX® 10、MAX® V、MAX® II |
Agilex® FPGA シリーズ Startix® 10 FPGA |
|||||||||
使用するツール |
メーカーの Web ページからスプレッドシートを入手 |
Quartus® Prime Pro Edition に統合された機能を使用 または スタンドアロンタイプの インテル FPGA PTC をダウンロード & インストール |
|||||||||
入力する情報 |
・ リソース使用量(デザイン未完成の場合は推測される見積もり数) ・ 入力クロック要件およびトグルレート ・ 環境条件 など
|
||||||||||
Quartus® Prime の コンパイル情報を 反映させる場合に必要な ファイル形式 |
.csv |
.qptc |
|||||||||
操作フロー |
入手方法
EPE を入手する
インテル® FPGA の Web サイト 早期消費電力推定装置 (EPE) および消費電力アナライザー から入手することができます。
ターゲットの FPGA ファミリー向け EPE をダウンロードしてください。EPE のユーザーガイドも入手できます。

[Notes] 日本語ページで EPE がダウンロードできない場合は、ページ右上にある言語切替メニューから "English" を選択し英語ページに切り替えてからご利用ください。
インテル® FPGA PTC を入手する

インテル® FPGA PTC は、Quartus® Prime Pro Edition に標準搭載された機能です。Quartus® Prime Pro Edition がインストールされていれば、Tools メニューから GUI を起動して使用することができます。
あるいは、スタンドアロンタイプでインテル FPGA PTC を利用することも可能です。その際は、FPGA ソフトウェア・ダウンロード・センターからダウンロードし、インストールしてください。

ユーザーガイドは 以下のリンクから入手できます。
EPE の操作フロー
概要の図で示したように、FPGA デザインの完成具合いによって EPE へ入力するリソース情報の取り扱いが異なります。
● デザインが未完成の場合 ➡ ユーザー入力
1 リソース情報をユーザーが手動で EPE へ入力 |
2 環境条件をユーザーが手動で EPE へ入力 |
3 見積もり結果を確認 |
オススメ!
● デザイン完成済み & コンパイルが実行可能な場合 ➡ Quartus Prime デザイン・プロファイル
1 Quartus® Prime で コンパイル実行 |
2 Quartus® Prime で csv ファイルを生成 |
3 EPE へ .csv をインポート |
4 見積もり結果を確認 |
EPE : ユーザー入力
1. リソース情報をユーザーが手動で EPE へ入力
ダウンロードした EPE を開くと、下図のようにスプレッドシートが表示されます。

スプレッドシートの下部に項目が用意されていて、各タブに FPGA の想定しているリソース情報を手動で入力します。(タブの項目は、ターゲット FPGA により異なります。)
Logic : ロジック PLL : PLL(Phase-Lock-Loop 回路) HPS : ハード・プロセッサー・システム (SoC) |
RAM : 内蔵メモリー IO : I/O |
DSP : DSP ブロック IO-IP : I/O インターフェース IP |
Clock : クロック XCVR : トランシーバー |
詳細は、スプレッドシート内の該当する項目セルに表示されるツールチップのコメントや、各ファミリー向けの Early Power Estimator ユーザーガイドをご参考ください。
2. 環境条件をユーザーが手動で EPE へ入力
Main タブの Input Parameters エリアにおいて、環境条件を指定します。

Family | デバイスファミリーを選択 | Junction Temp, TJ | ジャンクション温度 (TJ) を自動的に計算するか、ユーザーが入力するかを選択 |
Device | デバイス型番を選択 | Ambient Temp, TA | デバイスを冷却する大気の温度を入力 |
Device Grade | 使用する動作温度、スピードグレード、および電源オプションの組み合わせを選択 | Cooling Solution | 関連するエアフローの冷却ソリューションを選択 |
Package | デバイスパッケージを選択 | ΘJA Junction-Ambient | Junction-Ambient 値を入力 |
Transceiver Grade | 標準的または理論上のワースト・ケース・シリコン・プロセスを選択 | Board Thermal Model | 熱解析で使用するボードタイプを選択 |
Power Characteristics | Typical または Maximum を選択 | ΘJB Junction-Board | Junction-Board 値を入力 |
VCC Voltage | デバイスの VCC パワーレールを選択 | Board Temp, TB | カスタムまたは標準 Board Thermal Model を入力した場合の熱計算で使用するボード温度を入力 |
Power Model Status | デバイスのパワーモデルが予備または最終状態かを表示 |
※ 項目内容はデバイスファミリーによって異なります。
※ 上表にない項目は、スプレッドシート内の該当する項目セルにポインターを合わせ、表示されるツールチップのコメントをご参考ください。
3. 見積もり結果を確認
Main タブの Thermal Power および Thermal Analysis エリアに、ユーザーが入力した条件から算出した見積もりの結果が表示されています。
[Notes] これらの算出結果は仕様ではありません。消費電力の "見積り" として使用してください。

Thermal Power エリアは、デバイス内で消費される見積もり電力が表示されています。
Total 消費電力は、スタンバイ電力とダイナミック電力からの最大電力を含む、デバイスで使用されるすべてのリソースの熱電力の合計です。
[Notes] 全熱消費電力には、I/O セクションの熱コンポーネントのみが含まれ、外部におけるリファレンス電圧終端抵抗などの熱消費電力は含まれません。

Thermal Analysis エリアには、ジャンクション温度 (TJ)、ジャンクションから周囲までの合計熱抵抗 (θJA)、および最大許容周囲温度 (TA) の値が表示されています。
以上が、EPE のユーザー入力による操作フローです。
EPE : Quartus Prime デザイン・プロファイル
1. Quartus® Prime で コンパイル実行
プロジェクトのデザインおよび制約設定が完成したら、コンパイルを実行し完了させます。
Processing メニュー ⇒ Start Compilation
2. Quartus® Prime で csv ファイルを生成
コンパイルしたプロジェクト・デザインに設定した環境およびコンパイル結果をもとに、EPE 向けの CSV ファイルを生成させます。
Project メニュー ⇒ Generate PowerPlay Early Power Estimator File
(ファイル名:*_early_pwr.csv)

3. EPE へ .csv をインポート
Quartus® Prime で生成した *_early_pwr.csv ファイルを、EPE へインポートします。

4. 見積もり結果を確認
Main タブの Thermal Power および Thermal Analysis エリアに、ユーザーが入力した条件から算出した見積もりの結果が表示されています。
[Notes] これらの算出結果は仕様ではありません。消費電力の "見積り" として使用してください。

Thermal Power エリアは、デバイス内で消費される見積もり電力が表示されています。
Total 消費電力は、スタンバイ電力とダイナミック電力からの最大電力を含む、デバイスで使用されるすべてのリソースの熱電力の合計です。
[Notes] 全熱消費電力には、I/O セクションの熱コンポーネントのみが含まれ、外部におけるリファレンス電圧終端抵抗などの熱消費電力は含まれません。

Thermal Analysis エリアには、ジャンクション温度 (TJ)、ジャンクションから周囲までの合計熱抵抗 (θJA)、および最大許容周囲温度 (TA) の値が表示されています。
以上が、EPE における Quartus Prime デザイン・プロファイルによる操作フローです。
インテル® FPGA PTC の操作フロー
Quartus® Prime Pro Edition 上の Tools メニューから "Power and Thermal Calculator" を起動すると、下図のような GUI が表示されます。

概要の図で示したように、FPGA デザインの完成具合いによって PTC へ入力するリソース情報の取り扱いが異なります。
● デザインが未完成の場合 ➡ ユーザー入力
1 リソース情報をユーザーが手動で PTC へ入力 |
2 環境条件をユーザーが手動で PTC へ入力 |
3 見積もり結果を確認 |
オススメ!
● デザイン完成済み & コンパイルが実行可能な場合 ➡ Quartus Prime デザイン・プロファイル
1 Quartus® Prime で コンパイル実行 |
2 Quartus® Prime で QPTC ファイルを生成 |
3 PTC へ .qptc をインポート |
4 見積もり結果を確認 |
PTC : ユーザー入力
1. リソース情報をユーザーが手動で PTC へ入力

Resource Summary / Navigation ウィンドウにおいて、Resource Type 内 Total Dynamic Power から各項目を選択し、FPGA の想定しているリソース情報を手動で入力します。(タブの項目は、ターゲット FPGA により異なります。)
Clock : クロック Crypto : 暗号ブロック DSP : DSP ブロック |
HBM : High Bandwidth Memory HPS : ハード・プロセッサー・システム (SoC) IO : I/O |
Logic : ロジック NOC : メモリー・ネットワーク オン チップ PLL : PLL(Phase-Lock-Loop 回路) |
RAM : 内蔵メモリー Transceiver : トランシーバー |
詳細は、Intel® FPGA Power and Thermal Calculator User Guide をご参考ください。
2. 環境条件をユーザーが手動で PTC へ入力
Resource Summary / Navigation ウィンドウの Resource Type から Main を選択し、環境条件を指定します。

Family |
PTC 起動時に選択したデバイスファミリーが表示 (プロジェクトをセットしてから PTC を起動した場合は、自動的にセットされる) |
Calculation mode | 使用する熱解析ソルバーの計算モードを指定 |
Device | デバイス型番を選択 | Junction temperature, TJ (°C) | パッケージ内のすべてのダイのジャンクション温度を指定 |
Device Grade | 使用する動作温度、速度グレード、および電源オプションの組み合わせを選択 | ||
Package | デバイスパッケージを選択 | ||
Power characteristics | Typical または Maximum を選択 | ||
VCC Voltage (mV) |
※ Stratix 10 の PTC のみ表示 |
※ 項目内容はデバイスファミリーによって異なります。
※ 詳細は Intel® FPGA Power and Thermal Calculator User Guide をご参考ください
3. 見積もり結果を確認
Resource Summary / Navigation ウィンドウの Resource Type に、リソースごとに計算された消費電力が表示されます。
また Report では、PTC で計算された電源レールごとの電流が表示されます。

以上が、PTC のユーザー入力による操作フローです。
PTC : Quartus Prime デザイン・プロファイル
1. Quartus® Prime Pro Edition で コンパイル実行
プロジェクトのデザインおよび制約設定が完成したら、コンパイルを実行し完了させます。
Processing メニュー ⇒ Start Compilation
2. Quartus® Prime Pro Edition で QPTC ファイルを生成
Quartus® Prime Pro Edition で Power Analyzer を実行すると、コンパイルしたプロジェクト・デザインに設定した環境およびコンパイル結果をもとに、PTC 向けの QPTC ファイルを生成します。
Processing メニュー ⇒ Start ⇒ Start Power Analyzer
(ファイル名:<project_revision_name>.qptc)
3. PTC へ .qptc をインポート
プロジェクトを Open した状態で PTC を起動すると下図ウィンドウが表示され、OK ボタンをクリックすると自動的にプロジェクト内の .qptc をインポートします。
PTC 内の File メニュー ⇒ Open から .qptc を選択しインポートすることもできます。
4. 見積もり結果を確認
Resource Summary / Navigation ウィンドウの Resource Type に、リソースごとに計算された消費電力が表示されます。
また Report では、PTC で計算された電源レールごとの電流が表示されます。
以上が、PTC における Quartus Prime デザイン・プロファイルによる操作フローです。
最後に
EPE や PTC の結果は FPGA の消費電力と熱特性の概算であり、デバイス動作中の実際の消費電力を示す正確な仕様ではありません。また 消費電力の見積もりは、入力する要素(リソース、トグルレート、温度など)が結果に大きく影響するため、入力情報は極めて重要です。
EPE も PTC も Quartus® Prime デザイン・プロファイルを用いた方法であれば 簡単に見積もることができますが、デザインをコンパイルできるようになったら、Quartus® Prime の Power Analyzer に切り替え、より正確な電力解析の結果を取得してください。
実際の消費電力は デバイスとデザインの入力信号の影響を受けるため、デバイスの動作中に実際の消費電力を確認するようにしてください。
おすすめ記事/資料はこちら
FPGAの消費電力の種類と計算方法
FPGA の周囲温度とジャンクション温度との関係
超初心者向けのアナログ回路 Enpirion® 編 第2回 FPGA の消費電力は?