Was ist ein FPGA?
FPGAs stehen für Field Programmable Gate Arrays und sind Bausteine, die logische Schaltungen integrieren, die vom Designer programmiert werden können, um logische Schaltungen im Feld zu konfigurieren.
Spezialisierte Logik-ICs haben feste Schaltkreise und erfordern ein Redesign/eine Neuproduktion von Masken, wenn Teile davon geändert werden, während FPGAs sich dadurch auszeichnen, dass ihre logischen Schaltkreise vom Designer frei verändert werden können.
FPGAs wurden von Xilinx in den USA entwickelt. Es handelt sich dabei um großformatige PLDs, die beliebig oft verändert werden können, indem die Schaltungskonfiguration in SRAM geschrieben wird.
Anwendungen von FPGAs
FPGAs werden in Automobilgeräten, Datensensoren, Deep Learning usw. eingesetzt. Große Logikschaltungen werden zur Durchführung von Hochgeschwindigkeits-Logikoperationen verwendet, die nicht von der CPU programmiert werden können. Eine Lösung ist die Entwicklung und Herstellung dedizierter LSIs (z. B. ASICs), aber dedizierte LSIs lassen sich nur schwer durch andere Schaltungen ersetzen.
FPGAs hingegen ermöglichen es den Schaltungsentwicklern, Anwendungsschaltungen frei zu entwerfen, und erleichtern auch die Änderung von Schaltungen, wodurch die Kosten für die Entwicklung von Logikschaltungen erheblich gesenkt werden. Diese Eigenschaften haben dazu geführt, dass FPGAs in einer Vielzahl von Bereichen eingesetzt werden.
1. Kfz-Ausrüstung
Gründe für den Einsatz in der Automobilausrüstung sind unter anderem verkürzte Entwicklungszyklen, Flexibilität im Umgang mit Änderungen und das Entstehen von Geräten, die den Qualitätsanforderungen entsprechen. Ein konkretes Beispiel hierfür ist die Videoanalyse für Fahrerassistenzsysteme.
Fahrassistenzsysteme müssen Videosignale von Fahrzeugkameras sofort in Echtzeit analysieren, um den Fahrer beim Fahren zu unterstützen, und benötigen Algorithmen mit geringer Latenzzeit und hoher Genauigkeit. FPGAs sind hierfür geeignet, da sie eine schnelle arithmetische Verarbeitung erfordern und die elektronischen Steuerfunktionen im Gerät je nach Bedarf geändert werden können.
2. Rechenzentren
FPGAs werden zunehmend in Rechenzentren eingesetzt. Sie ersetzen vor allem CPUs und sind für die Verarbeitung von KI, Sicherheit, Authentifizierung, Echtzeitanalyse, Deep Learning usw. zuständig. FPGAs werden auch eingesetzt, um die Leistung von großen Datensystemen zu verbessern. Sie bieten Konnektivität mit hoher Bandbreite und niedriger Latenz zu Netzwerk-/Speichersystemen und beschleunigen so die Datenverarbeitung. Darüber hinaus unterstützen sie die Datenkomprimierung und die Füllverarbeitung.
3. Deep Learning
In der Welt des Deep Learning ist die Flexibilität von FPGAs, Schaltungen zu ändern, äußerst nützlich, da sich die optimale Modellierung ständig ändert. FPGAs sind ideale Bausteine für Anwendungen wie diese, bei denen das System häufig verbessert werden muss.
Funktionsweise von FPGAs
FPGAs sind LSIs, die auf einem Gitter aus relativ kleinen programmierbaren Logikblöcken mit vertikalen und horizontalen Leiterbahnen zwischen ihnen basieren. Obwohl jeder Logikblock klein ist, können viele Blöcke kombiniert werden, um große Schaltungen zu realisieren.
Ein grundlegender Logikblock besteht aus einer LUT (Look Up Table), Flip-Flops und zusätzlichen Schaltungen. Die Logikblöcke können mit Hilfe von Schaltmatrizen (Transfergattern) in den Leiterbahnen beliebig miteinander verbunden werden.
Die LUTs verwenden SRAM. Die Schaltmatrix wird ebenfalls durch die in den SRAM geschriebenen Daten gesteuert. Da die Daten im SRAM beim Ausschalten der Stromversorgung verloren gehen, lesen FPGAs die Schaltungsinformationen (Konfigurationsdaten) beim Einschalten der Stromversorgung extern aus.
Zusätzlich zu den grundlegenden Logikblöcken verfügen FPGAs über interne Verdrahtungswege, spezielle Taktleitungen, Multiplikatoren (DSPs), E/A-Abschnitte, PLLs, Block-RAMs usw. Diese sind in einem Maschenmuster angeordnet, um das Routing beliebiger Schaltungsmuster zu erleichtern.
Weitere Informationen über FPGAs
1. Entwurfswerkzeuge
Traditionell wurde RTL (Register Transfer Level) als Entwurfssprache für FPGAs verwendet. Auf der Grundlage der RTL des Designers wurde mit den vom FPGA-Anbieter bereitgestellten Tools eine in FPGAs zu schreibende Download-Datei erzeugt.
In jüngster Zeit haben die Hersteller von FPGAs jedoch so genannte High-Level-Synthese-Compiler auf den Markt gebracht. Die Verwendung dieser High-Level-Synthese-Compiler ermöglicht ein effizientes Design und reduziert gleichzeitig die für die Verifizierung der Schaltung benötigte Zeit. Dies trägt zu einer kürzeren Produktentwicklungszeit bei.
Derzeit bieten die FPGAs-Hersteller die folgenden drei High-Level-Synthese-Compiler an:
- Modellbasierte (DSP) Compiler
- HLS-Compiler
- OpenCL-Compiler
Bei der Untersuchung von Schaltungen mit FPGAs werden in der Regel Evaluierungsboards verwendet. Die Evaluierungsboards werden von verschiedenen Unternehmen verkauft, darunter Halbleiterhersteller, Hersteller von Evaluierungsboards und Auftragsentwicklungsunternehmen. Infolgedessen gibt es eine sehr große Anzahl verschiedener Arten von Evaluierungsboards, und es ist notwendig, dasjenige auszuwählen, das dem technischen Niveau und dem Zweck am besten entspricht. Die folgenden sechs sind typische Hersteller:
- HiTech Global
- BittWare
- TUL
- IOxOS
- Portwell Japan
- ANVENT
2. Markt
Ein Bericht von Global Information vom April 2020 prognostiziert für den FPGAs-Markt einen Wert von 8,6 Mrd. USD im Jahr 2025, verglichen mit 5,9 Mrd. USD im Jahr 2020. Die durchschnittliche jährliche Wachstumsrate (CAGR) wird voraussichtlich 7,6 % betragen. Zwar liegen keine detaillierten Zahlen vor, doch wenn der FPGAs-Markt nach Technologieknoten kategorisiert wird, zeigt sich, dass der größte Anteil des Produktmixes im Jahr 2019 unter 28 nm liegt.
Darüber hinaus prognostiziert der Bericht ein hohes Wachstum bei Produkten unter 28 nm bis 2025 aufgrund des Aufkommens von Low-Power-Produkten usw. Zu den Anwendungen, die den FPGAs-Markt von 2020 bis 2025 vorantreiben, gehören Hochleistungscomputer für Cloud Computing und 5G-Netzwerke. 5G-Vernetzung, etc.