Grundzüge und Vorteile von FPGAs und programmierbaren SoCs

| Autor / Redakteur: Steve Carr * / Sebastian Gerstl

Ein LOGI-Board von Premier Farnell, dass Einplatinenrechner wie Raspberry Pi oder Beagle Board Black um die Flexibilität und den Funktionsumfang eines FPGAs erweitert. Dank ihrer Wiederprogrammierbarkeit und ihrer zunehmenden Komplexität lösen FPGAs und Programmierbare SoCs herkömmliche Prozessor- oder Mikrocontroller-basierte Systemlösungen zunehmend ab.
Ein LOGI-Board von Premier Farnell, dass Einplatinenrechner wie Raspberry Pi oder Beagle Board Black um die Flexibilität und den Funktionsumfang eines FPGAs erweitert. Dank ihrer Wiederprogrammierbarkeit und ihrer zunehmenden Komplexität lösen FPGAs und Programmierbare SoCs herkömmliche Prozessor- oder Mikrocontroller-basierte Systemlösungen zunehmend ab. (Bild: Premier Farnell)

Programmierbarkeit ist zu einem zentralen Begriff der Elektronikbranche geworden. Entwicklung von Embedded-Softwarelösungen macht mittlerweile einen Großteil der Budgets aus. Bausteine, die auf Hardware-Ebene konfigurierbar sind, erfreuen sich zunehmender Beliebtheit – und machen den Einsatz klassischer Prozessoren zunehmend überflüssig.

Field Programmable Gate Arrays (FPGAs) sind die Antwort der Branche auf maßgeschneiderte Schaltkreise (ICs) ohne die Entwicklungskosten, die normalerweise mit der Entwicklung eines ASIC einhergehen. Ihre Architektur unterstützt den Einsatz von anwendungsspezifischen digitalen Logiken, die eine wesentlich höhere Leistung erbringen können als ein Mikroprozessor mit der gleichen Aufgabe auf Software-Ebene.

Die Leistung gehört zu den zahlreichen Gründen dafür, warum FPGAs heutzutage so beliebt sind. Ihre Vorteile gehen aber noch viel weiter, weshalb sie sich für nahezu alle Anwendungsbereiche eignen.

Was ist ein FPGA?

Anders als herkömmliche integrierte Schaltkreise (ICs), bei denen ein Großteil der Funktionen festgelegt ist, ist ein FPGA ein vergleichsweise unbeschriebenes Blatt. Der Begriff „Gate Array“ bezieht sich auf die Logikgatter, die so konfiguriert werden können, dass sie digitale Schaltkreise wie Schaltungen, Addierer oder Multiplikatoren erzeugen. Diese lassen sich wiederum kombinieren, um noch komplexere digitale Funktionen zu erstellen. Zudem ist es möglich, einen umfassenden Mikrocontroller in einer FPGA-Struktur umzusetzen, wodurch sich Stückkosten und somit auch die Gesamtkosten eines Produkts reduzieren lassen.

Während die Anordnung von Gattern erklärt, was innerhalb eines FPGA passiert, nutzen die Bausteine in vielen Fällen Look-up-Tabellen, um die Ausgangsleistung eines Karnaugh-Diagramms nachzustellen. Dieses Diagramm dient zur übersichtlichen Darstellung und Vereinfachung Boolescher Funktionen. Die Anzahl der Elemente in einer Look-up-Tabelle (von Herstellern oftmals als LUT abgekürzt) bestimmt im Endeffekt, wie komplex die entsprechende Boolesche Funktion sein kann.

Heute verfügen Bausteine über Tausende LUTs. Glücklicherweise sind Entwickler jedoch nicht mehr für die Übersetzung von Logikausdrücken in der Look-up-Tabelle verantwortlich – das macht die Entwicklungsumgebung des Herstellers. Sie ist auch für die Konfiguration eines FPGA verantwortlich (aus Leistungssicht) und entscheidet, welche Funktion wo im Gerät untergebracht wird. Diese Planung, im Englischen auch „Floor Planning“ genannt, ist nicht nur für die Leistungsoptimierung wichtig, sondern trägt auch zur Maximierung der Auslastung eines Geräts bei. Aus diesem Grund wird die Technologie von FPGA-Herstellern wohl gehütet. Das Front-End-Design kann jedoch oftmals durch verschiedene Entwicklungsumgebungen von anderen Anbietern bearbeitet werden, was es Entwicklern ermöglicht, die Umgebung ihrer Wahl zu verwenden.

Das erstreckt sich sogar auf die Art und Weise, wie das Design eingegeben wird. Die Branche unterstützt zwei Sprachen, die speziell für die Entwicklung von Hardware konzipiert wurden; VHDL und Verilog. Hierbei handelt es sich um sogenannte Hardwarebeschreibungssprachen (HDLs), da diese die Logikfunktionen und deren Verbindungen buchstäblich so beschreiben, wie höhere Programmiersprachen es in der Software-Entwicklung tun. Eine der beliebtesten Sprachen aus dem Bereich der Software-Entwicklung, C++, wurde zu angepasst und erweitert, dass sie als HDL verwendet werden kann. Hier ist sie unter dem Namen SystemC bekannt. Anders als Softwaresprachen funktionieren HDLs zeitgleich; das heißt, die gesamte beschriebene Hardware läuft zur gleichen Zeit, unabhängig davon, wo sie im Verzeichnis auftaucht. Dieser gleichzeitige Betrieb gehört zu den wichtigsten Konzepten, die Entwickler für die Entwicklung von FPGAs (oder ASICs) verstehen müssen.

Ebenso wie auch HDLs können FPGAs mithilfe einer herkömmlichen Schaltungserfassung entwickelt werden. Aufgrund ihrer zunehmenden Komplexität und Kapazität ist es heutzutage oftmals jedoch praktikabler, komplexe FPGAs auf Makroebene mithilfe vorab entwickelter (und geprüfter) Funktionen innerhalb einer Entwicklungsumgebung aufzusetzen.

Führende Anbietern von FPGAs, darunter Xilinx und Intel (nach dessen Übernahme von Altera), bieten zu diesem Zweck ganze Bibliotheken an Logikblöcken (auch IP, Intellectual Property) an. Auch unabhängige Unternehmen entwickeln IP; in vielen Fällen handelt es sich hierbei um die gleiche IP wie sie ASIC-Entwickler in maßgeschneiderten Chipdesigns verwenden würden.

Zunehmende Flexibilität, geringere Designkomplexität

Programmierbare Logikbausteine gibt es bereits sehr mehreren Jahrzehnten. Mit der Zeit sind sie jedoch immer komplexer geworden. Ihr reguläres Aufbaumuster hat es der Halbleiterindustrie zudem ermöglicht, Innovationen voranzutreiben. Somit gehören FPGAs in der Regel zu den ersten um Handel erhältlichen ICs, die im Rahmen modernster Prozesse hergestellt werden.

Ihre grundsätzlich hohe Leistungsfähigkeit und kurzen Entwicklungszyklen (im Vergleich zu maßgeschneiderten ASICs) machen sie zu einer beliebten Lösung für Anwendungen, bei denen die Leistung im Vordergrund steht und der Wettbewerb groß ist, wie z. B. in der Telekommunikationsbranche. Aktuell integrieren immer mehr FPGA-Hersteller neben den üblichen konfigurierbaren Strukturen festgelegte Versionen. Das liefert Entwicklern die Flexibilität eines FPGA und den Komfort einer vorab konfigurierten Funktion, wodurch auch die Anzahl der möglichen Einsatzbereiche steigt.

Da FPGAs im Rahmen modernster Herstellungsprozesse gefertigt werden, bieten sich auch hier Vorteile. Dazu gehört natürlich eine höhere Transistordichte, jedoch auch eine geringere Leistungsfähigkeit. Schon früh wurden FPGAs für ihren relativ hohen Stromverbrauch im Vergleich zu Bausteinen mit festen Funktionen kritisiert; dies ließ sich jedoch nicht vermeiden, da für die gleiche Funktion typischerweise wesentlich mehr Transistoren eingesetzt werden mussten. Die Halbleiterindustrie hat sich jedoch darauf konzentriert, die Leistungsdichte in den Fertigungsprozessen zu reduzieren, um mehr Transistoren integrieren zu können. Das Ergebnis ist, dass FPGAs heute einen sehr geringen Stromverbrauch aufweisen können und somit für eine Vielzahl von Anwendungen in Frage kommen – sogar für batteriebetriebene Geräte.

So bieten die FPGAs der Produktreihe Spartan-7 von Xilinx 30 Prozent mehr Leistung als bisherige Generationen, verbrauchen dabei jedoch nur halb so viel Strom.

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben
Diese beiden Sätze sollte man sich speichern und in den einschlägigen FPGA-Foren in die Diskussion...  lesen
posted am 15.11.2017 um 13:45 von fpgaengineer


Mitdiskutieren
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45003991 / FPGA)