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.
SmartFusion de Actel integra un FPGA con un núcleo ARM Cortex-M3 de IP rígida y un motor analógico avanzado en un dispositivo de un solo chip.
uClinux funciona bastante bien en el núcleo Cortex-M3 de SmartFusion. Consulte este sitio para más detalles.
fuente
Dependiendo de su período de tiempo, también puede considerar la nueva línea Zynq-7000 de Xilinx, que combina un procesador ARM con un Artix-7 o Kintex-7. Xilinx afirma que enviarán cantidades de producción en la segunda mitad de 2012.
Otros proveedores pueden tener productos similares. No sé si Xilinx traerá soporte Zynq al ISPa WebPack gratuito o cuándo lo hará; en este momento, afirman que necesita ISE Embedded Edition.
fuente