Was ist ein CPLD (Complex Programmable Logic Device)?

Edwin Robledo Edwin Robledo August 28, 2023

8 min read

This post is also available in: Français (Französisch) Italiano (Italienisch) English (Englisch)

Dieser Artikel bietet einen detaillierten Überblick über einen wichtigen digitalen Elektronikbaustein, der als komplexer programmierbarer Logikbaustein (CPLD) bezeichnet wird.

what-is-cpld

Informationstechnologie, Internet und elektronische Chips bilden die Grundlage des modernen digitalen Zeitalters. Fast alle modernen Technologien verdanken ihre Existenz der Elektronik, vom Internet und der Mobilfunkkommunikation bis hin zu Computern und Servern. Die Elektronik ist ein weites Gebiet mit vielen Teilgebieten. In diesem Artikel lernen Sie einen wichtigen digitalen Elektronikbaustein kennen: den komplexen programmierbaren Logikbaustein (CPLD).

Entwicklung der digitalen Elektronik

Die Elektronik ist ein komplexes Gebiet mit Tausenden von elektronischen Geräten und Komponenten. Die elektronischen Geräte lassen sich jedoch in zwei Hauptkategorien einteilen: analog und digital.

Im Anfangsstadium der Elektroniktechnologie waren Schaltkreise analog, wie Schall, Licht, Spannung und Strom. Elektronikingenieure haben jedoch schnell festgestellt, dass die Konstruktion analoger Schaltkreise sehr komplex und kostspielig ist. Die Nachfrage nach schneller Leistung und schneller Übergabe führte zur Entwicklung der digitalen Elektronik. Heute beinhalten fast alle Computer digitale integrierte Schaltungen (ICs) und Prozessoren. In der Welt der Elektronik haben digitale Systeme die analoge Elektronik heute vollständig ersetzt, da sie kostengünstiger und geräuscharm sind und eine bessere Signalintegrität, eine höhere Leistung und geringere Komplexität bieten.

Im Gegensatz zu einer unendlichen Anzahl von Datenebenen in einem analogen Signal besteht ein digitales Signal nur aus zwei logischen Ebenen (1 und 0).

analog-vs-digital-signal
Abbildung 1: Analogsignal und digitales Signal im Vergleich

Arten digitaler elektronischer Geräte

Die ersten digitalen elektronischen Geräte waren recht einfach und bestanden nur aus einer Handvoll logischer Schaltelemente. Mit der Zeit wurden die digitalen Schaltungen jedoch immer komplexer, sodass die Programmierbarkeit zu einem wichtigen Merkmal moderner digitaler Steuerungsgeräte wurde. Es entstanden zwei verschiedene Klassen programmierbarer digitaler Geräte. Die erste Klasse umfasste Geräte mit fester Hardwarekonstruktion und programmierbarer Software. Beispiele für solche Geräte sind Mikrocontroller und Mikroprozessoren. Die zweite Klasse digitaler Geräte verfügte über eine konfigurierbare Hardware, die eine flexible Gestaltung logischer Schaltkreise ermöglichte. Beispiele für solche Geräte sind FPGAs, SPLDs und CPLDs.

Ein Mikrocontroller-Chip verfügt über einen festen digitalen logischen Schaltkreis, der nicht geändert werden kann. Die Programmierbarkeit wird erreicht, indem die Software/Firmware geändert wird, die auf dem Mikrocontroller-Chip ausgeführt wird. Im Gegensatz dazu besteht ein programmierbarer Logikbaustein (Programmable Logic Device, PLD) aus mehreren logischen Bauelementen, deren Zusammenschaltung über eine Hardwarebeschreibungssprache (Hardware Description Language, HDL) konfiguriert werden kann. Daher können viele logische Schaltkreise mit einem PLD realisiert werden. Aus diesem Grund sind PLDs im Allgemeinen schneller und leistungsfähiger als Mikrocontroller und Mikroprozessoren. PLDs bieten außerdem ein höheres Maß an Freiheit und Flexibilität bei der Konstruktion von Schaltkreisen.

programmable-digital-devices
Abbildung 2: Arten von programmierbaren digitalen Geräten

Integrierte Schaltungen für digitale Steuerung und Signalverarbeitung bestehen in der Regel aus Prozessor, logischer Schaltung und Speicher. Jedes dieser Module kann mit unterschiedlichen Technologien realisiert werden. Die verfügbaren Optionen sind in der folgenden Abbildung dargestellt:

modules-digital-ics
Abbildung 3: Module in digitalen integrierten Schaltungen

Einführung in CPLDs

Wie bereits erwähnt, gibt es verschiedene Arten von programmierbaren Logikbausteinen (PLDs), wie z. B. FPGA, CPLD und SPLD. Der Hauptunterschied zwischen diesen Bausteinen liegt in der Komplexität der Schaltungen und der Anzahl verfügbarer logischer Bauelemente. Ein einfacher programmierbarer Logikbaustein (SPLD) besteht in der Regel aus einigen hundert logischen Schaltungen, während ein komplexer programmierbarer Logikbaustein (CPLD) aus einigen tausend logischen Schaltungen besteht.

In Bezug auf die Komplexität liegt ein komplexer programmierbarer Logikbaustein (CPLD) zwischen einem einfachen programmierbaren Logikbaustein (SPLD) und einem Field Programmable Gate Array (vielseitig verwendbaren Chip mit programmierbarer Logik, FPGA) und übernimmt somit Merkmale von diesen beiden. CPLDs sind komplexer als SPLDs, aber weniger komplex als FPGAs.

Die am häufigsten verwendeten SPLDs sind PAL (Programmable Array Logic), PLA (Programmable Logic Array) und GAL (Generic Array Logic). Eine PLA besteht aus einer UND-Ebene und einer ODER-Ebene. Das Hardwarebeschreibungsprogramm definiert die Verbindung dieser Ebenen. Die folgende Abbildung zeigt ein PLA:

pla-programmable-logic-array
Abbildung 4: Programmable Logic Array (PLA)

PAL ist sehr ähnlich wie PLA, es gibt jedoch nur eine programmierbare Ebene (UND-Ebene) statt zwei. Durch die Beschränkung auf eine Ebene wird die Hardwarekomplexität verringert. Dieser Vorteil wird jedoch auf Kosten der Flexibilität erzielt.

pal-programmable-array-logic
Abbildung 5: Programmable Array Logic (PAL)

CPLD-Architektur

CPLD kann als eine Weiterentwicklung von PAL betrachtet werden und besteht aus mehreren PAL-Strukturen, die als Makrozellen bezeichnet werden. Im CPLD-Paket stehen für jede Makrozelle alle Eingangs-Pins zur Verfügung, während jede Makrozelle über einen dedizierten Ausgangs-Pin verfügt. Die folgende Abbildung zeigt ein Blockdiagramm eines CPLD.

Abbildung 6: CPLD-Blockdiagramm

Im Blockdiagramm können wir sehen, dass ein CPLD aus mehreren Makrozellen oder Funktionsblöcken besteht. Die Makrozellen sind über eine programmierbare Zusammenschaltung miteinander verbunden, die auch als GIM (Global Interconnection Matrix, globale Verbindungsmatrix) bezeichnet wird. Durch die Neukonfiguration der GIM können verschiedene logische Schaltkreise realisiert werden. CPLDs interagieren durch digitale E/A-Vorgänge mit der Außenwelt.

Unterschied zwischen CPLD und FPGA

In den letzten Jahren haben FPGAs bei der Entwicklung programmierbarer digitaler Systeme sehr an Beliebtheit gewonnen. CPLDs und FPGAs sind sich in vielerlei Hinsicht ähnlich, aber es gibt zwischen ihnen auch Unterschiede. Was die Ähnlichkeiten angeht, sind beide programmierbare Logikbausteine, die aus programmierbaren logischen Bauelementen bestehen. Beide Geräte werden mit HDLs wie Verilog HDL oder VHDL programmiert.

Der erste Unterschied zwischen CPLDs und FPGAs besteht in der Anzahl der logischen Schaltungen. Ein CPLD enthält einige tausend logische Schaltungen, während die Anzahl der logischen Schaltungen in einem FPGA Millionen betragen kann. Daher lassen sich komplexe Schaltungen und Systeme mithilfe von FPGAs realisieren. Diese Komplexität hat den Nachteil, dass die Kosten höher sind. Daher eignen sich CPLDs besser für weniger komplexe Anwendungen.

Ein weiterer wichtiger Unterschied zwischen diesen beiden Geräten besteht darin, dass CPLDs einen integrierten, nicht flüchtigen elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM) aufweisen, während FPGAs einen flüchtigen Speicher aufweisen. Daher kann ein CPLD seinen Inhalt auch im ausgeschalteten Zustand speichern, während ein FPGA seinen Inhalt nicht speichern kann. Aufgrund des integrierten nicht flüchtigen Speichers kann ein CPLD außerdem sofort nach dem Einschalten den Betrieb aufnehmen. Die meisten FPGAs benötigen hingegen zum Starten einen Bitstrom von einem externen, nicht flüchtigen Speicher.

Die Leistung von FPGAs ist aufgrund der hochkomplexen Architektur und der vom Anwender individuell durchgeführten Programmierung mit unvorhersehbaren Verzögerungen bei der Signalverarbeitung verbunden. In CPLDs ist die Pin-zu-Pin-Verzögerung aufgrund der einfacheren Architektur deutlich geringer. Die Signalverarbeitungsverzögerung ist ein wichtiger Aspekt bei der Konstruktion sicherheitskritischer und eingebetteter Echtzeitanwendungen.

Aufgrund höherer Betriebsfrequenzen und komplexerer logischer Vorgänge verbrauchen einige FPGAs möglicherweise mehr Strom als CPLDs. Daher ist das Wärmemanagement bei FPGA-basierten Systemen ein wichtiger Aspekt. Aus diesem Grund werden auf FPGA basierende Systeme häufig mit Kühlkörpern und Lüftern betrieben und benötigen größere, komplexere Stromversorgungen und Verteilungsnetze.

Im Hinblick auf die Informationssicherheit sind CPLDs sicherer, da der Speicher direkt in den Chip integriert ist. Die meisten FPGAs hingegen benötigen externen, nicht flüchtigen Speicher. Dieser kann eine Bedrohung für die Datensicherheit darstellen. Obwohl in FPGAs Datenverschlüsselungsalgorithmen verwendet werden, sind CPLDs grundsätzlich sicherer als FPGAs.

Anwendungen von CPLDs

CPLDs finden ihren Einsatz in vielen digitalen Steuerungs- und Signalverarbeitungsschaltungen mit geringer bis mittlerer Komplexität. Hier seien einige bedeutende Anwendungen genannt:

  1. CPLDs können als Bootloader für FPGAs und andere programmierbare Systeme verwendet werden.
  2. CPLDs werden häufig als Adressendecoder und maßgeschneiderte Zustandsautomaten in digitalen Systemen eingesetzt.
  3. Aufgrund ihrer geringen Größe und des geringen Stromverbrauchs sind CPLDs ideal für den Einsatz in tragbaren und Handheld-Digitalgeräten geeignet.
  4. CPLDs werden auch in sicherheitskritischen Steuerungsanwendungen eingesetzt.

CPLD-Hersteller

CPLDs und FPGAs sind leistungsstarke programmierbare Logikbausteine, die schwer herzustellen sind. Die bedeutendsten Hersteller von CPLDs sind:

  1. Altera (von Intel übernommen)
  2. Xilinx (von AMD übernommen)
  3. Atmel (von Microchip übernommen)
  4. Lattice Semiconductor

CPLD-Programmierung und -Entwicklung

Der erste Schritt bei der Entwicklung eines CPLD-basierten digitalen Systems ist die Auswahl des Geräteherstellers. Wie bereits erwähnt, werden diese Geräte von mehreren Herstellern gefertigt. Nach Betrachtung der Projektanforderungen und der Gerätedatenblätter ist ein geeignetes Gerät auszuwählen. Die entscheidenden Faktoren sind Kosten, Stromverbrauch, Anzahl der Ein- und Ausgänge und Makrozellen, Betriebsspannung und thermische Eigenschaften.

Nach der Auswahl des CPLD-Modells ist der nächste Schritt die Einrichtung der Programmier- und Testumgebung. Hierzu ist ein Softwarepaket notwendig, das zur Konstruktion, zum Testen und zur Überprüfung der Schaltung verwendet wird. Beispiele für Programmiersoftware sind Altera Quartus, Xilinx ISE/Vivado, Lattice Diamond und Atmel ProChip Designer. Diese Softwarepakete ermöglichen die Programmentwicklung mithilfe der Hardwarebeschreibungssprachen Verilog und VHDL.

Nach dem Erstellen einer logischen Beschreibung in HDL stellt das Hardwaregerät bzw. die Entwicklungsplatine über ein Programm und einen Debug-Kabeladapter eine Verbindung mit der Software her. Viele Entwicklungsplatinen verfügen über integrierte Programmiergeräte. Wenn jedoch kein Programmiergerät vorhanden ist, können Sie eine JTAG-Programmiervorrichtung verwenden.

Nach der Konstruktion, dem Testen und der Überprüfung des CPLD-Programms wird das Programm auf den Chip heruntergeladen, und es kann ein Systemprototyp erstellt werden. Eine Leiterplatte kann so konstruiert werden, dass sie die CPLD und die umgebenden elektronischen Komponenten enthält. Nach der Integration wird das Gerät auf Mängel und Fehler überprüft. Nach dem Debuggen kann der Prototyp in die Produktion übergeben werden.

Digitale Elektronik bildet die Grundlage für moderne Informationstechnologien. Programmierbarkeit ist ein Schlüsselfaktor bei der Konstruktion digitaler Systeme. Es gibt zwei Typen programmierbarer digitaler Geräte: Prozessoren und programmierbare Logikbausteine (PLDs). PLDs bieten dank rekonfigurierbarer Hardware eine hervorragende Leistung und Flexibilität. CPLDs sind neben SPLDs und FPGAs einer der drei Haupttypen von PLDs. Im Hinblick auf Leistung und Komplexität liegen CPLDs zwischen SPLDs und FPGAs. Mit dem integrierten, nicht flüchtigen EEPROM haben CPLDs den Vorteil einer verbesserten Datensicherheit und Startgeschwindigkeit gegenüber FPGAs.

In diesem Artikel haben wir Ihnen einen umfassenden Überblick über CPLDs und ihre Architektur sowie Diagramme, Anwendungen und Programmiermethoden gegeben.

Sie möchten die Elektronikfunktionen in Fusion 360 nutzen? Holen Sie sich Ihre kostenlose Testversion noch heute.

Tags and Categories

Unkategorisiert

Get Fusion updates in your inbox

By clicking subscribe, I agree to receive the Fusion newsletter and acknowledge the Autodesk Privacy Statement.