Ein CPLD (Complex Programmable Logic Device) ist ein programmierbarer Logikbaustein, der aus mehreren Makrozellen aufgebaut ist. Er gehört zur Familie der PLDs (Programmable Logic Devices) und eignet sich besonders für kompakte, schnelle Steuerlogik.
Aufbau und Funktionsweise
Im Kern besteht ein CPLD aus vielen einfachen programmierbaren Logikbausteinen (SPLDs), den sogenannten Makrozellen. Jede Makrozelle enthält Und-/Oder-Gatter, einen programmierbaren Speicher (etwa ein Flipflop) und Rückkopplungen. Die Makrozellen sind über eine programmierbare Schaltmatrix und I/O-Blöcke miteinander verbunden. Dadurch lassen sich logische Gleichungen direkt abbilden.
Flash-Speicher und Instant-On
Die meisten CPLDs speichern ihre Konfiguration in einem Flash-Speicher. Dadurch sind sie sofort nach dem Einschalten funktionsfähig (Instant-On) und benötigen keine externe Boot-Konfiguration wie FPGAs. Die Signallaufzeiten sind konstant und vorhersagbar, was sie für zeitkritische Steueraufgaben attraktiv macht.
Einsatzgebiete
- Glue Logic: Verbinden und Entkoppeln von Bausteinen auf Platinen
- Boot- und Reset-Controller für Prozessoren
- Adressdekoder und Bus-Interfaces
- Ersatz für einfache Logik-ICs der 74xx-Reihe
CPLD im Vergleich zu FPGA und ASIC
Ein CPLD ist kleiner und einfacher als ein FPGA, arbeitet aber mit vorhersagbaren Laufzeiten und startet ohne externe Konfiguration. Während ein ASIC fest für eine Aufgabe gefertigt wird, lässt sich ein CPLD auch nach dem Einbau noch reprogrammieren. Wer maximale Logikdichte und Rechenleistung braucht, greift zum FPGA; wer eine große Serie mit minimalen Stückkosten fertigt, zum ASIC.
Verwandte Grundlagen: Mikroarchitektur, Instruktionssatz (ISA), Motherboard.