Ein Field Programmable Gate Array (FPGA; engl. [im] Feld [/Einsatz] programmierbare [Logik-] Gatteranordnung) ist ein integrierter Schaltkreis der Digitaltechnik, in den eine logische Schaltung programmiert werden kann.
Eine analoge Schaltung zur Verarbeitung ist deutlich schneller als eine prozessorbasierte Schaltung. Auf der einen Seite sind Softwarelösungen flexibel und universell einsetzbar, auf der anderen Seite können Hardwarelösungen, zugeschnitten auf ein spezielles Problem, wesentlich schneller arbeiten. Ein FPGA vereint beide Vorteile in sich. Als Hardware können Signale mit Basisblöcken (Gatter, Logikelemente etc.) parallel und damit schnell verarbeitet werden, jedoch kann ein FPGA zusätzlich mit Hilfe einer Software programmiert und flexibel rekonfiguriert werden.
Funktion
Ein FPGA kann somit, ohne die genaue Anwendung vorher in einer Maske festgelegt haben zu müssen, quasi als Standardbaustein produziert werden. Die Programmierung erfolgt dann nach der Herstellung direkt vom Anwender. Es ist möglich ein FPGA auch in einem System, also in einer voll bestückten Platine, zu programmieren (z.B. Firmware-Updates). Da der gleiche Baustein für viele verschiedene Schaltungen verwendet werden kann, lässt er sich in größeren Stückzahlen produzieren und ist aufgrund seiner Flexibilität bis hin zu mittleren Stückzahlen kostengünstiger als speziell auf eine Schaltung zugeschnittene „Kundenchips“ (z.B. ASIC). Nachteilig ist jedoch, dass Komplexität, im Vergleich zu eben jenen spezialisierten Chips, beschränkt bleibt. Der spezialisierte Chip erledigt seine spezielle Aufgabe schneller und deutlich effizienter auch im Hinblick auf Chipgröße und Energieverbrauch.
Anwendung
Nichtsdestotrotz sind FPGA-Lösungen weit verbreitet. Ihr Anwendungsgebiet liegt dabei besonders in Bereichen, wo es auf schnelle Signalverarbeitung und flexible Änderungen der Schaltung ankommt, um Funktionen rekonfigurieren zu können, ohne die Hardware auszutauschen. Besonders im Prototyping-Bereich stechen FPGAs hervor, zunehmend auch in eingebetteten Systemen (Datenverarbeitung, Kommunikation) oder als Coprozessor. Zudem bieten FPGAs die Möglichkeit Informationen im großen Umfange parallel zu verarbeiten. Im Gegensatz zu Pozessoren, die sequentiell arbeiten, können so hunderte Rechenoperationen zur gleichen Zeit ausgeführt werden.
Die Realisierung von selbst-konfigurierenden Systemen wurde durch FPGAs gar erst möglich gemacht. Diese Systeme konfigurieren sich zur Laufzeit entsprechend der geforderten Eigenschaften (z.B. spezielle Algorithmen) um und erreichen damit bisher unerreichte Verarbeitungsgeschwindigkeiten und Parallelität.
Hersteller
Die größten Hersteller von FGPA-Chips sind XILINX und ALTERA, die Lösungen im „High-End-Bereich“ anbieten und mehr als 80% des Marktes einnehmen. Im kostengünstigeren Bereich streiten sich eine Vielzahl von Mitbewerbern um Marktanteile (z.B. LATTICE, ACTEL und ATMEL).
Fazit
Vorteile:
- Flexibilität
- beliebig oft konfigurierbar(bis auf Antifuse-Lösungen)
- nachfolgende Fehlerbehebungen möglich
- schnelle Anpassung an neue Entwicklungen
- dynamische und partiell dynamische Rekonfiguriereung
- schnelle Marktreife
- Parallelität
- kostengünstig bis hin zu mittleren Stückzahlen
Nachteile:
- geringere Logikdichte (als z.B. ASICs)
- höhere Verzögerungszeiten
- größere Hardware
- höherer Energieverbrauch
- teuer bei hohen Stückzahlen
Quellen: Universität Erlangen Nürnberg | Fachhochschule Köln | Mikrocontroller.net