FPGA
SRAM - システム内で再プログラム可能。外部ブートデバイスが必要。CMOS。
アンチヒューズ型 - 一度だけプログラム可能。CMOS。
PROM - 一度だけプログラム可能。
EPROM - 一度だけプログラム可能。ただし窓付きであれば紫外線照射で消去できる。CMOS。
EEPROM - 消去可能。一部にはシステム内でプログラム可能なものもある。CMOS。
フラッシュメモリ - 消去可能。一部にはシステム内でプログラム可能なものもある。一般にフラッシュセルの方がEEPROMセルより小さく、製造コストが小さい。CMOS。
ヒューズ型 - 一度だけプログラム可能。バイポーラ。
最近では、FPGAにCPUコアや関連する周辺回路を組み込み、完全な「プログラム可能なチップ上のシステム」を実現する製品も登場している。例えば、ザイリンクスはPowerPCプロセッサを組み込んだFPGAとしてVirtex-II PROおよびVirtex-4を発売している。Atmel FPSLICも同様の製品で、Atmel AVRプロセッサを組み込んでいる。アクテルのSmartFusionはARMアーキテクチャのCortex-M3のCPUコアを組み込んでいる。
これとは別の流れとして、ソフトプロセッサコアをFPGA上に構成して利用する方式もある。
現在のFPGAの多くは動作中にも再構成可能であり、そこから再構成可能コンピューティングという考え方も生まれた。これはシステムがそのとき実行しようとしているタスクの傾向に沿って自らを再構成するという考え方である。例えば、ミトリオニクス社の「ミトリオン・バーチャル・プロセッサー」はFPGA上に実装された再構成可能なソフトプロセッサである。ただし、これは実行中の動的再構成はできない。
FPGAとも異なる新たなアーキテクチャも登場しつつある。Stretch S5000はソフトウェアから構成可能なマイクロプロセッサで、CPUコアのアレイとFPGA風のプログラム可能なコアを同じチップに搭載している。
CPLDとFPGAの大きな違いはアーキテクチャである。CPLDの方が構成の自由度が小さいが、遅延時間が予測しやすく、チップ面積における相互接続用経路の比率も小さい。FPGAは逆に相互接続の方が支配的で、それゆえに柔軟性が高い。
また、FPGAの方が組み込まれている機能が高度でメモリも埋め込まれており、デコーダや数学関数の演算を実装した論理ブロックもある。
FPGA業界はPROMとPLD(プログラマブルロジックデバイス)から発展した。PROMもPLDも出荷後に顧客企業の工場でまとめてプログラムできるが、プログラム可能なロジックは論理ゲート間に固定の配線を行うものだった。
プログラム可能なロジックアレイ、論理ゲート、論理ブロックといった基本概念は1985年、David W. PageとLuVerne R. Petersonの取得した特許に既に見られる。
ザイリンクスの共同創業者ロス・フリーマンとベルナルド・フォンデルシュミットは1985年、世界初のFPGA XC2064を製品化した。XC2064はプログラム可能な論理ゲートとプログラム可能な配線を持っていた。これにより、新たなテクノロジーとその市場が始まった。XC2064は64個の構成可能論理ブロック (CLB) で構成され、それぞれのCLBには3入力ルックアップテーブル (LUT) があった。その二十数年後、Freemanは発明者殿堂入りを果たした。
1980年代後半、アメリカ海軍が60万個の再プログラム可能な論理ゲートでコンピュータを構成するというスティーブ・キャセルマンの提案した実験に資金提供した。
↑ Wiśniewski, Remigiusz (2009). Synthesis of compositional microprogram control units for programmable devices. Zielona Góra: University of Zielona Góra. pp. 153. ISBN 978-83-7481-293-1
1 2 3 FPGA Architecture for the Challenge
↑ FPGA Signal Integrity tutorial
↑ NASA: FPGA drive strength
↑ Mike Thompson. Mixed-signal FPGAs provide GREEN POWER. EE Times, 2007-07-02.
↑ 英: field-programmable analog array
1 2 3 4 History of FPGAs
↑ Google Patent Search, "Re-programmable PLA". Retrieved February 5, 2009.
↑ Google Patent Search, "Dynamic data re-programmable PLA". Retrieved February 5, 2009.
↑ Peter Clarke, EE Times "Xilinx, ASIC Vendors Talk Licensing" June 22, 2001.
セキュリティの観点ではFPGAにはASICや通常のマイクロプロセッサと比べて長所と短所がある。装置の製造(組み立て)段階で悪意ある細工をしようとしても、FPGAではそれが具体的にどう動作するのかハードウェアを見ただけではわからず、そのようなリスクが低くなる。一方で、コンフィギュレーションをロードする際に傍受される危険性があるため、ビットストリームの暗号化をサポートするFPGAもある。
デジタル回路機能に加え、一部のFPGAはアナログ回路要素も持っている。最も典型的なアナログ機能としては、スルーレートや出力ピンの駆動強度などを設定できるものが多く、負荷の小さいピンのスルーレートを遅くすることでオーバーシュートを防いだり、負荷の大きいピンのスルーレートを速くすることで転送レートを高速化する。もう1つのよくあるアナログ機能としては、入力ピンに付属した差動コンパレータがあり、差動信号チャンネルに接続するよう設計されている。さらに、ADCとDAC、アナログ信号処理ブロックまで搭載し、システム・オン・チップを構成できるよう意図されたFPGA(ミクスド・シグナルFPGA)もある。全体がアナログ回路でFPGAのように配線を再構成可能なFPAAもあり、ミクスド・シグナルFPGAはFPGAとFPAAの中間的存在である。