FPGAs sind in der Lage, komplexere Aufgaben zu übernehmen als ihre nächsten Verwandten, die CPLDs (Complex Programmable Logic Device). Zudem sind sie zunächst vollkommen leer und bereit für eigene Funktionen der Entwickler, also nicht vorab vom Hersteller festgelegt. Infolgedessen sind FPGAs unglaublich vielseitig und ermöglichen Datenverarbeitung, Signalverarbeitung, Highspeed-Kommunikation und mehr – alles ohne externe Peripherieelemente. Hinzu kommt, dass FPGAs – anders als die Standardzellen-basierten ASICs (Application-specific Integrated Circuits), die sie in bestimmten Szenarien ersetzen – sich im Feld ohne Hardwareänderung neu programmieren lassen.

Bild 1: Ende der 1960er Kam das erste maskenprogrammierte Gate-Array auf den Markt. Mehr als 30 Jahre später verfügen aktuelle FPGAs über eigene Prozessorkerne und bis zu 50 Millionen Logik-Elemente.

Bild 1: Ende der 1960er kam das erste maskenprogrammierte Gate-Array auf den Markt. Mehr als 30 Jahre später verfügen aktuelle FPGAs über eigene Prozessorkerne und bis zu 50 Millionen Logik-Elemente. Mouser

So weit, so gut. Die Festlegung der zahlreichen Verbindungen und Logikfunktionen in FPGAs war nie einfach. Deswegen haben sowohl Hersteller von FPGAs als auch Anbieter von Designsoftware spezialisierte Tools entwickelt. Gleichzeitig sind vorgefertigte und verifizierte funktionale Blöcke verfügbar, die die Programmierung eines FPGAs vereinfachen.

Eine kurze Geschichte des FPGAs

Ende der 1960er fanden einige bedeutende Ereignisse statt, etwa der erste Flug der Concorde oder die Mondlandung der Apollo 11. Daneben wirkt die erstmalige Aufnahme des maskenprogrammierten Gate-Arrays XC157 in das „Integrated Circuit Data Book“ geradezu trivial. Es war jedoch tatsächlich bedeutsam: Die Entwicklung des Bauteils, das über 12 Gates und 30 nicht vorbelegte Ein-/Ausgangs-Pins (I/O-Pins) verfügte, war ein wichtiger Meilenstein für programmierbare logische Schaltungen: Sie waren jetzt kommerzielle Realität.

Und sie wurden rasch weiterentwickelt. Ende der 1980er-Jahre wurde im Rahmen eines Programms des US Naval Surface Warfare Department unter Beteiligung der Industrie ein Computer mit 600.000 wiederprogrammierbaren Gattern entwickelt. Kurz danach stellten Ross Freeman und Bernard Vonderschmitt, die Gründer von Xilinx, mit dem XC2064 das erste kommerzielle FPGA vor. Das Bauteil umfasste 8 × 8 konfigurierbare Logikblöcke – insgesamt also 64 – und zwei Look-up-Tabellen (LUTs) mit drei Eingängen.

Mehr als dreißig Jahre später haben sich die Dinge enorm weiterentwickelt. Aktuelle FPGAs verfügen über eigene Prozessorkerne (zum Beispiel den ARM Cortex), bis zu 50 Millionen Logik-Elemente, viel schnelleren Speicher, eigene Analog-Digital-Wandler (ADCs) sowie 128-Bit-Verschlüsselung (Bild 1). Sie sind in der Lage, über eine Billion Fließkomma-Operationen pro Sekunde (Teraflops) für die digitale Signalverarbeitung auszuführen, und bieten niedrige Latenzzeiten und einen Gesamtdurchsatz über alle seriellen Transceiver-Kanäle von fast 3 Tbit/s. Diese Kapazität liegt in einem einzigen Bauteil mit geringen Leistungsanforderungen. Heutige FPGAs sind also außerordentlich vielseitige SoCs (Systems-on-Chip). Ein Kommunikationssystem beispielsweise, das früher mehrere ASICs benötigte, um Empfänger-Front-End-Fähigkeiten bereitzustellen, ist jetzt nur noch auf ein einziges FPGA angewiesen.

Rekonfigurierbares Computing

Eck-Daten

Ende der 1960er Jahre kam das erste maskenprogrammierten Gate-Arrays XC157 auf den Markt – und seitdem haben sich programmierbare Schaltkreise erheblich weiterentwickelt. Sie verfügen heute über Funktionen auf einem einzigen SoC, für deren Umsetzung noch vor ein paar Jahren sehr viel mehr Platz auf der Leiterplatte nötig gewesen wäre. Ein kurzer historischer Abriss gibt eine Einführung in die lebhafte Geschichte der FPGAs und im Anschluss erläutert der Artikel High-End-Bausteine, solche für den mittleren Leistungsbereich und Alternativen.

Der nächste Schritt auf dem bemerkenswerten Weg von FPGAs könnte ihr Einsatz beim Reconfigurable Computing sein. In diesem Bereich können FPGAs zusammen mit Software und unterstützt durch einen universellen Prozessor zu Steuerungszwecken den gesamten Funktionsumfang eines Computers bieten. Diese Idee kam bereits in den 1960er-Jahren auf und wurde 1991 mit dem CHS2x4 von Algotronix demonstriert. Auf diesem Board arbeitete das FPGA CAL1024 von Algotronix mit 1024 programmierbaren Zellen in 1,5-µm-Double-Metal-CMOS. Es war das erste FPGA, das wahlfreien Zugriff auf seinen Steuerspeicher gewährte und díe gemeinsame Nutzung von I/O-Signalen ermöglichte, sodass Designer Arrays von Bauteilen entwickeln konnten. Diese Meisterleistung der Ingenieurskunst war so bahnbrechend, dass Xilinx ein paar Jahre später diese Technologie von Algotronix kaufte.

Reconfigurable Computing mit FPGAs eröffnet ungeahnte Möglichkeiten für spezialisierte Hochleistungssysteme. Ein Beispiel ist der Cost-Optimized Parallel Code Breaker (Copacobana) – eine Maschine zur Ausführung von Krypto-Algorithmen wie den Data Encryption Standard (DES) und anderen parallelen Computing-Tasks. Copacobana ist kein Universalcomputer: Seine Taktraten sind erheblich niedriger als die einer CPU-basierten Maschine, und auch seine Kommunikationsgeschwindigkeit und Bandbreite sind eingeschränkt. Für seinen speziellen Zweck ist er jedoch äußerst leistungsstark. Gleichzeitig ist er durch die ausschließliche Nutzung von Standardkomponenten und -FPGAs erheblich kostengünstiger als CPU-basierte Krypto-Computer.

Copacobana wird von einem normalen Windows- oder Linux-PC gesteuert und verfügt über ungefähr 120 FPGAs (je nach Design). So kann er 48 Milliarden DES-Entschlüsselungen pro Sekunde vornehmen – mit einer Leistungsanforderung von nur 600 W. Seine Fähigkeiten wurden durch die Leistung seiner Krypto-Analyse-Hardware in der Secret Key Challenge auf dem Cryptographic Hardware and Embedded Systems-Workshop 2006 demonstriert: Der Schlüssel wurde in knapp 21,5 Stunden (nach Durchsuchen von weniger als fünf Prozent des Schlüsselraums) gefunden, indem jede Sekunde über 43 Milliarden Schlüssel durchsucht wurden.

High-End-FPGAs

Bild 2: Die Baureihe Stratix 10 umfasst FPGAs, die den Anforderungen anspruchsvoller Anwendungen genügen. Hergestellt wird das Bauelement in 14-nm-Tri-Gate-Prozesstechnik.

Bild 2: Die Baureihe Stratix 10 umfasst FPGAs, die den Anforderungen anspruchsvoller Anwendungen genügen. Hergestellt wird das Bauelement in 14-nm-Tri-Gate-Prozesstechnik. Mouser

Signalaufklärung, elektronische Kriegsführung und Überwachungsradar sind einige der anspruchsvollsten Computing-Anwendungen, die es gibt. Die Annahme, dass nur ein Supercomputer diesen hohen Ansprüchen gewachsen ist, ist verständlich. FPGAs sorgen mit ihren geringen Leistungsanforderungen, massiver paralleler Verarbeitungsleistung und I/O sowie Gleitkomma-Arithmetik-Fähigkeiten jedoch für viel Aufsehen im Überwachungsbereich.

Die Baureihe Stratix 10 umfasst beispielsweise FPGAs, die den Anforderungen dieser anspruchsvollen Anwendungen genügen (Bild 2). Die Fertigung der mehr als vier Millionen Logik-Elemente erfolgt in 14-nm-Tri-Gate-Prozesstechnik von Intel. Sie umfassen 64-Bit-Quad-Core-ARM-Cortex-A53-Prozessoren, die den vierfachen Datendurchsatz ihrer Vorgänger liefern. Auch die serielle Transceiver-Bandbreite ist vier Mal höher. Zudem bietet jede Einheit eine 28-Gbit/s-Backplane, eine Chip-to-Chip- oder Chip-to-Module-Geschwindigkeit von 56 Gbit/s, eine serielle Speicherbandbreite von über 2,5 Tbit/s, eine parallele Speicherschnittstellenbandbreite von über 1,3 Tbit/s und Unterstützung für DDR4-Speicher mit 3200 Mbit/s. Die DSP-Leistung mit einfacher Genauigkeit von 10 Teraflops unterstützt die Anforderungen in Bezug auf Fließkomma-Operationen.

Die Leistungsanforderungen dieser Bauteile sind erheblich geringer als die früherer High-End-FPGAs mit einer Fließkommaeffizienz mit einfacher Präzision von 100 GFLOPS/W – schätzungsweise 70 Prozent niedriger. Zudem haben Ingenieure, die die Stratix 10-Baureihe nutzen, Zugriff auf eine umfassende Auswahl an Entwurfs- und Entwicklungstools von Altera/Intel.

FPGAs im mittleren Bereich

Bild 3: FPGAs für den mittleren Leistungsbereich sind zum Beispiel diese der MAX-10-Reihe. Sie verfügen über bis zu 736 kByte Flash-Speicher mit Doppelkonfiguration.

Bild 3: FPGAs für den mittleren Leistungsbereich sind zum Beispiel diese der MAX-10-Reihe. Sie verfügen über bis zu 736 kByte Flash-Speicher mit Doppelkonfiguration. Mouser

Auch wenn Ihre Anwendung nicht derart hohe Anforderungen hat, kann es sein, dass sie mehr Leistung erfordert, als ein Standard-FPGA liefert. Wenn das der Fall ist, fällt die Wahl auf ein Modell im mittleren Bereich, wie die MAX-10-FPGAs (Bild 3). Diese Bauteile umfassen eingebetteten Soft-Processor-Support, Speicher-Controller, DSP, Analogblöcke mit 12-Bit-ADCs, einen Temperatursensor, Phasenregelschleifen (PLLs) und globale Low-Skew-Taktgeber. Hinzu kommen bis zu 736 kByte Flash-Speicher mit Doppelkonfiguration. Das bedeutet, dass zwei Images auf einem Chip speicherbar sind und der Anwender dynamisch zwischen ihnen wechseln kann. Zudem sind sie sofort verfügbar, sodass sie das Einschalten oder die Initialisierung von Systemkomponenten steuern können. Die MAX-10-FPGAs sind mit 2000 bis 50.000 Logik-Elementen, 18 analogen Eingangskanälen, bis zu 500 Benutzer-I/O-Pins und 128-Bit-AES-Verschlüsselung verfügbar.

Alternativen zu FPGAs

Nach dieser Lobeshymne auf FPGAs sollen auch andere Arten von programmierbaren Logik-Bauteilen Erwähnung finden. Auch alternative Optionen, wie das Portfolio an Programmable Systems on a Chip (PSoC) von Cypress Semiconductor, liefern eine überzeugende Funktionsbreite in einem einzigen Bauteil. Das Cypress PSoC ist branchenweit einzigartig, da es das einzige programmierbare eingebettete SoC mit einem Mikrocontroller, Speicher, PLD-basierter programmierbarer Logik und einem Hochleistungs-Analogblock auf einem Chip ist. Gleichzeitig wird es einem niedrigen Leistungsbudget gerecht.

Die PSoC 5-Baureihe verwendet aktuellste ARM-Cortex-M-Mixed-Signal-Lösungen. Der CY8C56LP, Bestandteil der PSoC 5-Reihe, bietet konfigurierbare Blöcke von Digital-, Analog- und Interconnect-Schaltungen, die um ein CPU-Subsystem herum eingerichtet sind. Die Kombination einer CPU mit I/O, Routing und Analog- sowie Digital-Subsystemen macht es zu einer attraktiven Wahl für Verbraucher-, Medizin- und Industrieapplikationen. Das digitale Subsystem verwendet sein System-Interconnect zur effektiven Verknüpfung eines digitalen Signals von einem Peripherieelement mit einem beliebigen Pin. Die Universal Data Blocks (UDBs) bieten funktionelle Flexibilität.

Relativ unkompliziert gestaltet sich die Programmierung und Konfiguration dieses Bauteils. Die Peripherieelemente in der PSoC-Creator-Bibliothek lassen sich dem UDB-Array zuordnen. Diese umfassen Timer-, Zähler-, AND-, OR-, PRS-, CRC-, UART-, SPI-, LIN- und PWM-Funktionen. Jeder UDB umfasst programmierbare Logikfunktionalität und eine kleine State Machine Engine, sodass er mit einer Vielzahl an Peripheriegeräten kompatibel ist. Sie können konfigurierbare digitale Blöcke für USB-, CAN 2.0- und I2C Slave-/Master-Konnektivität verwenden.

Zusammenfassung

Zum Schluss soll ein letztes Beispiel zeigen, wie vielseitig und effektiv aktuelle programmierbare Logikbausteine sein können. Es ist möglich, ein vollständiges Subsystem zur Signalerfassung und -verarbeitung mit nur drei Karten im Open-VPX-Formfaktor (verwendet für Überwachungsausrüstung) zu entwickeln. Die wesentlichen Komponenten dafür sind zwei High-End-FPGAs sowie die nötigen ADCs und DACs zur Datenwandlung und ein Quad-Core-Intel-Core-i7-Prozessor, eine entsprechende Speicherressource, I/O- und SERDES-Transceiver. Aufgrund der hohen Leistung der FPGAs und der Bandbreite und Abtastfähigkeit der unterstützenden Schaltung zur Signalkonditionierung lassen sich Signale in dieser Anordnung mit drei Karten bei Raten von bis zu 6 GHz direkt aus der Luft erfassen. Noch vor ein paar Jahren wäre dafür eine Lösung erforderlich gewesen, die sehr viel mehr Platinenplatz benötigt.

Das Tempo der Innovation nimmt kontinuierlich zu, und programmierbare logische Bauteile kommen immer häufiger zum Einsatz. Diese Klasse der Technologie wurde zwar schon in den 1960er-Jahren entwickelt, doch heute, 50 Jahre später, wird sie verwendet, um wahre Pionierarbeit zu leisten.