はじめに
こんにちは。インテル® FPGA 製品の技術サポートをしている 鷲宮タロー です。
ところで皆さんは、FPGA を実装するボードを設計する時に、FPGA の消費電力をどのように求めているでしょうか?
FPGA の消費電力を求めるには、まず、FPGA の消費電力が以下の主要要素から決まってくることを知っておく必要があります。
- 待機時(スタティック)消費電力
- 動作時(ダイナミック)消費電力
- I/O 消費電力
その上で、消費電力をどのように求めることができるか、順を追って一つ一つ見ていきましょう。
3つの消費電力タイプ
待機時(スタティック)消費電力
リーク電流に起因するデバイスの待機時(スタティック)の消費電力は、以下の要因に依存すると言われています。
- ダイのサイズ
- 温度
- プロセスのバリエーション
一般的に、スタティック消費電力は、リソース使用率には依存しません。また、詳細なデバイス特性評価(デバッグなどの実機評価)の前に見積もることができ、標準消費電力と最大消費電力の2種類で定義することができます。
動作時(ダイナミック)消費電力
動作時(ダイナミック)の消費電力ですが、まず、ロジック・アレイおよび内部接続ネットワークの内部キャパシタを充電および放電するのに電力が必要です。内部ノードで 0 → 1 や 1 → 0 のようにロジック・レベルが変化すると、デバイス内部で電力を消費します。
そして、コア動作時の消費電力には、ルーティング(配線)消費電力とロジック・エレメント(組み合わせ回路や順序回路などを構成する論理リソースの最小単位)の消費電力の両方が含まれます。ロジック・エレメントの消費電力は、内部ノード・キャパシタの充電および放電によって消費され、また内部抵抗エレメントからも消費されます。ルーティング消費電力は、各ロジック・エレメントによってドライブされる外部ルーティング・キャパシタの充電および放電に必要な電流から生じます。
I/O 消費電力
I/O消費電力は、以下の要因によって消費されます。
- デバイスの出力ピン
- 抵抗モードで動作中の出力ドライバ回路
- 外部終端網(存在する場合)に接続された外部負荷コンデンサの充電と放電
消費電力の見積もり方法 & 解析ツール
さて、消費電力を決定する主要要素はわかっと思いますが、ではどうやって消費する電力値を求めれば良いんでしょうか?
インテルでは、インテル® FPGA ユーザ向けに消費電力の見積もりと解析するためのツールを用意しています。
PowerPlay Early Power Estimator (EPE)
エクセル・ベースの消費電力見積もりのツールです。手動で FPGA のリソースを入力して見積もる User Input とデザイン中(回路設計中)の Quartus® Prime プロジェクトからリソース情報抜き出した CSV ファイル生成して EPE に簡単にインポートする Quartus® Prime Design Profile の 2種類の方法があります。
デザイン中の比較的早い段階で見積もる時に使用することが多いです。
EPE による見積もり方法を説明した記事はこちら
FPGA 消費電力の見積もり方法
PowerPlay Power Analyzer (PPPA)
Quartus® Prime ベースで消費電力の解析を行うことができます。ファンクション・シミュレーションを行わずに Quartus® Prime の PowerPlay Power Analyzer から設定したトグル率をもとに見積もりする Place-and-Route Results とファンクション・シミュレーション結果からその波形をもとにデータを生成して PowerPlay Power Analyzer にインポートして見積もる Simulation Results の 2種類があります。
消費電力の特性
FPGA の基本的な消費電力の特性をイメージすると、下図のようになります。電源投入(Power-Up)後にスタティック状態となり、FPGA のコンフィギュレーションが完了して動き出すと動作時の電力(ダイナミック+ I/O +スタティック)となります。
もう少し踏み込んだ EPE による見積もり方法を説明した記事を公開中です。また、ジャンクション温度と周囲温度との関係性を説明した記事も公開中ですので、興味があればぜひご覧ください。
おすすめ記事/資料はこちら
FPGA 消費電力の見積もり方法
FPGA の周囲温度とジャンクション温度との関係
超初心者向けのアナログ回路 Enpirion® 編 第2回 FPGA の消費電力は?