Feldprogrammierbares Gate-Array


A Feldprogrammierbares Gate-Array (FPGA) ist ein Integrierter Schaltkreis Entwickelt, um von einem Kunden oder Designer nach der Herstellung konfiguriert zu werden - daher der Begriff Feldprogrammierbar. Die FPGA -Konfiguration wird im Allgemeinen mit a angegeben Hardware -Beschreibung Sprache (HDL), ähnlich wie für ein verwendet Anwendungsspezifische integrierte Schaltung (ASIC). Schaltpläne wurden zuvor verwendet, um die Konfiguration anzugeben, dies wird jedoch aufgrund des Aufkommens von zunehmend seltener elektronische Designautomatisierung Werkzeug.
FPGAs enthalten eine Auswahl von programmierbar Logikblöckeund eine Hierarchie rekonfigurierbarer Verbindungen, die es mit zusammenem Verdrahtung von Blöcken zusammenstellen. Logikblöcke können so konfiguriert werden, dass Komplexe durchgeführt werden Kombinationsfunktionen, oder handeln so einfach Logik -Tore wie UND und Xor. In den meisten FPGAs umfassen auch Logikblöcke auch Speicherelemente, was einfach sein kann Flip Flops oder vollständigere Speicherblöcke.[1] Viele FPGAs können neu programmiert werden, um unterschiedliche Implementierungen zu implementieren Logikfunktionenflexibel zulassen Rekonfigurierbares Computer wie in Computer Software.
FPGAs spielen eine bemerkenswerte Rolle in Eingebettetes System Entwicklung aufgrund ihrer Fähigkeit, die Entwicklung von Systemsoftware (SW) gleichzeitig mit Hardware (HW) zu starten, Systemleistungsimulationen in einer sehr frühen Phase der Entwicklung zu aktivieren und verschiedene Versuche und Iterationen für Systempartitionierung (SW und HW) zu ermöglichen Die Systemarchitektur.[2]
Geschichte
Die FPGA -Industrie sprießte aus Programmierbares schreibgeschütztes Speicher (Prom) und Programmierbare Logikgeräte (PLDs). Proms und PLDs hatten beide die Möglichkeit, in Chargen in einer Fabrik oder im Feld programmiert zu werden (Feldprogrammierbar). Die programmierbare Logik war jedoch fest verdrahtet zwischen den Logik-Toren.[3]
Altera wurde 1983 gegründet und lieferte 1984 das erste neuprogrammierbare Logikgerät der Branche-The EP300-mit einem Quarzfenster in dem Paket, das es den Benutzern ermöglichte, eine ultraviolette Lampe auf dem Würfel zu lenken, um die zu löschen Eprom Zellen, die die Gerätekonfiguration hielten.[4]
Xilinx Mitbegründer Ross Freeman und Bernard Vonderschmitt erfand das erste kommerziell tragfähige Feldprogrammierbar Gate -Array 1985 - der XC2064.[5] Der XC2064 verfügte über programmierbare Gates und programmierbare Verbindungen zwischen Gates, den Anfängen einer neuen Technologie und eines neuen Marktes.[6] Der XC2064 hatte 64 konfigurierbare Logikblöcke (CLBs) mit zwei Drei-Eingänge Nachschlagetabellen (LUTS).[7] Mehr als 20 Jahre später wurde Freeman in die eingetragen Nationale Erfinder Hall of Fame für seine Erfindung.[8][9]
1987 die Marine -Oberflächenkriegs -Zentrum finanzierte ein von Steve Casselman vorgeschlagener Experiment, um einen Computer zu entwickeln, der 600.000 neu programmierbare Tore implementieren würde. Casselman war erfolgreich und ein Patent im Zusammenhang mit dem System wurde 1992 ausgestellt.[3]
Altera und Xilinx waren unangefochten und wuchsen von 1985 bis Mitte der neunziger Jahre schnell zu, als die Konkurrenten einen erheblichen Teil ihres Marktanteils erodierten. Bis 1993 Actel (jetzt Microsemi) diente etwa 18 Prozent des Marktes.[6]
Die 90er Jahre waren eine Zeit des schnellen Wachstums für FPGAs, sowohl in der Kreislaufkompetenz als auch im Produktionsvolumen. In den frühen neunziger Jahren wurden FPGAs hauptsächlich in verwendet Telekommunikation und Networking. Bis zum Ende des Jahrzehnts fand FPGAs ihren Weg in die Anwendungen von Verbraucher-, Automobil- und Industrieanwendungen.[10]
Bis 2013 entsprachen Altera (31 Prozent), Actel (10 Prozent) und Xilinx (36 Prozent) zusammen rund 77 Prozent des FPGA -Marktes.[11]
Unternehmen wie Microsoft haben begonnen, FPGAs zu verwenden, um Hochleistungs-, rechenintensive Systeme zu beschleunigen (wie die Daten Center das betreibt ihre Bing -Suchmaschine), aufgrund der Leistung pro Watt Vorteil FPGAs liefern.[12] Microsoft begann FPGAs zu verwenden beschleunigen Bing im Jahr 2014 und im Jahr 2018 begann die Bereitstellung von FPGAs für ihre Workloads in anderen Rechenzentren für ihre Azurblau Cloud Computing Plattform.[13]
Die folgenden Zeitpläne zeigen Fortschritte in verschiedenen Aspekten des FPGA -Designs:
- Tore
- 1987: 9.000 Gates, Xilinx[6]
- 1992: 600.000, Abteilung für Marine -Oberflächenkriegsführung[3]
- Frühe 2000er Jahre: Millionen[10]
- 2013: 50 Millionen, Xilinx[14]
- Marktgröße
- 1985: Erster kommerzieller FPGA: Xilinx XC2064[5][6]
- 1987: 14 Millionen US -Dollar[6]
- c.1993:> 385 Millionen Dollar[6][Fehlgeschlagene Überprüfung]
- 2005: 1,9 Milliarden US -Dollar[15]
- 2010 Schätzungen: 2,75 Milliarden US -Dollar[15]
- 2013: 5,4 Milliarden US -Dollar[16]
- 2020 Schätzung: 9,8 Milliarden US -Dollar[16]
- Das Design beginnt
A Design Start ist ein neues benutzerdefiniertes Design für die Implementierung auf einem FPGA.
Entwurf
Zeitgenössische FPGAs haben große Ressourcen von Logik -Tore und RAM blockiert, um komplexe digitale Berechnungen zu implementieren. Da FPGA -Designs sehr schnelle E/A -Preise und bidirektionale Daten verwenden BusseEs wird eine Herausforderung, die korrekte Zeit für gültige Daten innerhalb der Einrichtungszeit und -ablaufzeit zu überprüfen.
Bodenplanung Ermöglicht die Ressourcenzuweisung innerhalb von FPGAs, diese Zeitbeschränkungen zu erfüllen. FPGAs können verwendet werden, um jede logische Funktion zu implementieren, die eine Asic kann aufführen. Die Möglichkeit, die Funktionalität nach dem Versand zu aktualisieren, Partielle Neukonfiguration eines Teils des Designs[19] und die niedrigen nicht wiederauftragenden technischen Kosten im Vergleich zu einem ASIC-Design (ungeachtet der allgemein höheren Einheitenkosten) bieten für viele Anwendungen Vorteile.[1]
Einige FPGAs verfügen neben digitalen Funktionen analogen Funktionen. Die häufigste analoge Merkmal ist programmierbar Schwindelrate An jedem Ausgangsstift, so dass der Ingenieur niedrige Raten auf leicht belasteten Stiften einstellen kann, die sonst würden Ring oder Paar Inakzeptabel, und um höhere Raten für stark beladene Stifte auf Hochgeschwindigkeitskanälen festzulegen, die sonst zu langsam laufen würden.[20][21] Auch häufig sind Quarz-Kristalloszillatoren, Oszillatoren der Resistenzkapazität des Chips, und Phasenschleifen mit eingebettet spannungsgesteuerte Oszillatoren Wird für die Uhrerzeugung und -verwaltung sowie für die Hochgeschwindigkeits-Serializer-Deserializer (SERDES) verwendet, übertragenuhren und die Wiederherstellung des Empfängers. Ziemlich häufig sind differentiell Komparatoren auf Eingangsstiften, die so ausgelegt sind, dass sie angeschlossen werden können Differentielle Signalübertragung Kanäle. Ein paar "gemischtes Signal FPGAs "haben die peripheren integrierten Analog-Digital-Konverter (ADCS) und Digital-analog-Konverter (DACS) mit analogen Signalkonditionierungsblöcken, die es ihnen ermöglichen, als a zu arbeiten System-on-a-Chip (SOC).[22] Solche Geräte verwischen die Grenze zwischen einem FPGA, das digitale und Nullen auf dem internen programmierbaren Verbindungsgewebe trägt, und Feldprogrammierbar analoges Array (FPAA), das analogen Werten für den internen programmierbaren Verbindungsgewebe enthält.
Logikblöcke

Die häufigste FPGA -Architektur besteht aus einer Reihe von einer Reihe von Logikblöcke (Konfigurierbare Logikblöcke, CLBs oder Logikarray -Blöcke, Labors, je nach Anbieter), E/O -Padsund Routing -Kanäle.[1] Im Allgemeinen haben alle Routing -Kanäle die gleiche Breite (Anzahl der Drähte). Mehrere E/A -Pads passen möglicherweise in die Höhe einer Reihe oder in der Breite einer Spalte im Array.
"Ein Anwendungskreis muss in eine FPGA mit angemessenen Ressourcen zugeordnet werden. Während die Anzahl der erforderlichen CLBs/Labors und I/Os leicht aus dem Design festgelegt werden Logik. (Zum Beispiel a Querlatte erfordert viel mehr Routing als a systolisches Array mit dem gleichen Tor. Da unbenutzte Routing -Tracks die Kosten (und senken die Leistung) des Teils, ohne einen Nutzen zu erzielen Nachschlagetabellen (LUTS) und I/O. können sein Routed. Dies wird durch Schätzungen wie diejenigen bestimmt, die abgeleitet sind Regel von Rent oder durch Experimente mit vorhandenen Designs. "[23] Ab 2018[aktualisieren], Netzwerk-On-Chip Es werden Architekturen für das Routing und die Vernetzung entwickelt.
Im Allgemeinen besteht ein logischer Block aus einigen logischen Zellen (ALM, LE, Slice usw.). Eine typische Zelle besteht aus einer 4-Eingab-LUT, a Voller Addierer (Fa) und a D-Typ Flip-Flop. Diese können in zwei 3-Eingab-LUTs aufgeteilt werden. Im normaler Modus Diese werden zu einer 4-Eingangs-Lut durch die erste kombiniert Multiplexer (Mux). Im Arithmetik Modus, ihre Ausgänge werden dem Addierer zugeführt. Die Auswahl des Modus ist in den zweiten Mux programmiert. Der Ausgang kann entweder sein synchron oder asynchronabhängig von der Programmierung des dritten Mux. In der Praxis sind ganze oder Teile des Addierers als Funktionen gespeichert in die Luts, um zu sparen Platz.[24][25][26]
Harte Blöcke
Moderne FPGA -Familien erweitern die oben genannten Fähigkeiten, um in Silizium festgelegte Funktionen auf höherer Ebene einzubeziehen. Wenn diese gemeinsamen Funktionen in den Schaltkreis eingebettet sind, reduziert die erforderliche Fläche und verleiht diesen Funktionen die Geschwindigkeit im Vergleich zu logischen Primitiven. Beispiele hierfür sind einzuziehen Multiplikatoren, generisch DSP -Blöcke, eingebettete Prozessoren, Hochgeschwindigkeits -E/A -Logik und eingebettet Erinnerungen.
High-End-FPGAs können hohe Geschwindigkeit enthalten Multi-Gigabit-Transceiver und harte IP -Kerne wie zum Beispiel Prozessorkerne, Ethernet Medium Access Control -Einheiten, PCI/PCI Express Controller und externe Speichercontroller. Diese Kerne existieren neben dem programmierbaren Stoff, aber sie sind ausgebaut Transistoren anstelle von LUTS, damit sie ASIC-Ebene haben Leistung und Energieverbrauch Ohne eine erhebliche Menge an Stoffressourcen zu konsumieren und mehr Stoff für die anwendungsspezifische Logik frei zu lassen. Die Multi-Gigabit-Transceiver enthalten auch eine analoge Hochleistungsanaloge und Ausgangsschaltung sowie Hochgeschwindigkeitserialisatoren und Deserialisierer, die nicht aus LUTS gebaut werden können. Übergeordnete physikalische Schichtfunktionalität (Phy-Layer) wie z. Zeilencodierung kann je nach FPGA neben den Serialisierern und Deserialisierern in harter Logik implementiert werden oder nicht.
Weicher Kern

Ein alternativer Ansatz zur Verwendung von Hard-Makro-Prozessoren besteht darin, die Verwendung von zu verwenden weicher Prozessor IP -Kerne die in der FPGA -Logik implementiert werden. NIOS II, Microblaze und Mico32 sind Beispiele für beliebte Softcore -Prozessoren. Viele moderne FPGAs sind bei "Laufzeit" programmiert, was zur Idee von geführt hat Rekonfigurierbares Computer oder rekonfigurierbare Systeme - CPUs Das rekonfiguriert sich so, dass sie der anstehenden Aufgabe entspricht. Darüber hinaus werden neue Nicht-FPGA-Architekturen entstehen. Software-konfigurierbare Mikroprozessoren wie der Stretch S5000 verfolgen einen hybriden Ansatz, indem sie eine Reihe von Prozessorkernen und FPGA-ähnlichen programmierbaren Kernen auf demselben Chip bereitstellen.
Integration
Im Jahr 2012 wurde der grobkörnige architektonische Ansatz einen Schritt weiter durch Kombination des Logikblöcke und Verbindungen traditioneller FPGAs mit eingebettet Mikroprozessoren und verwandte Peripheriegeräte, um eine vollständige "zu bilden"System auf einem programmierbaren Chip"Diese Arbeit spiegelt die Architektur von Ron Perloff und Hanan Potash von Burroughs Advanced Systems Group im Jahr 1982 wider, die einen rekonfigurierbaren Rekonfigurieren kombinierten CPU -Architektur auf einem einzelnen Chip namens SB24.[27] Beispiele für solche Hybridtechnologien finden Sie in der Xilinx Zynq-7000 alle Programmierbarer SOC,[28] das beinhaltet einen 1.0GHz Zweikern Arm Cortex-A9 MPCORE -Prozessor eingebettet Innerhalb des logischen Stoffes des FPGA[29] oder in der Altera Arria gegen FPGA, der einen 800 MHz enthält Zweikern Arm Cortex-A9 Mpcore. Das Atmel FPSLIC ist ein weiteres solches Gerät, das eine verwendet Avr Prozessor in Kombination mit der programmierbaren Architektur der Atmel -Logik. Das Microsemi Smartfusion Geräte enthalten einen ARM-Cortex-M3-Hard-Prozessorkern (mit bis zu 512 kb von Blitz und 64 kb RAM) und analog Peripheriegeräte wie ein Mehrkanal Analog-Digital-Konverter und Digital-analog-Konverter zu ihren Flash-Speicher-Basierter FPGA -Stoff.
Trottel
Der größte Teil der in einem FPGA gebauten Schaltkreise ist Synchronschaltung das erfordert a Taktsignal. FPGAs enthalten dedizierte globale und regionale Routing -Netzwerke für Uhr und Zurücksetzen, damit sie mit minimalem geliefert werden können verzerrt. Auch FPGAs enthalten im Allgemeinen analog Phasenschleife und/oder Verzögerungsschleife Komponenten zur Synthese neu Taktfrequenzen sowie abschwächen Jitter. Komplexe Konstruktionen können mehrere Uhren mit unterschiedlichen Frequenz- und Phasenbeziehungen verwenden, wobei jeweils getrennt gebildet wird Taktdomänen. Diese Taktsignale können lokal von einem Oszillator erzeugt oder aus einem seriellen Hochgeschwindigkeitsdatenstrom wiederhergestellt werden. Beim Bauen muss darauf geachtet werden Taktdomänenüberquerung Schaltkreise zu vermeiden Metastabilität. FPGAs enthalten im Allgemeinen RAMS -Blöcke, die in der Lage sind, als Dual Port Rams mit unterschiedlichen Uhren, die beim Bau des Gebäudes helfen FIFOS und zwei Portpuffer, die unterschiedliche Taktdomänen verbinden.
3D -Architekturen
Die Größe und den Stromverbrauch von FPGAs, Anbieter wie zu verkleinern, wie zum Beispiel Tabula und Xilinx eingeführt haben 3D- oder gestapelte Architekturen.[30][31] Nach der Einführung seiner 28-nm-7-Serie-FPGAs sagte Xilinx, dass einige der Teile der höchsten Dichte in diesen FPGA-Produktlinien unter Verwendung mehrerer Stanze in einem Paket konstruiert werden, wobei Technologie verwendet wird, die für 3D-Konstruktion und gestapelte Versammlungen entwickelt wurden.
Xilinxs Ansatz stapelt mehrere (drei oder vier) aktive FPGA stirbt nebeneinander auf einem Silizium Interposer- Ein einzelnes Stück Silizium, das passive Verbindungen trägt.[31][32] Die Multi-Die-Konstruktion ermöglicht es auch, dass verschiedene Teile des FPGA mit unterschiedlichen Prozesstechnologien erstellt werden, da sich die Prozessanforderungen zwischen dem FPGA-Gewebe selbst und den Serientranszenzeilen mit hoher Geschwindigkeit von 28 Gbit/s unterscheiden. Eine auf diese Weise gebaute FPGA wird als a genannt heterogen FPGA.[33]
Bei Alteras heterogenem Ansatz wird ein einzelnes monolithisches FPGA-Würfel verwendet und andere Würfel/Technologien mit der FPGA unter Verwendung der intel eingebetteten Multi-Die-Interconnect Bridge (EMIB) -Technologie (Intel) verbunden.[34]
Programmierung
Um das Verhalten der FPGA zu definieren, bietet der Benutzer ein Design in a Hardware -Beschreibung Sprache (HDL) oder als schematisch Entwurf. Die HDL-Form ist besser geeignet, um mit großen Strukturen zu arbeiten, da es möglich ist, ein hochrangiges Funktionsverhalten anzugeben, anstatt jedes Stück von Hand zu zeichnen. Der schematische Eintrag kann jedoch eine einfachere Visualisierung eines Designs und seiner Komponente ermöglichen Module.
Mit an ein elektronische Designautomatisierung Tool, ein Technologie-Mappomit Netzliste wird erzeugt. Die Netzliste kann dann mit einem Prozess genannt an die tatsächliche FPGA -Architektur angepasst werden Place-and-Route, normalerweise durchgeführt von der proprietären Place-and-Route-Software des FPGA-Unternehmens. Der Benutzer validiert die Karte, Platz- und Routenergebnisse über Zeitanalyse, Simulation, und andere Verifizierung und Validierung Methoden. Sobald der Entwurfs- und Validierungsprozess abgeschlossen ist, wird die generierte Binärdatei, die normalerweise die proprietäre Software des FPGA-Anbieters verwendet, die FPGA (neu) zum Konfigurieren des FPGA verwendet. Diese Datei wird über a an die FPGA/CPLD übertragen serielle Schnittstelle (Jtag) oder zu einem externen Speichergerät wie ein Eeprom.
Die häufigsten HDLs sind VHDL und Verilog sowie Erweiterungen wie z. Systemverilog. In dem Versuch, die Komplexität des Entwurfs in HDLs zu verringern, die mit dem Äquivalent von verglichen wurden AssemblersprachenEs gibt Bewegungen[von wem?] um die zu erhöhen Abstraktionsstufe durch die Einführung von alternative Sprachen. Nationale Instrumente' Labor Die grafische Programmiersprache (manchmal als "G" bezeichnet) verfügt über ein FPGA-Add-In-Modul für Target- und Programm-FPGA-Hardware. Verilog wurde erstellt, um den Prozess zu vereinfachen, der HDL robuster und flexibler macht. Verilog ist derzeit am beliebtesten. Verilog schafft eine Abstraktionsniveau, um die Details seiner Implementierung zu verbergen. Verilog hat im Gegensatz zu VHDL eine C-ähnliche Syntax.[35]
Um das Design komplexer Systeme in FPGAs zu vereinfachen, gibt es Bibliotheken mit vordefinierten komplexen Funktionen und Schaltungen, die getestet und optimiert wurden, um den Entwurfsprozess zu beschleunigen. Diese vordefinierten Schaltungen werden allgemein genannt IP -Kerne (geistiges Eigentum)und sind bei FPGA-Anbietern und IP-Lieferanten von Drittanbietern erhältlich. Sie sind selten frei und typischerweise unter proprietären Lizenzen freigegeben. Andere vordefinierte Schaltkreise sind von Entwicklergemeinschaften erhältlich OpenCores (normalerweise freigelassen unter freie und Open Source Lizenzen wie die Gpl, BSD oder ähnliche Lizenz) und andere Quellen. Solche Entwürfe sind als "bekannt"Open-Source-Hardware. "
In einem typischen Design-FlowEin FPGA -Anwendungsentwickler simuliert das Design in mehreren Phasen während des gesamten Entwurfsprozesses. Anfangs der RTL Beschreibung in VHDL oder Verilog wird simuliert durch Erstellen Testbänke Simulieren Sie das System und beobachten Sie Ergebnisse. Dann nach dem Synthese Engine hat das Design einer Netzliste zugeordnet, die Netzliste wird in a übersetzt Gate-Ebene Beschreibung, bei der die Simulation wiederholt wird, um die Synthese ohne Fehler zu bestätigen. Schließlich ist das Design in der FPGA an diesem Punkt festgelegt Ausbreitungsverzögerungen kann hinzugefügt werden und die Simulation mit diesen Werten erneut ausgeführt werden rückgängig gemacht auf die Netzliste.
In jüngerer Zeit, OpenCL (Open Computing Language) wird von Programmierern verwendet, um die Leistung und die Leistungswirksamkeit von FPGAs zu nutzen. OpenCL ermöglicht es den Programmierern, Code in der C -Programmiersprache zu entwickeln und FPGA -Funktionen als OpenCL -Kernel mit OpenCL -Konstrukten zu zielen.[36] Weitere Informationen finden Sie unter hochrangige Synthese und C zu HDL.
Die meisten FPGAs verlassen sich auf eine Sram-Basierendem Ansatz zu programmieren. Diese FPGAs sind programmierbar und neu programmierbar, erfordern jedoch externe Stiefelgeräte. Zum Beispiel, Flash-Speicher oder Eeprom Geräte können häufig Inhalte in internes SRAM laden, das Routing und Logik steuert. Der SRAM -Ansatz basiert auf CMOs.
Zu den selteneren Alternativen zum SRAM -Ansatz gehören:
- Sicherung: Einmal programmierbar. Bipolar. Obsolet.
- Antifuse: Einmal programmierbar. CMOs. Beispiele: Actel SX- und Axcelerator -Familien; QuickLogic Eclipse II Familie.[37]
- ABSCHLUSSBALL: Programmierbare schreibgeschützte Speichertechnologie. Einmal programmierbar wegen Plastikverpackung. Obsolet.
- Eprom: Löschbare programmierbare schreibgeschützte Speichertechnologie. Einmal programmierbar, aber mit Fenster kann mit ultraviolettem (UV) Licht gelöscht werden. CMOs. Obsolet.
- Eeprom: Elektrisch löschbare programmierbare schreibgeschützte Speichertechnologie. Kann selbst in Plastikpaketen gelöscht werden. Einige, aber nicht alle EEPROM-Geräte können im System programmiert werden. CMOs.
- Blinken: Flash-Erase-EPROM-Technologie. Kann selbst in Plastikpaketen gelöscht werden. Einige, aber nicht alle Flash-Geräte können im System programmiert werden. Normalerweise ist eine Flash -Zelle kleiner als eine äquivalente EEPROM -Zelle und ist daher kostengünstiger zu produzieren. CMOs. Beispiel: Actel Proasic Family.[37]
Haupthersteller
Im Jahr 2016 konkurrieren langjährige Branchenkonkurrenten Xilinx (jetzt Teil von AMD) und Altera (Jetzt ein Intel Tochtergesellschaft) waren die FPGA -Marktführer.[38] Zu dieser Zeit kontrollierten sie fast 90 Prozent des Marktes.
Sowohl Xilinx (jetzt AMD) als auch Altera (jetzt Intel) liefern proprietär elektronische Designautomatisierung software for Fenster und Linux (Ise/Vivado und Quartus) was es den Ingenieuren ermöglicht, um Entwurf, analysieren, simulieren, und synthetisieren (kompilieren) ihre Entwürfe.[39][40]
Andere Hersteller sind:
- Mikrochip:
- Microsemi (bisher Actel), produzieren Antifuse, Flash-basierte, gemischtes Signal Fpgas; erworben von Microchip im Jahr 2018
- Atmel, eine zweite Quelle einiger altera-kompatibler Geräte; Auch FPSLIC[Klarstellung erforderlich] oben erwähnt;[41] erworben von Microchip im Jahr 2016
- Gitter -Halbleiter, was produziert geringer Strom SRAM-basierte FPGAs mit integriertem Konfigurationsblitz, Sofort an und lebe Rekonfiguration
- Siliconblue -Technologien, was extrem niedrige sram-basierte FPGAs mit optional integriert bietet nicht flüchtig Konfigurationsspeicher; erworben von Gitter im Jahr 2011
- QuickLogic,[42] Dies fertigt Ultra-Niedrig-Sensor-Hubs, extrem niedrig angetriebene FPGAs mit niedriger Dichte mit SRAM-basierten SRAM-Basis, mit Anzeigebrücken MIPI- und RGB-Eingänge, MIPI-, RGB- und LVDS-Ausgaben
- Achronix, Herstellung von FPGAs auf SRAM -Basis mit 1,5 -GHz -Stoffgeschwindigkeit[43]
Im März 2010, Tabula kündigte ihre FPGA -Technologie an, die verwendet Zeit-Multiplex Logik und Interconnect, die potenzielle Kosteneinsparungen für Anwendungen mit hoher Dichte beanspruchen.[44] Am 24. März 2015 wurde tabula offiziell geschlossen.[45]
Am 1. Juni 2015 kündigte Intel an, Altera für rund 16,7 Milliarden US -Dollar zu erwerben und die Akquisition am 30. Dezember 2015 abzuschließen.[46]
Am 27. Oktober 2020 kündigte AMD an, Xilinx zu erwerben.[47]
Anwendungen
Ein FPGA kann verwendet werden, um jedes Problem zu lösen, das ist berechenbar. Dies wird trivial durch die Tatsache nachgewiesen, dass FPGAs zur Implementierung a verwendet werden können weicher Mikroprozessor, wie der Xilinx Microblaze oder Altera NIOS II. Ihr Vorteil liegt darin, dass sie für einige Anwendungen aufgrund ihrer erheblich schneller sind parallele Natur und Optimalität In Bezug auf die Anzahl der für bestimmten Prozesse verwendeten Tore.[48]
FPGAs begannen ursprünglich als Konkurrenten CPLDs implementieren Logik Kleber zum Leiterplatten. Mit zunehmender Größe, Fähigkeiten und Geschwindigkeit übernahm FPGAs zusätzliche Funktionen bis zu dem Punkt, an dem einige jetzt als voll vermarktet werden Systeme auf Chips (SOCS). Insbesondere mit der Einführung von engagierter Multiplikatoren in FPGA -Architekturen Ende der neunziger Jahre Bewerbungen, die traditionell die einzige Reserve von waren Hardware für digitale Signalprozessor (DSPs) begann stattdessen, FPGAs zu integrieren.[49][50]
Die Entwicklung von FPGAs hat eine Zunahme der Verwendung dieser Geräte motiviert, deren Architektur die Entwicklung von Hardwarelösungen für komplexe Aufgaben wie 3D -MRT -Bildsegmentierung, 3D -diskrete Wavelet -Transformation, tomografische Bildrekonstruktion oder PET/MRT -Systeme ermöglicht.[51][52] Die entwickelten Lösungen können intensive Berechnungsaufgaben mit paralleler Verarbeitung ausführen, dynamisch neu programmierbar sind und günstige Kosten haben und gleichzeitig die harten Echtzeitanforderungen erfüllen, die mit der medizinischen Bildgebung verbunden sind.
Ein weiterer Trend bei der Verwendung von FPGAs ist Hardware-Beschleunigung, wo man die FPGA verwenden kann, um bestimmte Teile eines Algorithmus zu beschleunigen und einen Teil der Berechnung zwischen dem FPGA und einem generischen Prozessor zu teilen. Die Suchmaschine Bing ist für die Einführung der FPGA -Beschleunigung für seinen Suchalgorithmus im Jahr 2014 bekannt.[53] Ab 2018[aktualisieren]FPGAs sehen als erhöhte Verwendung als KI -Beschleuniger einschließlich Microsofts SO-TEMEMED "Projektkatapult"[13] und zum Beschleunigen künstliche neurale Netzwerke zum maschinelles Lernen Anwendungen.
Traditionell,[wenn?] FPGAs wurden spezifisch reserviert vertikale Anwendungen wo das Produktionsvolumen klein ist. Für diese Anwendungen mit niedrigem Volumen ist die Prämie, die Unternehmen in Hardwarekosten pro Einheit für einen programmierbaren Chip zahlen, erschwinglicher als die Entwicklungsressourcen für die Erstellung eines ASIC. Ab 2017[aktualisieren]Neue Kosten- und Leistungsdynamik haben den Bereich tragfähiger Anwendungen erweitert.
Das Unternehmen Gigabyte -Technologie Erstellte eine I-RAM-Karte, auf der ein Xilinx FPGA verwendet wurde, obwohl ein maßgefertigter Chip billiger wäre, wenn er in großen Mengen hergestellt wurde. Die FPGA wurde ausgewählt, um sie schnell auf den Markt zu bringen, und der erste Lauf war nur 1000 Einheiten, die eine FPGA zur besten Wahl machen. Mit diesem Gerät können Leute Computer -RAM als Festplatte verwenden.[54]
Weitere Verwendungen für FPGAs sind:
- Raum (d. H. Mit Strahlenhärtung[55])
- Hardware -Sicherheitsmodule[56]
Sicherheit
FPGAs haben sowohl Vor- als auch Nachteile im Vergleich zu ASICs oder sicheren Mikroprozessoren Hardware -Sicherheit. Die Flexibilität der FPGAs macht während der böswilligen Änderungen während Herstellung ein niedrigeres Risiko.[57] Zuvor für viele FPGAs das Design Bitstream wurde exponiert, während das FPGA es aus dem externen Speicher lädt (normalerweise bei jedem Einschalten). Alle großen FPGA -Anbieter bieten Designer wie Bitstream ein Spektrum von Sicherheitslösungen an Verschlüsselung und Authentifizierung. Zum Beispiel, Altera und Xilinx Angebot AES Verschlüsselung (bis zu 256 Bit) für Bitstreams, die in einem externen Flash-Speicher gespeichert sind.
FPGAs, die ihre Konfiguration intern im nichtflüchtigen Flash -Speicher speichern, wie z. Microsemiproasic 3 oder GitterProgrammierbare XP2 Verschlüsselung. Außerdem der Flash -Speicher für a Nachschlagwerk bietet Single Event verärgert sich Schutz für Weltraumanwendungen.[Klarstellung erforderlich] Kunden, die eine höhere Garantie für den Manipulationswiderstand wünschen, können Schreibkörper verwenden. Antifuse FPGAs von Anbietern wie Microsemi.
Mit seinen Stratix 10 fpgas und Socs,, Altera stellte einen sicheren Geräte -Manager ein und ein physische nicht liegende Funktionen ein hohes Maß an Schutz vor körperlichen Angriffen bieten.[58]
2012 haben die Forscher Sergeei Skorobogatov und Christopher Woods gezeigt, dass einige FPGAs anfällig für feindliche Absichten sein können. Sie entdeckten eine kritische Hintertür Verletzlichkeit war in Silizium als Teil des proasic 3 von Actel/Microsemi 3 hergestellt worden, was es auf vielen Ebenen wie Reprogrammierung von Krypto und Anfälligkeit ermöglichte Zugriffsschlüssel, Zugriff auf unverschlüsselte Bitstream, Änderung niedriger Ebene Siliziummerkmale und Extrahieren Aufbau Daten.[59]
Ähnliche Technologien
Historisch gesehen waren FPGAs langsamer, weniger energieeffizient und erreichten im Allgemeinen weniger Funktionen als ihre festen Asic Gegenstücke. Eine Studie aus dem Jahr 2006 zeigte, dass Designs, die auf FPGAs implementiert sind, durchschnittlich 40 -mal so viel Fläche benötigen, 12 -mal so viel dynamische Leistung zeichnen und mit einem Drittel der Geschwindigkeit der entsprechenden ASIC -Implementierungen laufen.[60] In jüngerer Zeit fpgas wie die Xilinx Virtex-7 oder der Altera Stratix 5 ist zu konkurrierenden ASIC und ASSP ("anwendungsspezifischer Standardteil" wie ein eigenständiger USB-Schnittstellenchip konkurriert[61]) Lösungen durch erheblich reduzierte Bereitstellung Stromverbrauch, erhöhte Geschwindigkeit, niedrigere Materialkosten, minimaler Implementierung im Immobilienvertreter und erhöhte Möglichkeiten für die Neukonfiguration „im Fliege“. Ein Design, das 6 bis 10 ASICs enthielt, kann jetzt nur mit einem FPGA erreicht werden.[60] Die Vorteile von FPGAs beinhalten die Fähigkeit, bei der Bereitstellung (d. H. "im Feld") zu reparieren, um zu reparieren Käferund oft kürzer einschließen Zeit zum Markt Und niedriger Einmalentwicklung Kosten. Anbieter können auch eine Mittelstraße über übernehmen FPGA -Prototyping: Entwicklung ihrer Prototypenhardware auf FPGAs, fertigen Sie jedoch ihre endgültige Version als ASIC, damit sie nach dem Engagement des Designs nicht mehr geändert werden kann. Dies ist häufig auch bei neuen Prozessordesigns der Fall.[62] Einige FPGAs haben die Fähigkeit von Partielle Neukonfiguration Damit können ein Teil des Geräts neu programmiert werden, während andere Teile weiter ausgeführt werden.[63][64]
Die primären Unterschiede zwischen komplexe programmierbare Logikgeräte (CPLDS) und FPGAs sind Architektur. Eine CPLD hat eine vergleichsweise restriktive Struktur, die aus einem oder mehreren programmierbaren besteht Produktsumme Logikarrays, die eine relativ kleine Anzahl von Takten füttern Register. Infolgedessen sind CPLDs weniger flexibel, haben aber den Vorteil einer vorhersehbareren Zeitverzögerungen und Ein höheres Verhältnis von Logik zu Interconnect. FPGA -Architekturen dagegen werden von dominiert von verbinden. Dies macht sie weitaus flexibler (in Bezug auf die Auswahl der Designs, die für die Implementierung praktisch sind), aber auch weitaus komplexer zu entwerfen oder zumindest komplexer zu erfordern elektronische Designautomatisierung (EDA) Software. In der Praxis ist die Unterscheidung zwischen FPGAs und CPLDs häufig von Größe, da FPGAs in Bezug auf Ressourcen normalerweise viel größer sind als CPLDs. Typischerweise enthalten nur FPGAs komplexere eingebettete Funktionen wie zum Beispiel Addierer, Multiplikatoren, Erinnerung, und Serializer/Deserializer. Eine weitere häufige Unterscheidung ist, dass CPLDs eingebettet sind Flash-Speicher Um ihre Konfiguration zu speichern, während FPGAs normalerweise extern benötigen Nichtflüchtiger Gedächtnis (aber nicht immer). Wenn ein Design ein einfaches Instant erfordert (Die Logik ist bereits bei Power-up konfiguriert) CPLDs werden im Allgemeinen bevorzugt. Für die meisten anderen Anwendungen werden FPGAs im Allgemeinen bevorzugt. Manchmal werden sowohl CPLDs als auch FPGAs in einem einzigen Systemdesign verwendet. In diesen Entwürfen führen CPLDs im Allgemeinen Kleberlogikfunktionen aus und sind dafür verantwortlich. "Booten"Die FPGA sowie die Kontrolle zurücksetzen und Bootsequenz der vollständigen Leiterplatte. Abhängig von der Anwendung ist es daher möglicherweise vernünftig, sowohl FPGAs als auch CPLDs in einem einzigen Design zu verwenden.[65]
Siehe auch
- FPGA Mezzanine Card
- FPGA -Prototyping
- Liste der HDL -Simulatoren
- Liste der Xilinx fpgas
- Verilog
- Systemverilog
- VHDL
- Hardware-Beschleunigung
Verweise
- ^ a b c "FPGA -Architektur für die Herausforderung". Toronto.edu. Universität von Toronto.
- ^ Simpson, P. A. (2015). FPGA -Design, Best Practices für teambasierte Wiederverwendung, 2. Ausgabe. Schweiz: Springer International Publishing AG. p. 16. ISBN 978-3-319-17924-7.
- ^ a b c "Geschichte der FPGAs". Archiviert von das Original am 12. April 2007. Abgerufen 2013-07-11.
- ^ "Am Anfang". Altera.com. 21. April 2015.
- ^ a b "Xcell Ausgabe 32" (PDF). Xilinx.
- ^ a b c d e f Finanzierungsuniversum. "Xilinx, Inc."Abgerufen am 15. Januar 2009.
- ^ Clive Maxfield, programmierbare Logik -Designline ","Xilinx enthüllt revolutionäre 65nm FPGA-Architektur: die Virtex-5-Familie Archiviert 2009-12-25 bei der Wayback -Maschine. 15. Mai 2006. Abgerufen am 5. Februar 2009.
- ^ Pressemitteilung, "Der Mitbegründer von Xilinx, Ross Freeman, geehrt als nationale Erfinder Hall of Fame induzieren für die Erfindung von FPGA Archiviert 2016-10-06 bei der Wayback -Maschine"
- ^ US 4870302, Freeman, Ross H., "Konfigurierbarer elektrischer Schaltkreis mit konfigurierbaren logischen Elementen und konfigurierbaren Interconnects", veröffentlicht 1989-09-26, zugewiesene Xilinx Inc
- ^ a b Maxfield, Clive (2004). Der Leitfaden des Design Warriors to FPGAs: Geräte, Werkzeuge und Ströme. Elsevier. p. 4. ISBN 978-0-7506-7604-5.
- ^ "Top FPGA -Unternehmen für 2013". Sourcetech411.com. 2013-04-28.
- ^ "Microsoft Supercarges Bing -Suche mit programmierbaren Chips". VERDRAHTET. 16. Juni 2014.
- ^ a b "Projektkatapult". Microsoft Research. Juli 2018.
- ^ Maxfield, Max. "Xilinx Ultrascale FPGA bietet 50 Millionen äquivalente ASIC -Tore". www.eetimes.com. EE mal.
- ^ a b Dylan McGrath, EE mal, "Der FPGA-Markt, der bis '10 2,7 Milliarden US-Dollar verabschiedet wird, sagt In-Stat, sagt In-Stat". 24. Mai 2006. Abgerufen am 5. Februar 2009.
- ^ a b "Globale FPGA -Marktanalyse und Segmentprognosen bis 2020 - FPGA -Branche, Ausblick, Größe, Anwendung, Produkt, Aktien, Wachstumsaussichten, wichtige Chancen, Dynamik, Trends, Analyse, FPGA -Bericht - Grand View Research Inc". grandviewresearch.com.
- ^ Dylan McGrath, EE mal, "Gartner DataQuest Analyst gibt ASIC, FPGA -Märkte sauberes Gesundheitszustand". 13. Juni 2005. Abgerufen am 5. Februar 2009.
- ^ "Virtex-4-Familienübersicht" (PDF). xilinx.com. Abgerufen 14. April 2018.
- ^ Wisniewski, Remigiusz (2009). Synthese von Zusammensetzungs -Mikroprogramm -Kontrolleinheiten für programmierbare Geräte. Zielona Góra: Universität von Zielona Góra. p. 153. ISBN 978-83-7481-293-1.[Permanent Dead Link]
- ^ "FPGA Signal Integrity Tutorial". Altium.com. Archiviert von das Original am 2016-03-07. Abgerufen 2010-06-15.
- ^ NASA: FPGA -Antriebsstärke Archiviert 2010-12-05 am Wayback -Maschine
- ^ Mike Thompson. "FPGAs mit gemischtem Signal liefern grüne Leistung"[Permanent Dead Link]. EE Times, 2007-07-02.
- ^ M.B., Swami; V.P, Pawar (2014-07-31). "VLSI -Design: Ein neuer Ansatz". Journal of Intelligence Systems. 4 (1): 60–63. ISSN 2229-7057.
- ^ 2. Cyclonii -Architektur. Altera. Februar 2007
- ^ "Dokumentation: Stratix IV -Geräte" (PDF). Altera.com. 2008-06-11. Archiviert von das Original (PDF) Am 2011-09-26. Abgerufen 2013-05-01.
- ^ Virtex-4 FPGA-Benutzerhandbuch (1. Dezember 2008). Xilinx, Inc.
- ^ WO 1983001325, Genter, Mel & Potash, Hanan, "Digitales Gerät mit Interconnect Matrix", ausgestellt 1981-09-29, zugewiesene Burroughs Corp. und Burroughs Machines Ltd.
- ^ "Xilinx Inc, Form 8-K, aktueller Bericht, Anmeldedatum 19. Oktober 2011". secdatabase.com. Abgerufen 6. Mai, 2018.
- ^ "Xilinx Inc, Form 10-K, Jahresbericht, Anmeldedatum 31. Mai 2011". secdatabase.com. Abgerufen 6. Mai, 2018.
- ^ Dean Takahashi, VentureBeat. "Die Intel -Verbindung half Chip Startup Tabula, 108 Millionen US -Dollar zu sammeln. "2. Mai 2011. Abgerufen am 13. Mai 2011.
- ^ a b Lawrence Latif, der Inquirer. "Der FPGA -Hersteller behauptet, das Gesetz von Moore zu schlagen27. Oktober 2010. Abgerufen am 12. Mai 2011.
- ^ Edn Europa. "Xilinx adoptiert gestapelte 3D-Verpackung Archiviert 2011-02-19 bei der Wayback -Maschine1. November 2010. Abgerufen am 12. Mai 2011.
- ^ Saban, Kirk (11. Dezember 2012). "Die Xilinx Stapelte Silicon Interconnect -Technologie liefert bahnbrechende FPGA -Kapazität, Bandbreite und Stromeffizienz" (PDF). xilinx.com. Abgerufen 2018-11-30.
- ^ "Intel Custom Foundry Emib". Intel.
- ^ "Kämpfe um die FPGA: VHDL gegen Verilog! Wer ist der wahre Champion?". Digilentinc.com. Abgerufen 2020-12-16.
- ^ "Warum OpenCL auf FPGAs verwenden?". Streamcomputing. 2014-09-16. Archiviert von das Original Am 2017-01-01. Abgerufen 2015-07-17.
- ^ a b "Alles über FPGAs".
- ^ Dillien, Paul (6. März 2017). "Und der Gewinner des besten FPGA von 2016 ist ..." Eetimes. Archiviert von das Original am 5. Januar 2019. Abgerufen 7. September, 2017.
- ^ "Xilinx ISE Design Suite". www.xilinx.com. Abgerufen 2018-12-01.
- ^ "FPGA -Designsoftware - Intel Quartus Prime". Intel. Abgerufen 2018-12-01.
- ^ "Top FPGA -Unternehmen für 2013". Sourcetech411. 2013-04-28. Abgerufen 2018-12-01.
- ^ "QuickLogic - Anpassbare Halbleiterlösungen für mobile Geräte". www.quicklogic.com. QuickLogic Corporation. Abgerufen 2018-10-07.
- ^ "Achronix, um die 22 nm -Herstellung von Intel zu verwenden". Intel Newsroom. 2010-11-01. Abgerufen 2018-12-01.
- ^ "TABALS Time Machine - Mikroprozessorbericht" (PDF). Archiviert von das Original (PDF) Am 2011-04-10.
- ^ Tabula zum Herunterfahren; 120 Arbeitsplätze bei Fabless Chip Company verloren Silicon Valley Business Journal
- ^ "Intel, Altera für 16,7 Milliarden US -Dollar im größten Angebot aller Zeiten zu kaufen". Reuters. Juni 2015.
- ^ "AMD, um Xilinx zu erwerben und den Hochleistungs -Computing -Leiter der Branche zu schaffen.". Oktober 2020.
- ^ "Xilinx Inc, Form 8-K, aktueller Bericht, Anmeldedatum 26. April 2006". secdatabase.com. Abgerufen 6. Mai, 2018.
- ^ "Veröffentlichungen und Präsentationen". bdti.com. Archiviert von das Original Am 2010-08-21. Abgerufen 2018-11-02.
- ^ Lapedus, Mark. "Xilinx zielt auf 65-nm-FPGAs bei DSP-Anwendungen". Eetimes.
- ^ Alcaín, Eduardo; Fernández, Pedro R.; Nieto, Rubén; Montemayor, Antonio S.; Vilas, Jaime; Galiana-bordera, Adrian; Martinez-Girone, Pedro Miguel; Prieto-de-La-Lastra, Carmen; Rodriguez-Vila, Borja; Bonet, Marina; Rodriguez-Sanchez, Cristina (2021-12-15). "Hardware-Architekturen für die medizinische Bildgebung in Echtzeit". Elektronik. 10 (24): 3118. doi:10.3390/Electronics10243118. ISSN 2079-9292.
- ^ Nagornov, Nikolay N.; Lyakhov, Pavel A.; Valueva, Maria V.; Bergerman, Maxim V. (2022). "RNS-basierte FPGA-Beschleuniger für hochwertige 3D-Wavelet-Verarbeitung mit skalierten Filterkoeffizienten". IEEE -Zugang. 10: 19215–19231. doi:10.1109/access.2022.3151361. ISSN 2169-3536. S2CID 246895876.
- ^ Morgan, Timothy Pricket (2014-09-03). "Wie Microsoft FPGAs verwendet, um die Bing -Suche zu beschleunigen". Enterprise Tech. Abgerufen 2018-09-18.
- ^ "Gigabyte's I-RAM: Erschwinglicher Festkörperlager". anandtech.com. 2005-07-25. Abgerufen 2020-12-16.
- ^ "FPGA-Entwicklungsgeräte für von Microsemi eingeführte strahlungsgehärtete Raumanwendungen". www.militaryaerospace.com. 2016-06-03. Abgerufen 2018-11-02.
- ^ "Cryptech: Transparenz in Kryptographie aufbauen" (PDF).
- ^ Huffmire, Ted; Brotherton, Brett; Sherwood, Timothy; Kastner, Ryan; Levin, Timothy; Nguyen, Thuy D.; Irvine, Cynthia (2008). "Verwaltung der Sicherheit in FPGA-basierten eingebetteten Systemen". IEEE -Design & Test von Computern. 25 (6): 590–598. doi:10.1109/mdt.2008.166. S2CID 115840.
- ^ "Eetimes on PUF: Sicherheitsfunktionen für Nichtsicherheitsexperten-Intrinsic ID". Intrinsic ID. 2015-06-09.
- ^ Skorobogatov, Sergei; Woods, Christopher (2012). "Breakthrough Silicon Scanning entdeckt die Hintertür in Militärchip". Kryptografische Hardware und eingebettete Systeme - Ches 2012. Vorlesungsnotizen in Informatik. Vol. 7428. S. 23–40. doi:10.1007/978-3-642-33027-8_2. ISBN 978-3-642-33026-1.
- ^ a b Kuon, Ian; Rose, Jonathan (2006). "Messung der Lücke zwischen FPGAs und ASICs" (PDF). Verfahren des internationalen Symposiums auf Feldprogrammiergate -Arrays - FPGA'06. New York, NY: ACM. S. 21–30. doi:10.1145/1117201.1117205. ISBN 1-59593-292-5. Archiviert von das Original (PDF) Am 2010-06-22. Abgerufen 2017-10-25.
- ^ "ASIC, ASSP, SOC, FPGA - Was ist der Unterschied?". eetimes.com.
- ^ Cutress, Ian (27. August 2019). "Xilinx kündigt weltgrößte FPGA an: Virtex Ultrascale+ VU19p mit 9M Zellen". Anandtech.
- ^ "An 818: Statische Aktualisierung Teilweise Rekonfigurations -Tutorial: Für Intel Stratix 10 GX FPGA Development Board". www.intel.com. Abgerufen 2018-12-01.
- ^ "Kann FPGAs ihre Logik dynamisch ändern?". Elektrotechnik Stapelaustausch. Abgerufen 2018-12-01.
- ^ "CPLD vs FPGA: Unterschiede zwischen ihnen und welcher zu verwenden? - Numato Lab Help Center". Numato.com. 2017-11-29.
Weitere Lektüre
- Sadrozinski, Hartmut F.-W.; Wu, Jinyuan (2010). Anwendungen von Feldprogrammier-Gate-Arrays in der wissenschaftlichen Forschung. Taylor & Francis. ISBN 978-1-4398-4133-4.
- Wirth, Niklaus (1995). Digital Circuit Design Ein Einführung Lehrbuch. Springer. ISBN 978-3-540-58577-0.
- Mitra, Jubin (2018). "Ein FPGA-basierter Phasenmesssystem". IEEE -Transaktionen auf sehr großen Integrationssystemen (VLSI). IEEE. 26: 133–142. doi:10.1109/tvlsi.2017.2758807. S2CID 4920719.
- Mencer, Oskar et al. (2020). "Die Geschichte, der Status und die Zukunft von FPGAs". Kommunikation der ACM. ACM. Vol. 63, Nr. 10. doi:10.1145/3410669