簡単に始めるFPGA電源見積と電源選定
皆さんこんにちは。
今回、FPGAの電源ICの選定における電力見積もりのアプローチについて紹介します。
電力見積もりのアプローチはさまざまですが、はじめてFPGAを使う場合にまずはじめに手を付けられそうな「FPGAの消費電力の見積もり方法」について、できるだけ肌感覚を得られるように簡単にお伝えしたいと思います。
目次
1.1.FPGAはややこしい?手間がかかる?
唐突ですが、マイコンやSoCを扱ったことはあるけれど、FPGAは初めて扱うという場合に、FPGA・基板・機構設計のエンジニアの方の頭にはどんなことが浮かぶでしょうか?
シンプルな回路を最低限の構成で動かそうというケースでもFPGAの特性上、汎用デバイスとの違いで以下のような点に対して壁を感じるのではないでしょうか。
- (1) 非常に多くのバリエーションがあるFPGAから最適なデバイスの選定
- (2) 複雑な機能を持ち、組み合わせも複雑なマルチファンクションピンのピンアサイン
- (3) 複数の電源を必要とし、複雑な立ち上げシーケンスを要求される電源回路の設計
- (4) FPGAの中に構成する回路に依存する消費電力と発熱の見積もりなど。
たまにしかFPGAを使わない私は、使うたびにこんなことを思っています。
逆にシビアな要求がある場合は、汎用品では手の出せなかったデバイス内部に対して、FPGAであれば自分たちのアイデアと努力を注ぐことで電力や発熱をコントロールできるかもしれないという発想もあるかもしれません。
独自に基板は作らずに、評価ボードや汎用ボードを使うという選択もあります。これである程度は壁を緩和してくれます。評価、試作段階は評価ボードや汎用ボードを使用し、使用した基板の構成をベースに独自のボードを作ろうとすると新たな課題が出てくるかもしれません。
- (1) ピンアサイン、ピンの処理は、使用したボードと同じで良いのか?
- (2) 電源回路は同じ回路を使いたいが同じ部品を入手できるのか?
- (3) 消費電力、発熱を抑えたいが、どのようなアプローチが有効なのか?など。
今回は、電力見積もりのアプローチについて紹介します。
電力見積もりのアプローチはさまざまですが、はじめてFPGAを使う場合に始めに手を付けられそうなFPGAの消費電力の見積もり方法について、できるだけ肌感覚を得られるように簡単にお伝えしたいと思います。
Excelが使えるwindows環境があれば試せる方法です。
FPGAのツールは不要で、以外と簡単です!
1.2. FPGAの電力検討のアプローチ
Xilinx社のFPGAには2つの電力見積もりツールが提供されています。
vivado power report
vivado power reportはXilinx社のデザインツールであるVivado® Design Suite に組み込まれている見積もりツールです。手軽に実行でき、デザイン工程が進むにつれて見積もり精度があがります。
XPE(Xilinx Power Estimator)
XPEはXilinx社のツールを必要とせず、Microsoft Excel がインストールされた環境で手軽に見積もることが可能です。
今回はXPEをとりあげます。
XPEには大きく3つの見積もり方法があります。
- (a) ウィザードを使ってざっくりとした動作周波数や回路規模の定義をする方法
- (b) 動作周波数や回路規模、IOピン等の定義を詳細に入力する方法
- (c) vivadoで作成したピンアサインや配置配線情報をインポートする方法
精度は(a)より(b)、(b)より(c)が高く、最初は(a)ではじめて、次第に高めていくこともできます。
XPEは上記のどの方法を採ってもExcelのシートのパラメータを変更するだけで見積もり条件を変えられるので、もう少し電力を抑えたいときに
- クロック周波数を落としてみたらどうなるか?
- 回路を削減したらどうなるか?
などの条件変更を手軽に行えます。
Excelが動く環境があれば使えるので、基板や機構設計を担当していて、FPGA内部の開発はしないエンジニアの方にも扱いやすいのではないでしょうか。FPGA単体でなく、システムレベルでの電力や熱設計の視点でさまざまな条件の傾向を見ることで、システム視点でFPGAがターゲットとする電力や発熱も決定に役立てることもできるでしょう。
1.3. XPE(Xilinx Power Estimator)の入手
XPEは Xilinx社のWEBサイトからダウンロードできます。
上記サイトの「7シリーズ及びZynq-7000」用をダウンロードします。
出典:Xilinx社WEBサイト XPE (Xilinx Power Estimator)
ダウンロードしたファイルを展開すると下記のExcelファイルができます。
7_Series_XPE_2019_1_2.xlsm
1.4. XPE(Xilinx Power Estimator)で電力見積もり
1.4.1. ざっくりと見積もる
とりかかりが簡単な前述の(a)でざっくりと見積もり、その定義を(b)のベースとして詳細な定義を追加していく手順で、電源ICに必要となる電流の供給能力を調べてみます。
まずは、Excelで7_Series_XPE_2019_1_2.xlsmを開きます。
出典:Xilinx社 XPE (Xilinx Power Estimator)
XPEの左にある「Settings」の中の「Device」グループのFPGAの情報を変更します。ここではXilinx社のSpartan7評価キット(SP701)と同じFPGAで試してみます。
出典:Xilinx社 XPE (Xilinx Power Estimator)
シート上部の「Quick Estimate」ボタンをクリックします。
出典:Xilinx社 XPE (Xilinx Power Estimator)
すると、ダイアログが開きます。
出典:Xilinx社 XPE (Xilinx Power Estimator)
Design Utilizetion | FPGAが有するFFやLUT等の構成要素(リソース)毎の使用量(使用率) |
---|---|
Design Activity | 論理回路(Logic)、内臓RAM(BRAM)のダイナミック動作定義 |
Physical Interface | 外部に接続するDRAMの動作定義 |
細かい説明は省略しますが、わかっている範囲でパラメータを指定しておくと、この後の見積もりが楽になります。
まずは、デフォルトのままで「OK」をクリックして見積もりを実行してみます。すると「Summary」、「On-Chip Power」、「Power Supply」に結果が表示されます。
出典:Xilinx社 XPE (Xilinx Power Estimator)
このFPGAは「Power Supply」の電流値が記載されている4つの電源を必要とし、電圧の種類は1.0V、1.8V、1.5V(この電圧はIOピンの種類によって変わります)の3種類が必要なことが確認でき、それぞれに必要とされる電流が示されます。
電源回路は、この電圧と電流を満足できる回路を用意する必要があります。
1.4.2. 何が消費電力に影響しているのか見てみる
もう少し電力を抑えたい状況にあると仮定して、下記の①~③のパラメータを変更して、電力に影響の大きいものを調べてみます。
- ①:回路の動作クロック
- ②:回路のトグル率
- ③:回路の規模(使用率)
出典:Xilinx社 XPE (Xilinx Power Estimator)
注) ここでは調べ方の例を示すためにこの3つを使用しますが、FPGAにとって影響力の大きいものの代表というわけではないので、実際は影響の大きそうな要素を取り上げて調べてください。IOピン等他の要素が支配的になるケースも多々あります。
①から③それぞれ個別に5つの値に変更して実行し、電流値をグラフ化しました。
この3つのパラメータにおいては動作クロックとトグル率の影響は大きく、回路の規模はあまり影響しなさそうなことが見て取れます。
(FF数も試してみましたがLUT数と大きな違いはありませんでした)
影響の大きいトグル率ですが、アプリケーションによって大きく変わるのでデフォルト値を使用する場合は注意してください。
1.4.3. 見積もり精度を上げるには
少しだけ、具体的な情報を追加して精度を向上する方法のさわりをやってみます。
「Quick Estimate」をデフォルトの定義で実行した状態で、「Logic」シートを開きます。
すると、表の「Name」列に「ddr3_mem」と「System」の2つが登録されています。
Logicは全て150Mhzで動作するようになっています。
出典:Xilinx社 XPE (Xilinx Power Estimator)
Logicの半分は150Mhzのまま、残りの半分を50Mhzで動作するものと仮定し、「System」行の「Logic」と「Register」の値を半分にします。
残りの半分を次の行に「SubSystem」という名で、50Mhzで登録します。
出典:Xilinx社 XPE (Xilinx Power Estimator)
「Summary」シートに戻ると
VCC INT 1.132 → 0.994
VCCO 1.5V 0.508 → 0.408
と変化しています。
試しにIOもLVCMOS 3.3Vの出力ピンを追加してみます。
IOシートに下記赤枠の行を追加しました。
出典:Xilinx社 XPE (Xilinx Power Estimator)
「Summary」シートに戻るとVCCO 3.3Vが追加されています。
出典:Xilinx社 XPE (Xilinx Power Estimator)
このようにして、少しずつ精度を上げていくこともできます。
取り上げなかったパラメータや使い方についての詳しくは下記のドキュメント等を参考にしてみてください。
Xilinx Power Estimator ユーザー ガイド UG440
1.5. 実機で電力測定
話は変わりますが、見積もりが終わり、無事に試作ができたら、できれば電源にどれくらい余裕があるか見てみたくなります。簡単に電流を見るには
- ・シャント抵抗を入れるパターンを用意する
- ・モニタ機能のある電源IC、または電源モニタICを使う
という方法が考えられます。前者はシビアな低ノイズ特性を要求されている電源ラインの場合は測定器をつなぐことも簡単にはいかないケースもあるかもしれません。後者であれば電源ラインに影響を与えることなく、PCとPMBus(I2C)等で繋ぐだけで簡単に見ることができます。
PMBusのモニタがどのようなものなのかみたく、ちょうどMPSのPMBus対応品があったのでさわりだけ見てみました。
MPSのMPM3695の評価ボード(EVM3695-25-RF-02A)に電子負荷を接続し、MPSから提供されているVirtual Bench Proのモニタ機能を使いました。
※ PMBub(Power Management Bus):オープンな電力管理プロトコル。物理層にI2Cを使用した製品が多く見受けられる。
ただし、どこまでの精度で見ることができるかはICのモニタ機能の仕様やPMBus(I2C)等のI/Fの制約に依存します。この点は前者の方が自由に測定器を選べるメリットがあるので、状況に応じて使い分けですね。
1.6. MPS電源ICの紹介
ここまでのお話しを元に、当社で扱っているMPS社の電源IC、モジュールを簡単に紹介します。
1.6.1. MPSの電源IC、電源モジュールの特徴
MPSというメーカになじみのない方も多いと思いますが、FPGAを使用していないアプリケーションでも国内の身近な民生IT機器、産業用通信機器等の多くの実績を持っています。
- 基本的には、注文が継続している品種は廃止しない
- Xilinx社、Qualcom社など豊富なリファレンス デザインとアプリケーション ノート
- FET、インダクタ内蔵モジュールによる小型化、発熱の低減、設計の容易化
- 低電圧、大電力における超高速応答
- 大電力における超低リップル
- Xilinx社 FPGA推奨電源パートナー
1.6.2. MPS電源ICの選定
ここまでにFPGAに必要となる電源電圧とそれぞれに必要となる電流供給量がわかったので、そのデータを元にセレクションリストから簡単に選定できます。リストではPMBusに対応している製品もわかるようになっています。
MPSのWebサイト では、全ての品種からの絞り込みができます。
1.7. 最後に
いかがでしたでしょうか。FPGAを使う際の電源の見積もりから選定までの流れを感じ取って頂けると幸いです。
今回は触れませんでしたが、FPGAで高速なIOを多数使用する場合等、電力が大きくダイナミックに変動する場合は考慮することが少々増えます。MPSの電源はそのようなケースにも対応できる製品がありますので、お気軽にお問い合わせください。