Un núcleo de procesador RISC de 32 bits de libro de texto capaz de ejecutar la versión no-mmu de Linux en realidad no necesita ser tan grande: el recurso real que necesita es mucha más RAM (10s de megabytes) que la disponible en cualquier FPGA, por lo que Probablemente querrá SDRAM en la placa y un controlador para eso en la FPGA.
Dicho esto, si desea algo más que un nivel trivial de rendimiento, probablemente desee un núcleo con algunas optimizaciones (canalización, etc.), y eso comienza a aumentar el tamaño de alguna manera. Agregar un mmu completo hará que la (re) asignación de memoria sea más eficiente y habilitará el comportamiento habitual de fork () de copia en escritura.
Los dos principales proveedores de FPGA tienen núcleos de procesador blandos con puertos linux disponibles: Microblaze para Xilinx, Nios II para Altera. Probablemente debería leer sus documentos para obtener recomendaciones específicas de la plataforma, ya que, por supuesto, es un objetivo que se mueve con el tiempo. Un diseño central de un tercero podría ser algo más grande para un rendimiento similar, si está escrito de una manera más portátil y no tan optimizado específicamente para una familia FPGA dada.
Históricamente, ha habido chips disponibles que combinan un núcleo de procesador duro (a menudo powerpc) con una región de tejido FPGA configurable. Otra opción a considerar sería un procesador separado (probablemente ARM) en la misma placa que un FPGA.
Gran parte de la decisión dependerá de cuán estrechamente necesite acoplar el procesador y el FPGA. Si puede reducir el problema a los registros de configuración y una secuencia de datos, podría ser tan modular como colgar una placa FPGA con un chip USB rápido fuera del puerto host USB de una placa Linux integrada como un BeagleBoard o RasberryPi. Para una integración más estrecha, es posible que desee el FPGA en la misma placa y sentado en el bus externo del procesador. O para velocidades de datos bajas, es trivial colocar una interfaz de registro SPI en un FPGA, y las interfaces UART son totalmente factibles aunque un poco más complicadas.
Finalmente, está la cuestión de si realmente necesita un sistema operativo completo como Linux, o si una pila TCP integrada de "microcontrolador" resolvería su problema y requeriría menos memoria.