Ein 32-Bit-RISC-Prozessorkern aus dem Lehrbuch, auf dem die No-MMU-Version von Linux ausgeführt werden kann, muss nicht unbedingt so groß sein. Die eigentliche Ressource, die Sie benötigen, ist weitaus mehr RAM (10 Megabyte) als in einem FPGA verfügbar Ich werde wahrscheinlich SDRAM auf der Karte und einen Controller dafür im FPGA haben wollen.
Das heißt, wenn Sie mehr als ein triviales Leistungsniveau wünschen, möchten Sie wahrscheinlich einen Kern mit einigen Optimierungen (Pipelining usw.), und das erhöht die Größe etwas. Durch Hinzufügen eines vollständigen mmu wird die Speicher- (Neu-) Zuweisung effizienter und das übliche Verhalten von Fork () beim Kopieren beim Schreiben aktiviert.
Beide großen FPGA-Anbieter verfügen über Soft-Prozessorkerne mit verfügbaren Linux-Ports - Microblaze für Xilinx, Nios II für Altera. Sie sollten wahrscheinlich die Dokumente lesen, um spezifische Plattformempfehlungen zu erhalten, da es sich natürlich um ein Ziel handelt, das sich mit der Zeit bewegt. Ein Kerndesign eines Drittanbieters ist für eine ähnliche Leistung möglicherweise etwas größer, wenn es portabler geschrieben und nicht so speziell für eine bestimmte FPGA-Familie optimiert ist.
In der Vergangenheit gab es Chips, die sowohl einen harten Prozessorkern (häufig PowerPC) als auch einen Bereich konfigurierbarer FPGA-Fabric kombinierten. Eine weitere Option wäre ein separater Prozessor (wahrscheinlich ARM) auf derselben Karte wie ein FPGA.
Ein Großteil der Entscheidung hängt davon ab, wie eng Sie den Prozessor und das FPGA koppeln müssen. Wenn Sie das Problem auf Konfigurationsregister und einen Datenstrom reduzieren können, kann es so modular sein wie das Aufhängen einer FPGA-Karte mit einem schnellen USB-Chip am USB-Host-Port einer eingebetteten Linux-Karte wie einem BeagleBoard oder RasberryPi. Für eine engere Integration möchten Sie möglicherweise, dass sich das FPGA auf derselben Karte befindet und auf dem externen Bus des Prozessors sitzt. Bei niedrigen Datenraten ist es trivial, eine SPI-Registerschnittstelle in ein FPGA einzubauen, und UART-Schnittstellen sind vollständig machbar, wenn auch etwas kniffliger.
Schließlich stellt sich die Frage, ob Sie tatsächlich ein vollständiges Betriebssystem wie Linux benötigen oder ob ein eingebetteter TCP-Stack mit einer Größe von "Mikrocontroller" Ihr Problem lösen würde, während weniger Speicher benötigt wird.