Warum sind FPGAs nicht allgegenwärtig?

65

Wenn ich etwas über FPGAs verstehe, handelt es sich im Grunde genommen um vollständig konfigurierbare Logikgatterschaltungen. So kann man mit ihnen alles gestalten. Man kann alles so individuell wie möglich gestalten und somit die gleichen Ziele auf eine weitaus effizientere Weise erreichen, als dies mit einem Mikrocontroller möglich ist. Auf diese Weise sieht es so aus, als würde ein FPGA jeden Tag und zu jeder Zeit einen Mikrocontroller schlagen. Meine Frage ist also, ob FPGAs wirklich so großartig sind, was sie davon abhält, viel häufiger als Mikrocontroller zu sein. Aus dieser Sicht scheint es mir, dass FPGAs Mikrocontroller schon vor langer Zeit ausgemerzt haben sollten. Warum ist das nicht der Fall? Ist es der Preis, die Schwierigkeit, ein FPGA zu programmieren, oder etwas ganz anderes?

Utku
quelle
2
Mögliches Duplikat von
Softcore-
Vielleicht möchten Sie auch diesen Thread lesen: electronics.stackexchange.com/questions/4382/…
Tom L.
43
Hubschrauber sind flexibler als Autos. Warum fährt also noch jemand mit dem Auto zur Arbeit?
Olin Lathrop
15
Denn alle FPGA-Unternehmen bieten Ihnen schreckliche proprietäre Tools, die eine enorme Lernkurve aufweisen und für die meisten Entwickler nicht zugänglich sind. Ersetzen Sie dies durch eine vollständig geöffnete Toolchain und sie wären wahrscheinlich allgegenwärtig.
R ..
@R .. ... oder zumindest keine Option für den letzten Ausweg.
Dan Neely

Antworten:

94

Sie ignorieren viele Faktoren, die bei der Auswahl des Designs eine Rolle spielen:

  1. Kosten . FPGAs sind bei gleicher Komplexität der Logik teurer als Mikros.

  2. Logische Komplexität . Ausführbarer Code kann eine weitaus kompliziertere Logik implementieren als die gleiche Anzahl von Gattern in dem direkt verwendeten Mikro.

  3. Einfache Entwicklung . Es ist einfacher, ausführbaren Code zu schreiben, als Logik für alle außer kleinen Problemen zu definieren. Selbst bescheidene Mikrocontroller-Projekte enthalten Tausende von Codezeilen. Das Entwickeln der äquivalenten Logikdefinitionen würde viel länger dauern und das Debuggen und Überprüfen erheblich erschweren.

  4. Leistungsaufnahme . Da FPGAs für Hochgeschwindigkeitsvorgänge vorgesehen sind, die von Mikros nicht verarbeitet werden können (sonst würden Sie ein Mikro verwenden), sind sie nicht für geringen Stromverbrauch optimiert. Dies macht sie für einige Niedrigenergieanwendungen ungeeignet. Einige Mikros haben Schlafströme unter 1 µA und können mit nur wenigen µA bei langsamen Taktraten betrieben werden. Versuchen Sie, ein FPGA zu finden, das dies ermöglicht.

Die Hauptvorteile von FPGAs gegenüber Mikros sind, dass sie schneller sind und mehr Dinge parallel erledigen können. Ansonsten verwenden Sie lieber ein Mikro. Daher beginnen Sie im Designprozess normalerweise mit einem Mikro und gehen dann widerwillig zu einem FPGA, wenn Sie wirklich die Geschwindigkeit und / oder den gleichzeitigen Hochgeschwindigkeitsbetrieb benötigen. Selbst dann implementieren Sie nur die geschwindigkeitskritischen Teile in einem FPGA und belassen die Funktionen zur Steuerung der niedrigeren Geschwindigkeit und dergleichen im Mikro.

Olin Lathrop
quelle
2
"Selbst dann implementieren Sie nur die geschwindigkeitskritischen Teile in einem FPGA und belassen die Funktionen zur Steuerung der niedrigeren Geschwindigkeit und dergleichen im Mikro." Und das liegt daran, dass die Entwicklung eines FPGAs mühsam ist, oder?
Utku,
2
@Utku: Ja, das ist Grund 3, obwohl die Gründe 1-2 normalerweise auch zutreffen. FPGAs sind für dieselbe Aufgabe einfach nicht so kostengünstig wie Mikros, es sei denn , diese Aufgabe stellt so hohe Anforderungen an die Geschwindigkeit, dass ein Mikro dies einfach nicht kann.
Olin Lathrop
4
Es ist leicht zu erkennen, dass diese Antwort aus Sicht der CPU-Benutzer geschrieben wurde. "Gehen Sie widerwillig zu einem FPGA, wenn Sie wirklich die Geschwindigkeit und / oder den gleichzeitigen Hochgeschwindigkeitsbetrieb benötigen". Sie sind nicht so schlimm. Es gibt Anwendungen, bei denen man nicht einmal daran denkt , eine CPU über ein FPGA zu verwenden.
Stanri
26
So erkläre ich es normalerweise: Es ist schwierig, Dinge auf einer CPU parallel zu machen, und es ist schwierig, Dinge in einem FPGA seriell zu machen.
Ben Jackson
14
Ein wichtiger Punkt bei FPGAs: Die Rekonfigurierbarkeit der Logik hat einen Preis. Die entsprechende Logik, die ein FPGA implementiert, ist weitaus weniger kompliziert als das FPGA selbst. Alle Nachschlagetabellen, Routing-Matrix-Komponenten usw. verbrauchen viel mehr Siliziumfläche und -leistung als die entsprechenden Implementierungen in harter Logik. Dies bedeutet, dass FPGAs in allen Leistungsmetriken - Leistungsaufnahme und Leerlauf, Dichte, Taktrate usw. - schlechter sind als der Aufbau derselben Funktionalität direkt in Silizium, wie dies bei Mikrocontrollern, Allzweck-CPUs und dem FPGA selbst der Fall ist.
alex.forencich
45

Ein Unterschied, den ich hier nicht näher kennengelernt habe, ist, dass FPGAs ganz anders verwendet werden und sich anders verhalten als Prozessoren.

Ein FPGA ist wirklich gut darin, genau dieselbe Aufgabe immer und immer wieder zu erledigen. Zum Beispiel die Verarbeitung von Video-, Audio- oder HF-Signalen. Oder Weiterleiten von Ethernet-Paketen. Oder den Flüssigkeitsfluss simulieren. In jeder Situation, in der Ihnen sehr schnell viele Daten der gleichen Art zur Verfügung stehen und Sie alle auf die gleiche Weise behandeln möchten. Oder Sie möchten denselben Algorithmus wiederholt ausführen. Das FPGA hat nicht wirklich "Aufgaben", die starten und stoppen [1]. Seine gesamte Aufgabe besteht darin, dasselbe mit den erhaltenen Daten zu tun, solange diese aktiv sind. Es schaltet nicht, es macht nichts anderes. Es ist die ultimative produktionslinie arbeiter. Es wird immer wieder dasselbe tun, so schnell es kann, für immer.

CPUs hingegen sind der Inbegriff für Flexibilität. Sie können so programmiert werden, dass sie alles gleichzeitig erledigen. Sie haben Aufgaben, die beginnen und enden, sie schalten, erledigen mehrere Aufgaben und wechseln ständig Funktionen.

Das FPGA und die CPU sind völlig gegensätzlich. Das Gut der CPU ist Zeit - es muss schneller erledigt werden. Je schneller Ihre Anwendung ausgeführt wird, desto besser.

Die Ware des FPGA ist der Weltraum. Ihr FPGA ist nur so groß und es gibt nur so viele verfügbare Gates, um die gewünschte Aufgabe auszuführen. In den meisten Fällen ist das Problem eher die Größe als die Geschwindigkeit [2].

Ein FPGA kann sich wie eine CPU verhalten. Sie können einen CPU-IP-Core in ein FPGA einbauen, dies ist jedoch aus den von anderen beschriebenen Gründen nur schwer zu rechtfertigen [3]. FPGA und CPU sind Gegensätze, beide haben ihre eigenen Stärken und Schwächen und haben dadurch ihren eigenen Platz.


Anmerkungen:

1) Ein FPGA könnte für verschiedene Aufgaben ausgelegt sein, aber selbst dann wäre es eine bestimmte Nummer, für die es vorkonstruiert wurde.

2) Geschwindigkeit ist auch eine FPGA-Designspezifikation. Es ist wirklich ein Kompromiss zwischen Geschwindigkeit und Größe.

3) Das Einsetzen einer CPU in ein FPGA erfolgt relativ häufig, jedoch von Fall zu Fall, abhängig von den spezifischen Anwendungen. Zum Beispiel, wenn Sie einen wirklich winzigen Mikrocontroller benötigen und über zusätzlichen FPGA-Speicherplatz verfügen.

Und zu guter Letzt: Diese Antwort ist eine große Vereinfachung - FPGAs werden auf äußerst vielfältige und komplexe Weise verwendet, und dies ist eine sehr kurze Übersicht über die Art und Weise, wie sie im Allgemeinen verwendet werden.

Stanri
quelle
1
"Oder Ethernet-Pakete weiterleiten. Oder Flüssigkeitsfluss simulieren." Obwohl, soweit ich weiß, ASIC normalerweise für erstere verwendet wird (zumindest in der Massenproduktion) und GPUs für letztere schneller, billiger, mit geringerem Stromverbrauch und leichter programmierbar sind.
Reirab
1
@reirab Dies waren Beispiele für die Art von Operationen, die FPGAs gut ausführen können. Sie kamen mir in den Sinn, weil sie beide Anwendungen sind, für die ich persönlich FPGAs codiert habe. Es gibt mehr als eine Möglichkeit, eine Katze zu häuten. Die Wahl des Geräts hängt von vielen Designfaktoren ab.
Stanri
5
@reirab Alles, was ein FPGA mit einem ASIC tun kann, sorgt für geringeren Stromverbrauch und geringere Produktionsgrenzkosten. Die Vorteile von FPGA liegen im Prototyping und in der Kleinserienfertigung, da die Vorabkosten für einen ASIC weitaus höher sind. Das heißt, letzteres ist nur dann sinnvoll, wenn das Design fertiggestellt ist und Sie viele davon herstellen.
Dan Neely,
Es ist seltsam zu behaupten, dass eine CPU flexibler ist als ein FPGA, wenn man bedenkt, dass man eine CPU leicht in einem FPGA implementieren kann (jeder ernsthafte CS-Student sollte dies mindestens einmal tun). Ein FPGA ist ein viel niedrigeres Konzept als eine CPU, daher ist es einfach nicht sinnvoll, sie direkt imho zu vergleichen.
Voo
Diese Antwort stört mich wirklich. "Die Ware der CPU ist Zeit", "Die Ware der FPGAs ist Raum." Huh? ASICs und CPUs sind das Gegenteil, und FPGAs liegen in der Mitte, um sowohl das Beste als auch das Schlechteste aus beiden Welten herauszuholen.
Jotorious
20

Wie Olin sagt, ist so etwas wie ein Mikro für viele Aufgaben effizienter, und Sie werden fast immer ein Mikro finden, das überall dort verwendet wird, wo ein FPGA erscheint. Die Fläche des verwendeten Siliziums (was sich nichtlinear in Kosten niederschlägt) und der Stromverbrauch sind viel geringer. Aus diesem Grund ist es nicht ungewöhnlich, eine "weiche" MCU auf einem FPGA zu implementieren. Die Kosten und die Leistung eines solchen Mikros sind jedoch überwältigend.

Einige moderne FPGAs enthalten einen oder mehrere "harte" Kerne, beispielsweise die allgegenwärtige ARM-Serie. Sie können auch dedizierte Speicherblöcke enthalten, da es wirklich ineffizient ist, Speicher aus Gates zu machen. Ein 32-Bit-Mikrokern nimmt in einem typischen FPGA einen winzigen Teil der Siliziumfläche ein, wodurch Sie eine Vorstellung von den relativen Kosten erhalten.

Die Entwicklung ist erheblich schwieriger, und IP ist in der Regel nicht so frei verfügbar wie für Mikros und dedizierte SOC-Lösungen, z. B. LCD-Controller, PCI-Schnittstellen und Ethernet-MACs. Der Grund ist zum Teil, dass sie durch die Offenlegung der HDL-Logikbeschreibungen das Design übertragen und nicht nur die Instanziierung des Designs. Ein weiterer Grund ist, dass die Leistung vom Layout der Logik im FPGA abhängt, was während der Entwicklung viel Aufwand erfordert.

Eine weitere Komplikation besteht darin, dass die meisten komplexen FPGAs für die Konfiguration auf RAM basieren und die Prozesskosten so hoch sind, dass ein externer nichtflüchtiger Speicher zum Speichern des Konfigurations- und Programmspeichers für eine beliebige MCU an Bord erforderlich ist. Dieser Speicher muss beim Einschalten in den RAM geladen werden.

FPGAs sind äußerst nützliche Werkzeuge in der Toolbox, werden jedoch in naher Zukunft MCUs oder ASICs nicht durchgängig ersetzen.

Spehro Pefhany
quelle
10

Die beste Verwendung von Silizium für einen Job ist ein ASIC, nichts Verschwendetes, aber sie haben eine enorme Lernkurve, NRE und Inflexibilität.

Es gibt zwei Möglichkeiten, Flexibilität in einen Chip einzubauen. a) Besitzen Sie eine platzoptimierte ALU und verwenden Sie sie immer wieder für gespeicherte Daten. Dies wird als MCU bezeichnet und erfordert eine große Menge Silizium, das „nichts tut“, den Programmspeicher, breite Busse, die von Gerät zu Gerät verkehren, und Buszugriffsschalter. b) Genaue Logik mit einigen optionalen platzoptimierten Teilen wie Multiplikatoren, kleinen RAMs und einfachen CPUs. Dies wird als FPGA bezeichnet und erfordert eine große Fläche an Silizium, die nichts zu tun hat, programmierbare Schalter und Verbindungsleitungen.

Mit diesen Strukturen eignen sich MCUs am besten für Aufgaben, die in serielle Blöcke unterteilt werden können, und FPGAs eignen sich am besten für Aufgaben, die einen Hochgeschwindigkeits-Parallelbetrieb erfordern. Wenn die Anwendung schwer ist und die Kosten von den Siliziumkosten dominiert werden, werden die beiden Typen auf natürliche Weise verwendet.

Wenn die Anwendung leicht, aber großvolumig ist, dominieren die Kosten eher durch Verpackung als durch Silizium, und jeder Typ ist rentabel. Altera hat einige sehr kleine FPGAs mit sehr geringem Stromverbrauch, die mit nur einem Dollar pro Handvoll MCUs konkurrieren können.

Bei Apps mit geringem Volumen dominieren in der Regel die Entwicklungskosten, und dort gewinnen MCUs, vorausgesetzt, sie haben die Geschwindigkeit

Neil_UK
quelle
9

In Bezug auf Stromverbrauch und Siliziumnutzung ist ein FPGA im Vergleich zu einem Mikroprozessor sehr schlecht.

Ein FPGA verbraucht einen großen Teil seiner Siliziumfläche in der Logikkonfigurationsschaltung, was für ein Mikro nicht gilt. Es müssen viel mehr Verbindungen verfügbar sein, als für eine dedizierte Implementierung eines Mikroprozessors erforderlich wären.

Das FPGA verbraucht mehr Strom als ein dedizierter ASIC wie ein Mikroprozessor, da die Logik nicht so effizient implementiert ist.

Jede Funktion, die in einem FPGA implementiert werden kann, kann in einem dedizierten ASIC effizienter, kostengünstiger, mit geringerem Stromverbrauch, kleinerem Platinenplatz usw. ausgeführt werden. Dies setzt voraus, dass die Volumina groß genug sind, um das NRE auszugleichen.

Kevin White
quelle
Wenn das Ziel darin besteht, den gesamten Funktionsumfang des Mikroprozessors zu implementieren, ist dies sicher. Sobald Sie eine bestimmte Aufgabe erledigt haben, können Sie auch viel verschwendetes Silizium im Mikrocontroller identifizieren - möglicherweise ist diese Verschlüsselungs-Engine Platzverschwendung in Ihrem Projekt. Oder die CAN-Peripherie? Oder die Gleitkommaeinheit? Die beste FPGA-Auslastung ist geringer, aber Sie leiden auch nicht unter einer Auslastung von 0% in großen Bereichen, wie dies bei einem Mikrocontroller der Fall ist. (Auf der anderen Seite ist mit Clock Gating eine Auslastung von 0% großer Schaltkreise aus Sicht der Stromversorgung sehr wünschenswert.)
Ben Voigt
8

Mikroprozessorbasierte d-Systeme und spätere Mikrocontroller haben einen enormen Funktionsumfang erreicht, indem sie viele der darin enthaltenen einzelnen Schaltkreise verwenden konnten, um viele verschiedene Aufgaben zu unterschiedlichen Zeiten zu erfüllen. Ich denke, es ist aufschlussreich, den 1976 entworfenen Arcade-Automaten Tank mit dem Game Combat zu vergleichen, der auf dem zweiten mikroprozessorgesteuerten Spielautomaten der Welt, dem Atari 2600, ausgeführt wird. Obwohl es einige Unterschiede im Gameplay gibt, wurde die Atari 2600-Hardware im Wesentlichen entworfen Spiele wie Tank zu minimalen Kosten zu implementieren; Die Tatsache, dass es möglich war, durch Einsetzen verschiedener ROM-Kassetten verschiedene Spiele zu spielen, war ein netter Bonus.

Das Spiel Panzer ermöglicht es zwei Spielern, Panzer über den Bildschirm zu fahren und Schüsse aufeinander abzufeuern. Es hat "Slip" -Zähler für die X- und Y-Position jedes Panzers, die X- und Y-Position jedes Spielers, einen Aufwärts- / Abwärtszähler für den Winkel jedes Spielers und den Schusswinkel jedes Spielers, einen Zähler für die Punktzahl jedes Spielers, X- und Y-Raster -Positionszähler und viele Steuerschaltkreise über diesen Dingen. Es verfügt über Hardware zum Abrufen und Anzeigen von Spielfelddaten aus dem ROM sowie über Hardware zum Abrufen und Anzeigen von Formen für die Panzer der beiden Spieler und Punktzahlen aus dem ROM.

Der Atari 2600 verfügt über einen Schlupfzähler für die horizontalen Positionen von jeweils zwei Spielerobjekten, von jeweils zwei Raketenobjekten, und über ein zusätzliches Objekt namens "Ball", das im Kampf nicht verwendet wird, aber in einigen anderen Spielen verwendet wird. Für jedes der Spielerobjekte verfügt es über Hardware, um ein in einem 8-Bit-Latch gespeichertes Muster sowie einen "verzögerten" 8-Bit-Latch für jeden Spieler auszugeben, der jedes Mal in den primären 8-Bit-Latch des anderen Spielers kopiert wird Form wird aktualisiert. Es hat auch einen horizontalen Strahlpositionszähler und ein 20-Bit-Latch in Form eines Spielfelds, das zweimal pro Abtastzeile auf dem Bildschirm ausgegeben wird, wobei die Kopie auf der rechten Seite entweder als Wiederholung oder als Reflexion der linken Seite erscheint. Es hat Hardware, um Kollisionen zu erkennen, aber nichts als Folge davon zu tun. Das tut es nicht Hardware für die vertikalen Positionen von Objekten, die vertikale Position des Rasterstrahls (!) sowie Hardware für die Punktezählung, die Punkteanzeige, die Spieldauer usw.

Alle Funktionen, bei denen der 2600 die Hardware auslässt, werden von der Software in der Kassette ausgeführt. Die vertikale Position jedes Objekts muss nur einmal pro Scan-Zeile mit der Raster-Beam-Position verglichen werden. Die Punktzahl des Spielers und die verbleibende Spielzeit müssen nur einmal pro Frame aktualisiert werden. Die Punktzahlen der Spieler werden in Scan-Zeilen über dem Spielfeld gespeichert und kann daher die gleiche Hardware verwenden, die für das Spielfeld usw. verwendet wird.

Der normale Ansatz zur Implementierung eines Spiels wie "Tank" in einem FPGA besteht darin, getrennte Schaltkreise für verschiedene Funktionen zu verwenden, ähnlich wie es der 1976er Arcade-Automat tat. Ein solcher Ansatz würde funktionieren, aber eine erhebliche Menge an Hardware verwenden. Ein mikroprozessorbasierter Ansatz könnte mehr als die Hälfte dieser Hardware für das Hinzufügen eines Mikroprozessors einsparen, der wahrscheinlich weniger Schaltkreise enthält als die ersetzte Hardware (der 2600 könnte Spiele implementieren, die weitaus ausgefeilter sind als Tank, für die viel mehr Hardware erforderlich wäre) wenn sie keinen Mikroprozessor benutzen).

FPGAs eignen sich hervorragend für den Fall, dass ein Gerät benötigt wird, das viele einfache Aufgaben gleichzeitig ausführen kann . Mikroprozessor-basierte (oder Mikrocontroller-basierte) Systeme sind im Allgemeinen jedoch besser, wenn viele Aufgaben ausgeführt werden müssen, diese jedoch nicht gleichzeitig verarbeitet werden müssen, da sie die Verwendung einer kleinen Menge vereinfachen der Schaltung eine große Anzahl von unterschiedlichen Zwecken zu erreichen.

Superkatze
quelle
Könntest du nicht auch Minen legen? ;-)
Scott Seidman
@ScottSeidman: Der Arcade-Automat hatte ein paar Minen an fest verdrahteten Positionen, die als X gezeichnet waren. Es wäre für den 2600 sehr schwierig gewesen, die Minen als X darzustellen, während beide Spieler und beide Raketen gezeigt wurden. Wenn es einem nichts ausgemacht hätte, die Minen bei 60 Hz flackern zu lassen, wäre es mit einigen später entdeckten Tricks möglich gewesen, hätte aber mehr Code benötigt (COMBAT ist eine 2K-Kassette, die ziemlich voll ist - sogar die zwei Bytes in der unbenutzten Der BRK / IRQ-Vektor bei $ FFFE / FFFF wird verwendet, um eine Zwei-Byte-Tabelle zu halten!).
Supercat
Es wäre Combat wahrscheinlich möglich gewesen, die Minen als blinkende Quadrate zu implementieren, wenn es gewillt gewesen wäre, auf einige seiner anderen Optionen wie Abpraller usw. zu verzichten, aber ich denke, Joe Decuir (Programmierer) hat gute Arbeit bei der Auswahl spielbarer Optionen geleistet. Mein einziger Nachteil ist, dass der Doppeldecker-gegen-Bomber vielleicht mehr Spaß gemacht hätte, wenn der Bomber ein 2x statt 4x Sprite gewesen wäre.
Supercat
5

Es sind nur die Kosten. Wenn ein Mikro nur 30 Cent kosten kann, liegt ein billiger FPGA im Bereich von 5 US-Dollar. Die Kosten scheinen vielleicht nicht so hoch zu sein, aber wenn Sie eine Million eines furzenden Spielzeugs für 10 US-Dollar verkaufen, dann ist der Preis für das FPGA unter dem Strich das Gegenteil.

vini_i
quelle
6
Die Kosten sind sicherlich ein Problem, aber zu sagen, dass der Unterschied durchaus darin besteht, dass die Kosten so naiv sind wie der Gedanke, dass alle Mikros durch FPGAs ersetzt werden können.
Olin Lathrop,
@OlinLathrop Wenn die Kosten keine Rolle spielten, kann alles, was ein Mikro tun kann, von einem FPGA erledigt werden. Dies wurde mit der Fähigkeit eines FPGA gezeigt, einen weichen Mikrocontroller-Kern zu halten. Das Problem ist, dass ein FPGA, der einen solchen Kern aufnehmen kann, mindestens und um ein Vielfaches teurer ist als ein emulierter Micro-Who-Core.
vini_i
Die Kosten können viel mehr bedeuten als der Preis pro Einheit, aber das ist alles, was Sie in diese Analyse einfließen lassen möchten.
Scott Seidman
2
Ich kann nicht sagen, ob Sie absichtlich so tun, als ob Sie den Punkt verpassen oder einfach nur dicht sind. In jedem Fall reagieren Sie auf etwas, das niemand gesagt hat. Alle sind sich einig, dass FPGAs mehr kosten und dass diese Kosten ein Problem sind. Aber auch hier ist die Behauptung, dass dies das einzige Problem ist, einfach falsch. Wenn ich Ihnen ein paar kostenlose Mikros und FPGAs geben würde, gibt es immer noch wichtige Gründe, warum Sie die Mikros in vielen Designs über den FPGAs verwenden würden.
Olin Lathrop
4
@sleb: Nein, der Kostenunterschied ist nicht nur volumenbedingt. Die pro geliefertem Gate benötigte Siliziumfläche ist in einem FPGA deutlich größer als in einem Custom-Chip wie einem Mikrocontroller. All diese Konfigurierbarkeit auf der Gate-Verbindungsebene erfordert die Implementierung von Siliziumfläche. Bei hohen Stückzahlen geht es bei den Kosten für einen Chip ausschließlich um die Siliziumfläche.
Olin Lathrop
5

Um die anderen sehr guten Antworten zu ergänzen, denke ich, dass die Einführung von FPGA auch eine Frage der Domäne ist: Zum Beispiel werden FPGA-Boards für neuromorphe Geräte immer allgegenwärtiger, weil ein großer Bedarf an Parallelität besteht, was ein starker Punkt ist von FPGA.

Wenn Sie den Trend, den wir für neuromorphe Geräte sehen, extrapolieren, können Sie sich vorstellen, dass andere Felder, die auf Parallelität basieren oder diese kritisch erfordern, wahrscheinlich viel mehr FPGAs verwenden werden. Vielleicht wird FPGA für Consumer-Produkte nicht allgegenwärtig sein, aber es kann für bestimmte Domänen sein, da es derzeit für neuromorphe Geräte zu sein scheint.

mühsam
quelle
Dies mag zwar zutreffen, scheint aber für eine vollständige Antwort nicht ausreichend zu sein. Vielleicht wäre es besser als Kommentar, oder Sie könnten es erweitern.
Null
Dies ist keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klarstellung zu bitten, hinterlassen Sie einen Kommentar unter seinem Beitrag.
Funkyguy,
3
@Funkyguy, das beantwortet die Frage. Sie sagen im Wesentlichen, dass FPGAs nicht allgegenwärtig sind, da gängige Consumer-Anwendungen nicht die Parallelität erfordern, die für die FPGAs typisch ist.
Stanri