FPGA (Field Programmable Gate Array) は、重要なワークロードの高速化要件に合わせて電子制御機能をカスタマイズ可能な半導体 IC です。

FPGA はデバイス内の電子制御機能の大部分を変更できる半導体 IC です。変更は設計エンジニアが行うことも、プリント基板のアセンブリー・プロセス中に行うことも、さらには機器が顧客へ出荷された後、「現場 (Field)」で行うこともできます。

SoC FPGA は、プロセッサーと FPGA のアーキテクチャーを 1 つに統合したデバイスです。

プロセッサーの高レベルの管理機能と、要求の厳しいリアルタイムのオペレーション、究極のデータ処理、または FPGA (フィールド・プログラマブル・ゲート・アレイ) を 1 つのデバイスに統合し、さらに強力なエンベデッド・コンピューティング・プラットフォームを構築します。

これにより、高度なシステム統合、消費電力の低減、ボードサイズの削減、プロセッサーと FPGA との間の高帯域幅通信が実現します。また、豊富な周辺機器、オンチップメモリー、FPGA 型ロジックアレイ、高速トランシーバーを搭載しています。

柔軟性

FPGA は、電源を投入しなおすことで、変更した機能で動作させることができます。

アクセラレーション

製品の市場投入までの期間の短縮や、システム・パフォーマンスの向上に威力を発揮します。

システム統合

現在の FPGA には、オンダイ・プロセッサー、28 Gbps (またはそれ以上) のトランシーバー I/O、RAM ブロック、DSP エンジンなどが含まれています。

総保有コスト(TCO)

ASIC は同等の FPGA に比べて単価は低いものの、その構築には、開発費 (NRE)、高価なソフトウェア・ツール、専門の設計チーム、および長い製造サイクルが必要となります。

SoC FPGA 内のプロセッサーには「ハード」と「ソフト」があります。ハード・プロセッサーは、シリアル・トランシーバーと同様に SoC FPGA の固定シリコンロジック内に実装されます。ただし SoC FPGA 上のプロセッサーは、カスタム機能にもアプリケーション固有の機能にも使用できるプログラマブル・ロジックで囲まれています。ハード・プロセッサーは、プロセッサー・アーキテクチャー、クロックレート、プロセス・テクノロジーなどの要素に応じて、ソフト・プロセッサーより高い CPU 性能をもたらします。その名が示すように、ハード・プロセッサーの機能セットは固定されており、通常は特定の SoC FPGA のバリエーションとして提供されます。SoC FPGA 内のハード・プロセッサーの数とタイプもまた、特定の SoC FPGA のファンクションとして固定されています。インテルは、インテル® Stratix® 10 SoC FPGAインテル® Arria® 10 SoC FPGAArria® V SoC FPGA、および Cyclone® V SoC FPGA ファミリーでハード・プロセッサーを提供しています。

Nios® II プロセッサーなどのソフト・プロセッサーは、プログラマブル・ロジックに実装され、ロジックエレメントや乗算器、メモリーなどのオンチップリソースを使用しており、ほとんどの FPGA ファミリーで実装することが可能です。ソフト・プロセッサーの性能とコストは、主にそのコアが実装される FPGA に依存しますが、一般にハード・プロセッサーより低くなります。1 個のデバイスで実装できるソフト・プロセッサーの数は、そのデバイスのリソース (つまりロジックとメモリー) によってのみ制限されます。例えば、高集積 FPGA には数百ものソフト・プロセッサーを組み込むことができます。同様に、さまざまなタイプのソフト・プロセッサー (16 ビットまたは 32 ビット、性能の最適化、ロジック面積の最適化など) を実装することができます。ゲートアレイまたはセル・ベース・デザインに移行するときには、設計者はソフト・プロセッサー・デザインをハード・プロセッサー実装に移植することを選択できます。また、SoC FPGA の FPGA 部分で 1 つ以上のソフト・プロセッサーを使用することもできます。

組込みシステムではさまざまな方法で FPGA を使用することができます。以下に一般的な使用方法を示します。

  • I/O およびペリフェラルの拡張 - LCD コントローラーやメモリー・コントローラーなど、現在のプロセッサーに欠けているペリフェラルを追加したり、イーサネット、汎用 I/O (GPIO)、または UART ポートを追加してシステムの I/O チャネル数を増やしたりすることができます。
  • コプロセシング - 計算量の多いアルゴリズムを、プロセッサー上で動作するソフトウェアから FPGA のハードウェアに移動することによって、システム性能を向上させます。信号処理、画像処理、およびパケット処理アプリケーションは、ソフトウェアではなくハードウェアで動作させることによって大幅な性能向上を達成できます。
  • カスタム・エンベデッド・コントローラー - カスタム・エンベデッド・コントローラーに、プロセッサー、ペリフェラル、インターフェイス、ダイレクト・メモリー・アクセス (DMA) チャネルおよびメモリーのどれを (いくつ) 含めるかを選択できます。
  • マルチプロセッサー - 複数の CPU にわたってタスクを分散することにより、ソフトウェア開発の迅速化、コードの信頼性とメンテナンス性の向上が実現します。マルチプロセッサー・システムは、単一の FPGA 内のカスタムシステムとしてデザインすることも、外部 CPU またはデジタル信号プロセッサー (DSP) を補完することもできます。