Ja, FPGAs eignen sich hervorragend für die Implementierung von massiv parallelen Dingen. Viele Leute haben 8 oder mehr CPUs in ein FPGA eingebaut - es ist nicht nur "im Prinzip".
Schauen Sie sich das Grundrissbild im Artikel
"Ein 24-Prozessor-System auf Chip-FPGA-Design mit Netzwerk auf Chip"
von Zhoukun WANG und Omar HAMMAMI an.
Dieser Grundriss macht es ziemlich offensichtlich, dass dieses spezielle FPGA ziemlich voll ist. Die 24 CPU-Kerne - jeder eine 32-Bit-MicroBlaze-CPU mit insgesamt 32 KByte lokalem Befehls- und Datenspeicher - füllen ungefähr die Hälfte des FPGA (um den Umfang herum) aus. Das Routing zwischen den CPU-Kernen und den 4 unabhängigen externen Bussen füllt den gesamten Rest des FPGA aus. (Die externen Busse sind jeweils 64 Datenbits breit und enthalten einige Steuersignale, die jeweils zu einem unabhängigen DDR2-Speichermodul führen.)
(Dieser spezielle IC enthält neben der FPGA-Struktur auch zwei PowerPC 405-CPU-Festkerne - Zhoukun und Omar haben sich anscheinend nicht darum gekümmert).
Wie andere hier bereits betont haben, ist es zu optimistisch, "Anzahl der Gates in einem FPGA" durch "Anzahl der Gates in einer CPU" zu teilen. In diesem Fall ergeben 142.128 LUTs auf einem Xilinx FPGA Virtex-4 FX140 geteilt durch etwa 1000 LUTs, die für eine MicroBlaze-Mindestgröße erforderlich sind, (optimistisch) 142 CPUs pro Chip. Sind Sie also enttäuscht, dass anscheinend "nur" 24 CPUs in diese FPGA-Struktur passen (ohne die beiden PowerPC 405-Hardcore-Kerne außerhalb der FPGA-Struktur auf diesem IC)?
Ein 1-Millionen-Gate-FPGA geteilt durch eine 50.000-Gate-CPU ergibt (optimistisch) 20 CPUs pro Chip. Ich denke, Sie werden das Glück haben, sogar 4 CPUs auf dieses FPGA zu drücken.
"Es ist erstaunlich, was Sie auf diese Teile drücken können, wenn Sie die Maschinenarchitektur sorgfältig entwerfen, um FPGA-Ressourcen zu nutzen. Im Gegensatz dazu gab es in einer kürzlich erschienenen EE Times einen sehr interessanten Artikel von einem Kollegen von VAutomation, der virtuelle 6502 in VHDL ausführte und dann synthetisierte Sie wurden in beliebige FPGA-Architekturen zerlegt. Obwohl das 6502-Design nur etwa 4000 "ASIC-Gates" verwendete, passte es nicht ganz in ein XC4010, ein sogenanntes "10.000-Gate" -FPGA. Dass ein 32-Bit-RISC mit zwei Ausgaben passen sollte und ein 4-MHz-6502 sagt nicht viel über VHDL-Synthese vs. manuelle Platzierung, über Legacy-Architekturen vs. benutzerdefinierte und vielleicht sogar etwas über CISC vs. RISC aus ... "- Jan Gray
Der Wikipedia-Artikel "Soft Processor" enthält weitere Informationen zum Packen mehrerer CPUs auf einem einzigen FPGA.
Mehr oder weniger.
Zusätzlich zu den Unterschieden bei On-Die-Peripheriegeräten (RAM, E / A-Puffer usw.) müssen Sie auch die Tatsache berücksichtigen, dass unterschiedliche FPGAs für unterschiedliche Taktraten ausgelegt sind.
Sie haben vielleicht zwei 500k-Gate-FPGAs, aber wenn einer einen maximalen Takt von 50 MHz hat und der andere bis zu 1 GHz geht, ist einer deutlich leistungsfähiger als der andere.
In der realen Welt ist dies im Allgemeinen nicht so einfach, da FPGAs durch Ausbreitungsverzögerungen stärker eingeschränkt sind als die reine Taktrate. Verschiedene Geräte verfügen jedoch über schnellere oder langsamere Logikeinheiten, die ändern, wie komplex Ihre Logik sein kann, ohne synchrone Pufferung oder Probleme mit der Metastabilität auftreten.
quelle