FPGA(英: field-programmable gate array)は、製造後に購入者や設計者が構成を設定できる集積回路であり、広義にはPLD(プログラマブルロジックデバイス)の一種である。現場でプログラム可能なゲートアレイであることから、このように呼ばれている。 FPGAの構成設定は一般にハードウェア記述言語 (HDL) を使って指定し、その点はASICに近い。FPGAはASICで実装できる任意の論理機能を実装できる。出荷後に機能を更新でき、設計面で部分的に再構成でき[1]、ASIC設計よりエンジニアリングコストが低い点などが多くの用途で利点となる[2]。 FPGAに含まれるプログラム可能な論理コンポーネントを「論理ブロック」などと呼び、それら論理ブロック間を相互接続する再構成可能な配線階層がある。この構成によっていわばワンチップのプログラム可能なブレッドボードの役目を果たす。論理ブロックを組み合わせて複雑な論理回路を構成することもできるし、単にANDゲートやXORゲートのような単純な論理回路を構成することもできる。多くのFPGAでは、論理ブロックにメモリ要素も含んでおり、単純なフリップフロップまたはより完全なメモリブロックで構成されている[2]。論理ブロック以外のデジタル回路機能としてSerDes(英語版
概要
デジタル回路機能に加え、一部のFPGAはアナログ回路要素も持っている。最も典型的なアナログ機能としては、スルーレートや出力ピンの駆動強度などを設定できるものが多く、負荷の小さいピンのスルーレートを遅くすることでオーバーシュートを防いだり、負荷の大きいピンのスルーレートを速くすることで転送レートを高速化する[3][4]。もう1つのよくあるアナログ機能としては、入力ピンに付属した差動コンパレータがあり、差動信号チャンネルに接続するよう設計されている。さらに、ADCとDAC、アナログ信号処理ブロックまで搭載し、システム・オン・チップを構成できるよう意図されたFPGA(ミクスド・シグナルFPGA)もある[5]。全体がアナログ回路でFPGAのように配線を再構成可能なFPAA[6]もあり、ミクスド・シグナルFPGAはFPGAとFPAAの中間的存在である。FPGAプログラミング/評価用基板の例
FPGAでは大規模な回路が構成できることから、効率的な電力管理のために複数のクロックが利用できる。負荷が低い回路についてはクロック周波数を落としたり、クロック信号を停止して消費電力を減らすことができる。 FPGA業界はPROMとPLD(プログラマブルロジックデバイス)から発展した。PROMもPLDも出荷後に顧客企業の工場でまとめてプログラムできるが、プログラム可能なロジックは論理ゲート間に固定の配線を行うものだった[7]。 プログラム可能なロジックアレイ、論理ゲート、論理ブロックといった基本概念は1985年、David W. PageとLuVerne R. Petersonの取得した特許に既に見られる[8][9]。 ザイリンクスの共同創業者ロス・フリーマンとベルナルド・フォンデルシュミットは1985年、世界初のFPGA XC2064を製品化した[10]。XC2064はプログラム可能な論理ゲートとプログラム可能な配線を持っていた。これにより、新たなテクノロジーとその市場が始まった[11]。XC2064は64個の構成可能論理ブロック (CLB) で構成され、それぞれのCLBには3入力ルックアップテーブル (LUT) があった[12]。その二十数年後、Freemanは発明者殿堂入りを果たした[13]。 1980年代後半、アメリカ海軍が60万個の再プログラム可能な論理ゲートでコンピュータを構成するというスティーブ・キャセルマンの提案した実験に資金提供した。キャセルマンはこの開発に成功し、1992年に関連特許を取得した[7]。 ザイリンクスは1985年から1990年代中ごろまで急激に発展したが、そのころから競合企業が急成長し、市場シェアを浸食し始めた。1993年にはActel
歴史
1990年代、FPGAは微細化と生産量の両面で大きく発展した。1990年代初め、FPGAは主に通信業やネットワークに使われていた。90年代末にはコンシューマ市場、自動車、産業用途にまで使われるようになっていた[14]。
1997年、サセックス大学の研究者エイドリアン・トンプソンが遺伝的アルゴリズムとFPGAを組み合わせた音声認識装置を開発し、FPGAに注目が集まった。トンプソンは、ザイリンクス製の10×10セルのFPGAのアナログ機能を利用して、2つの音を識別できるよう学習するハードウェアを開発したものである。このような遺伝的アルゴリズムをFPGAのようなデバイスの構成に使う方式は、進化型ハードウェアと呼ばれるようになっている[15][7]。 最近では、FPGAにCPUコアや関連する周辺回路を組み込み、完全な「プログラム可能なチップ上のシステム」を実現する製品も登場している。例えば、ザイリンクスはPowerPCプロセッサを組み込んだFPGAとしてVirtex-II PROおよびVirtex-4を発売している。Atmel FPSLICも同様の製品で、Atmel AVRプロセッサを組み込んでいる。アクテルのSmartFusionはARMアーキテクチャのCortex-M3のCPUコアを組み込んでいる。 これとは別の流れとして、ソフトプロセッサコアをFPGA上に構成して利用する方式もある。この場合、OpenRISCやRISC-V等のオープンソースCPUも利用できる。 現在のFPGAの多くは動作中にも再構成可能であり、そこから再構成可能コンピューティングという考え方も生まれた。
最近の発展