Linux incorporado en FPGA

10

Tengo una experiencia muy limitada con los FPGA (Altera: solo uso las herramientas de diseño visual).

Estoy planeando un nuevo proyecto en el que necesito FPGA y podría beneficiarme mucho de un Linux real que se ejecuta en la misma placa (principalmente para la comunicación TCP, así como algunos DSP).

Mi pregunta es, ¿hay un FPGA recomendado que tenga un linux incorporado compatible preparado para él? no hay controladores sofisticados (solo Ethernet, wifi podría ser una ventaja, ...). Me imagino que habría un microcontrolador integrado en el FPGA (esto significa que consumiría un montón de FPGA y necesitaría un FPGA más grande).

    
pregunta Ali

5 respuestas

15

Un núcleo de procesador RISC de 32 bits 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 , así que probablemente querrás SDRAM en la placa y un controlador para eso en el FPGA.

Dicho esto, si desea algo más que un nivel de rendimiento trivial, probablemente desee un núcleo con algunas optimizaciones (canalización, etc.), y eso comienza a aumentar un poco el tamaño. Agregar un mmu completo hará que la (re) asignación de memoria sea más eficiente y habilitará el comportamiento habitual de copia en escritura fork ().

Los dos principales proveedores de FPGA tienen núcleos de procesador suaves con puertos linux disponibles: Microblaze para Xilinx, Nios II para Altera. Probablemente debería leer sus documentos para obtener recomendaciones de plataformas específicas, ya que, por supuesto, es un objetivo que se mueve con el tiempo. Un diseño de núcleo de terceros podría ser un poco más grande para un rendimiento similar, si está escrito de una manera más portátil y no tan específicamente optimizado para una familia FPGA determinada.

Históricamente, ha habido chips disponibles que combinan un núcleo de procesador duro (a menudo powerpc) con una región de estructura 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 qué tan estrechamente necesite acoplar el procesador y el FPGA. Si puede reducir el problema a los registros de configuración y un flujo de datos, podría ser tan modular como colgar una placa FPGA con un chip USB rápido del puerto host USB de una placa linux incorporada como BeagleBoard o RasberryPi. Para una integración más estrecha, es posible que desee que el FPGA esté en la misma placa y sentado en el bus externo del procesador. O para las bajas tasas de datos, es trivial colocar una interfaz de registro SPI en un FPGA, y las interfaces UART son completamente posibles, aunque un poco más complicadas.

Finalmente, existe la pregunta de si realmente necesita un sistema operativo completo como Linux, o si una pila TCP incrustada de "más tamaño de microcontrolador" resolvería su problema y requeriría menos memoria.

    
respondido por el Chris Stratton
6

El Microblaze de Xilinx funciona bien con Linux, asumiendo que es lo suficientemente rápido para tus propósitos - solo logrará un alto 10s de MIPS en dispositivos más baratos, 100-200 MIPS en familias caras.

Xilinx tiene un git repo , o hay algunas distribuciones específicas de Xilinx. La flexibilidad de FPGA puede ser un poco molesta, así como una bendición, ya que su mapa de memoria y las asignaciones de IRQ, o incluso las funciones disponibles pueden cambiar durante el desarrollo del proyecto.

Petalinux tiene scripts para administrar este tipo de cosas y actualizar los bits de la configuración del kernel que se basan en su última versión y el mejor diseño de sistema.

    
respondido por el Martin Thompson
4

La línea Virtex de Xilinx tiene versiones de FPGA con PowerPC de núcleo duro. Es bastante fácil hacer que Linux se ejecute en PowerPC, mis alumnos lo han hecho para muchos proyectos de diseño para personas mayores. Todavía tienen un montón de tejido configurable para que se llene el diseño de su hardware.

La junta de evaluación Virtex2 Pro era muy común en los proyectos de investigación educativos y académicos. Como Xilinx ha eliminado el soporte para este chip de versión en sus herramientas recientes, puede elegir uno bastante barato. Creo que fue soportado hasta la versión 9.x más o menos. Hmm Eso fue hace varios años, así que tal vez estoy siendo un poco nostálgico. En cualquier caso, todavía estoy pasando estas tablas a los estudiantes interesados para que hagan lo que quieran con ellos.

    
respondido por el Bill Nace
3

SmartFusion de Actel integra un FPGA con un núcleo ARM Cortex-M3 de IP 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 obtener más detalles.

    
respondido por el vladimir khusainov
2

Dependiendo de su período de tiempo, también puede buscar en 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 o cuándo Xilinx llevará el soporte de Zynq al ISP WebPack gratuito; En este momento, afirman que necesitas ISE Embedded Edition.

    
respondido por el Nicholas

Lea otras preguntas en las etiquetas