FPGAという言葉を見かけても、「半導体らしいけれど、CPUとは何が違うの?」と感じやすいですよね。FPGAは、作ったあとから内部の回路構成を変えられる集積回路の一種です。
『ゴイノワ』のナギです。わたしなら、まず「プログラムを書いて動かす部品」ではなく、使いたい回路そのものを設定できる部品と捉えます。
名前だけでは難しく見えますが、意味の芯はそれほど複雑ではありません。ここでは、FPGAの仕組みや使われる場面、ASICやCPUとの違いまで順番に確認します。
FPGAとは何か
FPGAとは「Field Programmable Gate Array」の略で、製造されたあとに利用者が内部の論理回路を設定できる集積回路です。必要に応じて再び設定を変えられる製品もあります。
一般的なCPUでは、決められた回路の上で命令を順番に実行します。一方のFPGAは、ロジックブロックや配線のつながりを設定し、目的に合った回路をチップ内部へ作れるのが特徴です。
つまりFPGAは、あとから役割を決めやすい半導体と考えると理解しやすくなります。決まった用途だけに作られた回路とは、出発点が少し違うわけです。
FPGAの読み方と名前
FPGAは、日本語では一般に「エフピージーエー」とアルファベットを一文字ずつ読んで使われます。英語の正式名称はField Programmable Gate Arrayです。
名前のうち「Field Programmable」は、工場で製造したあと、利用する側で構成を設定できることを示しています。「Gate Array」は、多数の論理回路を組み合わせて使う構造に関係する表現です。
- 正式名称
-
Field Programmable Gate Array
- 読み方
-
エフピージーエー
- 位置付け
-
製造後に回路構成を設定できる集積回路
FPGAはどう動くのか
FPGAの内部には、論理演算を行うための小さなブロックと、それらをつなぐための配線資源があります。製品によってはメモリーやDSP向けの回路なども組み込まれています。
設計者はVerilogやVHDLなどのハードウェア記述言語を使い、実現したい回路を記述します。その内容を設計ツールが処理し、FPGAへ読み込ませる構成データを作ります。
ここは意味を取り違えたくないんですよね。一般的なソフトウェアの設定変更とは違う点がポイントで、FPGAでは内部の論理回路や接続関係が構成対象になります。
FPGAが使われる場面
FPGAは、決まった処理を高速に行いたい場面や、あとから回路構成を変更したい場面で利用されます。通信機器、自動車、航空宇宙、高性能コンピューティングなどが代表的な分野です。
また、完成品へ組み込む用途だけでなく、専用回路を作る前の試作にも使われます。Analog Devicesも、ロジックハードウェアのプロトタイプ用途を代表例として挙げています。
- 通信機器の信号処理
- 画像やデータの高速処理
- 専用回路の試作
- 用途に合わせた回路構成
用途だけを暗記するより、「並列に処理しやすく、回路を変更できる」という性質から見ると、なぜFPGAが選ばれるのかが分かりやすくなります。
FPGAとCPUの違い
CPUとFPGAは、どちらも計算や制御に使われますが、処理の作り方が異なります。CPUは用意された命令をソフトウェアから実行し、FPGAは目的に合う回路構成を設定して処理します。
そのため、「FPGAはCPUの速い版」と考えると少しずれます。得意な処理も設計方法も異なり、必要に応じてCPUとFPGAを組み合わせる構成もあります。
| 項目 | CPU | FPGA |
|---|---|---|
| 基本的な使い方 | 命令を実行する | 回路構成を設定する |
| 変更するもの | 主にソフトウェア | 論理回路や接続 |
| 特徴 | 幅広い処理に対応しやすい | 目的に合う並列回路を作れる |
FPGAとASICの違い
FPGAとよく比べられるのがASICです。ASICはApplication-Specific Integrated Circuitの略で、特定の用途へ向けて専用に設計される集積回路を指します。
ASICでは、製造後に回路構成をFPGAのように変更することは基本的にできません。その代わり、特定用途に必要な回路へ絞って設計できるため、専用化しやすい特徴があります。
ナギ「あとから変えられるか」で見ると分かりやすいです
わたしなら、FPGAとASICを比べるときは性能だけを先に見ません。回路を変更できる余地と、最初から専用に作るかどうかを分けて考えます。
FPGAで誤解しやすい点
FPGAは「自由に何でも書き換えられるチップ」という説明をされることがあります。ただし、実際に使える論理ブロック、配線、メモリーなどは搭載されている資源の範囲内です。
また、「プログラマブル」という言葉から、パソコン用アプリのようにコードを書けばよいと思うかもしれません。実際には、論理回路を意識した設計と専用の開発ツールが関わります。
FPGAを見かけたときは、「ソフトウェアを入れ替える部品」ではなく、「必要な処理に合わせて内部の回路構成を決められる半導体」と読むほうが本来の意味に近づきます。
FPGAの意味をつかむには
FPGAは、製造後に利用者が論理回路の構成を設定できる集積回路です。CPUのように命令を順番に動かす考え方とは異なり、目的に合った回路を内部へ構成できます。
ASICとの違いを見るなら、FPGAには回路を再構成できる柔軟さがあり、ASICは特定用途向けに固定した回路を作る点が基本です。どちらが常に優れるという関係ではありません。
次にFPGAという言葉を見かけたら、その製品が「どんな処理のために回路を設定しているのか」を一つ確認してみてください。用語だけで読むより、役割が具体的につかみやすくなります。












