Complex Programmable Logic Device
CPLD steht für Complex Programmable Logic Device. Die Technologie eigenspezifischer ICs ist seit den 60er Jahren bekannt, als Harris Semiconductor einen Bausteinherausbrachte, dessen wesentlicher Bestandteil eine programmierbare Diodenmatrix (Fuse Configurable Diode Matrix) war. 1978 kamen die ersten vollständig konfigurierbaren Logikbausteine namens PAL (Programmable Array Logic) mitsamt Programmiersprache PALASM auf den Markt.
CPLDs bestehen im wesentlichen aus folgenden Elementen:
- programmierbare AND/OR-Matrix
- programmierbare Rückkopplung
- Eingabeblock
- Ausgabeblock
Ein-/Ausgabeblöcke können schnelle Speicher Wie Latches, D-Flipflops oder Register sein. In vielen modernen PLDs stehen programmierbare Ausgänge, denen man definierte Zustände (active low, active high, tristate) zuweisen kann. Der AND/OR-Matrix als Kern kann jede beliebige kombinatorische Verknüpfung zugewiesen werden.
Der Unterschied zwischen PLDs und CPLDs besteht im Wesentlichen in der Zahl der verfügbaren Gatter und der Komplexität der Ausgangslogik. Ab 25.000 Gattern kann man von einem CPLD sprechen. Hier wird die AND/OR-Matrix nicht mehr über ein einzelnes Gatter realisiert, sondern über eine Schaltmatrix zusammengefasst. Der homogene aufbau ermöglicht eine exakte Bestimmung der Durchlaufzeiten, was den wesentlichen Unterschied zu den FPGAs ausmacht. Durch die hohe Anzahl von Eingängen / Logigblock bieten sich CPLDs vor Allem für die Lösung komplexer, paralleler AND/OR-Logik an.
Hersteller sind beispielsweise Xilinx, Altera, Lattice, Actel, Lucent, Cypress, Atmel oder Quick Logic.