CPLD(Complex Programmable Logic Device)は、
プログラマブルロジックデバイス(PLD)の一種です。集積度においては、単純なプログラマブル論理デバイスであるPAL(Programmable Array Logic)よりも大規模で、大規模なFPGA(Field-Programmable Gate Array)よりも小規模という位置づけにあります。そのため、PALとFPGA両方のアーキテクチャ的特徴を併せ持っています。
CPLDの特徴:PALとFPGAの中間的存在
CPLDの構成要素は、複数のマクロセルと呼ばれるブロックで構成されています。マクロセルは、加算標準形などの論理演算に加え、より複雑な論理演算も実現可能です。
PALとの共通点:
不揮発性コンフィギュレーションメモリ: FPGAと異なり、CPLDはコンフィギュレーションROMを必要としません。電源投入と同時に動作を開始します。これは、システムの起動時に重要な役割を果たします。
初期のCPLDにおける外部ピン接続: 多くの古いCPLDでは、論理ブロックの大部分が外部ピンに直接接続されていました。そのため、内部でのデータ記憶や複雑な論理処理は限定的でした。ただし、これは最近の、より大規模で高機能なCPLDには当てはまりません。
FPGAとの共通点:
大規模な論理ゲート: FPGAと比較すると規模は小さいものの、CPLDは数千~数万個の論理ゲートを備え、中程度の複雑さのデータ処理デバイスの実装が可能です。(PALは数百ゲート程度、FPGAは数万~数百万ゲート)
柔軟な論理演算: 単純な論理和や論理積だけでなく、マクロセル間の複雑なフィードバックパスや、
整数演算など、高度な機能を実現するための特殊な論理回路が含まれています。
CPLDとFPGAの重要な違い:コンフィギュレーションメモリ
CPLDとFPGAの大きな違いの1つは、コンフィギュレーション方法にあります。CPLDはチップ内部に不揮発性メモリを持ち、そのメモリにコンフィギュレーションデータが保存されます。このため、電源投入直後から動作し、ブートローダーなど、システム起動時の重要な処理に最適です。例えば、不揮発性メモリからFPGAへコンフィギュレーションデータをロードする際にCPLDが使用されるケースがあります。ただし、近年ではコンフィギュレーションメモリを内蔵したFPGAも登場しています。
CPLDの歴史的背景
CPLDは、それ以前のPLA(Programmable Logic Array)やPALといった、より小規模なデバイスからの進化形です。PLAやPALは、複数の汎用ロジックICを接続することで論理回路を構築していましたが、CPLDはプログラム可能な機能を内蔵しています。
CPLDとFPGAのアーキテクチャの違い
CPLDとFPGAのアーキテクチャには大きな違いがあります。FPGAは内部でルックアップテーブル(LUT)をベースとした構成になっていますが、CPLDはチャネルレス型ゲートアレイ(SOG)という異なる論理構造を採用しています。
CPLDの用途
CPLDは、その柔軟性と不揮発性メモリによる即時動作性から、組込みシステム、産業機器制御、通信機器など、幅広い分野で活用されています。特に、システムの起動シーケンスや、特定のハードウェア機能の実装に適しています。
著名なCPLDメーカー
アルテラ
アトメル
サイプレス・セミコンダクタ
ラティスセミコンダクター
ザイリンクス
関連用語
ASIC (Application-Specific Integrated Circuit)
EPLD (Erasable Programmable Logic Device)
SPLD (Simple Programmable Logic Device)
マクロセルアレイ
PAL (Programmable Array Logic)
プログラマブルロジックデバイス (PLD)
FPGA (Field-Programmable Gate Array)
VHDL
Verilog