1. 株式会社PALTEK
  2. TECHブログ
  3. 技術情報
  4. FPGAの基礎から応用まで:初学者のための完全ガイド

TECHブログ

FPGAの基礎から応用まで:初学者のための完全ガイド

FPGAの基礎から応用まで:初学者のための完全ガイド

「FPGA」という言葉を聞いたことがある方も多いでしょう。
エンジニアの方であれば一度は耳にしたことがあるかもしれませんが、「実際のところ、何ができるのか」「CPUやGPUとの違いは何か」といった疑問をお持ちの方も少なくないはずです。

本ブログでは、そうした疑問にお答えしながら、FPGAの魅力について詳しく解説していきます。

1. FPGAの市場拡大と活用事例から見える可能性

1-1. 拡大するFPGA市場と競争環境の変化

FPGAは市場全体として年々拡大傾向にあり、さまざまな分野でFPGAの「柔軟性・リアルタイム性・低消費電力」といった強みに価値を見出し始めています。2020年時点では、AMD社(旧Xilinx社)とIntel社の2社で市場の大部分を占める2強体制となっていましたが、最近Intel社がAlteraの株式を一部売却したことにより、今後の市場構造に変化が生じる可能性も出てきています。

2020年度のFPGA市場シェア(世界)を見ると以下のような状況です。

FPGAベンダーの市場シェア:AMD 52%、Intel(Altera)35%、Lattice 5%、Microchip 5%、その他 3%を示す棒グラフ

1-2. 意外と身近なFPGA活用事例

FPGAは産業機器やニッチな分野で使われるものという認識をお持ちの方も多いかもしれませんが、実は私たちの身近なところでも活用されています。

車載分野では、スバルの運転支援システム「アイサイト」のステレオカメラ画像処理にFPGAが採用されました。ASICでは開発コストや回路変更の柔軟性に課題がありましたが、FPGAなら要件に応じたロジック設計と将来的なアップデートに柔軟に対応できます。車載用途で求められる長期供給性・リアルタイム性・電力効率・サイズ制約を総合的にバランスよくクリアできる点が評価されています。

ITインフラ分野では、検索エンジンやクラウドバックエンド処理でFPGAが活用されています。処理内容に応じて回路構成を再構成できるため、膨大なデータを並列処理で高速処理でき、CPUに比べて最大40倍の高速化が可能とされています。

1-3. 大手企業が注目するFPGAの価値

特に注目すべきは、大手CPUメーカーがFPGAに本格参入している点です。AMD社は、もともとCPUの開発を主軸としていましたが、FPGAメーカーの旧Xilinx社を買収し、現在はXilinxのAIエンジン技術を自社製品に組み込んで「FPGAとCPUの融合」による新しい価値創出を進めています。

サーバー処理がより複雑かつ多様化する時代において、FPGAの「ハードウェアレベルでの処理能力」に大きな期待が寄せられており、今後は「柔軟かつ高速な処理を求める現場」にとって、なくてはならない存在になっていくと考えられます。

Intel社とAMD社によるFPGA市場の変遷を示した年表(2015年のAltera買収と2022年のXilinx買収)
図1. Intel社・AMD社によるFPGA市場の変遷

2. FPGAとはなにか

2-1. なぜFPGAは作られた?

「革新的な技術には必ず理由がある」─ FPGAも例外ではありません。この技術が生まれた背景には、当時主流だったASIC(特定用途向けIC)が抱える切実な問題がありました。

ASIC全盛期の課題(1980年台前半)

当時のASIC開発では以下のような深刻な問題がありました。

長期間の開発サイクル
1年半~2年という長い開発期間が必要
高額な初期投資
初期費用が高く、小ロットや試作用途には不向き
変更の困難さ
一度製造したら回路変更が不可能で、仕様変更への対応が極めて困難

これらの制約により、市場ニーズの変化への迅速な対応や、開発コストの抑制が大きな課題となっていました。

1985年 FPGAの商用化

こうした課題を解決するため、1985年にXilinx社(現AMD社)が世界初のFPGAを商用化しました。

  • ASICの根本的課題に対するソリューションとして開発
  • 大量生産から少量多品種への市場ニーズの変化に対応
  • 現在では大量生産用途においてもFPGAの採用が拡大
ASICの全盛期からFPGAの誕生・量産採用までの用途拡大の流れを示した図
図2. ASICからFPGAへの用途拡大の流れ

2-2. FPGAはなぜ柔軟性があるの?

FPGAの柔軟性は、その独特なアーキテクチャ構造に起因します。

FPGA内部構造の信号配線イメージ図。LUT、配線、IOBの配置を示す。
図3. FPGA内部構造の信号配線イメージ
主要構成要素
LUT(Look-Up Table)
  • FPGAの基本構成要素である「LUT」により論理回路を構成
  • LUTの内容を書き換えることで、AND/OR/加算/減算など任意の論理演算を実現
  • ハードウェアレベルでの演算内容を自由に変更可能
配線
  • LUT間を接続する配線経路も自在に構成可能
  • 計算式や処理の順序・流れを柔軟に変更
  • ソフトウェア開発のような自由度をハードウェア設計で実現
IOB(Input Output Block)
  • 外部デバイスとの入出力処理を担当
  • 多様なインターフェース要求に対応

この構造により、FPGAは「演算の内容」だけでなく「処理の順序」までも、後から自在に回路として構成できる─
まさに“再構成可能なハードウェア”としての高い柔軟性を備えているのです。

3. 各ICとの性能・処理特性の比較

3-1. FPGA vs. ASIC

ASICが抱えていた課題への解決策として誕生したFPGAとASICを比較すると以下の表のようになります。

表1. FPGA vs ASIC:開発・性能・柔軟性の違い
FPGAとASICの開発期間・コスト・柔軟性・処理速度を比較した表
開発期間
ASICは設計から完成まで長期間必要。FPGAは書き込んですぐ動作確認でき、試作が圧倒的に早い。
コスト
ASICはマスク費用が必要になり、高額な初期費用がかかるが量産すると安い。FPGAは初期費用が安く、少量でも導入しやすい。
柔軟性
ASICは一度作ったら変更不可。FPGAは何度でも書き換え可能で、仕様変更に柔軟対応。

上記のとおり、FPGAは「早く・安く・柔軟に」というニーズに応える解決策として誕生しました。

3-2. 各ICの特徴比較

それでは、他のICとも比較してみます。各種ICの基本特性を整理すると以下のようになります。

CPU
汎用性に優れたプロセッサ
CPUは、パソコンやスマートフォンなど、あらゆる情報機器に搭載されている汎用プロセッサです。C言語やPythonなどのプログラミング言語で制御し、OSの動作からアプリケーションの実行まで幅広く対応します。
特徴は「ソフトウェア制御による柔軟な処理」です。
GPU
並列演算に特化した高速プロセッサ
GPUは、もともと画像処理用途で開発されたプロセッサですが、近年ではAI処理や機械学習など、大規模なデータ並列処理でも広く使われています。CUDAやOpenCLといったAPIを用い、同一命令を大量のデータに対して同時に実行できるのが強みです。
CPU・GPUともに、ソフトウェア層のみで制御でき、OSやAPIレベルで動作変更が可能です。
FPGA
ハードウェアレベルで自由に設計・変更が可能
FPGAは、ソフトウェアによる命令実行ではなく、ユーザー自身がハードウェアの回路構造そのものを設計・変更できる再構成可能なデバイスです。VerilogやVHDLといったハードウェア記述言語(HDL)で設計し、必要な処理を回路レベルで実装します。
最大の特長は「何度でも構成変更が可能」な点です。量産前の試作や、短期間での機能変更が必要な開発、または特殊用途向けのカスタム処理に非常に適しています。
ASIC
専用最適化ハードウェア
ASICは、特定用途向けに設計・製造される専用ハードウェアです。一度製造すると変更は不可能ですが、その分、性能や消費電力は非常に高いレベルで最適化されています。スマートフォン、家電、自動車ECUなど、大量生産が前提の製品に広く使われています。

FPGAは、CPUやGPUのようなソフトウェアベースの柔軟性と、ASICのようなハードウェアレベルでの高速処理性能を兼ね備えたデバイスです。短納期プロジェクト、カスタム処理、高速応答が求められるシステム開発において、非常に有効な選択肢となります。

3-3. 総合性能比較

各ICの総合的な性能比較は以下の通りです。
CPU・GPU・FPGA・ASIC、それぞれの特徴を「速度・期間・コスト・柔軟性・消費電力」の5つの観点でざっくり整理しました。

表3. CPU・GPU・FPGA・ASICの総合性能比較表
CPU・GPU・FPGA・ASICの処理速度・開発期間・コスト・柔軟性・消費電力を比較した表
処理速度
処理性能やスループットの観点では、FPGAやASICは高い並列処理能力を持ち、優れた演算性能を発揮します。GPUも並列処理に強い一方で、リアルタイム性にはやや弱く、CPUは汎用性が高いものの、並列処理や演算性能では他に劣る傾向があります。この点に関しては、後述で補足します。
開発期間
CPUやGPUは既製品を使えるため短期間で開発可能。FPGAは設計が必要だが柔軟性があり比較的早い。一方、ASICはフルカスタム設計のため製品化に1年半以上かかることもあり、最も時間がかかります。
開発コスト/単価
コスト面では、ASICは開発費用が高いが量産することでチップ単価を抑えられる。FPGAは開発費用が低いが単価は高め。CPU/GPUは開発費用不要だが、性能に応じてチップ単価に幅があります。
柔軟性
アルゴリズムの変更や仕様変更に、どれだけ対応しやすいか。FPGA・CPU・GPUは柔軟性が高く、特にFPGAは回路レベルの変更が可能。ASICは基本的に変更できず、柔軟性が低い。
消費電力
電力効率はASICが最も高く、FPGAは比較的省電力だが最適化されているASICには劣る。GPUは高性能だが消費電力も大きく、CPUは中〜低程度の電力消費。

3-4. 各ICの得意な処理

CPU・GPU・FPGAは、それぞれ得意な処理方式が異なり、それが性能やリアルタイム性に大きく影響します。

処理方法の違い

CPU
CPU
逐次処理(順番に一つずつ処理)

CPUはプログラムされた命令をメモリから順に読み込み、「A→B→C→D→E」と一つずつ処理を進めます。処理のたびにメモリへアクセスし、プログラムされた命令の読み出しや、処理結果の書き込みをします。柔軟な処理が可能で汎用性は高いものの、逐次処理であることやメモリアクセスの頻度が多いことから、処理速度には限界があり、リアルタイムな処理にはやや不向きとされています。

イメージ例
CPU
1人でバケツを運ぶ

一つひとつを順番に処理する。
柔軟な処理が可能だがスピードには限界あり。

GPU
GPU
バッチ処理(大量データをまとめて一括処理)

GPUは数千の演算ユニットで、同じ処理を大量のデータに一気に適用します。たとえば「画像全体を一括でぼかす」といった処理に適しており、非常に高いスループットを実現できます。ただし、並列性が高くなるほど、演算結果のデータをメモリから取り出したり書き戻したりする時間が増えるため、リアルタイム性の求められる処理にはあまり向いていません。

イメージ例
GPU
大きなバケツで一気に運ぶ

一度に大量のデータを処理できる。
ただし取り回しは重く、リアルタイム性はやや低い。

FPGA
FPGA
パイプライン処理(ステージごとに同時並行)

FPGAは、各処理ステップを流れ作業のように並列実行。「A→B→C→D→E」の各段階が同時に動き、クロックごとに結果を出力できます。これにより、低遅延かつリアルタイム性の高い応答が可能です。

イメージ例
FPGA
バケツリレーで途切れず流す

ステージごとに役割を分けて連続処理。
遅延が少なく、リアルタイム性が高い。

特に「一瞬の遅れも許されない制御・信号処理・リアルタイム映像処理」などでは、FPGAのパイプライン処理が大きな強みとなります。

FPGAのパイプライン処理とは

パイプライン処理とは、1つの処理を複数の工程に分割し、それぞれの工程を並列に進める手法です。たとえば、製造業の流れ作業のように、あるデータが前の工程を終えると同時に、次のデータがその工程に入る仕組みです。これにより、複数のデータが同時に異なるステージで処理され、全体の処理効率が向上します。

この方式を活用することで、FPGAは毎クロックごとに処理結果を出力するような低遅延のリアルタイム処理が可能となり、時間的制約の厳しいアプリケーションで優れた性能を発揮します。

4. FPGAでなにができるの?

4-1. 各IC(CPU・GPU・FPGA)の使い分けと強み

ここまでCPU・GPU・FPGAの性能面(処理速度・柔軟性など)について紹介してきました。ここからは、それを踏まえて「実際どんな用途で使われるのか」を具体的に見ていきます。比較対象となる用途は以下の7つです。

  • レンダリング
  • AI学習
  • AI推論
  • リアルタイム映像処理
  • 高速通信・信号処理
  • 制御系
  • 科学技術計算

FPGAが苦手な分野

  • レンダリング
  • AI学習

FPGAは並列処理性能に優れますが、浮動小数点演算が多い処理は不得意です。その理由は、浮動小数点演算回路を実装するとFPGA内リソース(LUTやFF)を大量に消費するためです。GPUは浮動小数点演算ユニットを多数搭載しており、レンダリングやAI学習のような大規模並列計算に最適です。

FPGAが得意な分野

  • AI推論
  • リアルタイム映像処理
  • 高速通信・信号処理
  • 制御系
 AI推論
AI推論はAI学習ほど大量の演算機を必要としませんが、効率的な回路設計と低遅延なデータ処理が重要になります。GPUは数千から数万の演算ユニットを持ち、複雑かつ大規模なニューラルネットワークの推論に向いています。FPGAは、AI推論に必要な演算やデータフローを専用回路として最適化でき、無駄なく効率的に処理可能です。高い並列処理性能とリアルタイム性を活かし、スピーディかつ安定した推論処理を実現します。
 リアルタイム映像処理
リアルタイム処理には処理方式が非常に重要です。FPGAはパイプライン処理によって低遅延で映像データを処理可能。製造ラインの外観検査や欠陥検出などで活躍しています。
 高速通信・信号処理
FPGAはセンサーや通信インターフェースとダイレクトに連携でき、OSを介さずリアルタイム処理が可能です。プロトコル変換や信号解析など、応答遅れが許されない用途に最適です。
 制御系
センサー信号の即時処理や装置制御など、ミリ秒以下の応答が必要な場面で強みを発揮します。

4-2. FPGAを実際に動かしてみた(デモ)

理論的な説明に加えて、実際の性能検証結果を紹介します。

検証内容

  • 処理対象:4K60P映像の2Kリサイズ処理
  • 比較対象:CPUとFPGAでの同一処理

以下の動画をご覧ください。

4K60P→2Kリサイズ:CPU vs FPGA デモ

検証結果

項目 CPU FPGA
処理結果 2K2P
(フレームレート大幅低下)
2K60P
(フレームレート維持)

CPUのみで映像を処理すると、処理が間に合わずフレーム落ちが発生し、カクついた表示になります。これは映像がカメラから入力された後、次のフレームが来るまでの間に処理が完了せず、フレームを受け取れない時間帯が発生しているため、映像にカクつきが見られます。

一方、FPGAを用いるとリアルタイム性が確保され、滑らかに映像を表示できています。この結果はFPGAのリアルタイム処理能力とパイプライン処理の効果を明確に示しています。

5. 採用事例紹介

5-1. 医療機器での採用

医療機器の開発現場では、FPGAの採用が進んでいます。なぜFPGAが選ばれるのでしょうか?その理由は、医療現場ならではの厳しい要求に応えられる点にあり、主な理由は以下の3つです。

リアルタイム性
手術中の映像処理など、遅延が許されない場面でFPGAは低遅延処理を実現
高信頼性
患者の安全に直結する機器では、安定した動作が不可欠。FPGAは専用回路として高い信頼性を提供
カスタマイズ性
医療機器特有の仕様に柔軟に対応できるため、用途に応じた最適な設計が可能

5-2. スマート交通カメラへのSoC採用

近年、スマート交通カメラにもFPGAが採用される事例が増えています。特に注目されているのが、リアルタイムなAI処理と高い電力効率の両立です。

FPGAを搭載したスマート交通カメラの外観
図5. ナンバープレート認識機能等を持つスマート交通カメラ

走行中の車両のナンバープレートを瞬時に識別するには、リアルタイムな映像処理が不可欠です。さらに、屋外設置が前提となるため、電力供給が限られる環境でも安定して動作する必要があります。

高電力効率の実現
  • 屋外設置環境での省電力要求に対応
  • Zynq™ UltraScale+™ MPSoCにより10W未満での動作を実現
リアルタイムAI処理
  • AMD社提供のVitis AI(AI開発環境)の活用
  • DPU(Deep Learning Unit)によるAI演算の高速化
H.265コーデック処理
  • ハードウェアレベルでのH.264/H.265ビデオコーデック処理
  • 最大4K60p解像度での複数ビデオの同時エンコード/デコード

「高い電力効率」×「リアルタイムAI処理」×「H.265コーデック」を1チップで実現できるため、スマート交通カメラに最適な選択肢となっています。

6. FPGAの活用分野と特長まとめ

以下は、本ブログ全体を通じてのFPGAの技術的特徴と市場での位置づけのまとめです。

なぜFPGAは柔軟性/リアルタイム性があるのか

  • FPGAはアーキテクチャ特性により、回路を再構成できる柔軟性を持つ
    • LUT:演算内容を自由に変更可能
    • 配線:処理の流れを自由に変更可能
  • ハードウェアレベルの処理/パイプライン処理/処理毎のメモリアクセスが不要なため、リアルタイムな処理を実現

得意分野

AI推論
リアルタイム性と並列処理を活かし、車載・産業機器で採用拡大
リアルタイム映像処理
パイプライン処理により低遅延な処理が可能で、医療・交通分野で活用
高速通信・信号処理
豊富なI/Oと高速インターフェースにより通信インフラに最適
制御系
I/Oに直接アクセスでき、ミリ秒・ナノ秒単位で応答可能

不得意分野

レンダリング/AI学習
浮動小数点演算が多い処理はGPUに比べて不利

FPGAが選ばれる理由

  • ハードウェアレベルでの制御が可能
  • パイプライン・並列処理による低遅延
  • I/O制御や独自プロトコルへの柔軟な対応

FPGAは、リアルタイム性と柔軟性が求められる分野で幅広く活用されています。医療機器やスマート交通カメラなど、実用例も数多く存在します。今後もその活躍の場は広がっていくでしょう。

FPGAの基礎的な理解から応用事例まで、幅広い観点から解説してきました。この技術に興味を持たれた方は、ぜひ実際のプロジェクトでの活用を検討してみてください。
技術的な質問やご不明な点がございましたら、お気軽にお寄せください。FPGAの可能性をさらに探求していきましょう。

FPGAの活用・設計検討の
お問い合わせはこちら