
フィールドプログラマブルゲートアレイ(FPGA )は、製造後に繰り返しプログラム可能な構成可能な集積回路の一種です。FPGAは、プログラマブルロジックデバイス(PLD)と呼ばれるロジックデバイスのサブセットです。FPGAは、グリッド接続されたプログラマブルロジックブロックのアレイで構成されており、他のロジックブロックと相互接続することで「現場で」構成し、様々なデジタル機能を実行できます。FPGAは、カスタム製品の少量生産や、個々のFPGAの高コストがそれほど重要ではなく、カスタム回路の作成と製造が現実的ではない研究開発によく使用されます。FPGAの他の用途としては、通信、自動車、航空宇宙、産業分野などがあり、これらの分野では、FPGAの柔軟性、高速信号処理、並列処理能力が活用されています。
FPGAの構成は通常、特定用途向け集積回路(ASIC)で使用されるものと同様のハードウェア記述言語(HDL)(例:VHDL )を使用して記述されます。以前は回路図を使用して構成を記述していました。
FPGAの論理ブロックは、複雑な組み合わせ関数を実行するように構成することも、ANDやXORなどの単純な論理ゲートとして機能するように構成することもできます。ほとんどのFPGAでは、論理ブロックにはメモリ要素も含まれており、メモリ要素は単純なフリップフロップからより高度なメモリブロックまで様々です。[ 1 ]多くのFPGAは再プログラムすることで異なる論理機能を実装できるため、コンピュータソフトウェアで実行されるような柔軟な再構成可能なコンピューティングが可能になります。
FPGAは、ハードウェアと同時にシステムソフトウェアの開発を開始し、開発の非常に早い段階でシステムパフォーマンスのシミュレーションを可能にし、システムアーキテクチャを最終決定する前にさまざまなシステム試験と設計の反復を可能にするため、組み込みシステム開発でも役割を果たします。[ 2 ]
FPGA は、シミュレーション プロセスを高速化するために、ASIC の開発中にもよく使用されます。
FPGA業界は、プログラマブル読み出し専用メモリ(PROM)とプログラマブルロジックデバイス(PLD)から生まれました。PROMとPLDはどちらも、工場で一括してプログラムすることも、現場でプログラムすることも(フィールドプログラマブル)できました。[ 3 ]
アルテラは1983年に設立され、1984年に業界初の再プログラム可能なロジックデバイスであるEP300を出荷しました。このデバイスはパッケージに石英窓を備えており、ユーザーは紫外線ランプをダイに当ててデバイス構成を保持しているEPROMセルを消去することができました。 [ 4 ]
ザイリンクス(現在はAMDが所有)は、1985年に最初の商用化可能なフィールドプログラマブルゲートアレイ であるXC2064を製造しました[ 3 ] 。 [ 5 ] XC2064は、プログラマブルゲートとゲート間のプログラマブル相互接続を備えており、新しい技術と市場の始まりでした。[ 6 ] XC2064には、2つの3入力ルックアップテーブル(LUT)を備えた64個のコンフィギュラブルロジックブロック(CLB)がありました。[ 7 ]
1987年、海軍水上戦闘センターは、スティーブ・カッセルマンが提案した、60万個の再プログラム可能なゲートを実装するコンピュータの開発実験に資金を提供しました。カッセルマンは成功し、このシステムに関連する特許は1992年に取得されました。[ 3 ]
アルテラとザイリンクスは1985年から1990年代半ばまで、無敵の勢いで急成長を続けましたが、その後競合他社が台頭し、市場シェアのかなりの部分を奪われました。1993年までに、アクテル(後のマイクロセミ、現在のマイクロチップ)は市場の約18%を占めるまでになりました。[ 6 ]
1990年代は、FPGAが回路の高度化と生産量の両面で急成長を遂げた時代でした。1990年代初頭、FPGAは主に通信とネットワーク分野で使用されていました。1990年代末までに、FPGAは民生用、自動車用、産業用アプリケーションにも普及しました。[ 8 ]
2013年までに、アルテラ(31%)、ザイリンクス(36%)、アクテル(10%)の3社でFPGA市場の約77%を占めるようになりました。[ 9 ]
マイクロソフトなどの企業は、FPGAが提供するワット当たりの性能の利点により、高性能で計算集約型のシステム(Bing検索エンジンを運用するデータセンターなど)を高速化するためにFPGAを使い始めています。[ 10 ]マイクロソフトは2014年にBingの高速化にFPGAを使い始め、2018年にはAzureクラウドコンピューティングプラットフォームの他のデータセンターワークロードにもFPGAを導入し始めました。[ 11 ]
2019年以降、最新世代のFPGAはAIエンジンなどの他のアーキテクチャと統合され、人工知能分野のワークロードを対象としています。[ 12 ]
次のタイムラインは、FPGA 設計のさまざまな側面における進捗状況を示しています。
設計開始は、FPGA に実装するための新しいカスタム設計です。
現代のFPGAは、複雑なデジタル演算を実装するための十分な論理ゲートとRAMブロックを備えています。FPGAは、 ASICが実行できるあらゆる論理機能を実装できます。出荷後の機能更新、設計の一部の部分的な再構成[ 19 ]、そしてASIC設計に比べて非反復的なエンジニアリングコストが低い(一般的に単価が高いにもかかわらず)という点は、多くのアプリケーションにメリットをもたらします。[ 1 ]
FPGA設計では非常に高速なI/Oレートと双方向データバスが採用されているため、セットアップ時間とホールド時間内で有効なデータの正しいタイミングを検証することが課題となっている。[ 20 ]フロアプランニングは、FPGA内でのリソース割り当てを助け、これらのタイミング制約を満たす。
一部の FPGA には、デジタル機能に加えてアナログ機能があります。最も一般的なアナログ機能は、各出力ピンのスルー レートをプログラムできることです。これにより、ユーザーは、軽負荷のピンでは許容できないほどリンギングや結合が発生する可能性があるため低いレートを設定し、重負荷の高速チャネルでは動作が遅すぎる可能性があるため高いレートを設定できます。[ 21 ] [ 22 ]また、水晶発振器ドライバ回路、オンチップRC 発振器、およびクロック生成と管理、高速シリアライザ/デシリアライザ (SERDES) 送信クロック、受信クロック回復に使用される電圧制御発振器を内蔵した位相同期回路も一般的です。差動信号チャネルに接続するように設計された入力ピンの差動コンパレータもかなり一般的です。いくつかのミックスド シグナルFPGA には、周辺アナログ/デジタル コンバータ(ADC) とデジタル/アナログ コンバータ(DAC ) [ 23 ]このようなデバイスは、内部のプログラマブル相互接続ファブリック上でデジタルの1と0を運ぶFPGAと、内部のプログラマブル相互接続ファブリック上でアナログ値を運ぶフィールドプログラマブルアナログアレイ(FPAA)との境界を曖昧にしています。

最も一般的なFPGAアーキテクチャは、コンフィギャラブルロジックブロック(CLB)またはロジックアレイブロック(LAB)(ベンダーによって異なる)と呼ばれるロジックブロックのアレイ、 I/Oパッド、およびルーティングチャネルで構成されています。[ 1 ]一般的に、すべてのルーティングチャネルは同じ幅(信号数)を持ちます。複数のI/Oパッドが、アレイの1行の高さまたは1列の幅に収まる場合があります。
アプリケーション回路は、十分なリソースを備えたFPGAにマッピングする必要があります。必要なロジックブロックとI/Oの数は設計から容易に決定できますが、必要な配線チャネルの数は、同じロジック量を持つ設計間でも大きく異なる場合があります。例えば、クロスバースイッチは、同じゲート数のシストリックアレイよりもはるかに多くの配線を必要とします。未使用の配線チャネルはFPGAのコストを増加させ(パフォーマンスを低下させ)、メリットをもたらさないため、FPGAメーカーは、ルックアップテーブル(LUT)とI/Oの観点から適合するほとんどの設計が配線できるように、必要最低限のチャネルを提供するように努めています。これは、レント則から導き出される見積もりや、既存の設計を用いた実験によって決定されます。[ 24 ]
一般に、論理ブロックは少数の論理セルで構成される。典型的なセルは、4入力LUT、全加算器(FA)、およびD型フリップフロップで構成される。LUTは2つの3入力LUTに分割される場合がある。通常モードでは、これらは最初のマルチプレクサ(mux)を介して4入力LUTに結合される。算術モードでは、それらの出力が加算器に供給される。モードの選択は2番目のmuxにプログラムされる。出力は、 3番目のmuxのプログラミングに応じて、同期または非同期のいずれかになる。実際には、スペースを節約するために、加算器全体またはその一部が関数としてLUTに格納される。[ 25 ] [ 26 ] [ 27 ]
最新のFPGAファミリーは、上記の機能を拡張し、シリコン上に固定された高レベル機能を搭載しています。これらの共通機能を回路に組み込むことで、論理プリミティブから構築する場合と比較して、必要な面積を削減し、機能の性能を向上させることができます。これらの例としては、乗算器、汎用DSPブロック、組み込みプロセッサ、高速I/Oロジック、組み込みメモリなどが挙げられます。
ハイエンドの FPGA には、高速マルチギガビット トランシーバや、プロセッサ コア、イーサネットメディア アクセス コントロール ユニット、PCIまたはPCI Expressコントローラ、外部メモリ コントローラなどのハード IP コアを含めることができます。これらのコアはプログラマブル ファブリックと並んで存在しますが、 LUT ではなくトランジスタで構築されているため、大量のファブリック リソースを消費することなく ASIC レベルのパフォーマンスと消費電力を実現し、ファブリックのより多くの部分をアプリケーション固有のロジックに解放できます。マルチギガビット トランシーバには、LUT では構築できないコンポーネントである高速シリアライザとデシリアライザとともに、高性能信号調整回路も含まれています。ライン コーディングなどの高レベル物理層 (PHY) 機能は、FPGA に応じて、シリアライザとデシリアライザとともにハード ロジックに実装される場合とされない場合があります。

ハードマクロプロセッサを使用する代わりに、 FPGAロジック内に実装されたソフトプロセッサIPコアを活用するというアプローチもあります。Nios II、MicroBlaze 、 Mico32などは、人気のソフトコアプロセッサの例です。現代のFPGAの多くは実行時にプログラムされるため、リコンフィギャラブルコンピューティング、あるいはリコンフィギャラブルシステム(タスクに合わせて自己再構成するCPU)という概念が生まれました。さらに、FPGA以外の新しいアーキテクチャも登場し始めています。Stretch S5000などのソフトウェア構成可能なマイクロプロセッサは、同一チップ上に複数のプロセッサコアとFPGAのようなプログラマブルコアを集積するハイブリッドアプローチを採用しています。
2012年には、粗粒度アーキテクチャのアプローチがさらに一歩進み、従来のFPGAのロジックブロックと相互接続を組み込みマイクロプロセッサと関連周辺機器と組み合わせて、プログラマブルチップ上に完全なシステムを形成しました。このようなハイブリッド技術の例としては、FPGAのロジックファブリック内に1.0GHz デュアルコアARM Cortex - A9 MPCoreプロセッサが組み込まれたXilinx Zynq-7000オールプログラマブルSoC [ 28 ]や、800MHzデュアルコアARM Cortex-A9 MPCoreを搭載したAltera Arria V FPGAが挙げられます。Atmel FPSLICもそのようなデバイスの1つで、 Atmelのプログラマブルロジックアーキテクチャと組み合わせてAVRプロセッサを使用しています。 Microsemi SmartFusionデバイスには、フラッシュメモリ ベースの FPGA ファブリックに、ARM Cortex-M3 ハード プロセッサ コア (最大 512 kB のフラッシュと 64 kB の RAM) と、マルチチャネルアナログ/デジタル コンバータやデジタル/アナログ コンバータなどのアナログペリフェラルが組み込まれています。
FPGA 内のロジックの大部分は、クロック信号を必要とする同期回路です。FPGA には、クロックとリセット用の専用のグローバルおよびリージョナル配線ネットワークがあり、通常はH ツリーとして実装されているため、最小限のスキューで配信できます。FPGA には、新しいクロック周波数を合成してジッターを管理するために、アナログ位相同期回路または遅延同期回路のコンポーネントが含まれている場合があります。複雑な設計では、周波数と位相関係が異なる複数のクロックを使用し、それぞれが別々のクロック ドメインを形成する場合があります。これらのクロック信号は、発振器によってローカルに生成することも、データ ストリームから回復することもできます。クロック ドメインを横断する回路を構築するときは、準安定性を回避するために注意が必要です。一部の FPGA には、異なるクロックで動作可能なデュアル ポート RAMブロックがあり、クロック ドメインをブリッジする FIFOとデュアル ポート バッファ の構築に役立ちます。
FPGAのサイズと消費電力を縮小するために、TabulaやXilinxなどのベンダーは3Dまたはスタックアーキテクチャを導入しました。[ 30 ] [ 31 ] Xilinxは、 28 nm 7シリーズFPGAの導入に続いて、これらのFPGA製品ラインで最も高密度な部品のいくつかは、3D構造とスタックダイアセンブリ用に開発された技術を採用し、1つのパッケージに複数のダイを使用して構築されると述べました。
ザイリンクスのアプローチでは、複数(3つまたは4つ)のアクティブFPGAダイをシリコンインターポーザー (パッシブインターコネクトを担う単一のシリコン片)上に並べて積層する。 [ 31 ] [ 32 ]また、マルチダイ構造では、FPGAファブリック自体と超高速28Gbit/sシリアルトランシーバーのプロセス要件が異なるため、FPGAの異なる部分を異なるプロセス技術で作成することが可能である。このように構築されたFPGAは、ヘテロジニアスFPGAと呼ばれる。[ 33 ]
アルテラの異種アプローチは、単一のモノリシックFPGAダイを使用し、インテルの組み込みマルチダイ相互接続ブリッジ(EMIB)テクノロジーを使用して他のダイやテクノロジーをFPGAに接続するというものです。[ 34 ]
FPGAの動作を定義するために、ユーザーはハードウェア記述言語(HDL)または回路図設計で設計を提供します。HDL形式は、すべての部品を手作業で描画するよりも高レベルの機能動作を記述できるため、大規模な構造を扱うのに適しています。一方、回路図入力では、設計とその構成モジュールをより簡単に視覚化できます。
電子設計自動化ツール(EDA)を用いて、テクノロジマップされたネットリストを生成します。その後、このネットリストは、配置配線と呼ばれるプロセスを用いて実際のFPGAアーキテクチャに適合させることができます。このプロセスは通常、FPGAベンダー独自の配置配線ソフトウェアによって実行されます。ユーザーは、タイミング解析、シミュレーション、その他の検証・妥当性確認技術を用いて結果を検証します。設計と妥当性確認プロセスが完了すると、通常はFPGAベンダー独自のソフトウェアを用いて生成されたバイナリファイルを用いて、FPGAを(再)構成します。このファイルは、シリアルインターフェース(JTAG )を介してFPGAに転送されるか、 EEPROMなどの外部メモリデバイスに転送されます。
最も一般的なHDLはVHDLとVerilogです。ナショナルインスツルメンツのLabVIEWグラフィカルプログラミング言語( Gと呼ばれることもあります)には、FPGAハードウェアをターゲットにしてプログラムするためのFPGAアドインモジュールがあります。Verilogはプロセスを簡素化し、HDLをより堅牢で柔軟なものにするために開発されました。VerilogはC言語に似た構文を持ち、[ 35 ] AdaベースのVHDLとは異なります。
FPGAにおける複雑なシステムの設計を簡素化するため、設計プロセスを迅速化するためにテストおよび最適化された、定義済みの複雑な機能と回路のライブラリが存在します。これらの定義済み回路は一般に知的財産(IP)コアと呼ばれ、FPGAベンダーやサードパーティのIPサプライヤーから入手できます。これらは無料で提供されていることは稀で、通常は独自のライセンスの下でリリースされます。その他の定義済み回路は、OpenCoresなどの開発者コミュニティから入手できます(通常はGPL、BSDなどの無料のオープンソースライセンスの下でリリースされます)。このような設計はオープンソースハードウェアと呼ばれます。
一般的な設計フローでは、FPGAアプリケーション開発者は設計プロセス全体を通して複数の段階で設計をシミュレーションします。まず、VHDLまたはVerilogで記述されたRTLをテストベンチでシミュレーションし、システムをシミュレーションして結果を観察します。次に、合成エンジンが設計をネットリストにマッピングした後、ネットリストはゲートレベルの記述に変換され、そこでシミュレーションが繰り返され、合成がエラーなく実行されたことを確認します。最後に、設計がFPGAにレイアウトされます。この時点で、伝播遅延値がネットリストにバックアノテーションされ、これらの値を用いてシミュレーションが再実行されます。
最近では、FPGAが提供する性能と電力効率を活用するために、OpenCL (Open Computing Language)がプログラマーに利用されています。OpenCLを使用すると、プログラマーはCプログラミング言語でコードを開発できます。[ 36 ]詳細については、「高位合成」および「CからHDL」を参照してください。
ほとんどのFPGAは、 SRAMベースのプログラミング方式を採用しています。これらのFPGAはシステム内でプログラムおよび再プログラムが可能ですが、外部ブートデバイスが必要です。例えば、フラッシュメモリやEEPROMデバイスは、ルーティングとロジックを制御する内部SRAMにコンテンツをロードする場合があります。SRAMベースのアプローチはCMOSに基づいています。
SRAM アプローチのまれな代替手段には次のものがあります。
2016年には、長年の業界のライバルであるザイリンクス(現在はAMDの一部)とアルテラがFPGA市場のリーダーでした。[ 38 ]当時、両社は市場の約90%を支配していました。
ザイリンクスとアルテラはどちらも、WindowsとLinux(ISE / VivadoとQuartus)用の独自の電子設計自動化ソフトウェアを提供しており、エンジニアは設計、解析、シミュレーション、合成(コンパイル)を行うことができます。[ 39 ] [ 40 ]
2010年3月、Tabulaは、高密度アプリケーションの潜在的なコスト削減を主張する、時間多重化ロジックと相互接続を使用するFPGAテクノロジーを発表しました。 [ 41 ] 2015年3月24日、Tabulaは正式に閉鎖されました。[ 42 ]
2015年6月1日、インテルはアルテラを約167億ドルで買収すると発表し、2015年12月30日に買収を完了した。[ 43 ]
2020年10月27日、AMDはザイリンクスを買収すると発表し[ 44 ]、2022年2月に約500億ドルの買収を完了した。[ 45 ]
2024年2月にアルテラは再びインテルから独立した。[ 46 ]
その他のメーカーとしては、以下のものがあります。
FPGAは計算可能なあらゆる問題を解くために使用できます。FPGAは、Xilinx MicroBlazeやAltera Nios IIなどのソフトマイクロプロセッサの実装にも使用できます。しかし、FPGAの利点は、並列性と特定のプロセスに使用されるゲート数の最適化により、一部のアプリケーションでは大幅に高速化できることにあります。 [ 52 ]
FPGAは当初、プリント基板のグルーロジックを実装する複合プログラマブルロジックデバイス(CPLD)の競合として導入されました。サイズ、機能、速度が向上するにつれて、FPGAは様々な機能を担うようになり、現在では一部のFPGAは完全なシステムオンチップ(SoC)として販売されています。特に1990年代後半にFPGAアーキテクチャに専用の乗算器が導入されたことで、従来はデジタル信号プロセッサ(DSP)のみが担当していたアプリケーションでFPGAが使用されるようになりました。[ 53 ] [ 54 ]
FPGAの進化により、これらのデバイスの使用が増加しました。そのアーキテクチャにより、3D MRI画像セグメンテーション、3D離散ウェーブレット変換、断層画像再構成、PET / MRIシステムなどの複雑なタスクに最適化されたハードウェアソリューションの開発が可能になりました。[ 55 ] [ 56 ]開発されたソリューションは、並列処理による集中的な計算タスクを実行でき、動的に再プログラム可能で、低コストでありながら、医療用画像処理に関連する厳しいリアルタイム要件を満たしています。
FPGAの利用におけるもう一つのトレンドはハードウェアアクセラレーションであり、FPGAを用いてアルゴリズムの特定の部分を高速化し、FPGAと汎用プロセッサ間で計算の一部を共有することができます。検索エンジンのBingは、2014年に検索アルゴリズムにFPGAアクセラレーションを採用したことで知られています。[ 57 ] 2018年現在、FPGAは、MicrosoftのProject Catapult [ 11 ]をはじめとするAIアクセラレータや、機械学習アプリケーション向けの人工ニューラルネットワークの高速化に利用され始めています。
もともとFPGAは、生産量が少ない特定の垂直アプリケーション向けに限定されていました。こうした少量生産アプリケーションでは、企業がプログラマブルチップに支払うハードウェアコストは、ASICの開発に費やす開発リソースよりも安価です。多くの場合、カスタムメイドのチップは大量生産すればより安価になりますが、製品を迅速に市場に投入するためにFPGAが選ばれることもあります。2017年までに、コストと性能に関する新たな動向により、実現可能なアプリケーションの範囲が広がりました。
FPGA のその他の用途は次のとおりです。
FPGAは現代の軍事通信において重要な役割を果たしており、特に統合戦術無線システム(JTRS)のようなシステムや、タレス社やハリス社などの企業のデバイスにおいて顕著です。その柔軟性とプログラマビリティは軍事通信に最適であり、カスタマイズ可能で安全な信号処理を実現します。米国軍が使用するJTRSでは、FPGAは様々な通信規格や暗号化方式に対応するために不可欠な適応性とリアルタイム処理を実現しています。[ 64 ]
ハードウェアセキュリティに関しては、FPGAはASICやセキュアマイクロプロセッサと比較して長所と短所の両方を持っています。FPGAの柔軟性により、製造中の悪意のある変更のリスクが低くなります。[ 65 ]以前は、多くのFPGAでは、FPGAが外部メモリから設計ビットストリームをロードしている間(通常は電源投入時)に、設計ビットストリームが公開されていました。現在ではすべての主要FPGAベンダーが、ビットストリームの暗号化や認証など、設計者に幅広いセキュリティソリューションを提供しています。たとえば、AlteraとXilinxは、外部フラッシュメモリに保存されたビットストリームに対してAES暗号化(最大256ビット)を提供しています。物理的に複製不可能な機能(PUF)は、独自の署名を持つ集積回路であり、非常に小さなハードウェアスペースを占有しながらFPGAを保護できます。[ 66 ]
MicrosemiのProAsic 3やLatticeのXP2プログラマブルデバイスなど、不揮発性フラッシュメモリに内部的に構成を保存するFPGAは、ビットストリームを公開せず、暗号化も不要です。より高い耐改ざん性を求める顧客は、 Microsemiなどのベンダーが提供するライトワンス型のアンチヒューズFPGAを使用できます。
アルテラはStratix 10 FPGAとSoCでセキュアデバイスマネージャと物理的に複製不可能な機能を導入し、物理的な攻撃に対する高度な保護を提供しています。[ 67 ]
2012年、研究者セルゲイ・スコロボガトフ氏とクリストファー・ウッズ氏は、一部のFPGAが攻撃者に対して脆弱であることを実証しました。彼らは、Actel/Microsemi ProAsic 3のシリコンに重大なバックドア脆弱性が組み込まれていることを発見しました。この脆弱性により、暗号鍵やアクセスキーの再プログラミング、暗号化されていないビットストリームへのアクセス、低レベルのシリコン機能の変更、構成データの抽出など、多くのレベルで脆弱性が存在します。[ 68 ]
2020年、Xilinx 7シリーズFPGA全製品に重大な脆弱性(Starbleed)が発見され、ビットストリーム暗号化が機能しなくなりました。回避策はありません。Xilinxはハードウェアリビジョンをリリースしませんでした。当時既に市場に出回っていたUltrascale以降のデバイスは影響を受けませんでした。
歴史的に、FPGAは固定型のASICに比べて速度が遅く、エネルギー効率が低く、一般的に機能も劣っていました。2006年の調査によると、FPGAで実装された設計は、対応するASIC実装に比べて平均40倍の面積、12倍の動的消費電力、そして3分の1の速度で動作することが示されました。[ 69 ]
FPGAの利点としては、現場で機器を再プログラムしてバグを修正したり、その他の改良を加えたりできることが挙げられます。一部のFPGAには部分的な再構成機能があり、デバイスの一部を再プログラムしながら、他の部分は動作を継続させることができます。[ 70 ] [ 71 ]その他の利点としては、市場投入までの時間の短縮や、一時的なエンジニアリングコストの削減などが挙げられます。ベンダーは、 FPGAプロトタイピングという中間的な方法を取ることもできます。つまり、プロトタイプハードウェアをFPGA上で開発し、設計が確定した後に最終バージョンをASICとして製造するのです。これは、新しいプロセッサ設計でもよく見られる方法です。[ 72 ]
CPLD と FPGA の主な違いはアーキテクチャです。CPLD は、比較的少数のクロックレジスタにデータを供給する1 つ以上のプログラム可能な積和ロジック アレイで構成される、比較的制限の厳しい構造になっています。その結果、CPLD は柔軟性に欠けますが、伝播遅延がより予測可能になるという利点があります。一方、FPGA アーキテクチャでは相互接続が主流となっています。このため、FPGA ははるかに柔軟性が高くなりますが、設計がはるかに複雑になり、少なくともより複雑な電子設計自動化(EDA) ソフトウェアが必要になります。FPGA と CPLD のもう 1 つの違いはサイズであり、FPGA は通常、リソースの点で CPLD よりもはるかに大きくなります。通常、FPGA だけが加算器、乗算器、メモリ、シリアライザ/デシリアライザなどのより複雑な組み込み機能を備えています。もう 1 つの一般的な違いは、CPLD には設定を保存するための組み込みフラッシュ メモリがあるのに対し、FPGA は通常設定を SRAM に保存し、電源投入時に初期化するために外部の不揮発性メモリを必要とすることです。設計において単純な瞬時起動が求められる場合、一般的にCPLDが好まれます。CPLDとFPGAの両方が単一のシステム設計で使用される場合もあります。そのような設計では、CPLDは通常、グルーロジック機能として機能します。[ 73 ]