www.wikidata.de-de.nina.az
Ein FPGA Akronym fur Field Programmable Gate Array ist ein integrierter Schaltkreis IC der Digitaltechnik in welchen eine logische Schaltung geladen werden kann Die Bezeichnung kann ubersetzt werden als im Feld also vor Ort beim Kunden programmierbare Logik Gatter Anordnung Anders als bei der Programmierung von Computern Mikrocontrollern oder Steuerungen bezieht sich hier der Begriff Programmierung nicht nur auf die Vorgabe zeitlicher Ablaufe sondern vor allem auch auf die Definition der gewunschten Schaltungsstruktur Diese wird mittels einer Hardwarebeschreibungssprache formuliert und von einer Erzeugersoftware in eine Konfigurationsdatei ubersetzt welche vorgibt wie die physischen Elemente im FPGA verschaltet werden sollen Man spricht daher auch von der Konfiguration des FPGA Ohne diese hat der Baustein keine Funktion FPGAs stellen eine Weiterentwicklung der PLDs dar und kommen in vielen Gebieten der digitalen Elektronik zum Einsatz Ein FPGA des Herstellers AlteraInhaltsverzeichnis 1 Anwendung 2 Aufbau und Struktur 2 1 Weitere Komponenten 2 2 Unterschiede zu CPLDs 2 3 Konfiguration 3 Entwurfsschritte und werkzeuge 3 1 Schaltungsentwurf 3 2 Simulation 3 3 Implementierung und Test 4 Anwendungsbeispiele 5 Geschichte 6 Vergleiche 6 1 Mikroprozessoren 6 2 Vor und Nachteile im Vergleich zu anwendungsspezifischen integrierten Schaltungen ASIC 6 2 1 Vorteile 6 2 2 Nachteile 7 Hersteller von FPGAs 8 Literatur 9 Weblinks 10 EinzelnachweiseAnwendung BearbeitenDurch Konfiguration der intern vorhandenen Elemente konnen in einem FPGA verschiedene Schaltungen und Funktionen realisiert werden Diese reichen von Schaltungen geringer Komplexitat wie z B ein einfacher Synchronzahler oder Interfaces fur Digitalbausteine bis hin zu hochkomplexen Schaltungen wie Speicher Controller und vollstandige Mikroprozessoren FPGAs werden in allen Bereichen der Digitaltechnik eingesetzt vor allem aber dort wo es auf schnelle Signalverarbeitung und flexible Anderung der Schaltung ankommt um beispielsweise nachtragliche Verbesserungen an den implementierten Funktionen vornehmen zu konnen ohne dabei direkt die Hardware andern zu mussen Ein grosses Anwendungsgebiet ist die Erstellung von Prototypen in der ASIC Entwicklung zum vorherigen Test sowie auch der Bereich Maintenance in dem es darum geht Elektroniken fur alte nicht mehr lieferbare digitale Bausteine oder Microcontroller vorzuhalten Mit der Einfuhrung der FPGAs wurden kompakte anwenderspezifische Schaltungen in geringen Stuckzahlen ermoglicht Heute gestatten sie die preiswerte und flexible Fertigung komplexer Systeme wie Mobilfunk Basisstationen als Alternative zur teureren Auftragsfertigung durch Halbleiterhersteller Neben den FPGAs existieren auch FPAAs Field Programmable Analog Array die nicht nur digitale sondern vor allem analoge Funktionsblocke enthalten die vom Anwender programmiert und verschaltet werden konnen Es handelt sich dabei in erster Linie um Filter und HF Bauelemente 1 Aufbau und Struktur Bearbeiten nbsp Logikblock eines FPGA mit 4 bit LUT und optionalem Ausgangs Flipflop nbsp Schaltmatrix als Verbindungsstruktur zwischen LogikblockenDie wesensbestimmende Grundstruktur eines FPGA ist ein Feld engl Array aus Basisblocken mit jeweils einer einfachen programmierbaren Lookup Tabelle LUT und einem 1 Bit Register Flipflop Die LUTs konnen je nach Anzahl der verfugbaren Eingange jede beliebige n stellige Binarfunktion realisieren Die Programmierung der gewunschten Funktion erfolgt durch die Hinterlegung der definierenden Wahrheitstabelle in den SRAM Zellen der LUT die Funktionsberechnung durch das Auslesen der durch die Eingange bestimmten Speicheradresse Lange Zeit waren LUT Strukturen mit 4 binaren Eingangen ublich Neuere FPGAs gehen zur Verringerung des Aufwandes an LUT zu LUT Verbindungen zur Realisierung von Funktionen mit mehr Eingangen auf LUTs mit bis zu 6 Eingangen uber Neben den LUTs ist auf einem FPGA auch die Verschaltung der Komponenten weitgehend frei konfigurierbar Multiplexer Strukturen in den Basisblocken ermoglichen haufig sehr schnelle lokale Signalpfade zur Einbindung oder Umgehung des Flipflops zur Ruckkopplung von dessen Ausgang zur Verbindung von Nachbarblocken und ahnlichem Fur die ferneren Verbindungen liegt zwischen den Basisblocken ein Gitter aus immensen Busstrukturen an das Ein und Ausgange angeschlossen werden konnen Weitere programmierbare Schaltkomponenten in den Kreuzungspunkten des Gitters erlauben die Signalverteilung uber den gesamten Chip Weitere Komponenten Bearbeiten Weitere oft vorzufindende Elemente von FPGA sind Eingangs Ausgangs Blocke engl IO Blocks oder IOB dienen der Kommunikation mit der Aussenwelt Uber sie werden die externen Anschlusse des FPGA mit der internen Schaltmatrix verbunden Sie konnen an die jeweilige Anwendung angepasst werden z B kann die Ausgangsspannung fur den jeweiligen Standard eingestellt werden TTL CMOS usw Spezielle IOB Blocke mit integrierten Serializern gestatten die Anbindung an Hochgeschwindigkeits Busse und DDR Chips Ein oder mehrere Taktgeneratoren erzeugen ausgehend von an den Eingangen zur Verfugung gestellten Takten alle fur die Anwendung benotigten internen Takte Diese konnen gegenuber den Eingangstakten in der Phase verschoben sein und besitzen eine von dem jeweiligen Eingangstakt abgeleitete Frequenz Taktverstarker sowie eine entsprechende Verschaltung sorgen dafur dass jeder verwendete Takt uberall im Chip synchron zur Verfugung steht Moderne FPGAs besitzen typischerweise mehrere Phase locked loops PLL mit denen sich rational gebrochene Taktunterteilungen vervielfachungen erzeugen lassen Den gleichen Zweck erfullen Delay locked loops DLL und digital frequency synthesizer DFS die manche FPGA Hersteller gegenuber der PLL bereitstellen In vielen FPGAs sind zusatzliche fest verdrahtete Funktionen enthalten wie z B Speicherblocke sog Block RAM die sich in vielfaltiger Weise nutzen lassen Fur Aufgaben der digitalen Signalverarbeitung sind viele FPGAs zusatzlich zu den normalen Logikzellen mit DSP Blocken ausgestattet 2 3 Diese erlauben neben der schnellen Multiplikation zweier Zahlen auch die Verwendung als Multiply Accumulate Blocke wie sie insbesondere fur digitale Filter und andere Faltungsoperationen benotigt werden FPGAs die aufwandige Berechnungen vollziehen sollen verfugen mehrere integrierte Mikrocontroller in Form eines Hard Cores welcher z B mit einem C Programm programmiert werden kann FPGAs die besonders hohe Speicheranforderungen haben besitzen mehrere integrierte DDR Controller und neben dem FPGA im gleichen Gehause installierte DDR SDRAM Blocke mit mehreren GB an Speicherflache Man nennt solche integrierten Schaltungen mit mehreren Chips in einem Gehause auch Multi Die Durch weiteres Hinzufugen von komplexen Funktionsblocken wie Ethernetschnittstellen USB Controllern und DDR Controllern entstehen System on a Chip Systeme SoCs die den Aufbau vollstandiger computerahnlicher Systeme ermoglichen Die darin verwendeten unveranderlichen Schaltungen belegen sehr viel weniger Chipflache als die gleiche Funktion benotigt wenn sie mit frei konfigurierbaren Logikblocken realisiert wird Sie sind auch erheblich stromsparender und um ein Mehrfaches schneller Hersteller wie Xilinx bieten mittlerweile auch FPGAs an die bereits uber im Chipgehause untergebrachten Flash Speicher zur Konfiguration verfugen und keinen externen Flash Speicher mehr benotigen Die Lade bzw Startzeiten des FPGA bleiben im Vergleich zu externem Speicher in etwa gleich sind allerdings speziell vom Hersteller optimiert Ein weiterer Vorteil ist der Schutz vor unrechtmassigen Kopien durch das Auslesen des extern befindlichen Speichers Derzeit und auf absehbare Zeit ist es technologisch nicht moglich die SRAM basierten Schalterzellen in einem FPGA direkt wie bei den viel einfacheren CPLDs durch Flash bzw EEPROM Zellen zu ersetzen Unterschiede zu CPLDs Bearbeiten Oft werden FPGAs mit den digitalen und ebenfalls rekonfigurierbaren CPLD Bausteinen Complex Programmable Logic Devices gleichgesetzt bzw verglichen Die wesentlichen Unterschiede zwischen FPGAs und CPLDs sind CPLD gehort noch zur Gruppe der PAL Programmable Array Logic PLA Programmable Logic Array PLD Programmable Logic Device GAL Generic Array Logic hat aber einen komplizierteren Innenaufbau im IC als PAL und GAL Die noch neueren FPGAs gehoren hingegen zu einer anderen Technologie 4 CPLDs weisen im Vergleich zu FPGAs eine wesentlich einfachere Struktur auf Sie besitzen kein feinmaschiges Array Feld von Logikblocken und Flipflops sondern nur eine konfigurierbare Schaltmatrix die verschiedene Eingangssignale zu verschiedenen Ausgangssignalen verbinden kann Die Signale konnen dabei durch logische Operationen wie AND OR verknupft werden Dadurch haben CPLDs eine vom jeweiligen Design unabhangige konstante Signaldurchlaufzeit Durch entsprechende Designmethoden kann auch bei FPGAs eine definierte maximale Durchlaufzeit erreicht werden engl timing constraints CPLDs weisen vergleichsweise wenige Flipflops auf Vor allem langere Schieberegister Zahler Zustandsspeicher und ahnliche Schaltungen die viele Flipflops benotigen sind in CPLDs nur ineffizient zu realisieren CPLDs besitzen da jeder IO Pin ein Flipflop besitzt meist sehr viele IO Pins die in vielen Anwendungen nur teilweise verwendet werden In Anwendungen in denen nur vergleichsweise einfache digitale Schaltungen sogenannte glue logic mit einem hohen Bedarf an IO Pins Verwendung findet sind CPLDs meist die bessere Wahl CPLDs konnen durch ihre einfache Struktur technologisch mit Flash Zellen in den Schaltmatrizen arbeiten Damit ist ein CPLD sofort nach dem Einschalten engl Power Up betriebsbereit wahrend rekonfigurierbare FPGAs mit SRAM basierenden Zellen erst einen Ladezyklus fur die Konfiguration durchlaufen mussen Von einigen Herstellern gibt es aber seit langerem auch FPGAs in Flash Technik Seit Ende der 1990er Jahre ist bei den CPLDs eine Annaherung an die FPGA SRAM Technologie zu beobachten Heute arbeiten die meisten CPLDs intern SRAM basiert Bei einigen CPLD Familien besteht inzwischen das logische Grundelement aus dem FPGA typischen LUT4 Flipflop Verbund Altera MAX II Serie CPLDs weisen durch den einfacheren Aufbau und die geringere Grosse auch einen wesentlich geringeren Stromverbrauch auf Konfiguration Bearbeiten Die Programmierung der Logikelemente kann je nach FPGA unterschiedlich gelost werden Man kann zwischen Methoden unterscheiden die es ermoglichen den FPGA mehrmals zu programmieren und Methoden die nur eine einmalige Programmierung zulassen Bei den mehrmals programmierbaren FPGAs wird die Konfiguration in Speicherzellen z B SRAM EPROM EEPROM Flash gespeichert Bei den einmalig programmierbaren FPGAs werden die physikalischen Eigenschaften der Verbindungswege permanent geandert Antifuse Technologie Diese Technologie bietet im Feld eine grossere Sicherheit gegen aussere Storungen Die Konfiguration der LUTs und der Verbindungsstrukturen bei SRAM basierten FPGAs erfolgt typischerweise einmal vor jedem Einsatz wodurch der FPGA auf eine konkrete Funktion festgelegt wird Das ist notwendig da der FPGA durch Abschalten der Betriebsspannung seine Konfiguration wieder verliert Im Einsatz steht dem FPGA deshalb meist eine Art EPROM zur Seite das die Konfiguration vorhalt und dessen Inhalt selbst auch aktualisierbar ist Der FPGA kann sich selbst aus diesem nichtfluchtigen Speicher beladen Alternativ kann die Konfiguration auch aktiv durch einen Microcontroller oder einen anderen FPGA erfolgen der die Konfiguration in den FPGA schreibt In der Regel behalt der FPGA seine Funktion dann bis zum Abschalten bei Mehr und mehr wird aber auch eine bereichsweise Umprogrammierung von einzelnen FPGA Bereichen im laufenden Betrieb unterstutzt um den Platz im FPGA effektiver zu nutzen und eigentlich festverdrahtete Funktionen zu flexibilisieren Der Vorgang des Konfigurierens des FPGAs wird oft auch als Programmieren bezeichnet was jedoch eine begriffliche Uberschneidung mit dem Entwurf bedingt Entwurfsschritte und werkzeuge Bearbeiten nbsp Ein FPGA der Firma XilinxOftmals wird bei der Entwicklung von FPGA Schaltungen von Programmierung gesprochen Der Begriff ist in diesem Kontext aber anders zu verstehen als es von der Erstellung von Software fur Prozessoren her bekannt ist Im Rahmen des Entwicklungsprozesses erfolgt zunachst ein Schaltungsentwurf gefolgt von einer Prufung der entstandenen Hardwarebeschreibung mittels Simulationswerkzeugen und dann eine Implementierung Place and Route sowie ggf laufzeitbasierende Simulation Erst danach kann die implementierte Schaltung am realen FPGA erprobt werden Schaltungsentwurf Bearbeiten Erstellt wird die Konfiguration eines FPGA entweder grafisch mittels eines Schaltplans engl schematic oder textuell mit einer Hardwarebeschreibungssprache Dies sind primar VHDL oder Verilog welche die gesamte Funktion der Schaltung in Form von Strukturen und Ablaufen beschreibt Die Strukturen und die Verschaltung derselben kann dabei durch Text oder graphische Werkzeuge erfolgen die ahnlich einem Schaltplaneditor arbeiten Ein typisches Werkzeug ist der HDL Designer Daneben bieten fast alle Hersteller in ihrer tool chain grafische Entwurfswerkzeuge an Die im FPGA erforderlichen Ablaufsteuerungen lassen sich durch endliche Automaten darstellen Der beschreibende Code wird entweder als HDL eingegeben oder ebenfalls mit einem grafischen Entwurfswerkzeug in einem Zwischenschritt automatisch erzeugt Daruber hinaus lassen sich mit herstellerunabhangigen grafischen Programmiersystemen wie LabVIEW Matlab Simulink oder dem kostenfreien Logiflash 5 Schaltungsmodule und Ablaufe fur einer FPGA automatisch erstellen In den letzten Jahren versuchten mehrere Projekte Hardwareimplementierungen fur ASICs FPGAs und CPLDs mit der Programmiersprache C HardwareC HandelC BachC zu beschreiben Aktuelle Ansatze bauen direkt auf den weit verbreiteten Standardsprachen ANSI C bzw C oder Python mit MyHDL 6 auf Fur SystemC existieren keine Synthesetools der praktische Nutzen fur konkrete FPGA Entwicklungen liegt bei der abstrakten Verhaltensmodellierung und deutlich beschleunigten Systemsimulationen weshalb es dort zum weitverbreiteten Industriestandard avanciert ist Es gibt auch High Level Synthese Werkzeuge um aus Hochsprachen C C MATLAB Java Python UML einen Entwurf auf Registertransferebene VHDL Verilog zu erzeugen Beispiele sind Catapult C Synthesis von Mentor Graphics CoDeveloper von Impulse Accelerated Technologies Cynthesizer von Forte Design Systems oder das oben erwahnte freie MyHDL Herstellerspezifische Sprachen wie Altera HDL AHDL oder auch die kaum noch verwendete Hardwarebeschreibungssprache ABEL wurden ebenso genutzt wie UDL I Japan Zur Integration eingebetteter Systeme in FPGAs gibt es Werkzeuge die eine Konstruktion auf Funktionsblockebene anbieten z B Xilinx EDK Embedded Development Kit Funktionsblocke wie FIFOs Prozessoren serielle Schnittstellen Ethernet MAC Layer RAM Controller Parallel IO etc werden vom Hersteller zur Verfugung gestellt Diese Funktionseinheiten IP Core genannt liegen manchmal als Quellcode oder meist als verschlusselte Netzliste vor und sind in der Regel parametrierbar z B Baudrate bei seriellen asynchronen Schnittstellen oder Fifo Tiefe oder Breite der Parallelschnittstelle Diese werden uber Busse mit anderen Funktionseinheiten verbunden Fur FPGAs wird beim Schaltungsentwurf ein synchrones Schaltungsdesign empfohlen wenngleich nicht zwingend erforderlich Das bedeutet An allen Flipflops in einer sogenannten Takt Domane engl clock domain liegt der gleiche Takt Gesteuert wird die Datenubernahme in ein FPGA Flipflop am besten nur uber die zusatzlich vorhandenen Clock Enable Eingange und nicht uber geteilte Taktsignale engl gated clocks Das vermeidet schwer handhabbare Laufzeiteffekte Manche FPGAs bieten spezielle Umschalter an die das garantiert storungsfreie glitch freie Wechseln zwischen verschiedenen Taktquellen im Betrieb erlauben Simulation Bearbeiten nbsp Timing Simulation einer digitalen Schaltung mit ModelSimNach und wahrend der Erstellung der Beschreibung erfolgt regelmassig eine funktionale Simulation in der Entwicklungssoftware bei der sichergestellt wird dass die gewunschten Ablaufe eingehalten und alle Elemente korrekt verbunden sind Die erstellte Hardwarebeschreibung wird dazu wie ein konventionelles Programm interpretiert compiliert und von einer Simulationssoftware ausgefuhrt Dabei handelt es sich entweder um eine interne Komponente der Entwicklungssoftware oder ein externes Programm wie z B ModelSim 7 Das Augenmerk liegt bei diesem Schritt hauptsachlich auf der logischen Schaltungsfunktion Es wird z B gepruft dass Schaltfunktionen unter allen Randbedingungen in der gewunschten Weise ablaufen und Ergebnisse die in Registern gespeichert werden zum richtigen Zeitpunkt gelesen und verrechnet werden Dazu wird fur die gesamte Schaltung und bedarfsweise einzelne Module eine Testbench erstellt welche das Logikdesign mit Daten futtert und unterschiedliche Betriebsfalle abdeckt Implementierung und Test Bearbeiten Ausgehend von einer verifizierten Logikschaltung erfolgt dann ein Umsetzen der Netzliste fur das konkrete FPGA wobei auch externe Funktionsblocke die von Drittanbietern angeboten werden und bisher nur als black box existierten eingefugt werden Ebenso konnen bei diesem Schritt Teilschaltungen die zum Testen des FPGAs gedacht sind wie integrierte Logic Analyzer hinzugefugt werden Ein sogenanntes Synthesewerkzeug fuhrt dazu diese Beschreibung wie ein Programm aus und erstellt in mehreren Schritten fur den gewunschten Baustein eine spezifische Netzliste unter Nutzung der in diesem Baustein verfugbaren Ressourcen Unter Anwendung weiterer Randbedingungen wie Platzierungsanweisungen und Zeitvorgaben erfolgt dann letztlich das Verteilen der Funktionsblocke im konkreten FPGA Nach diesem Schritt konnen konkrete Annahmen uber das Zeitverhalten gemacht werden welche fur besondere Zwecke in einer Simulation gepruft werden konnen Vor allem steht nach diesem Schritt fest ob das vom Programmierer vorgegebene Zeitverhalten eingehalten werden konnte oder ob Anderungen notig sind Danach folgt das Umsetzen in ein Programmierfile zum Beladen des FPGAs aus welchem in einem weiteren Schritt ein weiteres Programmierfile erzeugt werden kann das zum Beladen des Flash Speichers dient Anwendungsbeispiele BearbeitenFPGAs haben seit ihren Anfangen ihren Anwendungsbereich von der klassischen Glue Logic also der reinen Verbindungslogik zwischen verschiedenen digitalen Bausteinen zunehmend erweitert und werden heute auch bei mittleren Stuckzahlen fur die Realisierung komplexer digitaler Schaltungen bis hin zu kompletten digitalen Systemen eingesetzt Durch die Rekonfigurierbarkeit von FPGAs direkt beim Endanwender besteht daruber hinaus der wesentliche Vorteil auf aktuelle technische Entwicklungen reagieren zu konnen und die digitalen Schaltungen durch Updates anpassen zu konnen ohne direkt die zugrundeliegende Hardware der FPGA Chips verandern zu mussen FPGAs werden beispielsweise zur Echtzeit Verarbeitung von einfachen bis komplexen Algorithmen genutzt zur digitalen Signalverarbeitung im Rahmen von digitalen Filtern oder zur schnellen Fourier Transformation Aber auch Protokoll Implementierungen wie Teile des Ethernet MAC Layers die Kodierung von digitalen Videosignalen die Verschlusselung von Daten und Fehlerkorrekturverfahren sind Anwendungsgebiete Besonders in Bereichen in denen Algorithmen bzw Protokolle einer schnellen Weiterentwicklung unterliegen ist die Verwendung rekonfigurierbarer FPGAs statt ASICs angebracht Die Vorteile sind schnelle Marktreife die Moglichkeit nachfolgender Fehlerbehebungen Anpassung an neue Entwicklungen Fur einige Klassen von Rechenproblemen sind auch FPGA basierte Parallelcomputer sehr geeignet Das wahrscheinlich bekannteste Beispiel sind FPGA Rechner zum Brechen kryptographischer Verfahren wie dem Data Encryption Standard DES Der aus 120 FPGAs bestehende Parallelrechner COPACOBANA ist ein solcher Parallelcomputer zum Codebrechen Die inzwischen erreichbare Anzahl von Logikblocken erlaubt die Integration mehrerer eingebetteter Computersysteme in einen einzigen FPGA Baustein inklusive CPU s Bussystem en RAM ROM RAM Controller Peripherie Controller etc Solche kompletten Systeme werden als System on a Chip SoC bezeichnet Auf Grund ihrer Rekonfigurierbarkeit bilden die SRAM und Flash basierten FPGAs die Grundlage fur rekonfigurierbare Computer Digitale Speicheroszilloskope werden oft mit FPGAs realisiert da deren Stuckzahlen meist zu gering sind um fur alle schnellen Komponenten einen ASIC zu entwerfen Diese verwenden pro Kanal mehrere A D Wandler parallel welche das zu messende Signal phasenverschoben abtasten Das erfordert ein sehr hohes Mass an paralleler Datenverarbeitung und speicherung wofur FPGAs gut geeignet sind Oszilloskope auf FPGA Basis konnen beispielsweise auf sehr kurze Impulse unterhalb der Abtastrate der A D Wandler triggern oder diese zahlen Ein Vorteil bei der Verwendung von FPGAs liegt generell auch darin dass anders als bei DSPs verhaltnismassig geringe Entwicklungskosten bei Neuentwurfen entstehen falls einer der verwendeten ICs nicht mehr erhaltlich ist und dessen Funktion in einen existenten Baustein integriert werden kann FPGAs werden sehr haufig auch als Entwicklungsplattform fur den digitalen Teil von ASICs verwendet um die Funktion zu verifizieren Das ist notig da aufgrund der Komplexitat heutiger Schaltungen alleinige Simulationen zu zeitaufwandig waren Viele Veroffentlichungen aus unterschiedlichsten Anwendungsgebieten berichten uber Migration einer Anwendung von Software nach Configware mit Beschleunigungsfaktoren von einer bis zu vier Grossenordnungen Deshalb finden FPGAs Eingang beim Reconfigurable Computing und beim Ersatz von Mikrocontrollern Ein besonders auf FPGA Entwicklungsysteme zugeschnittener Tochterkartenstandard ist die FPGA Mezzanine Card FPGAs kommen auch beim Krypto Mining zum Einsatz Dabei werden Kryptowahrungen wie beispielsweise Bitcoin Litecoin Ethereum oder Monero geschurft 8 Die Hardwareplattform MiSTer benutzt FPGAs um eine grosse Anzahl an alteren Computern Spielkonsolen und Arcade Automaten zu simulieren Geschichte BearbeitenAls Field Programmable Gate Array wurden zunachst zu Beginn der 1980er Jahre einfache Anordnungen von Logikgattern bezeichnet z B das 82S150 151 Signetics Valvo Dabei handelte es sich um Schaltungen ohne Flipflops oder Lookup Tabellen welche mittels Fuse Technologie einmalig programmiert werden konnten 9 FPGAs im heutigen Sinne entwickelten sich Mitte der 1980er Jahre als eigener Teilbereich von Halbleiterbauelementen Als Vorlaufer der FPGAs kann entfernt die schaltungstechnische Kombination von Programmable Read Only Memory PROM und programmierbaren logischen Schaltungen englisch programmable logic device PLD betrachtet werden 10 Die Kombination von reprogrammierbaren Speicherelementen zur Realisierung von logischen Verknupfungen in Form eines Array auf einem Halbleiterchip wurde von David Westminster Page und LuVerne R Peterson 1985 patentiert aber nicht kommerziell umgesetzt 11 12 Der erste kommerziell verfugbare FPGA war der Baustein XC2064 der von Ross Freeman und Bernard Vonderschmitt beide Grunder des Unternehmens Xilinx im Jahr 1985 entwickelt wurde 13 Der XC2064 bestand aus 64 konfigurierbaren Logikblocken sogenannten Configurable Logic Blocks CLBs mit je einer Lookup Tabelle LUT mit drei Eingangen Die Logikblocke waren in einer 8 8 Matrix Array angeordnet und konnten uber schaltbare Verbindungsleitungen kontaktiert werden Im Jahr 2009 wurde Freeman fur die Entwicklung des ersten FPGAs in die US amerikanische National Inventors Hall of Fame aufgenommen 14 Vergleiche BearbeitenMikroprozessoren Bearbeiten FPGAs bilden je nach Konfiguration beliebige Anordnungen digitaler Schaltungsfunktionen ab und bieten damit grundsatzlich die Moglichkeit Informationen vollkommen parallel zu verarbeiten So konnen die anfallenden Datenflusse in Bandbreite und Informationstiefe optimal einander angepasst werden Schnell zu erfassende Signale werden dabei oft voll parallel mit Kopien identischer Schaltungsblocke langsamer auftretende Signale vermehrt zyklisch mit einer einzigen Schaltung und damit platzsparend verarbeitet Externe Prozessoren konnen dagegen mit wenig Hardware sehr komplexe und verschachtelte Programme sequentiell abarbeiten Bei einem FPGA musste fur jede Operation ein eigenes Stuck Hardware synthetisiert werden wobei sich die eingeschrankte Anzahl an Logikgattern begrenzend auswirkt zudem ist der Aufbau einer vergleichbar flexiblen Struktur ausserst schwierig und zeitaufwandig Daher bedient man sich bei komplexeren Aufgaben einer sogenannten soft core CPU die in das FPGA Design eingebunden wird Diese gleicht den externen CPUs und stellt eine standardisierte Struktur bereit die in klassischer Weise in C programmiert werden Heutige FPGAs sind teilweise so leistungsfahig dass man eine Vielzahl an 8 16 oder 32 Bit CPU Kernen integrieren kann Allerdings beanspruchen komplexere CPU Kerne je nach Konfiguration recht viele Logikressourcen was sich neben den Kosten in relativ geringer Verarbeitungsleistung verglichen mit Standardprozessoren niederschlagt Daher gibt es inzwischen FPGAs die einen oder mehrere hardware basierte CPU Kerne enthalten Nach ersten Anlaufen mit ARM 9 Altera und PowerPC405 Xilinx geht der Trend seit 2010 in Richtung ARM Cortex Architektur Bei Altera und Xilinx haben sich sogenannte SoC FPGAs mit Dual Core Cortex A9 und fest integrierter Peripherie etabliert Xilinx bietet in der High End Klasse mit der UltraScale Familie Bausteine an die zwei CPU Cluster QuadCore Cortex A53 und DualCore Cortex R5 enthalten Microsemi hingegen integriert RISC V Prozessoren vier Linux taugliche RV64GC Kerne und einen RV64IMAC Kern fur Echtzeitanwendungen in seine Polar Fire Familie Im Gegensatz zu FPGAs sind Single Core Prozessoren reine endliche Zustandsautomaten die mit einer festgelegten Hardware auskommen mussen und ihr Programm sequentiell abarbeiten woraus sich auch wesentliche Unterschiede bei der Implementierung von Algorithmen ergeben Mikroprozessorbausteine beinhalten neben dem eigentlichen Prozessorwerk in der Regel eine feste Peripherie die direkt genutzt werden kann und fur viele Standardanwendungen ausreichend ist Moderne Prozessoren mit SIMD Befehlen wie zum Beispiel der Intel i7 3930K verarbeiten bis zu 96 Gleitkommabefehle parallel 48 Additionen 48 Multiplikationen der erreichbare Durchsatz liegt mit 3 2 GHz bei theoretisch etwa 300 GFlops von denen 250 GFlops bei praxisrelevanten Aufgaben erreichbar sind Aktuelle FPGAs konnen mit Taktfrequenzen von 500 MHz zehntausende Festkommaadditionen bis 48 bit und tausende Festkommamultiplikationen bis 18 25 bit zur gleichen Zeit ausfuhren Damit ist fur Aufgaben die sich mit Festkommaarithmetik bearbeiten lassen eine um den Faktor 2 bis 3 hohere Verarbeitungsleistung moglich bei deutlich geringerer Leistungsaufnahme Vor und Nachteile im Vergleich zu anwendungsspezifischen integrierten Schaltungen ASIC Bearbeiten Vorteile Bearbeiten Deutlich geringere Entwicklungskosten im Gegensatz zu ASICs werden keine Masken mit sehr hohen Fixkosten benotigt bei Prototypen und Kleinserien sehr kostengunstig Dynamisches applikationsspezifisches Laden unterschiedlicher Hardware Designs Kurzere Implementierungszeiten Einfach korrigier und erweiterbar rekonfigurierbar Geringeres Designrisiko da es nicht lange vor der Hardwareauslieferung fertig sein muss flexible IO Ports und Standards d h bei technischen Anderungen der Umgebung anpassbar Nachteile Bearbeiten Ab mittleren Stuckzahlen hoherer Stuckpreis als ASICs Geringere Taktraten aktuell verfugbar bis 1 5 GHz typisch werden 20 500 MHz realisiert digitale ASICs bieten gt 3 GHz Geringere Logikdichte ca 10 facher Flachenbedarf gegenuber ASIC gleicher Technologie Geringere mogliche Komplexitat der programmierbaren Logik Deutlich hoherer Leistungsbedarf fur gleiche Menge an Logik bzw Funktionen Hohere Empfindlichkeit gegenuber Teilchenstrahlung und elektromagnetischen Wellen da uber RAM Zellen und nicht durch Hartverdrahtung programmiert Geringere Flexibilitat was Ausstattung z B mit eingebettetem Speicher oder analogen Elementen angeht aber auch bei IO Buffern Der kurzere Designzyklus und die Moglichkeit sehr spat noch Fehler korrigieren zu konnen verleiten dazu im Vorfeld weniger funktionale Tests durchzufuhren SRAM basierte FPGAs das sind z B alle von den Marktfuhrern Xilinx und Altera angebotenen mussen bei jeder Spannungsunterbrechung neu geladen werden Das bedeutet dass die Funktionalitat nicht direkt nach dem Einschalten zur Verfugung steht Das Laden kann je nach eingesetzter Technik bis zu einigen Sekunden dauern Handelt es sich nicht um spezielle FPGAs mit integriertem Flashspeicher sind dazu zusatzliche externe Komponenten notwendig z B ein herstellerspezifisches EEPROM oder Flash Speicher das die Konfiguration enthalt oder ein Mikrocontroller mit zusatzlichem Flash Speicher der den Ladevorgang durchfuhrt Hersteller von FPGAs BearbeitenAeroflex Strahlungsresistente FPGAs Achronix Semiconductor Sehr schnelle FPGAs bis 1 5 GHz in 22 nm Abound Logic Stromsparende FPGAs mit hoher Logikdichte Cologne Chip AG Deutscher Anbieter von Low Power FPGAs mit neuartiger Architektur Efinix Anbieter von Low Power SRAM FPGAs mit einzigartiger Quantum Architektur fur geringe Verlustleistung und kleine Gehause GOWIN Semiconductor FPGAs mit geringer Zahl an Logikblocken nichtfluchtige und SRAM basierte SoC mit Bluetooth Intel PSG fruher Altera Anbieter eines Migrationspfads vom FPGA zu strukturierten ASICs Lattice Anbieter eines freien 32 Bit Open Source SoftCore Prozessors sowie von GAL Technik Hat SiliconBlue aufgekauft 15 Stromsparende FPGAs der iCE Familie Microchip fruher Atmel amp Actel bzw Microsemi FPGAs auch mit zusatzlich integriertem RAM und AVR Mikrocontroller NanoXplore Strahlungsresistente FPGAs QuickLogic seit 1988 Anbieter von stromsparenden FPGAs Xilinx seit 2022 AMD seit 1984 FPGA Produzent Marktfuhrer bietet das am weitesten ausgebaute SOPC System 2022 von AMD ubernommenLiteratur BearbeitenRajeev Murgai u a Logic Synthesis for Field Programmable Gate Arrays Springer 2012 ISBN 978 1 4613 5994 4 Zoran Salcic u a Digital Systems Design and Prototyping Using Field Programmable Logic Springer 1997 2013 ISBN 978 1 4613 7807 5 Uwe Meyer Baese Digital Signal Processing with Field Programmable Gate Arrays Signals and Communication Technology 4th Edition 2014 Springer ISBN 978 3 642 45308 3 Esteban Tlelo Cuautle u a Engineering Applications Of Fpgas Chaotic Systems Artificial Neural Networks Random Number Gener Springer 2016 ISBN 978 3 319 34113 2 Weblinks Bearbeiten nbsp Commons Field programmable gate arrays Sammlung von Bildern Videos und Audiodateien FPGA Grundlagen bei mikrocontroller net FAQ von comp arch fpga Liste mit haufig gestellten Fragen englisch FPGA Datenbank des Unternehmens So Logic englisch Zur Einfuhrung von FPGA in den US Markt auf computerhistory englisch Einzelnachweise Bearbeiten Martin J W Schubert Praktikumsversuch Field Programmable Analog Array FPAA PDF 445 kB Electronics Laboratory Regensburg University of Applied Sciences abgerufen am 25 Juli 2020 englisch 1 Xilinx User Guide 7 Series DSP48E1 Slice PDF abgerufen am 10 Oktober 2020 2 Altera Whitepaper Enabling High Performance DSP Applications with Stratix Variable Precision DSP Blocks PDF abgerufen am 10 Oktober 2020 Erwin Bohmer Dietmar Ehrhardt Wolfgang Oberschelp Elemente der angewandten Elektronik Vieweg Verlag Wiesbaden 2007 15 Auflage Anmerkungen zu PAL PLD GAL CPLD S 418 Damm Klauer Waldschmidt LogiFlash Goethe Universitat Frankfurt am Main 2018 abgerufen am 21 Juli 2020 MyHDL open source HDL MYHDL ORG 2020 abgerufen am 21 Juli 2020 englisch ModelSim Mentor 2020 abgerufen am 21 Juli 2020 englisch Business Wire dt BitHull uberholt den ASIC Markt mit neuen FPGA Minern In wallstreet online de 3 April 2020 abgerufen am 13 Oktober 2020 http www bitsavers org components signetics dataBooks 1981 Integrated Fuse Logic pdf pdf Signetics Integrated Fuse Logic Nov 1981 PDF bitsavers org abgerufen am 4 Okt 2020 History of FPGAs Nicht mehr online verfugbar VT EDU 13 Juni 2006 archiviert vom Original am 13 Juni 2007 abgerufen am 11 Juli 2013 englisch Patent US4508977 Re programmable PLA Veroffentlicht am 2 April 1985 Erfinder David W Page LuVerne R Peterson Patent US4524430 Dynamic data re programmable PLA Veroffentlicht am 18 Juni 1985 Erfinder David W Page Xilinx ASIC vendors talk licensing Abgerufen am 11 Juli 2013 National Inventors Hall of Fame Ross Freeman Nicht mehr online verfugbar Archiviert vom Original am 25 September 2012 abgerufen am 11 Juli 2013 Lattice Semiconductor Acquires Chipmaker SiliconBlue For 62 Million In Cash In TechCrunch 9 Dezember 2011 abgerufen am 11 April 2019 englisch Normdaten Sachbegriff GND 4347749 5 lobid OGND AKS Programmierbare LogikKonzepte ASIC SoC FPGA CLB CPLD EPLD PLA PAL GAL PSoC Reconfigurable Computing Xputer Soft microprocessor Circuit underutilization High level synthesis HardwarebeschleunigungProgrammiertechnik Masken programmiert Antifuse EPROM E PROM Flash SRAMProgrammiersprachen Verilog A AMS VHDL AMS VITAL SystemVerilog DPI SystemC AHDL Handel C PSL UPF PALASM ABEL CUPL OpenVera C to HDL Flow to HDL MyHDL JHDL ELLAHersteller Accellera Actel Achronix AMD Aldec Atmel Cadence Cypress Duolog Forte Intel Altera Lattice National Mentor Graphics Microsemi Signetics Synopsys Magma Virage Logic Texas Instruments Tabula XilinxProdukte Hardware iCE Stratix Cyclone Arria Max Kintex Zynq VirtexSoftware Intel Quartus Prime Xilinx ISE Xilinx Vivado ModelSim VTRIP Proprietar ARC ARM Cortex M PowerPC LEON LatticeMico8 MicroBlaze PicoBlaze Nios Nios IIOpen Source JOP LatticeMico32 OpenCores OpenRISC RISC V Zet Abgerufen von https de wikipedia org w index php title Field Programmable Gate Array amp oldid 237267528