FPGAの基本がこれでわかる!内部構造・仕組み・特徴・用途をやさしく解説

Pocket

FPGAの基礎知識

FPGAは、製造後でも内部の論理回路を用途に応じて設定・変更できる集積回路です。高い並列処理性や低遅延性を備え、通信機器、映像処理、産業機器、AI処理など、幅広い分野で利用されています。

本記事では、FPGAの基本的な仕組みや特徴、CPU・GPU・ASICとの違い、内部構造、主な用途、開発の流れについて、初心者にもわかりやすく解説します。

1.FPGAとは

FPGA」(Field-Programmable Gate Array)は、「出荷された後でも、ユーザーが中身の回路を自由に書き換えられる集積回路(IC)」のことです。

一般的なプロセッサ(CPUなど)が、あらかじめ決められたハードウェア上でソフトウェアを実行するのに対し、FPGAには論理ブロックや配線、入出力回路などがあらかじめ搭載されており、それらの機能や接続関係を用途に応じて設定できます。

つまりFPGAとは、ハードウェアでありながらも、ソフトウェアのように内部の回路構成を自由にプログラムできるICということです。

 

2.FPGAの特徴

FPGAを理解するうえで重要なポイントは、以下の3点です。

  • 書き換えが可能(Field Programmable)
    「現場で(Field)書き換え可能(Programmable)」という名前の通り、設計ミスがあっても後から修正でき、機能のアップデートも容易です。
  • 圧倒的な並列処理能力
    CPUは基本的に命令を順番に処理しますが、FPGAでは複数の処理回路を並列に動かせるため、大量のデータを同時に処理するのが得意です。
  • 低遅延(ローレイテンシ)
    特定の処理を専用の回路として構成できるため、OSのスケジューリングやソフトウェア処理による遅延の影響を抑えやすいという特徴があります。処理時間を一定に保ちやすく、リアルタイム性が求められる用途に適しています。

 

3.他のデバイスとの比較

FPGAの位置づけを理解するために、主要なデバイスと比較してみましょう。

 

項目 CPU/GPU FPGA ASIC(専用IC)
柔軟性 非常に高い(ソフトウェアで変更可能) 高い(回路構成を変更可能) 低い(回路は固定)
処理速度 高速(CPUは汎用処理、GPUは並列処理に強い) 特定の処理では非常に高速 特定用途では最も高速
消費電力効率 処理内容による 用途に合わせて高めやすい 特定用途では非常に高い
初期開発コスト 比較的低い 中程度 非常に高い
量産単価 製品による ASICより高くなりやすい 大量生産では安くなりやすい

【表1 FPGAと他のデバイスの特徴比較】
上記は一般的な傾向です。用途や製品、設計内容などによって異なる場合があります。

 
FPGAが選ばれる大きな理由は、仕様変更や追加機能に、回路構成の変更によって追従できることです。ソフトウェア更新のように現場で機能を変更できる一方で、処理自体は用途に合わせて構成した回路が担うため、一定の応答時間が求められる処理や、I/Oに直結する処理で強みを発揮します。

近年は通信規格や映像規格、暗号方式、AI推論モデルなどの変化が速く、最初からASICのような用途固定チップに投資するリスクが上がっています。FPGAなら試作から製品化までのリードタイムを短縮しつつ、必要に応じて処理のボトルネックとなる部分を回路化していく段階的な最適化が可能です。

もう一つの背景は、I/Oの高速化とデータ量の増大です。CPUがすべてを処理すると、割り込みやメモリコピー、OSの処理状況による実行時間のばらつきがレイテンシに影響します。FPGAはストリーム処理としてデータを流し込み、受けた順に並列パイプラインで処理できるため、低遅延を保ったままスループットを上げやすいのが評価されています。

 

4.FPGAの内部構造

FPGAの内部には、多数の小さなロジックブロックや配線が並んでいます。
図1にFPGAの内部構成を示します。

  • ロジックブロック(CLB/LEなど): 「LUT(ルックアップテーブル)」と呼ばれる小さなメモリを用いて、さまざまな論理回路を実現します。ここでANDやORなどの論理演算が行われます。
  • 配線(Interconnect): ロジックブロック同士をつなぐ配線と、接続先を切り替えるスイッチで構成されます。スイッチの設定を変えることで、目的に応じた複雑な回路を構成します。
  • 入出力ブロック(I/O Block): 外部のセンサーやメモリなどと信号をやり取りする窓口です。

 

FPGAの基本的な内部構成
【図1 FPGAの基本的な内部構成(概念図)】

※実際のFPGAのロジックブロックは、LUTのほか、フリップフロップなどの回路で構成されています。
 図は基本構成を簡略化して示したものです。

 
FPGAは「論理を作るためのブロック」と「それらをつなぐ配線」を、コンフィギュレーション情報で切り替えることで目的の回路を実現します。

FPGAは、部品と配線の組み合わせを後から変更できる基板のようなものと考えると、わかりやすいです。あらかじめ用意された多数の小さな論理回路と配線の候補がチップ内にあり、設計データ(ビットストリーム)を書き込むことで、どの論理を使い、どう接続するかが決まります。

開発では、VHDLやVerilogなどのHDL(ハードウェア記述言語)で「こういう回路にしたい」を記述し、合成・配置配線という工程でFPGA上のどこに割り当て、どの配線でつなぐかをツールが決めます。ここで重要なのは、動作周波数や入出力タイミングの条件を制約として与え、狙ったタイミングで動作するように回路設計を調整することです。

FPGAの挙動はプログラムというより、論理機能と配線の接続状態を設定した結果として生じる回路動作です。そのため、同じアルゴリズムでも、回路をどう分割して同時実行させるか、どこでレジスタを挿入してパイプライン化するかで、性能とレイテンシ、リソース消費が大きく変わります。

 

5.FPGAの用途

FPGAは、通信機器や試作開発で広く利用されてきましたが、現在では多岐にわたる分野で活躍しています。

 

(1)AI・ディープラーニング

特定の演算に適した回路を構成することで、処理内容によっては、GPUと比べて低遅延または高い電力効率でAIの推論処理を行える場合があります。
例えば、MicrosoftやAmazon(AWS)などのクラウド基盤でも採用されています。

  • 役割: AIモデルの推論処理、画像・音声データの前処理、検索処理の高速化。
  • メリット: CPUで行うと重い処理を肩代わり(オフロード)させることで、サーバー全体の処理性能や電力効率の改善につながる場合があります。

 

(2)放送・ビデオ機器

4K/8K映像のリアルタイム圧縮・変換など、膨大なデータ処理が求められる現場に適しています。

  • 役割: 超高精細映像のリアルタイム圧縮(エンコード)や、複数のカメラ映像の合成。
  • メリット: 映像処理に特化した専用回路を組むことで、PCのソフトウェア処理だけでは負荷が大きい高フレームレートの映像も、安定して処理しやすくなります。

 

(3)5G基地局などの通信インフラ

通信インフラは、FPGAの代表的な活用分野の一つです。

  • 役割: 膨大なパケットデータのリアルタイム処理、ビームフォーミング(電波の指向性制御)の演算。
  • メリット: 通信規格や処理方式が変更された場合でも、変更内容によっては、ハードウェアを交換せずに回路の書き換えで対応できます。そのため、設備更新の負担を抑えられる場合があります。

 

(4)自動運転・産業ロボット

センサーからの情報を高速に解析し、モーターなどを制御する、リアルタイム性が求められる用途に適しています。例えば、自動車では、車の「目」となるセンサーからの情報処理に利用されています。

  • 役割: カメラ、LiDAR、レーダーから入ってくる大量の情報を高速に処理・統合(センサーフュージョン)し、障害物の検知などに利用されます。
  • メリット: 遅延(レイテンシ)が小さいため、急ブレーキなどに必要な迅速な判断を支える処理に適しています。

[※関連記事:先進運転支援システム(ADAS)と測距センサの種類・方式(LiDAR/ミリ波レーダー等)

 

(5)プロトタイピング

ASIC(専用チップ)を作る前に、まずFPGAで設計した回路の動作を確認する方法が広く用いられています。
製造後の回路変更が難しいASICに比べ、設計の修正や検証を繰り返しやすいことがメリットです。

 

6.開発の流れ

FPGAの開発は、C言語などのプログラミングとは少し異なります。

  • HDL(ハードウェア記述言語): 「Verilog HDL」や「VHDL」といった言語を使って、回路の構成を記述します。
  • シミュレーション: 設計した回路が想定どおりに動作するかを、コンピュータ上で確認します。
  • 論理合成・配置配線: 専用のツールを使って、記述した回路をFPGA内のどのブロックに割り当て、どの配線で接続するかを自動計算します。
  • ビットストリームの書き込み: 最終的な構成データをFPGAに転送すると、FPGAが目的の回路として動作します。

最近では「高位合成(HLS)」という技術が進歩しており、従来よりもC言語やC++に近い感覚でFPGAの開発ができるようになってきています。

 

7.まとめ

FPGAは、製造後でも内部の論理機能や配線構成を設定・変更できる集積回路です。
CPUやGPUのようなプロセッサと、ASICのような専用回路の中間的な特性を持ち、柔軟性と処理性能を両立しやすいという特徴があります。

特に、並列処理、低遅延処理、高速な入出力が求められる通信、映像、産業機器、データセンターなどの分野で利用されています。一方で、性能を十分に引き出すには、回路設計、タイミング制約、並列化、パイプライン化などに関する知識が必要です。

高位合成などの開発環境も整備されており、FPGAは従来のハードウェア開発だけでなく、ソフトウェアとハードウェアを組み合わせたシステム開発においても重要な役割を担っています。

 

(日本アイアール株式会社 特許調査部 E・N)

 

【FPGAの設計スキルを習得!】おススメのセミナー・研修
 

Pocket

関連するセミナー

製造業eラーニングTech e-L講座リスト

製造業向けeラーニングライブラリ

アイアール技術者教育研究所の講師紹介

製造業の新入社員教育サービス

技術者育成プログラム策定の無料相談受付中

スモールステップ・スパイラル型の技術者教育

技術の超キホン

機械設計マスターへの道

生産技術のツボ

早わかり電気回路・電子回路

早わかり電気回路・電子回路

品質保証塾

機械製図道場

スぺシャルコンテンツ
Special Contents

導入・活用事例

テキスト/教材の制作・販売