In den letzten Jahren hat die Architektur von CPLDs eine Reihe von Änderungen erfahren, sodass sich der Anwendungsbereich dieser Bauelemente erheblich erweiterte, während gleichzeitig die Grenzen zwischen CPLDs und FPGAs zunehmend verschwimmen. Dennoch gibt es grundlegende Unterschiede in der Architektur, aufgrund derer sich CPLD-basierte Bauteile für bestimmte Anwendungszwecke ganz besonders eignen.

Bild 1: Bei Igloo2 sind die Flash-Speicherzellen in die Standard-CMOS-Logik integriert.

Bild 1: Bei Igloo2 sind die Flash-Speicherzellen in die Standard-CMOS-Logik integriert.Digi-Key/Microsemi

In der Vergangenheit beruhte der Unterschied zwischen CPLDs und FPGAs vor allem auf der internen Architektur. Ausgehend von den niedrig integrierten PLAs (Programmable Logic Array), welche die ersten Arten von benutzerdefinierbarer Logik darstellten, baute die ältere CPLD-Architektur auf einer Anordnung von Product-Term-Blocks (PTBs) auf, die über eine globale Routing-Matrix zugänglich waren.

Die Architektur der klassischen CPLD ist durch ein hohes Maß an Zufallsunabhängigkeit bei den Logikpfaden gekennzeichnet. Jede Durchquerung der Logikmatrix weist die gleiche Latenz auf. Mit zunehmender Gerätegröße jedoch wird die globale Routing-Architektur über die Maße ressourcen-intensiv. Dem allgemeinen Trend hin zu einer umfassenden Integration folgend suchten die Entwickler deshalb nach Bauteilen mit höherer Kapazität. Um dieser Nachfrage nachzukommen, setzten die CPLD-Anbieter auf einen anderen Ansatz und übernahmen einige Punkte der Konzepte, die bei FPGAs zum Einsatz kommen, überarbeiteten diese aber entsprechend den typischen Anwendungsfällen für CPLDs.

Verteilte Routing-Architektur

Dabei gab es zwei wesentliche Änderungen. Die erste Änderung bestand in einem Wechsel hin zu einer verteilten Routing-Architektur, bei der die Logikpfade sich nicht über den gesamten Chip erstrecken müssen, sondern die Wege zwischen den Logik-Array-Blöcken nutzen können, die innerhalb des ICs in einer Matrix angeordnet sind. Bei der zweiten Änderung ging es um den Ersatz der Produkt-Term-Arrays durch LUTs, (Lookup Tables, Lookup-Tabellen) und damit um die Bereitstellung von programmierbaren Wahrheitstabellen, die mit vier Eingängen arbeiten, welche in ein Flipflop einspeisen.

Eckdaten

Mit der Aufnahme von Modulen wie festverdrahteten Multiplizierern verschwimmen die Grenzen zwischen CPLDs und FPGAs zunehmend; einige der früheren CPLD-Produktreihen haben sich dabei praktisch in nichtflüchtige FPGAs verwandelt. Doch dank ihrer besonderen Merkmale eignen sich CPLDs insbesondere für Anwendungen, bei denen sie die kosteneffizientere und stromsparendere Alternative zu Mikrocontrollern und FPGAs darstellen.

Mit der flexibleren Logik-Architektur der neueren CPLD-Produktfamilien ist es nun einfacher, komplexe Beschreibungssprachen wie Verilog und VHDL für die Programmierung der Bausteine zu verwenden. Allerdings kann es durch das verteilte Routing schwieriger werden, das Timing für die auf schematischer Ebene entwickelte Logik vorherzusagen. Die Instrumente für diese Bauteile bieten jedoch ein erhebliches Maß an Kontrolle über die Platzierung, sodass die Möglichkeit besteht, zeitkritische Logikpfade zuzuordnen und gleichzeitig weiterhin komplexe Gestaltungstechniken, Beschränkungen und Definitionen zur automatischen Platzierung und Weiterleitung des restlichen Teils zu verwenden. Zudem lässt sich mit der übergeordneten Planung und Sperrung von Kontakten die PCB- und CPLD-Logik parallel zueinander durchführen, was die Projektdurchlaufzeit verkürzt.

Obwohl die CPLDs nun einige Merkmale aufweisen, die ursprünglich mit FPGAs in Verbindung gebracht wurden, besitzen sie auch weiterhin einige spezielle Funktionen, aufgrund derer sie sich für bestimmte Anwendungen besser eignen als FPGAs. CPLDs sind somit alles andere als einfach kleinere FPGAs.

So besteht ein zentraler Vorteil von CPLDs gegenüber den meisten FPGAs darin, dass sie Konfigurationsdaten mit einem nichtflüchtigen, auf dem Chip integrierten Speicher speichern. Von einigen wenigen Ausnahmen abgesehen arbeiten FPGAs mit On-Chip-Speichern des Typs SRAM und müssen deshalb ihre Konfigurationsdaten beim Booten aus einem externen ROM- oder Flash-Speicher laden.

Die Verwendung eines nichtflüchtigen On-Chip-Speichers hat zwei Vorteile. Der erste Vorteil betrifft die Designsicherheit. Wenn nämlich das Bauteil nach der Herstellung verriegelt wird, um so das Auslesen der Konfigurationsinhalte zu verhindern, ist es für Fälscher oder Nachahmer sehr viel schwieriger, die Struktur der inneren Logik zu ermitteln. Bei FPGAs hingegen kann der Konfigurations-Bitstream beim Streamen vom externen Speicher über die Leiterplatte hin zu dem logischen Bauteil ausgelesen werden, auch wenn es inzwischen eine Reihe von Produkten gibt, die eine Bitstream-Verschlüsselung ermöglichen, um so die Wahrscheinlichkeit eines Kopierens des Designs zu verringern.

Bild 2: Das FPGA ICE40 von Lattice unterstützt beim Management des statischen und dynamischen Stromverbrauchs.

Bild 2: Das FPGA ICE40 von Lattice unterstützt beim Management des statischen und dynamischen Stromverbrauchs. Digi-Key/Lattice Semiconductor

Der zweite Vorteil besteht darin, dass die CPLDs beim Booten sofort einsatzbereit sind. Eine Reihe von CPLDs mit höherer Dichte macht intern Kopien vom On-chip-Flash-Speicher auf die SRAM-basierten Konfigurationszellen. Dies ermöglicht eine Fertigung mit herkömmlichen CMOS-Herstellungsverfahren. Da es nicht notwendig ist, die nichtflüchtigen Speicherzellen über das Logik-Array zu verteilen, vereinfacht sich die Herstellung. Aber auch in diesem Fall beträgt die Konfigurationszeit nur Millisekunden und bietet bei vielen Anwendungen praktisch sofortige Einsatzbereitschaft.

Igloo2

Das Bauteil Igloo2 von Microsemi basiert auf einem proprietären Prozess, bei dem sich die Flash-Speicherzellen in die Standard-CMOS-Logik integrieren lassen. Als Ergebnis ist die Konfiguration in der Schaltmatrix selbst gespeichert, was eine Konfigurationszeit von null bedeutet. Damit besteht die Möglichkeit, das Bauteil in einer Ruhephase des Systems komplett abzuschalten; gleichzeitig erfolgt bei einer Rekonfiguration, wenn die Stromversorgung wieder hergestellt ist, keine Stromaufnahme.

Bei den Igloo2-Bausteinen kann der Systementwickler entscheiden, ob er flüchtige Register- und On-Chip-Speicherinhalte – zum Beispiel Daten in Kommunikationspuffern – behalten will. Für die Beibehaltung ist dann allerdings etwas Strom erforderlich, um die Daten in Latches zu halten, die dann im Suspend-Modus sind. Alternativ lässt sich das System auch so konzipieren, dass der Baustein sich vollständig abschaltet und die notwendigen Daten nach der Wiederherstellung der Stromversorgung aus dem nichtflüchtigen Speicher lädt.

ICE40

Der geringere Stromverbrauch bei einer bestimmten Logikdichte gegenüber FPGAs ist ein weiterer Grund dafür, warum eine CPLD-basierte Komponente bei der Entwicklung von Systemen häufig die bessere Wahl ist. Lattice Semiconductor entwickelte die Baureihe ICE40 zur Unterstützung von mobilen und anderen stromsparenden Designs. Die Architektur dieses Bausteins zeichnet sich durch diverse Merkmale aus, zu denen programmierbare schwingungsarme differenzielle Ein- und Ausgänge, die Fähigkeit zum dynamischen Abschalten von On-Chip-PLLs und spezielle Latches gehören, die zur Energieeinsparung den Zustand bestimmter Eingänge einfrieren. Diese Merkmale helfen beim Management des statischen und dynamischen Stromverbrauchs und sorgen für eine niedrige statische Leistungsaufnahme aller Produkte dieser Reihe.

Bild 3: Der Max10 von Altera verfügt über einen A/D-Wandler mit 12 Bit Auflösung, der mit 1 MSamples/s arbeitet und bis zu 17 Eingangskanäle bedienen kann.

Bild 3: Der Max10 von Altera verfügt über einen A/D-Wandler mit 12 Bit Auflösung, der mit 1 MSamples/s arbeitet und bis zu 17 Eingangskanäle bedienen kann. Digi-Key

Max10

Mit der Aufnahme analoger E/A-Produktreihen wie dem Max10 von Altera können programmierbare FPGAs in einer Reihe von Anwendungen den Mikrocontroller ersetzen – insbesondere in solchen, die auf eine leistungsstarke Verarbeitung in Echtzeit und hochflexible I/Os angewiesen sind. Der Max10 verfügt über einen Analog-Digital-Wandler mit 12 Bit Auflösung, der mit 1 MSamples/s arbeitet und bis zu 17 Eingangskanäle bedienen kann.

Mit der kundenspezifischen Hochgeschwindigkeitslogik lassen sich auch analoge I/O-Funktionen entwickeln, die bei Anwendungen wie der Entschlüsselung von Tastaturen zum Einsatz kommen können. So können durch das Hinzufügen eines kostengünstigen externen Kondensators bei einem Max-Bauteil von Altera ein interner Oszillator und ein auf dem Chip integrierter Schmitt-Trigger mit seinen I/O-Funktionen dafür genutzt werden, eine A/D-Wandlung mithilfe einer seriellen Wandlertopologie vorzunehmen.

Unterschiedliche Spannungspegel

Auch wenn es darum geht, den Spannungspegel zwischen Ein- und Ausgängen umzuwandeln, ist eine programmierbare Logikschaltung meist die bessere Wahl als ein Mikrocontroller. Mit einem Mikrocontroller ist dies nicht ohne Weiteres möglich, da dieser nur über eine begrenzte Anzahl von I/O-Ressourcen verfügt und häufig nur eine einzige Spannungsversorgung nutzt. Im Gegensatz dazu weisen CPLDs eine größere Anzahl von Ein- und Ausgängen auf, die normalerweise in mehrere Banks aufgeteilt sind. Jeder I/O-Bank lässt sich ihre eigene Spannungsquelle zuordnen. Damit verringert sich die Zahl der Komponenten, die zur Ansteuerung aufeinander abgestimmter Peripheriebausteine wie LCDs erforderlich sind.

Darüber hinaus sind CPLDs mit ihrer Fähigkeit, Ein- und Ausgänge bei geringem Stromverbrauch aufrechtzuerhalten und einfache Updates vorzunehmen, bestens für Entwicklungen geeignet, bei denen der Energiebedarf eine Rolle spielt, weil sie kontinuierlich LCD-Anzeigen aktualisieren und auf Tastaturbefehle regieren müssen. Sollte in dem System dennoch weiterhin ein Mikrocontroller erforderlich sein, kann dieser für längere Zeit im Schlafmodus verweilen. Damit lässt sich viel Energie einsparen, da hierbei viele Funktionen auf die energieeffizienteren programmierbaren Logik-Schaltungen übertragen werden.

Ein weiteres Merkmal, das CPLDs zunehmend von FPGAs für die Embedded-Verarbeitung übernommen haben, ist die arithmetische Beschleunigung. Produktreihen wie der Max10 bieten jetzt Versionen mit verteilten festverdrahteten Multiplizierern, die leistungsstarke Funktionen im Bereich digitale Signalverarbeitung unterstützen sollen. Zudem arbeiten die auf Lookup-Tabellen basierenden Logikblöcke von Bausteinen wie dem ICE40 mit Carry-Chains, die bei der effizienten Umsetzung von Addierschaltungen helfen.

Mit ihrer Kombination aus arithmetischer Beschleunigung und der Fähigkeit, die Hochgeschwindigkeitsverarbeitung von Ein- und Ausgängen zu unterstützen, eignen sich diese programmierbaren Logik-Bausteine bestens für Anwendungen wie die Motorsteuerung. Die Logikblöcke bieten sich für die Umsetzung von Funktionen wie der Pulsbreitenmodulation (PWM) an, die bei einem Einsatz in einer Software auf einem Mikrocontroller vieler Befehle bedürfen.