Einführung in FPGAs: Flexibilität und Leistung in der digitalen Elektronik
FPGAs (Field-Programmable Gate Arrays) haben sich in den letzten Jahrzehnten als eine der vielseitigsten Technologien in der digitalen Elektronik etabliert. Sie bieten eine einzigartige Mischung aus Flexibilität (z.B. in Form sog. „Field-Updates“), hoher Leistung und paralleler Verarbeitung, die sie von traditionellen Mikroprozessoren und ASICs (Application-Specific Integrated Circuits) unterscheidet.
Doch was genau sind FPGAs, wie funktionieren sie, und wofür werden sie eingesetzt?
...weiterlesen
Was ist ein FPGA und welche Vorteile bieten FPGAs von Efinix?
Ein FPGA ist ein integrierter Schaltkreis, dessen Funktionalität nach der Herstellung vom Anwender (im Feld) programmiert werden kann. Diese Programmierbarkeit unterscheidet FPGAs von herkömmlichen Standard-ICs, deren Funktion bereits bei der Produktion festgelegt wird. FPGAs bestehen aus einigen Hundert, bis zu derzeit einigen Millionen von Logikelementen, die flexibel miteinander verbunden werden können, um komplexe digitale Schaltungen zu realisieren.
Ein FPGA besteht im Wesentlichen aus:
- Logikblöcke
führen logische und arithmetische Operationen aus. Sie bestehen aus konfigurierbaren Logikeinheiten (Lookup Tables, LUTs) und Flip-Flops. Als Messgröße hat sich die LUT4 durchgesetzt, auch wenn die Grundzelle oftmals eine LUT6 ist. Eine LUT ist eine beliebige -Input Digitalfunktion. Meist ist wir eine oder mehrere LUTs mit einem Flip-Flop, also einer 1-Bit Speicherzelle kombiniert. Oftmals sind auch Schaltkreise für schnelle arithmetische Operationen (beispielsweise Fast- Carry-Chain Addierer) in den Logikblöcken vorhanden. Oftmals wir in die Bauteilbezeichnung des FPGAs dessen Größe in kLUT codiert. Beispielsweise hat ein Trion T20 FPGA von Efinix ungefähr 20 kLUT (genau genommen 19,728 LUT4) und ebensoviele Flip-Flops. - Routing-Ressourcen
Sie verbinden die Logikblöcke miteinander und ermöglichen eine flexible Schaltungsanordnung. Bei fast allen Herstellern sind Logik und Routing streng getrennt. Ist für ein gegebenes Design eine der beiden Ressourcen unzureichend, muss man auf das nächstgrößere FPGA der Bausteinfamilie wechseln. Meistens sind nicht genügend Routing Ressourcen vorhanden und man kann das Design zwar rein rechnerisch unterbringen, aber es lässt sich nicht mehr routen oder das gewünschte Timing lässt sich nicht erreichen. Genau hier setzt Efinix mit seiner Quantum Technologie an: die Grundzelle des FPGA (XLR-Cell = eXchangable Logic and Routing Cell) kann zum Compile-Zeitpunkt entweder zum LE (Logic Element) oder zur Routing Matrix werden. Somit können die vorhandenen Ressourcen sehr effizient ausgenutzt werden. - I/O-Blöcke
Diese sorgen für die Kommunikation mit der Außenwelt, indem sie digitale Signale von und zu externen Geräten weiterleiten. Moderne FPGAs haben sowohl auf Geschwindigkeit optimierte IOs (HSIOs = High Speed IOs) als auch sog. HVIOs (High Voltage IOs). Im Zusammenhang mit modernen FPGAs sind mit „High Voltage“ 3.3V-fähige IOs gemeint. Darüber hinaus gibt es meist noch spezielle IOs für bestimmte Interfaces (wie beispielsweise MIPI bei Kamera und Videoanwendungen), sowie schnelle serielle Schnittstellen (wie beispielsweise PCIe oder 10 GE). - ASIC-Blöcke
Bestimmte Schaltungen wären können mit den Grundzellen der FPGAs nicht implementiert werden bzw. wären dann zu groß und zu leistungshungrig. Deswegen haben fast alle modernen FPGAs eingebaute ASIC-Blöcke wie z.B. PLLs, RAM, DSP-Blöcke, PLLs bis hin zu Prozessoren. PLLs (Phase-Locked- Loops) sind für die Generierung „beliebiger“ Takte und liefern den „Pulsschlag“ digitale Systeme. Speicherblöcke (RAM) erlauben die Zwischenspeicherung und Verarbeitung von Daten. DSP-Blöcke ermöglichen schnelle Multiplikationen für digitale Filterfunktionen oder neuronale Netze. Bei den Prozessoren setzen viele Hersteller zwischenzeitlich auf RISC-V, eine „Open Architecture“. Im Zusammenhang mit FPGAs kann der Befehlssatz nahezu beliebig erweitert werden und sog. „hot loops“ können im FPGA in Hardware beschleunigt werden.
Wie funktioniert FPGA-Entwicklung in der Praxis?
Die Funktionsweise eines FPGAs basiert auf der Programmierung seiner internen Struktur. Fast alle FPGA-Hersteller nutzen SRAM-Zellen zur Konfiguration, also eine flüchtige Technologie. Somit benötigen fast alle FPGAs einen externen oder internen, nichtflüchtigen Konfigurationsspeicher.
Die Schaltungen werden für gewöhnlich mit einer Hardwarebeschreibungssprache (HDL = Hardware Description Language) wie VHDL (= VLSI HDL, wobei VLSI wiederum für Very Large Scale Integration steht) oder Verilog. In jüngster Zeit gibt es auch Beschreibungssprachen, wie beispielsweise SystemC, SystemVerilog etc. die Schaltungs-Beschreibungen auf einem höheren Abstraktionsniveau ermöglichen.
Der Entwicklungsprozess (für Efinix FPGAs heißt dieser Efinity) umfasst folgende Schritte:
- Entwurf der Schaltung
Entwickler spezifizieren die gewünschte Funktionalität mit HDL. - Synthese
Der Code wird in eine technologiespezifische Netzliste von Logikelementen (im Edif-Format) übersetzt. Dieser Arbeitsschritt wird von einem sog. Synthese-Werkzeug bewerkstelligt. Im Efinity-Flow hat das Synthese-Werkzeug Kenntnis von der XLR-Zelle und nutzt effizient deren Flexibilität. - Place-and-Route
Die Software ordnet die Logikelemente den physischen Ressourcen des FPGAs zu und legt fest, wie diese verbunden werden. - Programmierung
Die konfigurierte Logik wird in den FPGA geladen, meist über einen Bitstream.
Der entscheidende Vorteil ist, dass der FPGA jederzeit neu programmiert werden kann, um geänderten Anforderungen gerecht zu werden.
Anwendungsbereiche von FPGAs
FPGAs finden Einsatz in einer Vielzahl von Anwendungen, die eine hohe Leistung, Parallelverarbeitung und Flexibilität erfordern:
- Telekommunikation
In Mobilfunkbasisstationen, Netzwerken und Signalverarbeitungssystemen bieten FPGAs eine schnelle Verarbeitung von Datenströmen und Protokollen. Protokolle oder Standards, die noch nicht final festgelegt sind, können flexibel in FPGAs implementiert werden und über sog. Field- Updates aktualisiert werden. - Bild- und Videobearbeitung
Sie beschleunigen Algorithmen für Bildverarbeitung, beispielsweise in Kameras, Überwachungssystemen und medizinischen Geräten. Heutzutage sind viele Kameras „intelligent“ (siehe Punkt 3). - Künstliche Intelligenz (KI)
FPGAs können neuronale Netzwerke effizient ausführen. Sie erreichen dabei nicht Performanz von GPUs, die genau für diese Aufgabe optimiert wurden, bieten aber eine höhere Flexibilität und Anpassungsfähigkeit. - Industrie- und Medizintechnik
FPGAs sind für Ihre Langlebigkeit bekannt und werden deshalb gerne in diesen Märkten eingesetzt, die eine entsprechende Langlebigkeit der Produkte fordern. - Automobilindustrie
Hier werden FPGAs u.a. in Fahrerassistenzsystemen (ADAS), Lidar- und Radarsystemen eingesetzt. Meist bieten FPGA-Hersteller eine Teilmenge Ihrer FPGAs mit entsprechender AQC Q 100 Zertifizierung. - Luft- und Raumfahrt
Es gibt spezielle, strahlungsresistente FPGAs für missionskritische „Deep-Space“ Anwendungen. Daneben werden im sog. „New Space“ Markt auch industrielle FPGAs eingesetzt. In der Luftfahrt muss noch DO-254 zertifiziert werden und hier hängt die Wahl des FPGAs vom sog. DAL (Design Assurance Level) ab. Auch diese Märkte schätzen die Langlebigkeit von FPGAs.
Vorteile und Herausforderungen
Voreile:
- Flexibilität
FPGAs können leicht aktualisiert oder angepasst werden. - Parallelverarbeitung
Sie erlauben die gleichzeitige Ausführung vieler Aufgaben. Bei Aufgaben, die ein parallele Bearbeitung erfordern, bieten sie eine höhere Geschwindigkeit als Prozessoren (es sei denn diese wurden für eben dies Aufgabe bereits optimiert).
Herausforderungen:
- Kosten
FPGAs sind meist teurer als Standard-ICs, besonders in großen Stückzahlen. Aufgrund der QuantumTM Technologie können Efinix-FPGAs die vorhandenen Ressourcen effizient und flexibel nutzen. Dadurch kann Die-Fläche eingespart werden und es werden weniger Routing Ressourcen (sog. Metal-Layer) benötigt. Beides wirkt sich günstig auf die Kosten aus. - Stromverbrauch
Sie haben tendenziell eine höhere Leistungsaufnahme als ASICs. Auch hier bietet die QuantumTM -Technologie Vorteile, denn kleiner Dies und effizientes Routing resultieren in einer vergleichsweise geringen, dynamischen Verlustleistung. Bei modernen FPGAs ist die dynamische Verlustleistung meist der größte Teil der Gesamtverlustleistung. Ressourcenschonende Technologie entspricht dem Zeitgeist, hat aber auch ganz praktische Gründe. So sind batteriebetriebene Systeme länger einsatzfähig, Abwärme kann leichter abgeführt werden. Elektronik die kühler betrieben werden kann, hat eine längere Nutzungsdauer leben, ermöglicht eine höhere Umgebungstemperatur und sensible Analog-Sensoren werden nicht durch Abwärme gestört. - Komplexität
Die Entwicklung erfordert spezielles Know-How und Tools. TRS-STAR unterstützt Sie bei Ihren FPGA-Projekten gerne mit einem Partnernetzwerk. Unsere Partner haben jahrzehntelange Design-Erfahrung und sind die für gewöhnlich mit bei den ersten Nutzern neuer FPGA-Familien.
Zukunftsperspektiven
Mit dem Fortschritt in der Halbleitertechnologie und der wachsenden Nachfrage nach flexiblen Lösungen wird die Bedeutung von FPGAs weiter steigen. Man sieht dies auch an der Entwicklung des globalen FPGA-Markts und den Prognosen für diesen Markt. Zahlen lügen bekanntlich nicht. Insbesondere in Bereichen wie Edge Computing, autonomes Fahren und 5G-Netzwerke wird die Fähigkeit, maßgeschneiderte Hardwarelösungen schnell zu implementieren, eine entscheidende Rolle spielen. FPGAs stellen eine Brücke zwischen allgemeiner Rechenleistung und spezialisierter Hardware dar und sind ein unverzichtbares Werkzeug für Ingenieure und Entwickler, die innovative und leistungsstarke Lösungen suchen.