このコラムでは「意外と知られていないけど、知っていると差がつく FPGA の技術情報」をご紹介します。
FPGA初心者の方からベテランの方まで、幅広くご活用いただける内容ですので、ぜひ最後までお付き合いください。

【第 1 回】 低消費化のための 3 つの心得

FPGA の規模が大きくなるに伴い、消費電力が問題になってきました。
このコラムでは設計者が行える低消費電力対策をメインに書いてみたいと思います。

まず低消費電力設計手法には、設計者が行える方法と半導体ベンダーでないと対応できない方法があります。

設計者が行える効果的な低消費電力手法として下記があります。

(1)できるだけ設計上流で対策する
(2)アナログ回路をデジタル回路に置き換える
(3)ソフトウェア処理の一部をハードウェア処理に置き換える

できるだけ設計上流で対応する

低消費電力化対策の効果は以下の順で高くなります。

ネットリスト < RTL < アルゴリズム

ネットリストになった回路では、クロック系以外では数%程度の効果しかないケースがほとんどですが、
アルゴリズムで対策すると、数十%以上も電力が下がる事があります。

アルゴリズム設計時に低消費電力を意識するだけでも大きな効果がありますので、次回以降のコラムでは、
アルゴリズム設計時に役立つノウハウをメインに紹介したいと思います。

アナログ回路をデジタル回路に置き換える

アナログ IC をデジタル回路に置き換えて FPGA 内に搭載すると、消費電力が削減されます。

一般的なデジタル回路は、CMOS 回路が主流なので消費電力が低いです。そして、一度アナログ回路をデジタル回路に置き換えると、
次々と微細化される最新 FPGA に置き換えるだけで消費電力は低下します。

アナログ回路はデジタル回路よりも古いプロセスの方が特性の良いことが多く、また微細化する度に特性が変わり作り直しが必要なので、
微細化による消費電力削減は困難です。

ソフトウェア処理の一部をハードウェア処理に置き換える

動作周波数の向上が困難になり、プロセッサ、GPU、DSP などのソフトウェアで処理するデバイスはコアを並列化するようになりました。

FPGA は小さな単位で並列化できるので、これらのデバイスよりも無駄な動作が少ないために低消費電力です。
頻繁に使う機能やパフォーマンスが必要な部分をソフトウェア処理からハードウェア処理に置き換えると大幅に消費電力を下げることができます。

頻繁にアルゴリズムが変わる場合は、OpecCL などの高位言語を使うと便利です。

例えば、サーバのコプロセッサとして使っているGPUをFPGAに置き換える事で、1ケタ低い消費電力を達成できるので、
HPC(high-performance computing)業界では FPGA が注目されています。