Günstigste FPGAs? [geschlossen]


44

Wie billig werden FPGAs? Ich weiß, dass sie teurer sind als Mikroprozessoren mit vergleichbaren Fähigkeiten, aber ich frage mich, ob es FPGAs gibt, die einen Microblaze-Softcore unter Linux enthalten könnten, während Gates für die Implementierung von DSP-Funktionen (z. B. Media-Codecs) zu wettbewerbsfähigen Kosten zur Verfügung stehen Sagen wir, ein Cortex A8 (20-30 USD in Menge ~ 100).

(Entschuldigung, wenn meine Terminologie nicht idiomatisch ist, dh falsch. Bitte kommentieren Sie mit Korrekturen oder bearbeiten Sie sie direkt.)


(Schamloser Stecker) Das GNU-Radio (USRP2) verwendet einen AEMB, der mit einer Reihe von DSP-Blöcken gebündelt ist. Es macht softwaredefiniertes Radio wirklich gut - aeste.my/node/29
sybreon

@sybreon Seltsamerweise verwende ich USRP2 für mein Senior Design-Projekt - Nice
onaclov2000


Antworten:


23

Ich habe kürzlich an einer Online-Konferenz zu FPGAs teilgenommen, mit der Keynote "Sollte Ihr nächster Prozessor ein FPGA sein?".

Das FPGA ist im Grunde genommen in jeder Anwendung sinnvoll, die stark parallelisierbare Arbeitsströme erfordert. Als Beispiel wurde die Analyse von Full-HD-Bildern verwendet, um beispielsweise Fußgänger zu finden.

Das, woran Sie denken müssen, ist, dass Sie Ihr FPGA jedes Mal initialisieren müssen, wenn es hochfährt. Ich denke, dass das FPGA mit Xilinx (das einen On-Chip-ARM-Kern hat) eine gute Option ist, aber wahrscheinlich teuer. Ein Blick in die Actel-Modelle mit On-Chip-Flash kann ebenfalls hilfreich sein.

Was die Leistung anbelangt, so hat das Unternehmen BDTI bei hochparallelen Berechnungen einen Benchmark durchgeführt, bei dem ein Leistungsgewinn von etwa 40x auf einen FPGA umgestellt wurde. Das Interessante ist, dass sie Chips mit ähnlichen Kosten verglichen haben (23 $ gegenüber 28 $, glaube ich).

Hier sind die Links, die Sie interessieren könnten:

Pocket Guide zur Prozessorauswahl

FPGA Conference Archives (Kostenlose Registrierung, jedoch nur für ca. 6 Monate nach dieser Antwort verfügbar)

Sie können die Leistung von FPGA-basierten Systemen, die auf MIPS- oder Mhz-Statistiken basieren, nicht wirklich vergleichen. Die Art und Weise, wie ein FPGA zur Verarbeitung bestimmter Aufgaben verwendet wird, unterscheidet sich einfach zu stark von einem Mikrocontroller. Das Design der Firmware für ein FPGA muss zum Beispiel mit VHDL erfolgen, was mit Assembly vergleichbar ist. Ein Register Transfer Level (RTL) der Abstraktion. Einige Umgebungen werden erstellt, um mehr Abstraktion zu bieten, diese sind jedoch häufig herstellerspezifisch. Wikipedia bietet einen guten Überblick über die Sprachen, in denen FPGA-Code programmiert werden kann:

Wikipedia: FPGA programmieren

Wikipedia: Digital Circuit Design

Wenn Sie Geld zum Brennen haben, können Sie mit den LabView-Systemen beispielsweise FPGA-basierte Echtzeitmesssysteme erstellen. Die dafür benötigten Geräte haben einen völlig anderen Preisbereich (ab 1500 US-Dollar), öffnen das FPGA-Design jedoch mit grafischer Programmierung für ein viel breiteres Publikum.

Immer mehr Anbieter bieten Boards an, die Mikrocontroller wie einen ARM-Chip mit einem FPGA kombinieren, um bestimmte zusätzliche Funktionen und parallele Rechenleistung bereitzustellen. Ein Beispiel für solche Produkte finden Sie hier: EmbeddedARM: FPGA-Serie


23

Wie billig werden FPGAs? Laut Newark liegen die günstigsten FPGAs bei etwa 10 USD (der Altera Cyclone am niedrigsten und der Xilinx Spartan am niedrigsten Ende). Sie verfügen möglicherweise über genügend Kapazität, um eine einfache 8-Bit-CPU auszuführen.

Selbst einfache 32-Bit-CPUs (dh ohne MMU) benötigen erwartungsgemäß etwa das Vierfache der FPGA-Ressourcen einer 8-Bit-CPU. FPGAs mit kaum genug Ressourcen, um eine so einfache 32-Bit-CPU zu betreiben, kosten rund 14 US-Dollar. Nach meinem Verständnis wurde uCLinux auf einige dieser FPGA-Soft-CPUs (wie NIOS II / e) portiert - uClinux ist möglicherweise für Ihre Zwecke geeignet.

Vollwertiges Linux erfordert eine CPU mit einer MMU (wie NIOS II / f). Eine 32-Bit-CPU mit einer MMU benötigt etwa das Vierfache der FPGA-Ressourcen einer 32-Bit-CPU ohne MMU - die Gründe dafür sind nicht so offensichtlich.

Soweit ich auf der Xilinx Microblaze-Seite sehen kann , läuft die Microblaze-Soft-CPU nur auf Xilinx-FPGAs.

Linux wurde bereits auf mehrere andere Soft-CPUs portiert. Wenn Sie Linux auf FPGAs anderer Unternehmen ausführen möchten, sollten Sie sich die Linux-Ports ansehen, die unter "Soft CPU Cores for FPGA" aufgeführt sind .

Einige dieser Soft-CPUs - einschließlich einer MMU - passen auf einen Xilinx Spartan XC3S400A (17 US-Dollar von Avnet).

Ich habe gehört, dass einige 32-Bit-Soft-CPUs - einschließlich einer MMU - ziemlich einfach als "Dual Core" auf einem 20-Dollar-FPGA-Chip einzurichten sind. Diejenigen, die "Jan's Razor" folgen, könnten versuchen, stattdessen ein Dutzend oder so 8-Bit-CPUs auf demselben Chip unterzubringen.


1
Es gibt Open-Source-Microblaze-Implementierungen (wie aeMB - opencores.org/project,aemb ), die auf andere (Nicht-Xilinx-) FPGAs portiert werden sollen.
Mrkj

(Schamloser Stecker) Es ist bekannt, dass der AEMB uC / OS-II auch in Altera-FPGAs ausführt
aeste.my/node/7

11

Im Allgemeinen kostet FPGA viel mehr als dasselbe in Silizium implementierte Gerät, da aufgrund der Rekonfigurierbarkeit viel Overhead anfällt. Nein, Sie werden kein FPGA für 20-30 US-Dollar finden, das die gleiche Leistung hat wie eine ARM-CPU, die 20-30 US-Dollar kostet. Jetzt finden Sie vielleicht ein FPGA für 20-30 US-Dollar, das bestimmte Aufgaben viel schneller als diese 20-30 US-Dollar ARM ausführen kann, aber es wird nicht in der Lage sein, es bei allgemeinen Computeraufgaben zu übertreffen.

Aus diesem Grund ist es üblich, dass Leute einen Mikrocontroller und einen FPGA auf derselben Platine anbringen. ARM und PPC werden am häufigsten mit einem FPGA kombiniert.


4
Ich verstehe, dass ich kein FPGA finden werde, das in Bezug auf Kosten und Leistung besser ist als ein Mikro, aber es scheint, als gäbe es ein FPGA, das die Kosten von Mikro + FPGA übertrifft und gleichzeitig eine ähnliche Leistung bietet, und das alles auf einem Chip. Ist das sinnvoll?
Pingswept

10

Vergessen Sie beim Kauf eines FPGA nicht, die Kosten für den Flash-Speicher mit dem FPGA-Programm zu berücksichtigen. Das ist leicht zu vergessen.

Als Leiterplattenentwickler sind FPGAs millionenfach einfacher anzuordnen, da Sie die Pinbelegung auch nach der Herstellung der Platine beliebig neu anordnen können. Es gibt potenzielle Kosteneinsparungen, die mit der Verringerung der zum Routen eines FPGAs erforderlichen Schichten verbunden sind.

Für die anderen, die die Leistung von FPGA vs. CPU poo-poo, stimme ich bis zu einem gewissen Grad zu. Ein tatsächlicher Prozessor erledigt die eigentlichen Aufgaben des Prozessors schneller als ein FPGA, der so programmiert ist, dass er wie ein Prozessor funktioniert.

Für ein FPGA ist das allerdings nicht wirklich fair. CPUs sind "zeitlich begrenzt"; Wenn Sie mehr arbeiten möchten, benötigen Sie mehr Zeit oder einen schnelleren Prozessor. FPGAs sind normalerweise "flächenbeschränkt". Wenn Sie mehr arbeiten möchten, benötigen Sie ein größeres FPGA.

Angenommen, Sie erstellen einen Spektralanalysator, der ein Mono-Audiosignal verarbeitet. Nehmen wir an, es dauert 70% der CPU-Zeit und Sie sind bereits so schnell, wie die CPU gehen kann. Sie können keine Stereo-Unterstützung hinzufügen, da die CPU nicht schnell genug ist, um den zweiten Kanal auszuführen, bevor sie den ersten Kanal erneut verarbeiten muss. Wenn Sie jedoch 70% des FPGAs verwenden, können Sie einfach ein größeres FPGA kaufen und den zweiten Kanal hinzufügen. Es muss nicht schneller gehen.

Nun, wenn Sie das Problem in den Digital Design Domäne portiert, mit Finite State Machines und Datenpfade anstelle einer CPU, würde ich Dollar Pesos wetten , dass der FPGA wird zerquetschen die CPU, auf Kosten der Komplexität bei der Gestaltung zu erhöhen.


1
Es gibt auch Flash-basierte FPGAs (ACTEL) und einige SRAM-basierte mit integriertem Flash (Xilinx Spartan3AN, LatticeXP).
Sybreon

Sie können auch einfach eine schnellere CPU kaufen und den zweiten Kanal hinzufügen. Kein guter Vergleich.
user253751

@immibis Was Sie sagen, ist eigentlich dasselbe wie der Punkt von ajs410: Ein FPGA muss nicht schneller sein , es muss größer sein . Wenn Sie mit CPUs arbeiten möchten, können Sie eine zweite CPU mitbringen, sofern die Art der Verarbeitung parallelisierbar ist.
Johan Boulé

7

Xilinx hat kürzlich einen Vertrag mit ARM abgeschlossen, mit dem ARM-Cores auf FPGAs platziert werden können. Leider sind sie nur für Virtex-Geräte der Spitzenklasse verfügbar.


3
Sehr interessant
Pingswept

2
Ich glaube, Sie irren sich über die ARM-Kerne, die nur in Virtex-Geräten vorkommen. Die Pressemitteilung sagt nicht so viel, und ich glaube nicht, dass man das aus der Tatsache schließen kann, dass PPC-Kerne nur in V2P-, V4FX- und V5FXT-Teilen vorkommen. Auf der Website von Xilinx werden die Geräte erwähnt, die für "Leistung, Kosten und Leistung" optimiert wurden (siehe xilinx.com/technology/roadmap/processing-platform.htm ). Sie werden feststellen, dass Kosten niemals ein Optimierungsvektor für die Virtex-Serie sind.
Mrkj

1
Außerdem wird ARM in der Ankündigung der 7er-FPGAs ( xilinx.com/technology/roadmap/7-series-fpgas.htm ) nie erwähnt , und es gibt keinen V6- oder V7-Teil mit einer PPC. Ich gehe davon aus, dass sie sich von eingebetteten Prozessoren in den Hochleistungsteilen entfernen.
Mrkj

3
Ich vermute, das Ergebnis dieses Deals ist der Zynq ?
Janus Troelsen

4

FPGA-Preise sind merkwürdig - sobald Sie mit einem Franchise-Unternehmen sprechen, stellen Sie fest, dass die Preise bei Digikey, Mouser usw. um ein Vielfaches höher sein können als die Preise, für die sie erhältlich sind. Das billigste, das mir bekannt ist, ist Lattice EC1 in QFP100 für etwas weniger als GBP3 in den Behältermengen. Fügen Sie GBP0.40 oder so für einen SPI-Flash-Speicher hinzu.

Das Einfügen von CPUs in eine FPGA-Struktur ist in Bezug auf die Siliziumkosten im Allgemeinen nicht günstig, aber andere Faktoren wie die enge Kopplung zwischen CPU und FPGA und die verringerte Anzahl von Paketen können den optimalen Kompromiss gegenüber der Verwendung einer separaten CPU verändern.


2
Sehr guter Punkt. Lesen Sie auch diesen Beitrag [ element14.com/community/thread/2434] eines Farnell-Mitarbeiters, der vorschlägt, dass Altera Cyclone IV-Chips für nur 3 US-Dollar erhältlich sind, während Farnells niedrigster auf der Webseite angegebener Preis näher bei 20 US-Dollar liegt. Nun, klar, die meisten Leute werden nicht in Mengen von 250.000 kaufen, aber diese Händler sind es vermutlich, und sie könnten bereit sein, für etwas weniger als 566% Aufschlag zu handeln ...
Jules

3

Bisher schätze ich, dass es sich um eine Xilinx XC3S400A handelt, die ungefähr 16 US-Dollar kostet, aber ich bin mir nicht sicher, ob sie mit einer MicroBlaze zurechtkommt.


3
Bei einem kurzen Online-Blick würde ein Mikroblitzenkern ungefähr die Hälfte der Logikzellen in einem XC3S400A verwenden. Darüber hinaus würde der Cortex A8 mit 600 MHz - 800 MHz betrieben, wohingegen Mikroblasur auf dem FPGA mit 200 MHz - 300 MHz betrieben würde.
Davr

Es wäre also ca. 3x langsamer (vorausgesetzt, Ihr System ist prozessorgebunden), aber zu vergleichbaren Kosten, während überschüssige Gates für etwas anderes übrig bleiben.
Pingswept

1
Das ist nur der Vergleich der Frequenz, die einfachste Art, die tatsächliche Verarbeitungsgeschwindigkeit zu vergleichen. Ich habe nicht genug Wissen darüber, aber es ist zum Beispiel möglich, dass ein ARM bei der gleichen Taktrate doppelt so schnell ist wie ein Microblaze
davr

1
Ja, fair genug. Eine erste Annäherung, denke ich.
Pingswept

3

Das hängt stark von Ihrer Anwendung ab. Die ideale Anwendung besteht hier aus einem winzigen Steuerteil (der auf eine Mikroblasur / ein NIOS passt), aber einem Rechenteil, der von der enormen Parallelität der benutzerdefinierten Hardware profitieren kann. In diesen Fällen kann sogar ein FPGA mit bescheidener Größe (Spartan oder gleichwertig) jede Allzweck-CPU leicht übertreffen. Dies ist jedoch der beste Fall (obwohl er in vielen realen Apps sehr gut erreichbar ist). Wenn Ihre App einen erheblichen Kontrollbereich hat oder sich nicht leicht auf Hardware abbilden lässt, müssen Sie Ihr Geld für feste Hardware (z. B. einen ARM) ausgeben wahrscheinlich besser.



0

Da es sich bei vielen CPLDs von Altera derzeit um FPGAs mit integriertem Konfigurationsspeicher handelt, können Sie diese für http://www.altera.com/products/devices/cpld/max2/mx2-index.jsp herunterladen


0

Zunächst möchten Sie Linux auf einem Core ausführen. Wie wäre es, wenn Sie es auf einem ARM ausführen, wie einige andere Vorschläge in diesem Thread. MCUs können gut mit Betriebssystemen umgehen, verschwenden jedoch die FPGA-Ressourcen, die beim Aufbau einer MCU anfallen. MCUs können, wenn sie speziell dafür entwickelt wurden, in eine viel kleinere Siliziumfläche passen und somit kostengünstiger hergestellt werden. Dann gibt es andere Erklärungen dafür, dass FPGAs bei der Parallelverarbeitung wirklich gut sind - Art von True, obwohl sich logische Operationen nicht nach einer exakten Verarbeitung anfühlen. Wie Sie bereits erwähnt haben, werden leistungsstarke FPGAs teuer und haben in der Tat einen hohen Stromverbrauch. Eine kostengünstige Plattform für Linux und DSP, die die Vorteile der Parallelität für schnelle E / A-Vorgänge usw. benötigt. Schauen Sie sich den XMOS-Parallelprozessor an

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.