FE EXAM

FPGA(書き換え可能な集積回路)

製造後に内部論理を書き換えてプログラムできる集積回路。

DIAGRAM
論理ブロック
書き換えで作る配線
FPGA は「ブロックと配線」を後から組み替えるFPGA の中身(論理ブロックの格子)LB論理ブロックLB論理ブロックLB論理ブロックLB論理ブロックLB論理ブロックLB論理ブロックLB論理ブロックLB論理ブロックLB論理ブロック赤い配線のつなぎ方を変えると別の回路になる設計データ回路の「設計図」書き込む何度でも書き換えバグ修正・仕様変更OKFPGA と ASIC の使い分けFPGA書き換え可能・少量/試作向きASIC固定・大量生産向きFPGA = Field(現場)+ Programmable(書き換え可能)+ Gate Array工場に戻さず、手元(現場)で回路を作り変えられるASIC のように型を作り直す必要がない
解説

📌
FPGAとは

論理ブロックを配線でつなぐチップLBLBLBLB配線のつなぎ方を書き換えて好きな回路に

FPGA(エフピージーエー、Field Programmable Gate Array)とは、製造された後でも、利用者が内部の回路(論理)を自由に書き換えてプログラムできる集積回路のことです。チップの中には論理ブロック(小さな回路部品)がたくさん並んでいて、それらをどう配線でつなぐかを書き換えることで、いろいろな回路を作り出せます。

身近な例で考えると、レゴブロックに似ています。同じブロックの集まりから、組み方を変えれば家にも車にも作り替えられます。FPGAも、内部のブロックのつなぎ方(=設計データ)を変えるだけで、まったく別の機能の回路に変身できるのです。

上の図解では、青い論理ブロックの格子に、赤い配線を引いて回路を作る様子を示しています。この配線は何度でも引き直せます。

📌
プログラム可能の意味

同じチップを別の回路に書き換え回路A例: 通信書き換え回路B例: 画像処理物理的なチップは同じまま

ここで言う「プログラム可能」とは、ソフトウェアを書くことではなく、ハードウェアの回路そのものの構成を書き換えられるという意味です。具体的には、内部の論理ブロックの動作と、それらをつなぐ配線のつなぎ方を、設計データを書き込むことで決めます。

この仕組みには次のうれしさがあります。
その場で修正できる:回路に間違いが見つかっても、設計データを書き直すだけで直せる
同じチップを使い回せる:書き換えれば、まったく別の機能の回路にできる
すぐ試せる:工場に発注して何週間も待つ必要がなく、開発が速い

名前のField(フィールド = 現場)は、まさにこの「工場ではなく利用者の手元(現場)で書き換えられる」性質を表しています。

📌
ASICとの使い分け

生産量で選ぶFPGA少量・試作・変更ASIC大量・確定仕様仕様が固まったら ASIC に乗り換えることも

FPGAは何度でも書き換えられて手軽な一方、ASIC(特定用途専用に作られ、製造後は機能が固定される集積回路)に比べると、同じ機能なら処理速度や消費電力の面で少し劣り、大量生産したときの単価も高めになります。そのため、両者は生産量や仕様の固まり具合で使い分けます。

場面向くのは
試作・開発初期で仕様が変わりそうFPGA
少量しか作らないFPGA
すぐ動かして検証したいFPGA
仕様が確定し大量生産するASIC
最高の性能・最小の消費電力が必要ASIC

実際の開発では、まずFPGAで試作して動作を確認し、仕様が固まって大量生産する段階でASICに切り替えるという流れもよく取られます。FPGAは「書き換えられる柔軟さ」、ASICは「固めた最適化」と覚えると、両者の役割の違いがつかみやすくなります。

練習問題

Q1FPGA の特徴として最も適切なものはどれか。

Q2FPGA における「プログラム可能」の意味として正しいものはどれか。

Q3FPGA と ASIC の使い分けに関する記述のうち、適切なものはどれか。

関連コンテンツ