Kürzlich gesucht
      • Veröffentlicht am 25. Apr. 2023
      • Zuletzt bearbeitet am 29. Aug. 2023
    • 6 min

    Was ist ein FPGA?

    FPGAs sind integrierte Schaltkreise (IC), die Entwicklern eine enorme Flexibilität bieten. Da sie programmierbar sind, können sie eingesetzt werden, um genau jene Aufgaben auszuführen, die vor Ort benötigt werden.

    fpga

    FPGA steht für „Field Programmable Gate Array“, ein programmierbarer, integrierter Schaltkreis, der die Implementierung digitaler Schaltungen erlaubt. Jedes FPGA enthält drei grundlegende Komponenten: Input/Output-Blöcke, Logikblöcke und Schalter. Mit anderen Worten, ein FPGA besteht aus einer Reihe miteinanderverbundener digitaler Teilschaltungen, die gemeinsame Funktionen mit einem hohen Maß an Flexibilität ausführen.

    Diese Chips wurden entwickelt, um Änderungen nach dem Einsatz zu ermöglichen, daher die Bezeichnung „feldprogrammierbar“. Sie sind in vielen Anwendungen und in allen möglichen Bereichen zu finden, von Videospielen bis zu Hochleistungsrechnern und allem, was dazwischenliegt.

    Warum verwendet man FPGAs?

    FPGAs können überall dort eingesetzt werden, wo Datenverarbeitung erforderlich ist. Unter bestimmten Umständen fungieren sie je nach Programmierung und Konfiguration als Mikroprozessoren. In diesem Fall werden sie als „Soft Microprocessors“ bezeichnet. Ein herausragendes Beispiel ist die Implementierung von Microsoft für seine Bing-Suchmaschine, da sie die Effizienz erhöht und sich als kostengünstiger erweist als die Verwendung von Standard-Prozessoren.

    Die Vorteile von FPGAs gegenüber anderen Prozessoren oder Chips liegen darin, dass sie speziell für die vorgesehene Aufgabe programmiert werden können, was ihren Betrieb sehr viel effizienter und leistungsfähiger macht. In diesem Vorteil ist jedoch auch die Schwäche von FPGAs enthalten, nämlich dass sie für jede spezifische Aufgabe konfiguriert werden müssen. Wenn sie dann eine andere Aufgabe erfüllen sollen, müssen sie erneut konfiguriert werden.

    Wie man FPGAs programmiert

    Die Programmierung ist der wichtigste Prozess bei der Arbeit mit einem FPGA, da hier die vom FPGA implementierte Logikfunktion definiert wird. Die Programmierdaten werden in binärer Sprache hochgeladen. Am häufigsten werden die Bits in einem FPGA seriell konfiguriert, d. h. ein Bit nach dem anderen wird auf dem FPGA gespeichert.

    Ein FPGA kann von einem Standard-Betriebssystem aus programmiert werden, wie GNU, Linux, Windows und Mac OS. Windows bietet jedoch die meisten Entwicklungsumgebungen. Die Unternehmen, die FPGAs herstellen, bieten zudem eine komplett integrierte Entwicklungsumgebung an (IDE), mit der man arbeiten kann und in der alle benötigten Tools in einem Softwarepaket gebündelt sind.

    Die FPGAs werdenmit einem Kabel an einen PC angeschlossen, um den geschriebenen Code an den FPGA weiterzuleiten, ähnlich wie es z. B. bei einer Arduino-Platine der Fall ist.

    Für die Konfiguration jedes CLB und seiner Verbindungen sind einige hundert Bits erforderlich. Jedes Konfigurationsbit setzt den Zustand einer statischen Speicherzelle (SRAM), die entweder ein Bit einer Look-up-Table-Funktion steuert, einen Eingang eines Multiplexers auswählt oder den Zustand eines Transistors in eine Verbindung setzt. Sobald er konfiguriert ist, kann der Chip getestet werden. Erwähnenswert ist übrigens auch, dass einige FPGAs eine Rekonfiguration im System selbst ermöglichen. Dies beschleunigt den Testprozess sowie eventuelle Rekonfigurationen.

    FPGAs können aufgrund der Komplexität der Schaltung nicht manuell konfiguriert werden. Daher werden spezielle Programme eingesetzt, die von den Herstellern der FPGAs angeboten werden.

    Das Programm ist in der Regel in der Lage, Schaltkreisbeschreibungen, z. B. in VHDL-Sprache, von anderen Programmen zu empfangen und Programmierdateien zu erzeugen, die zur Konfiguration verwendet werden.

    Zur Programmierung des Chips müssen dann die Informationen aus diesen Konfigurationsdateien in eine Binärsprache umgewandelt und diese Bits in die statischen Speicher des Chips geladen werden.

    Der FPGA kann mit den Programmierdaten über die parallele oder serielle Schnittstelle eines Computers oder über ein PROM geladen werden, das bereits alle Bits enthält, die zur Konfiguration des Chips verwendet werden. Im ersten Fall ist es möglich, die Programmierung des Chips durch den Computer zu steuern, während im zweiten Fall nach dem Laden der Informationen in das PROM eine zusätzliche Schaltung die Dateneingabe steuert.

    Anwendungsgebiete von FPGAs

    Eine der wichtigsten FPGA-Anwendungsbeispiele ist die Telekommunikation. Die Technologie ist von grundlegender Bedeutung für die Ausrüstung optischer Netze (auch OTN-Netze genannt). Sie sind in der Lage, die parallele Verarbeitung bei verschiedenen Frequenzen zu bewältigen. Dies ist eine kritische und grundlegende Voraussetzung für den Betrieb der verschiedenen Arten von Protokollen, die in OTN-Netzen eingesetzt werden.

    Ein weiterer Bereich, der sich durch den Einsatz von FPGAs hervorgetan hat, ist der Bereich Software Defined Radio. Da diese Ressource von einer gut ausgearbeiteten Erfassungs-, Verarbeitungs- und Reaktionsstruktur abhängt, wurden FPGAs aufgrund ihrer Flexibilität bei der Implementierung, Konfiguration und dynamischen Ausführung von Rechenblöcken zur Verarbeitung verschiedener Signale und spezifischer Protokolle bei der Kommunikation über Funkwellen eingesetzt.

    FPGAs werden auch in Satelliten und Raumsonden eingesetzt, primär wegen ihrer Leistung im Bereich der Signalverarbeitung, um die Berechnung von meteorologischen Signalen, Strahlungssignalen und anderen zu ermöglichen.

    Am häufigsten werden FPGAs jedoch als Ko-Prozessoreinheiten eingesetzt. Sie fungieren nicht als Hauptelement der Aktion, sondern werden zur Unterstützung/Beschleunigung von Prozessen eingesetzt, die mehr Zeit und Ressourcen benötigen würden, wenn sie in herkömmlichen Prozessoren (CPUs) ausgeführt würden.

    FPGAs im Vergleich

    Eine der grundlegenden Entscheidungen bei der Entwicklung eines elektronischen Produkts ist die Wahl des zu verwendenden, integrierten Schaltkreises, da sich dieses auf Variablen wie die Kosten des Produkts, seine Leistung, seine Entwicklungsmethode usw. auswirken wird. Diese Entscheidung muss bereits in den frühen Phasen des Entwurfsprozesses getroffen werden.

    Bei der Wahl zwischen verschiedenen integrierten Schaltkreisen sind mehrere Aspekte zu berücksichtigen. Hierzu gehören die Betriebsgeschwindigkeit des Bausteins, die Menge der zu verwendenden Logikressourcen, die Entwurfs- und Herstellungskosten, die Anzahl der zu produzierenden Einheiten oder die Frage, ob der Baustein umprogrammiert werden soll oder nicht.

    Die Vorteile von FPGAs sind zahlreich. Doch bevor man sich für einen integrierten Schaltkreis entscheidet, sollte man einen grundlegenden Vergleich anstellen.

    • FPGA gegenüber CPLD

    Ein FPGA hat einen niedrigeren Preis pro Logikeinheit, obwohl der Preis pro integrierten Schaltkreis höher ist. FPGAs verfügen vergleichsweise über eine höhere Logikdichte, damit können wesentlich komplexere Systeme entwickelt werden; gleichzeitig verfügen sie über integrierte Schaltkreise, die für die Durchführung arithmetischer Operationen optimiert sind, während CPLDs keine solchen Funktionen ausführen.

    • FPGAs gegenüber Mikrocontroller

    Im Gegensatz zu FPGAs führen Mikrocontroller Aufgaben für andere Hardware aus, indem sie Softwareprogramme wie C oder C++ verwenden. Sie können nur eine begrenzte Anzahl von Aufgaben ausführen, da sie bereits genau definierte Anweisungen enthalten.

    Der größte Unterschied besteht vielleicht darin, dass Mikrocontroller Befehle sequenziell verarbeiten, während FPGAs sie gleichzeitig verarbeiten, was sie schneller und wendiger macht.

    • FPGA gegenüber ASIC

    Ein anwendungsspezifischer integrierter Schaltkreis (ASIC) ist ein Chip, der speziell für die Ausführung bestimmter Aufgaben entwickelt wurde; es handelt sich nicht um reprogrammierbare Schaltkreise wie FPGAs.

    Zwar können beide Bausteine zur Erstellung digitaler Schaltungen verwendet werden, aber ASICs sind speziell für diese Aufgaben entwickelt worden. Sie verbrauchen auch weniger Strom und arbeiten schneller. Für einige Anwendungen kann dieser kleine Unterschied ASICs zur einzigen brauchbaren Option machen. Der Entwurfszyklus für einen ASIC ist jedoch zeitaufwendig und teuer, und da sie nicht reprogrammierbar sind, können sie nicht geändert werden und müssen einen strengen Testzyklus durchlaufen. Andererseits bieten FPGAs eine große Flexibilität, da sie reprogrammierbar sind, was die Test-, Validierungs- und Redesign-Zyklen erheblich verkürzt.

    Zusammenfassung: FPGA

    Die kontinuierliche Entwicklung integrierter Schaltungen hat mit FPGAs einen sehr anpassungsfähigen Ansatz ermöglicht. Diese programmierbaren Bausteine sind in allen Bereichen, in denen IT eingesetzt wird, allgegenwärtig, bleiben aber gerade aufgrund ihrer Vielseitigkeit oft unbemerkt.

    fpga

    FPGA Schaltungen & Systeme

    Dieser Leitfaden gibt einen kurzen Überblick darüber, was FPGAs sind, welche Funktion sie haben und welche Vor- und Nachteile sie im Vergleich zu anderen Lösungen bieten. Informieren Sie sich auf unserer Website über die besten FPGAsfür Ihre IT-Projekte sowie über weiteres Entwicklungszubehör.

    FPGA Entwicklungszubehör entdecken

    Empfohlene Artikel