FPGAはなぜ今また注目されるのか——AIアクセラレータ時代のリコンフィギュラブル論理入門

1. はじめに——「書き換えられるチップ」が静かに返り咲く理由

半導体の世界では、チップの回路は工場を出た瞬間に固定されるのが当たり前です。CPUもGPUも、その内部でどんな演算ユニットがどう配置されているかは製造時点で決まっており、私たちが後から変更できるのは「その上で動くソフトウェア」だけです。

ところが1985年、Xilinx(ザイリンクス、現在はAMD傘下)があるチップを発売しました。XC2064——世界で初めて商業的に成功したFPGA(Field-Programmable Gate Array、フィールド・プログラマブル・ゲート・アレイ)です。このチップが持っていたのは、工場を出た後でも「中のデジタル回路そのもの」を何度でも書き換えられるという、当時の常識を覆す性質でした。といっても初期の規模は小さく、論理ブロック(CLB)がわずか64個。それが40年余りで数千万ゲート級へと成長したとされ、いまやAIアクセラレータの有力候補として再び脚光を浴びています。

その兆しは、すでにあちこちで報じられています。Microsoftは2014年からBing検索のランキング処理をFPGAで高速化し、2018年にはAzureデータセンターのワークロードへ展開を拡大したとされます。GoogleのTPU(AI専用チップの代表格)も、量産チップになる前にFPGAによる設計検証を経ていたことが開発論文(ISCA 2017)で報告されています。市場規模も、ある調査予測では2020年の推計約98億ドルから2030年には約233億ドルへと成長すると見込まれています。

なぜ「書き換えられるチップ」が、AI時代に受け入れられているのでしょうか。鍵は、命令を解釈するオーバーヘッドなしでデータフローを回路として直接組めることによる低レイテンシ、ムダの少ない動作が実現する電力効率、そして演算の精度やビット幅をモデルに合わせて回路レベルで設計できるアーキテクチャの自由度にあります。従来のCPUやGPUとは発想がまったく異なる、「ハードウェアを書く」という世界観です。

本記事では、その世界観へ一度に入門できるよう、次の3点を目標に解説を進めます。

  1. FPGAの仕組み——LUT・フリップフロップ・配線行列という「三種の神器」がどうやって書き換え可能な回路を実現するのか
  2. AIとの相性——なぜAIアクセラレータとして注目されるのか、実例とともに
  3. 開発の始め方——HDLの選択、開発ツール、入門向けボードから「Lチカ」まで

対象読者は、テクノロジーに関心のある入門〜中級者です。デジタル回路の専門知識は前提としません。「論理ゲート(AND・OR・NOT)」という言葉をどこかで聞いたことがある程度なら、すらすらと読み進められるはずです。CPUとGPUの違いをなんとなく知っていれば、なお理解が深まります。

それでは、「工場を出た後も回路を書き換えられる」という不思議なチップの世界へ足を踏み入れましょう。

2. FPGAとは何か——「工場を出た後も回路を書き換えられる」チップ

定義:製造後も繰り返しプログラムできる集積回路

FPGA(Field-Programmable Gate Array:フィールド・プログラマブル・ゲート・アレイ)とは、製造された後でも、しかも繰り返し、回路構成をプログラムできる集積回路です。プログラマブルロジックデバイス(PLD)の一種に分類され、「フィールド(現場)」で設定可能な、格子状に並んだプログラマブルロジックブロックと、それらを結ぶ配線の配列で構成されます。

ふつうのチップは、工場から出荷された時点で機能が固定されています。ところがFPGAは、手元のPCで生成した設定データ(ビットストリーム)を書き込むことで、同じ1枚のチップが、今日は画像処理回路、明日は通信プロトコル処理回路——というように姿を変えられます。「ソフトウェアのように書き換えられるハードウェア」と表現されるのはこのためです。

ASICとの違いは一言で——「金型」と「白紙のレゴ」

FPGAとよく対比されるのがASIC(Application Specific Integrated Circuit:特定用途向け集積回路)です。両者の違いを一言でいえば、**ASICは「金型」、FPGAは「白紙のレゴ」**です。

  • ASICは「金型」: 設計を確定させてから工場で専用マスクを作り、回路をシリコンに焼き付けます。金型でプレスするように、一度作ってしまえば二度と変更できません。その代わり、量産時の性能・単価・電力効率はすべての選択肢の中で最高になります。
  • FPGAは「白紙のレゴ」: 汎用の部品(ロジックブロック)と配線網があらかじめ詰め込まれた「白紙の状態」のチップに、後から組み立て方を指示します。レゴブロックのように何度でも組み替えられ、設計変更はビットストリームの書き換えだけで完結します。

「回路を変えたい」時代の変化に強いのがFPGA、変える予定が一切ない大量量産に最適なのがASIC、と使い分けられます。

約40年の歴史と、拡大を続ける市場

FPGAの歴史は思いのほか古く、1985年にXilinx(現AMD傘下)が発売した「XC2064」が、最初の商業的に成功したFPGAとされています。このチップは64個の設定可能ロジックブロック(CLB)を搭載し、各CLBは2つの3入力LUTで構成されていました。なお、再プログラム可能なロジックデバイスとしては、1983年創業のAlteraが1984年に発売したEP300が先行しています。

そこからの集積度の伸びは劇的です。WikipediaのFPGA項目によるゲート数の推移は次のとおりです。

  • 1987年: 約9,000ゲート
  • 1992年: 約60万ゲート
  • 2000年代前半: 数百万ゲート
  • 2013年: 5,000万ゲート(Xilinx)

Wikipediaの記載によれば、1987年から2013年までの26年間で5,000倍以上の成長とされます。ただし「ゲート数」の定義(ASIC換算ゲート、ロジックセル等)はベンダーや世代によって異なるため、この系列はあくまで規模感の目安と考えてください。

市場規模も拡大を続けています。ある調査予測では、2020年時点の推計で約98億ドルだったFPGA市場が、2030年には約233億ドルに達すると見込まれています。テレコム、自動車、航空宇宙、産業機器といった分野での採用に支えられ、近年はAIワークロードが新たな牽引役になっています。

開発の全体像:HDL記述から動く回路まで

では、この「白紙のチップ」に回路を書き込むまでの流れは、どのようなものでしょうか。全体像を図にまとめると次のとおりです。

flowchart LR
    A[HDL記述<br/>Verilog/VHDL] --> B[論理合成<br/>Synthesis]
    B --> C[配置配線<br/>Place & Route]
    C --> D[ビットストリーム]
    D --> E[FPGAチップ<br/>CLB/LAB + 配線行列 + I/O]
    E --> F[任意のデジタル回路として動作]

まずVerilogやVHDLといったハードウェア記述言語(HDL)で回路の動作を記述します。論理合成(Synthesis)ツールがこれを汎用ロジックブロックの組み合わせへと変換し、続く配置配線(Place & Route)で「どのブロックをどこに置き、どの配線で結ぶか」が決まります。その結果、「ビットストリーム」と呼ばれる設定データが生成され、これをFPGAに書き込むと、チップ全体が設計した通りのデジタル回路として動き出します。

手続きだけ見れば「ソースコードをコンパイルして実行する」ソフトウェア開発と似ていますが、書き変わるのがメモリ上のプログラムではなく回路そのものである点が決定的に異なります。

次のセクションでは、この「白紙のレゴ」の中身——LUT、フリップフロップ、配線行列という三種の神器を詳しく解剖していきます。

3. FPGAの仕組み——LUT・フリップフロップ・配線行列という三種の神器

「書き換えられるチップ」と聞くと何か魔法のような仕組みを想像しがちですが、FPGAの正体は驚くほどシンプルな三部品の組み合わせです。LUT(ルックアップテーブル)、フリップフロップ、そして配線行列。このセクションでは、FPGAの最小構成単位であるロジックブロックを解剖し、それがどうやって「任意のデジタル回路」に化けるのかを見ていきます。

ロジックブロックの解剖——4入力LUT+フルアダー+D型フリップフロップ

FPGAの内部には、設定可能なロジックブロックが格子状に整然と並んでいます。Xilinx(現AMD)系では CLB(Configurable Logic Block)、Altera系では LAB(Logic Array Block) と呼ばれますが、名称の違いを除けば役割は同じです。その典型的な構成が「4入力LUT+フルアダー+D型フリップフロップ」という組み合わせです。

まず LUT(ルックアップテーブル)。これがFPGAの心臓部です。仕組みは実に単純で、入力の組み合わせに対する出力値をあらかじめ記憶しておく「ミニメモリ」なのです。4入力LUTなら、入力の組み合わせは2の4乗=16通り。この16個の枠すべてに「0か1か」を書き込めば、4入力の任意の組み合わせ論理(AND、OR、XORはもちろん、もっと不規則な関数でも)が実現できます。真理値表をそのままメモリに書き込むのだから、「任意の論理ゲート」に化けるのも当然というわけです。なお、LUTは必要に応じて2つの3入力LUTに分割して使えるアーキテクチャもあります。

次に フルアダー。これは下位ビットからの繰り上がり込みで1ビットの加算を行う回路で、LUTの横に専用回路として用意されています。加算をLUTだけで組むと繰り上がりの伝搬が遅くなるため、算術演算を高速化するための専用装備です。

そして D型フリップフロップ(D-FF)。これはクロックのエッジ(立ち上がり)の瞬間に入力値を取り込んで保持し、次のエッジまで値を保ち続ける「状態を持つ素子」です。LUTが「その場の計算」を担うのに対し、フリップフロップは「記憶」を担当します。カウンター、ステートマシン、パイプラインレジスタ——デジタル回路のあらゆる「状態」は、このフリップフロップの集まりで実現されます。LUTの出力をそのまま出すか(組み合わせ出力)、一度フリップフロップを通してから出すか(レジスタ出力)は、マルチプレクサで選択できるようになっています。

この3点セットを1セルとして、それがチップ上に何千、何万と並んでいる——これがFPGAの基本構造です。

flowchart LR
    A["入力 A・B・C・D"] --> L["LUT(真理値表ミニメモリ)<br/>=任意の組み合わせ論理"]
    L -->|"組み合わせ出力"| M["出力マルチプレクサ"]
    L --> FF["D型フリップフロップ<br/>クロックエッジで保持"]
    FF -->|"レジスタ出力"| M
    M --> Q["配線チャネルへ"]

配線行列——ブロック間を結ぶ「プログラマブルな配線網」

ロジックブロックだけでは回路になりません。ブロックとブロックを結ぶ「配線」が必要です。FPGAでは、ロジックブロックの間を 配線チャネル が走り、その交点に スイッチマトリクス と呼ばれるプログラマブルな切替スイッチが配置されています。どの縦線と横線を接続するかをビットストリームで指定することで、論理ブロック同士が任意の経路でつながります。

必要な配線量は設計する回路の種類によって大きく変わります。ベンダーは「Rentの則」という経験則などをもとに、典型的な回路が詰まらないよう必要十分な配線リソースをチップに用意しています。

クロックの考え方——全フリップフロップが一斉に動く同期設計

FPGAの設計は「同期設計」が基本です。すべてのフリップフロップが共通の クロック 信号のエッジに合わせて一斉に値を更新することで、回路全体のタイミングが揃います。ソフトウェアの世界に例えると、全ステップがグローバルなメトロノームに乗って進むイメージです。このクロックはチップ内の PLL で生成・倍増・分周され、用途に応じた周波数に整えられます。

現代FPGAの追加装備——DSPブロック・BRAM・ARMハードコア

純粋な「LUT+フリップフロップの海」だけでは面積効率が悪いため、現代のFPGAにはよく使う機能専用の固定ブロックがシリコンに組み込まれています。

  • DSPブロック/乗算器: 積和演算を専用ハードで高速に。AI推論や信号処理の主力
  • BRAM(組込みメモリ): 大容量のブロックメモリ。係数やバッファに
  • マルチギガビットトランシーバ: 高速シリアル通信用のI/O
  • ARMハードコアプロセッサ(SoC FPGA): Cortex-A9/A53/A76/A55などのCPUコアをチップ上に硬結合した製品群も登場しています

「プログラマブルな部分」と「固定的に速い部分」を混ぜることで、柔軟性と性能・面積効率を両立しているのが現代FPGAの設計思想です。

比較表:FPGA vs CPU vs GPU vs ASIC

仕組みを見てきたところで、他の計算アーキテクチャとの位置づけを整理しましょう。

観点 CPU GPU FPGA ASIC
柔軟性 ◎(ソフト更改容易) ○ ○(ビットストリーム更改) ×(変更不可)
レイテンシ △ △(バッチ向き) ◎(データフロー直結) ◎
電力効率 △ ○ ○〜◎ ◎
スループット ○ ◎ ○ ◎
初期コスト 低 中 中 極大(マスク代等多額の初期費用)
単価(量産時) 低 中 高 最小
代表用途 汎用計算 学習・大規模推論 低遅延推論・プロトタイプ 量産ASIC(TPU等)

CPUは命令をフェッチして解釈して実行する「汎用の万能選手」、GPUは大量のコアでバッチ処理を一気に流す「スループット特化型」、ASICは一つの用途のために回路を固定して最大化する「一点突破型」。対してFPGAは「回路そのものをデータフローに合わせて張れる」ため、命令オーバーヘッドなしで低レイテンシを実現でき、なおかつ製造後も書き換え可能という、両者の間を埋めるユニークな存在です。この特長がなぜAI時代に響くのか、次のセクションで詳しく見ていきます。

4. なぜAI時代にFPGAが注目されるのか——低レイテンシ・電力効率・アーキテクチャの自由度

前節ではFPGAの内部構造を見てきました。「小さな回路ブロックを自在に組み合わせられるチップだというのは分かった。でも、演算性能だけ見ればGPUのほうが上ではないのか?」——そう感じた方もいるかもしれません。実は、FPGAがAIアクセラレータ時代に再び注目されている理由は「とにかく速い」ことではなく、GPUやCPUが苦手とする条件で強いことにあるのです。以下、5つの理由を順に見ていきましょう。

理由1: 低レイテンシ推論——命令オーバーヘッドが存在しない

CPUやGPUでプログラムを実行するとき、プロセッサは毎回「命令フェッチ→デコード→実行」という段階をたどります。この命令実行のオーバーヘッドは、大量のデータを一括で流すバッチ処理なら相殺できますが、1件ずつの即応が求められる場面ではそのまま遅延として残ります。

FPGAには「命令」という概念自体がありません。ニューラルネットワークの演算パイプラインを、データフローそのものに合わせて配線として張れるため、データが入力されてから出力されるまでの時間が「回路の伝搬遅延+パイプライン段数」でほぼ決まります。バッチをため込まずに単発の推論を繰り返す用途——高周波取引、産業機械の制御、リアルタイム画像処理など——では、この差が効いてきます。

理由2: 電力効率——MicrosoftのBing採用で報じられた「性能ワット」の優位

データセンターでは、電力コストと発熱が運用を左右する大きな要因です。その観点で象徴的なのがMicrosoftの事例です。Microsoftは2014年からBing検索のランキング処理をFPGAで高速化し、性能ワット(performance per watt)面の優位を理由に採用。2018年にはAzureデータセンターの各種ワークロードへFPGAの展開を拡大したと報じられています(WikipediaのFPGA項目による記載であり、詳細はMicrosoftの一次資料の確認をおすすめします)。

命令のデコードや投機実行といった「計算そのものではない仕事」に電力を使わないことは、消費電力あたりの処理性能を高めるうえで本質的な利点です。省電力が命取りになるエッジデバイスでも、この特性はそのまま武器になります。

理由3: アーキテクチャの自由度——INT8/BF16など任意精度を回路レベルで最適化

AI推論では、INT8やBF16(bfloat16)といった、汎用プロセッサの標準的なデータ型とは異なる数値精度がよく使われます。GPUは主に固定のデータ型を扱う設計が主流であり、対応する演算形式は製品世代ごとにあらかじめ決まっています。一方FPGAなら、たとえば7ビット整数のような変則的なビット幅の演算器や、符号の位置を調整した固定小数点演算を、モデルの重み分布に合わせてそのまま合成できます。

精度を削って面積と電力を減らす——こうした「アーキテクチャレベルの最適化」を、製造をやり直すのではなくビットストリームの再書き込みというソフトウェア的な手順で試せるのは、FPGAならではの自由度です。

理由4: 研究者のプロトタイプ基盤——GoogleのTPUもFPGA検証を経た

AIアクセラレータ専用のASICは、マスク代をはじめ多額の初期費用がかかるといわれ、一度製造すれば設計変更はできません。そのため、新型アクセラレータのアイデアは、まずFPGAで動作検証してからASIC化する手法が広く用いられています。

GoogleのTPUもその例で、量産前にチップエミュレーションとFPGAによる設計検証を経たことが、ISCA 2017で発表された論文「In-Datacenter Performance Analysis of a Tensor Processing Unit」(Jouppi et al.)で報告されています。この事例では、「頭の中のアーキテクチャ→FPGAで検証→ASICで量産」という流れで開発が進められたことが一次資料から確認できます。

理由5: 長期供給と部分再構成——15年スケールの運用に耐える

AI活用はデータセンターだけの話ではありません。工場設備、通信基盤、車載、宇宙機器といった分野の機器は15年以上の運用が当たり前で、その間の機能更新も求められます。

AMDは7シリーズFPGAを2040年まで、UltraScale+を2045年まで供給すると公式に表明しており、産業用途の長寿命設計に応えています。さらにFPGAは、稼働中の回路の一部だけを書き換える「部分再構成(partial reconfiguration)」にも対応するため、出荷後に機能追加や改良を続けることができます。ハードウェアなのに、ソフトウェアのように更新できるのです。

最近の動向: FPGAは「AIエンジンとの融合」へ

2019年以降のFPGAは、AI推論に特化した行列演算ユニット「AIエンジン」と統合されるようになりました。AMD Versalに代表される「Adaptable SoC」は、プロセッサコア+AIエンジン+FPGAファブリックを1チップに混載し、固定的な高性能演算と柔軟なプログラマブルロジックのいいとこ取りを狙っています。

市場構造の面でも動きがあります。2015年にIntelが買収したAlteraは、2024年にブランドを復活させ、2025年にはSilver Lakeが過半数株主となりIntelが49%を保有する独立した非公開会社へと再編されました。FPGAを巡る競争は、AI時代の需要を取り合う形で再び活発化しています。


まとめると、FPGAは「GPUより速い」のではなく、「GPUが苦手な条件——単発・低遅延の推論、性能ワット重視、特殊な数値精度、ASIC化前の検証、長期運用——で強い」チップなのです。では、実際に自分の手でFPGA開発を始めるには何が必要なのでしょうか。次節で具体的なステップを見ていきましょう。

5. 入門ステップ——開発環境とボード選びからLチカまで

ここまで理論編としてFPGAの仕組みとAI時代での価値を見てきました。ここからは「じゃあ、実際にどう始めればいいのか」への実践編です。必要なものは(1)ハードウェア記述言語の基礎、(2)開発環境、(3)ボードの3つだけ。以下の4ステップに沿って、最初の目標である「Lチカ」までの道筋を整理します。

Step 1: HDLの基礎を学ぶ——まずはVerilogから

FPGAの回路は、HDL(ハードウェア記述言語)で記述します。代表的な言語はVerilogとVHDLの2つですが、最初に学ぶならVerilogがおすすめです。1984年に開発されたVerilogはC言語に似た構文を持つため、何かしらのプログラミング経験があれば読み始めやすい言語です。標準規格としてはIEEE 1364として標準化され、2009年にSystemVerilog(IEEE 1800)へ統合。現行版は2023年12月に改訂されたIEEE 1800-2023です。

ただし、1つだけ大切な注意点があります。HDLのコードは「上から順に実行される文」ではなく、「同時に並列で動く回路の定義」だということです。この感覚を掴む鍵が、ブロッキング代入(=)とノンブロッキング代入(<=)の使い分けです。ソフトウェアの変数代入と同じ記号「=」に見えて、意味はまったく異なります。ここをきちんと理解できれば、FPGA設計の最初の壁は越えたも同然です。

Step 2: 開発環境を選ぶ——市販ツール、HLS、オープンソースの3ルート

開発環境は、目的に応じて大きく3つのルートから選べます。

ルート1: ベンダー純正ツール(定番)。 AMDのVivado/Vitis、AlteraのQuartus Primeが2大定番で、いずれも無料で使えるエディションが用意されています。対応デバイスとドキュメント・情報量が最も充実しており、実務で使うことを想定するならまずここからです(対応デバイスの範囲はエディションごとに異なるため、各公式サイトの対応表で確認してください)。

ルート2: 高位合成(HLS)。 C/C++などのソフトウェア言語からRTL(回路記述)を生成するアプローチです。AMDのVitis HLSはC/C++からのRTL生成に対応し、AlteraはSYCL/ANSI C++によるHLSとOpenCL SDK(2013年〜)を提供しています。回路記述の学習コストを抑えつつFPGAの性能を活かせるため、ソフトウェア開発者にとっての入り口になっています。

ルート3: オープンソース・ツールチェーン。 RTL合成フレームワークのYosys(Open SYnthesis Suite、ISCライセンス)は、Verilog-2005をほぼ完全に処理し、Lattice iCE40/ECP5やXilinx 7シリーズへマッピングできます。配置配線を担うnextpnrと組み合わせた「Yosys + nextpnr」フローは、iCE40/ECP5との組み合わせで入門者・OSSコミュニティの定番です(対応デバイスの最新状況はYosys公式ドキュメントで確認できます)。

どれを選ぶべきか迷ったら、後述の「買う予定のボードのチップが、そのツールチェーンの対応対象に含まれているか」を最初に確認するのが確実です。

Step 3: ボードを選ぶ——価格帯別の比較表

入門向けFPGAボードの相場は、おおよそ1万円台前半から5万円程度。代表的なボードを比較すると次のようになります(価格は記事執筆時点=2026年9月の目安です)。

ボード 搭載チップ 価格帯の目安 特徴
iCEBreaker / Fomu Lattice iCE40 約1〜2万円 OSSツール対応・教育向けの最安クラス
ULX3S / OrangeCrab Lattice ECP5 約2〜4万円 DDR/HDMI付きのOSS定番
DE10-Lite / DE0-CV Intel MAX 10 / Cyclone 約1.5〜3万円 大学講義の定番
Arty A7 AMD Artix-7 約3〜4万円 Vivado学習の定番
Zybo Zynq AMD Zynq SoC 約3〜5万円 ARMコア搭載、SoC設計入門向け

※価格は記事執筆時点(2026年9月)の目安です。為替・在庫により変動するため、購入時に各ボードの公式・販売ページで必ず最新価格と付属品を確認してください。

選び方の指針はシンプルです。

  • オープンソースフローで学びたい → iCE40系(iCEBreaker/Fomu)またはECP5系(ULX3S/OrangeCrab)。軽量なYosys + nextpnrフローで始められます
  • 実務標準のVivadoを学びたい → Arty A7(Artix-7搭載)
  • ARMコアとFPGAの協調設計(SoC)に興味がある → Zybo Zynq(Zynq SoC搭載)
  • 大学の講義・定番教材と組み合わせたい → DE10-Lite/DE0-CV

Step 4: 最初の目標は「Lチカ」——LED点滅から始める

環境とボードが整ったら、最初の目標は「Lチカ」——LEDの点滅です。ソフトウェアの世界の「Hello, World」に相当する題材ですね。クロック信号を分周してLEDをゆっくり点滅させるだけの回路ですが、この小さな例に「クロック」「カウンタ」「フリップフロップ」というFPGA設計の基本要素がすべて含まれています。

Lチカができたら、次はこの順番で進むと学習曲線がスムーズです。

  1. Lチカ(LED点滅): クロック分周とカウンタの基礎
  2. シリアル通信(UART): PCとのデータ送受信とタイミング設計
  3. 簡単なステートマシン: 状態遷移の考え方——実用回路の骨格

入門前チェックリスト

最後に、ツールのインストールとボード購入の前に確認しておきたい項目をまとめます。

  • [ ] Windows/Linux PCに開発ツールをインストールできるか(市販ツールはディスクを数十GB占有するため、ストレージの空き容量を確認。要件は各ツールの公式システム要件ページで確認してください)
  • [ ] 買おうとするボードのチップが、自分の選んだツールチェーンの対応対象に含まれているか(例: Yosys + nextpnrで学ぶならiCE40/ECP5搭載ボード)
  • [ ] USBケーブル・JTAGアダプタなど、書き込みに必要な周辺がボードに付属しているか
  • [ ] 価格は為替・在庫で変動するため、購入時に販売ページで最新価格を確認する

道具が揃い、書き込んだ回路で最初のLEDが点滅した瞬間、「ハードウェアを書く」という新しい視点が初めて実感できるはずです。次節では、こうしたFPGA技術が実際の産業・研究現場でどう活用されているかを、Microsoft Bing/AzureやGoogle TPUプロトタイプなどの実例とともに見ていきましょう。

6. ケーススタディ・実例——Microsoft Bing/Azure、TPUプロトタイプ、アクセラレータ研究

前節では「Lチカ」から始まる入門ステップを見ました。しかし、手元の小さなLED点滅回路と、世界中のデータセンターを支えるFPGA応用は、果たして同じ技術なのでしょうか。答えはイエスです。両者を隔てるのは規模と設計の洗練度だけで、土台にある「LUT+フリップフロップ+配線行列」という仕組みはまったく同じです。

このセクションでは、FPGAが実際にどう使われ、どう選ばれてきたのかを、4つの実例で確認します。巨大IT企業の採用判断、AI専用チップの開発プロセス、学術研究の最前線、そして宇宙まで伸びる産業用途——どの例にも「書き換えられる回路」という性質が効いていることに注目してください。

実例1: Microsoft Bing/Azure——「性能ワット」で選ばれたと報じられるFPGA加速

最初の事例は、クラウド巨大企業による本格採用です。Microsoftは2014年から、Bing検索のランキング処理(検索結果の順位付け)をFPGAで高速化し、その後2018年にはAzureデータセンターの各種ワークロードへとFPGA展開を拡大したと報じられています。この一連の取り組みは「Project Catapult」として知られています。

注目すべきは、採用の決め手です。MicrosoftがFPGAを選んだ理由として、性能ワット(performance per watt:1ワットあたりの処理性能)の優位が挙げられています(WikipediaのFPGA項目に依拠した記述です)。データセンターでは電力コストが運用費の大きな割合を占めるため、「同じ電力でどこまで処理できるか」は死活問題です。CPUの何倍もの電力を食う高速化は、スループットが上がってもコスト面で意味をなしません。

Bingのランキング処理という用途そのものも、FPGAと相性が良かったと考えられます。検索ランキングは、ユーザーがクエリを打ってから結果が返るまでの遅延がそのまま体験品質になる処理です。大量のリクエストをまとめて処理するバッチ方式ではなく、1件ずつのクエリを低遅延でさばく必要があります。命令フェッチやデコードのオーバーヘッドを持たず、データフローを回路として直接組めるFPGAは、この種のワークロードに向いているとされます(第4節で見た「理由1」と「理由2」が同時に効いた例です)。

さらに重要なのは、この判断が一時的な実験で終わらなかったことです。Bingでの実績を経て、2018年には汎用ワークロードが集まるAzureへ展開が拡大されたとされます。特定用途での成功を足がかりに、データセンターインフラの標準装備へと育てた——FPGAが「気休めの加速手段」ではなく、運用コストを支配する要素として企業の意思決定を通過したことを示す好例といえるでしょう。

実例2: Google TPU——量産ASICを打つ前にFPGAで検証する

2番目の事例は、FPGAが「完成品」ではなく「過程」として使われるケースです。GoogleのTPU(Tensor Processing Unit)は、AI推論向けASICの代表格ですが、その開発論文「In-Datacenter Performance Analysis of a Tensor Processing Unit」(Jouppi et al., ISCA 2017)には、量産前にチップエミュレーションとFPGAによる設計検証を経たことが報告されています。

なぜGoogleのようなチップ設計のプロが、FPGAでの検証を必要としたのでしょうか。理由はASICというものの性質にあります。ASICはマスク代をはじめ多額の初期費用がかかるといわれ、しかも一度製造してしまえば設計変更は一切できません。回路規模が巨大な現代のチップでは、設計ミスの代償は致命的です。そこで、シリコンを焼く前に「本物のチップと同じ論理動作を、書き換え可能なFPGA上で走らせて確かめる」という工程が入ります。

この事例から入門者が学べることは大きいはずです。FPGA開発で身につけるHDL記述や検証の技術は、そのままASIC開発の中核技能です。この事例では「頭の中のアーキテクチャ→FPGAで検証→ASICで量産」という流れで開発が進められており、FPGAは巨大なAIチップ誕生の前段階を担っていることがわかります。

実例3: アクセラレータ研究——TULPARにみる「自分だけのTPU」を作る研究

3番目の事例は学術研究です。TPUの論文(ISCA 2017)と同時期、FPGAを土台にしたDNN推論向けアクセラレータの研究が学術界で活発化しました。その代表例が「TULPAR: Accelerating Deep Neural Networks on Programmable SoC/FPGA」(Gulur & Ienne、FPT 2017)です。

TULPARは、プログラマブルSoC/FPGA上にDNNの中核演算である行列演算の加速機構を構築した研究です。ニューラルネットワークの計算の多くが行列・ベクトル演算に帰着することを考えれば、ここを専用回路で高速化するアプローチは、まさに「FPGAでTPUのようなものを自分で作る」試みといえます。

この種の研究がFPGAで行われる理由は、第4節で見た「プロトタイプ基盤」としての価値に集約されます。研究室内で思いついたアーキテクチャのアイデア——演算ユニットを何個並べるか、どんなビット幅の数値を使うか、メモリとの間をどう接続するか——を、ASICを製造することなく実際のチップ上で動かして評価できるのはFPGAだけです。しかもTULPARが対象としたプログラマブルSoCは、ARMプロセッサコアとFPGAファブリックを1チップに混載したものであり、前節のボード選びで登場したZybo Zynqと同系統のデバイスです。つまり入門ボードで学ぶ内容の延長線上に、最先端のアクセラレータ研究がそのままつながっているのです。

実例4: 産業・通信・車載・宇宙——15年スケールで使われる長寿命チップ

最後の事例は、華やかなAIとは少し違う、しかしFPGAにとって本質的な領域です。FPGAはもともとテレコム(通信)、自動車、航空宇宙、産業分野で、柔軟性・高速信号処理・並列処理能力を理由に採用されてきました。これらの分野に共通するのは、機器の運用期間が長いことです。

工場設備や通信基盤、車載システム、宇宙機器は、15年以上の運用が当たり前の世界です。この間、部品の供給が途絶えれば機器全体の維持が困難になります。そこでAMDは、7シリーズFPGAを2040年まで、UltraScale+を2045年まで供給と公式に表明しています。半導体としては異例ともいえる長期供給コミットメントで、長寿命設計への需要に応えるものです。

用途ごとの信頼性グレードも用意されています。車載グレード(XA)、防衛グレード(XQ)、そして宇宙グレード(XQR:耐放射線対応)です。なかでも宇宙用途はFPGAの性質が最も生きる場面の一つです。宇宙空間の放射線は半導体の動作を狂わせるため耐放射線設計が必須であることに加え、いったん打ち上げたら物理的な修理・交換は事実上不可能——回路を遠隔で書き換えられる(部分再構成による機能更新ができる)FPGAは、保守・交換の難しい環境で運用上の大きな有利さを持つデバイスといえます(実際の宇宙ミッションでの運用は、ミッション設計・認証・冗長化などの要件に依存します)。


4つの実例を振り返ると、FPGAが選ばれる理由は文脈ごとに異なりながら、根っこは同じことがわかります。Microsoftの事例は電力効率と低レイテンシ、TPUの事例は変更不能なASICへの安全な橋渡し、TULPARの事例はアーキテクチャ探索の自由度、産業・宇宙の事例は長期供給と出荷後の更新可能性です。すべてが「書き換えられる回路」という一つの性質から派生しています。

ここまでの解説で、「もっと具体的に知りたい」という疑問がいくつか浮かんでいるかもしれません。次節では、FPGA入門者がよく抱く質問にQ&A形式で答えます。

7. よくある質問(FAQ)——FPGA入門者の疑問にQ&Aで答える

FPGAの学習を始めようとするとき、多くの入門者がぶつかる疑問をQ&A形式でまとめました。ここまでの章で触れた内容も振り返りながら、要点を簡潔に答えます。

Q1: FPGAとCPUの違いは何ですか?

最大の違いは、回路そのものを変更できるかどうかです。CPUはあらかじめ用意された命令セットをソフトウェアが順番に実行するのに対し、FPGAはチップ内部の論理回路そのものを書き換えて、処理に特化したハードウェアをその場で構成します。そのためCPUには避けられない命令フェッチやデコードのオーバーヘッドがなく、データフローを回路に直接張れるぶん、レイテンシと電力効率で有利になります。

Q2: FPGAで大規模言語モデル(LLM)は動かせますか?

フルサイズの大規模モデルの学習は、メモリ容量と計算資源の制約から現実的ではなく、学習はGPUやASICが主流です。一方、量子化などで小型化したモデルのエッジ推論であれば、FPGAによるDNN推論加速の研究・実用例が複数あります。演算精度を回路レベルで最適化できるFPGAの特性は、こうした低ビット推論と相性が良いといえます。

Q3: VerilogとVHDL、どちらを学ぶべきですか?

どちらもIEEE標準の2大HDLですが、初めての1本ならC言語に似た構文のVerilogが取っつきやすいでしょう。Verilogは1984年に開発され、2009年にSystemVerilog(IEEE 1800)へ統合、現行版はIEEE 1800-2023です。VHDLはAda系の厳格な構文で、信頼性重視の分野で今も広く使われるため、最終的には両方を読めるのが理想です。

Q4: FPGA開発に必要なPCのスペックはどれくらい必要ですか?

AMD Vivado/VitisやAltera Quartus Primeといった市販ツールは、インストールと配置配線の処理でディスクもメモリも大きく消費するため、余裕のある開発機を用意するのが無難です(具体的な要件は各ツールの公式システム要件ページで確認してください)。一方、Yosys + nextpnrのようなオープンソースフローは軽量で、Lattice iCE40/ECP5向けの開発なら低めのスペックのPCでも快適に動きます。まず試してみるなら、OSSツール対応ボードから始めるのがPCへの負担も少なくおすすめです。

Q5: 初めてのボード予算はどれくらい必要ですか?

入門向けボードなら、おおむね1.5万〜4万円の範囲で十分に始められます。Lattice iCE40系は約1万〜2万円、大学講義の定番DE10-LiteなどIntel/Altera系は約1.5万〜3万円、ECP5系やAMD Arty A7は約2万〜4万円が相場の目安です(いずれも記事執筆時点=2026年9月の目安)。価格は為替・在庫で変動するため、購入前に販売ページで必ず確認してください。

Q6: FPGAとASIC、どちらを選ぶべきですか?

判断の軸は「量産規模」と「変更要件」です。少量生産・試作・出荷後の機能更新が必要なら、ビットストリームを書き換えるだけで設計変更できるFPGAが適します。逆に、設計が固まった大量量産で単価・性能・電力効率を最優先するなら、マスク代など大きな初期費用はあるもののASICが最適解になります。実際、Google TPUのようにFPGAで検証してからASIC化する開発プロセスも知られています。

Q7: FPGAのクロックとは何ですか?

クロックとは、チップ内のすべてのフリップフロップが値を更新するタイミングを統一する、同期の基準信号です。クロックエッジに合わせて全フリップフロップが一斉に状態を取り込むことで、大規模な回路全体が一貫したタイミングで動作します。現代のFPGAには内部で複数の周波数を生成・管理するPLL(フェーズロックループ)が搭載されており、このクロック設計が回路の動作周波数と安定性を左右する重要な作業になります。

8. まとめ——「ハードウェアを書く」新しい視点を持とう

ここまでの内容を振り返ってみましょう。

要点の再確認: LUT+フリップフロップ+配線というシンプルな構成

FPGAの正体は、驚くほどシンプルな部品の組み合わせでした。真理値表を書き込めば任意の組み合わせ論理に化ける「LUT(ルックアップテーブル)」、クロックエッジで状態を保持する「フリップフロップ」、そしてこれらを自在に結線する「配線行列」。この三種の神器が無数に並び、その設定情報をビットストリームとして何度でも書き換えられる——これが「製造後に回路を変更できるチップ」の仕組みです。

1985年のXilinx XC2064(64個のCLB)から始まったFPGAは、2013年には5,000万ゲート規模へと成長したとされ(Wikipedia FPGAによる推移。ゲート数の指標定義は諸説あります)、市場もある調査予測では2020年の約98億ドルから2030年には約233億ドル規模への拡大が見込まれています。シンプルな原理をスケールさせ続けた結果、今やDSPブロックやBRAM、AIエンジンまで内蔵する「Adaptable SoC」へと進化しています。

AI時代の価値: 「速さ」ではなく「GPUが苦手な条件での強さ」

FPGAがAIアクセラレータ時代に再び注目されている理由も、単純な性能競争ではありませんでした。

  • 低レイテンシ推論: 命令フェッチやデコードのオーバーヘッドがなく、バッチをためず単発推論の遅延を最小化できる
  • 電力効率: MicrosoftがBing(2014年〜)で採用し、Azureへ拡大したと報じられる「性能ワット」の優位
  • アーキテクチャの自由度: INT8やBF16など、モデルに合わせた任意精度を回路レベルで最適化できる
  • プロトタイピング基盤: GoogleのTPUもFPGA検証を経たように、ASIC化の前段の検証手段として活用されている
  • 長期供給と部分再構成: 15年スケールの産業運用と、出荷後の機能更新に耐える柔軟性

「万能なチップ」ではなく、CPUとGPUの間の隙間——即応性・効率・自由度が求められる場所——で本領を発揮するチップ、というのが本記事の結論です。

次のアクション: ボード1枚と無料ツールから始めよう

そして何より、FPGAは「手を動かして始められる」技術です。市販ツール(Vivado、Quartus Prime)には無料エディションがあり、オープンソースフロー(Yosys + nextpnr)ならLattice iCE40/ECP5ボードを1〜2万円台から入手できます(価格は記事執筆時点=2026年9月の目安。最新は販売ページで確認してください)。最初の目標は派手なAIアクセラレータではなく、LEDを点滅させる「Lチカ」で構いません。

Verilogで数行の回路を書き、合成して、配線して、書き込む——その一連の流れを一度経験すれば、「ハードウェアを書く」というこの記事のタイトルの意味が体感できるはずです。ソフトウェアとハードウェアの境界でモノを作る視点は、AIデバイス、エッジ機器、研究プロトタイプといったこれからの開発現場で、必ずあなたの武器になります。

まずは1枚のボードと、点滅する1個のLEDから。その一歩が、書き換えられるチップの世界への入り口です。


参考文献

本記事の執筆にあたって参照した主要な資料・リンクは以下の通りです。

  1. Wikipedia - Field-programmable gate array(FPGAの仕組み・歴史・Microsoft事例・市場規模予測の帰属元) https://en.wikipedia.org/wiki/Field-programmable_gate_array
  2. Wikipedia - Verilog(IEEE 1800-2023、HDLの基礎) https://en.wikipedia.org/wiki/Verilog
  3. Wikipedia - Altera(Intel買収と2024-2025年の再独立) https://en.wikipedia.org/wiki/Altera
  4. Wikipedia - Lattice Semiconductor(低消費電力FPGA、iCE40/ECP5) https://en.wikipedia.org/wiki/Lattice_Semiconductor
  5. AMD FPGA製品ポートフォリオ(7シリーズ2040年まで・UltraScale+ 2045年までの長期供給表明) https://www.amd.com/en/products/adaptive-socs-and-fpgas/fpga.html
  6. Yosys Open SYnthesis Suite 公式(オープンソース合成ツール) https://yosyshq.net/yosys/
  7. Jouppi et al., "In-Datacenter Performance Analysis of a Tensor Processing Unit"(ISCA 2017、TPUのFPGA検証)※一次資料 https://arxiv.org/abs/1704.04760
  8. Gulur & Ienne, "TULPAR: Accelerating Deep Neural Networks on Programmable SoC/FPGA"(FPT 2017、FPGAアクセラレータ研究)※一次資料 https://arxiv.org/abs/1709.01108
  9. IEEE Standards Association - IEEE 1800-2023 SystemVerilog(HDL標準規格の一次資料) https://standards.ieee.org/ieee/1800/7743/
  10. Wikipedia - Xilinx(XC2064の誕生とゲート数の推移) https://en.wikipedia.org/wiki/Xilinx

※市場規模予測(2020年約98億ドル→2030年約233億ドル)はWikipedia FPGA項目が引用する調査予測に基づくものであり、出典の調査会社・予測条件の詳細は本文では特定していません。正確な数値が必要な場合は最新の市場調査レポートの一次資料を参照してください。

関連記事