FPGA大手2社が、英ARM社のCortex-A9を集積したFPGAの量産出荷を開始して1~2年が経過した。開発案件の数は順調に増加中。現在、ハードウエアとソフトウエアの開発フローは独立しているが、今後は2つのフローが接近・交差する。ソフトウエア開発者がハードウエアの改修を要求したり、ハードウエア設計者がOSのブートまで面倒を見たりするケースが増えそうだ。

 「部品点数が減り、機器の小型化と低消費電力化が図れるので、出荷開始とほぼ同時に採用した」(通信機器メーカー)。「顧客の既存のボードにSH-4プロセッサーとFPGAが載っていた。先のないSH-4をARMプロセッサーに置き換えるタイミングで採用を提案したところ、受注に成功した」(FPGAの設計受託会社)。FPGAに、英ARM社のCPUコアとその周辺機能を集積した「SoC型FPGA」の設計件数が着実に増えている。ここ1~2年の間に、FPGA大手の米Xilinx社が「Zynq-7000」の、続いて米Altera社が「Cyclone V SoC」と「Arria V SoC」の量産出荷を開始し、チップが調達しやすくなった。

 FPGAは、1985年にXilinx社が最初の製品(XC2064)を出荷してから、今年で30年目を迎える。当初は手元でプログラム可能な論理ブロックとI/Oブロック、配線素子だけを集積する、純粋な意味での汎用チップだった。その後、アプリケーションの要求に基づいて、プログラマブル論理とは別に、半導体マスクのレベルで最適化されたハードマクロ(ハードワイヤド回路)が続々と集積されていった(図1)。

図1 FPGAの2つの機能実装方法
FPGAは、搭載する回路規模の増大に伴って、ユーザーが一から回路を組み上げる設計から、大規模マクロを組み合わせる設計へと移行している。ここで言う大規模マクロには、「ハードマクロ(ハードワイヤド回路)」と「ソフトマクロ(RTLのIPコア)」の2種類がある。ハードマクロは、一般に性能は高いがユーザーが手を加えられない。ソフトマクロは、プログラマブル論理の中の回路素子を消費して回路を実現する。一部の機能をパラメーターによって変更できたり、論理合成時のオプション設定により回路規模や性能を調整できたりする。ソフトウエアでたとえると、ハードマクロはオブジェクトコードで供給されるプログラムに、ソフトマクロはコンパイル前の高級言語で供給されるソフトウエアライブラリーに相当する。なおCPUコアは、ハードマクロとしても、ソフトマクロとしても提供されている。
[画像のクリックで拡大表示]

 積和演算器や乗算器の集積は、FPGAの内部リソースの使用効率を引き上げ、画像処理ボードや通信ボードを開発しやすくした。SerDes(serializer/deserializer)やクロック/データリカバリー、PCI Expressインターフェースといった回路の集積は、伝送線路設計の手間を軽減し、高速データ伝送ボードの開発手法を変えた。

 さらにFPGAはCPUコアを取り込むことにより、ハードウエア設計だけでなく、ソフトウエア開発にも影響を与えるチップになりつつある。

 本稿では、SoC型FPGAの開発技術の動向と、開発企業の業務に与える影響について述べる。