現在、市場で入手可能なフィールド プログラマブル デバイスの範囲は、数年前と比べて飛躍的に拡大しています。結果として生じる頭字語のアルファベットスープと適切なアプリケーションの重複は、どの設計者も自分のお気に入りのマイクロコントローラを探し出すのに十分です。
フィールド プログラマブル デバイス (FPD) または プログラマブル ロジック デバイス (PLD) は、FPDをプログラミングすると実際にデバイスのハードウェアが変更されるという点で、標準の マイクロコントローラ とは異なります。マイクロコントローラは、一度に1つの命令ずつ、体系的にプログラムを実行するように指示できます。実行速度は通常、内部または外部の クロックによって制御され、デバイスはクロック サイクルごとに1つの命令を実行します。通常の低速信号アプリケーションの場合、このシステムは問題ありません。ただし、アプリケーションが同時I/O読み取りや高速信号処理を要求する場合、デバイスには専用のハードウェア パスが必要です。FPDを使用すると、これらのハードウェア パスは、プログラミング インターフェイスを通じてユーザーが定義および作成できます。これらのデバイスでは、電源が失われても構成を維持するために、 フラッシュ や NVRAM などの不揮発性メモリが必要です。
シンプル プログラマブル ロジック デバイス (SPLD)
少数のI/Oを同時に処理する必要があるアプリケーションの場合、 SPLD で十分な場合があります。通常、わずか12個程度のマクロセルで構成されるこれらのデバイスは、FPDの中で最も小型で、最も安価で、最も消費電力が少ないデバイスです。Atmel の人気の ATF16xV8 ファミリには、4 x 6 mmの小型パッケージに、ピーク電力で250 mW未満の消費電力を実現する8個のマクロセルを備えた部品があります。SPLDと、同様の機能を実行するためによく使用されるプログラマブル ロジック アレイ (PLAまたはPAL) などの 特殊なプログラマブル ロジック との境界は曖昧です。
複合プログラマブルロジックデバイス (CPLD)
アプリケーションでプログラム可能なデバイスが確実に必要だが、実際に必要なマクロセルは32 ~ 1000個程度である場合は、 CPLD が最適です。これらのデバイスは通常、入力対ロジック ゲート比が高いため、多数の同時I/Oを必要としながら、比較的少ないデータ処理量を必要とするアプリケーションに最適です。CPLDはSPLDよりも密度が高く、小さなパッケージでより高い機能を提供します。Cypress の Flash370 ファミリには、14 x 14 mmパッケージで32 ~ 128個のマクロセルを提供するデバイスがあります。SPLDは5Vで動作する傾向がありますが、CPLDはFPGAに似た動作をするため、通常は高電流でより低い電圧が必要です。一般的に、CPLDは1.8 Vまたは3.3 V電源からI/Oラインごとに最大50 mAを消費します。
フィールドプログラマブルゲートアレイ (FPGA)
FPGA は現在FPD界の巨人であり、サーバー ブレードから人命救助ロボットまであらゆるものに知能を提供しています。このカテゴリには、幅広い価格、機能、サイズが含まれます。 Lattice Semiconductor の LatticeECファミリ は、20 x 20 mmのパッケージに数千個のセルを搭載した130 nmテクノロジ ソリューションを10ドル未満で提供します。一方、 Alteraの Stratix Vファミリは28nmテクノロジを使用して、帯域幅中心でデータ集約型のアプリケーション向けに最適化されたデバイスを作成します。これらのコストは数百ドルから数千ドルの範囲で、動作に必要な高電流、低電圧レールを供給するために、非常に精密な 電源管理システム が必要になることがよくあります。デバイスの損傷を避けるために、コア(最大68Aで0.9V)およびI/O電源レールに適切なシーケンスで電力を供給する方法についてのガイダンスとして、リファレンス デザイン が利用可能です。厳格な権力と 熱管理 高性能FPGAを安全に動作させるために必要な要件は、非常に厳しいものになる可能性がありますが、デバイスの能力は、現在市場にある他のどのデバイスともまったく匹敵するものがありません。