【えふぴーじーえー】

FPGA とは?

最終更新:
💡 製造後に、論理と配線の構成を設定できるチップ

製造後に論理ブロックや配線の構成を設定できる半導体チップ。用途に合わせた回路を実装し、試作・検証や製品のデータ処理などに使う。

📌 このページのポイント
論理と配線の構成を、製造後に設定 回路の設計から作る 構成データ FPGAの構成可能な資源 論理 論理 論理 論理 論理 論理 青:論理ブロック / 緑:配線 設定できる資源の構成を変える すべての機能を変更できるわけではない
構成データが、用意された論理ブロックと配線の設定を決めるイメージ。物理的なチップを作り直す図や、CPU/ASICとの性能順位の図ではない。
ひよこ ひよこ
FPGAって普通のCPUと何が違うの?
ペンギン先生 ペンギン先生
CPUは命令に従ってプログラムを実行するよ。FPGAでは、用意された論理ブロックや配線の構成を設定し、用途に合わせた回路を実装できる。チップの物理的な配線を作り直すという意味ではなく、構成可能な資源を使うんだ。
ひよこ ひよこ
じゃあASICとは何が違うの?
ペンギン先生 ペンギン先生
ASICは特定用途向けに作るチップだよ。FPGAは回路設計を試し、動作を検証してからASICへ移す使い方もあるし、製品にそのまま使う場合もある。FPGAにも固定の機能を持つ部分があるので、チップ内のすべてを変更できるわけではないんだ。
ひよこ ひよこ
どんな処理にも、FPGAのほうが速いの?
ペンギン先生 ペンギン先生
必要な処理を並列に配置したり、流れ作業のように段階をつないだりして、遅延や処理量を改善できる場合があるよ。性能は処理内容、設計、使える回路資源などによる。CPUやASICとの性能・コストの順位が常に決まっているわけではないんだ。
ひよこ ひよこ
プログラミング言語で書けるの?
ペンギン先生 ペンギン先生
回路を記述して設計する方法に加え、C/C++などの記述から回路のRTLを生成するHLS、高位合成という方法があるよ。AMDのHLSでは、目標の構成やクロック、設計制約を考え、元の動作と生成した回路の両方を検証する。通常のソフトをそのまま載せるだけではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「FPGA」って出てきたら「論理回路の構成を製造後に設定できるチップ」と思えばだいたいOK!
📖 おまけ:英語の意味
「Field-Programmable Gate Array」 = 現場でプログラム可能なゲートアレイ
💬 Field(現場)でProgrammable(プログラムできる)Gate Array(論理回路の集まり)、つまり工場じゃなくても回路を変更できるチップのことだよ

参考資料

← 用語集にもどる