FPGA

Finden Sie dieser Artikel interessant?


FGPA logo

Field Programmable Gate Array (FPGA) ist ein integrierter Schaltkreis, der vom Kunden oder Konstrukteur nach der Herstellung konfiguriert und somit „feldprogrammierbar“ ist. FPGAs sind integrierte Schaltkreise, die nach ihrer Herstellung für eine bestimmte Aufgabe, wie zum Beispiel für den Mining von Bitcoins, angepasst werden können, wodurch ASIC entsteht.

Inhaltsverzeichnis

Was ist FPGA?

Die FPGA-Konfiguration wird im Allgemeinen unter Verwendung einer Hardwarebeschreibungssprache (HDL) festgelegt, ähnlich der für einen anwendungsspezifischen integrierten Schaltkreis (ASIC) verwendeten (früher wurden Schaltpläne verwendet, um die Konfiguration wie bei ASICs anzugeben), dies wird jedoch zunehmend Selten). FPGAs können verwendet werden, um jede logische Funktion zu implementieren, die ein ASIC ausführen kann. Die Möglichkeit, die Funktionalität nach dem Versand zu aktualisieren, eine teilweise Neukonfiguration eines Teils des Designs und die geringen einmaligen Engineeringkosten im Vergleich zu einem ASIC-Design (ungeachtet der allgemein höheren Stückkosten) bieten für viele Anwendungen Vorteile.

FPGAs enthalten programmierbare Logikkomponenten, die als „Logikblöcke“ bezeichnet werden, und eine Hierarchie von rekonfigurierbaren Verbindungen, die es ermöglichen, die Blöcke „miteinander zu verbinden“, ähnlich wie viele Logikgatter, die in (vielen) verschiedenen Konfigurationen miteinander verbunden werden können. Logikblöcke können konfiguriert werden, um komplexe Kombinationsfunktionen auszuführen, oder lediglich einfache Logikgatter wie AND und XOR. In den meisten FPGAs enthalten die Logikblöcke auch Speicherelemente, die einfache Flip-Flops oder vollständigere Speicherblöcke sein können.

FPGA-Architektur

A FPGA from Altera

Der FPGA enthält drei programmierbare Hauptelemente:

  • nicht kommutierte programmierbare Logikblöcke (PLBs);
  • E/A-Einheiten (E/A-Einheiten);
  • interne Kommunikation.
  • Lbf sind die funktionalen Elemente für die Erstellung der Benutzerlogik. Der BVV ermöglicht die Kommunikation zwischen den Kontakten des Körpers und den internen Signalleitungen. Programmierbare interne Kommunikationsressourcen steuern die Verbindungsmöglichkeiten der Ein- und Ausgänge von PLBs und E/A-Einheiten (E/A-Einheiten) mit den jeweiligen Netzwerken. Alle Spurkanäle haben dieselbe Breite (dieselbe Anzahl von Leitern). Die meisten E / A-Einheiten (E/A-Einheiten) befinden sich entweder in derselben Zeile (Höhe) oder in derselben Spalte (Breite) des Ventilarrays.

Die logische Einheit (PLB) eines klassischen PMPP besteht aus einer Wahrheitstabelle (siehe Diskussion) (engl. Lookup-Tabelle, LUT) an vier Eingängen und einem Trigger (siehe Abbildung unten). In den letzten Jahren haben Hersteller begonnen, in eine Wahrheitstabelle mit einer großen Anzahl von Eingängen zu konvertieren, wodurch für typische Anwendungen weniger Logikblöcke verwendet werden können.

Technologie

Ein typischer logischer Block

Die logische Einheit (PLB) verfügt über eine Wahrheitstabelle mit vier Eingängen und einem Takteingang. Die Ausgabe der Einheit ist nur eine Wahrheitstabelle mit einem Register oder einem Ausgang ohne Register. Da die Synchronisationssignale in kommerziellem AVMS (und häufig andere Signale, die durch eine große Anzahl von Eingängen parallelisiert werden – High-Fanout-Signale) auf spezielle Weise durch spezielle Verfolgungsschaltungen verfolgt werden, erfolgt die Verwaltung dieser Signale getrennt.

Für die folgende Beispielarchitektur wird unten die Position der logischen Blockkontakte angezeigt.

Position der logischen Blockkontakte

Die Eingänge befinden sich auf separaten Seiten der logischen Einheit. Der Ausgangspin kann in zwei Kanälen verfolgt werden: entweder rechts neben dem Gerät oder unten. Die Ausgangspins jeder logischen Einheit können mit Spurensegmenten in benachbarten Kanälen verbunden werden. In ähnlicher Weise kann der Kontaktbereich der E/A-Einheit (Pad) mit einem Spurenelement in einem beliebigen Nachbarkanal verbunden werden. Beispielsweise kann die obere Kontaktfläche des Chips mit einem der W-Leiter (wobei W die Breite des Kanals ist) in einem horizontalen Kanal direkt darunter angeordnet sein.

In der Regel ist der AVM-Trace nicht segmentiert, dh jedes Leitersegment verbindet nur einen logischen Block mit dem Switch-Block. Aufgrund der Beugung der programmierbaren Schalter in der Schalterlinie fällt die Spur länger aus. Um die Geschwindigkeit von In-System-Verbindungen zu erhöhen, werden in einigen IMPM-Architekturen längere Trace-Verbindungen zwischen logischen Blöcken verwendet.

Schalterblöcke werden am Schnittpunkt von vertikalen und horizontalen Kanälen erstellt. Bei dieser Architektur gibt es drei programmierbare Schalter für jeden Leiter in der Schaltbox, mit denen er mit drei anderen Leitern in benachbarten Kanalsegmenten verbunden werden kann. Das Switch-Modell oder die Topologie, die in dieser Architektur verwendet wird, ist die planare oder Domain-Topologie der Switch-Einheiten. In dieser Topologie ist eine Führung für die Autobahn 1 nur mit den Leiterbahnen der Nummer 1 in den benachbarten Kanälen verbunden, die Führungsroute Nr. 2 ist nur mit den Leitern der Spurnummer 2 usw. verbunden. Die folgende Abbildung zeigt die Anschlüsse in der Switchbox.

Die Topologie des Schalterblocks

Moderne FPGA-Familien erweitern die oben aufgeführten Möglichkeiten und bieten integrierte Funktionen auf hohem Niveau. Aufgrund des Vorhandenseins dieser gemeinsamen Funktionen im Siliziumkristall ist es möglich, die Fläche des Kristalls zu reduzieren. Zusätzlich zu diesem Schema funktionieren diese Funktionen schneller als wenn sie auf Basis von Grundelementen implementiert werden. Beispiele für solche Funktionen sind Multiplexer, digitale Signalverarbeitungseinheiten, eingebaute Prozessoren, schnelle E/A-Logik und eingebauter Speicher.

PMTCT wird auch häufig für Eignungsprüfungssysteme verwendet, einschließlich Eignungsprüfungen vor und nach Silizium sowie für die Entwicklung von Programmen für eingebettete Systeme. Dies ermöglicht Herstellern von integrierten Schaltkreisen, die Leistung ihrer Geräte vor der Herstellung im Werk zu testen, was die Zeit des Markteintritts verkürzt.

Verschiedene FPGAs

Produkt Hash rate
[Mhash/s]
Effizienz
[Mhash/J]
Effizienz
[Mhash/s/$]
Leistung
[W]
Preis
[$]
Avnet Spartan-6 LX150T Development Kit 100 0.10 995
Bitcoin Dominator X5000 100 440
BitForce SHA256 Single 832 10.4 1.38 80 599
Butterflylabs Mini Rig 25,200 20.16 1.64 1,250 15,295
Digilent Nexys 2 500K 5 0.03 149
Icarus 380 19.79 0.66 19.2 569
KnCMiner Mars 6,000  ??? 2.15  ??? 2,795
Lancelot 400 26 350
ModMiner Quad 800 20 0.75 40 1,069
Terasic DE2-115 80 0.13 595
X6500 FPGA Miner 400 23.25 0.72 17.2 550
ZTEX USB-FPGA Module 1.15b 90 0.27 325
ZTEX USB-FPGA Module 1.15x 215 0.52 406
ZTEX USB-FPGA Module 1.15y 860 0.65 1,304


FPGA und ASIC

Die anwendungsspezifische integrierte Schaltung ist ein einzigartiger IC, der für einen bestimmten Zweck entwickelt wurde. Diese Art von ICs ist heutzutage in der meisten Hardware sehr verbreitet, da das Bauen mit Standard-IC-Komponenten zu großen und sperrigen Schaltungen führen würde. Ein FPGA (Field Programmable Gate Array) ist ebenfalls eine Art IC, jedoch ist die Programmierung während der Produktion nicht integriert. Wie der Name schon sagt, kann der IC vom Benutzer programmiert werden, solange er über die richtigen Werkzeuge und das richtige Wissen verfügt.

Ein ASIC kann nicht mehr geändert werden, nachdem er die Produktionslinie verlassen hat. Aus diesem Grund müssen sich die Konstrukteure absolut sicher sein, insbesondere wenn große Mengen des gleichen ASICs hergestellt werden. Der programmierbare Charakter eines FPGAs erlaubt es den Herstellern, Fehler zu korrigieren und sogar Patches oder Updates zu versenden, nachdem das Produkt gekauft wurde. Die Hersteller nutzen dies auch, indem sie ihre Prototypen in einem FPGA erstellen, so dass dieser gründlich getestet und in der realen Welt überarbeitet werden kann, bevor der Entwurf an die IC-Gießerei für die ASIC-Produktion gesendet wird.

ASICs haben einen großen Vorteil hinsichtlich der wiederkehrenden Kosten, da aufgrund der festen Anzahl von Transistoren im Design sehr wenig Material verschwendet wird. Mit einem FPGA wird immer eine bestimmte Anzahl von Transistorelementen verschwendet, da diese Pakete Standard sind. Dies bedeutet, dass die Kosten eines FPGAs oft höher sind als die eines vergleichbaren ASICs. Obwohl die wiederkehrenden Kosten eines ASIC recht niedrig sind, sind seine einmaligen Kosten relativ hoch und reichen oft bis in die Millionen. Da es jedoch nicht wiederkehrend ist, nimmt sein Wert pro IC mit zunehmendem Volumen ab. Wenn Sie die Produktionskosten im Verhältnis zum Volumen analysieren, werden Sie feststellen, dass die Verwendung von FPGA bei niedrigeren Produktionszahlen tatsächlich günstiger ist als bei Verwendung von ASICs.

Siehe auch auf BitcoinWiki

Ressourcen