¿Los FPGA más baratos? [cerrado]

41

¿Qué tan barato obtienen los FPGA? Sé que son más caros que los microprocesadores de capacidad comparable, pero me pregunto si existen FPGA que puedan contener un núcleo blando Microblaze que ejecute Linux, mientras que las puertas están disponibles para implementar la funcionalidad DSP (códecs de medios, por ejemplo) a un costo competitivo. , por ejemplo, un Cortex A8 ($ 20-30 en cantidad. ~ 100).

(Disculpas si mi terminología no es idiomática, es decir, incorrecta. Por favor, comente con correcciones o edítela directamente)

    
pregunta pingswept

11 respuestas

23

Hace poco asistí a una conferencia en línea sobre FPGA con la nota principal: "En caso de que su próximo procesador sea un FPGA".

El FPGA básicamente tiene sentido en cualquier aplicación que requiera flujos de trabajo altamente paralelizables, un ejemplo utilizado fue el análisis de imágenes Full HD para encontrar peatones, por ejemplo.

Lo que debes recordar es que debes inicializar tu FPGA cada vez que se enciende, creo que el Xilinx con FPGA que viene (que tiene un núcleo ARM en el chip) es una buena opción, pero probablemente costosa. También puede ser útil examinar los de Actel con flash en chip.

En cuanto al rendimiento, la compañía BDTI realizó un punto de referencia en cómputos altamente paralelos en los que vio un aumento de rendimiento de 40x a un FPGA. Lo interesante es que compararon los chips con costos similares (creo que $ 23 frente a $ 28).

Aquí están los enlaces que podrían interesarte:

Guía de bolsillo para la selección del procesador

Archivos de la Conferencia FPGA (registro gratuito, pero solo disponible durante aproximadamente 6 meses después de esta respuesta)

Realmente no se puede comparar el rendimiento de los sistemas basados en FPGA basados en estadísticas MIPS o Mhz. La forma en que se utiliza un FPGA para procesar ciertas tareas es simplemente muy diferente de un Microcontrolador. El diseño del firmware para un FPGA es algo que tiene que hacer utilizando VHDL, por ejemplo, que es similar a la Asamblea. Un nivel de transferencia de registro (RTL) de abstracción. Se están produciendo algunos entornos para proporcionar más abstracción, pero estos a menudo son específicos del proveedor. Wikipedia tiene una visión general decente de los idiomas disponibles para programar el código FPGA:

Wikipedia: Programming FPGA

Wikipedia: Diseño digital de circuitos

Si tiene dinero para quemar, puede usar los sistemas LabView para construir sistemas de medición en tiempo real basados en FPGA, por ejemplo. Estos dispositivos necesarios para esto están en un rango de cambio completamente diferente (1500 $ y más), pero abren el diseño FPGA a una audiencia mucho más amplia con programación gráfica.

Cada vez más proveedores ofrecen placas que combinan microcontroladores, como un chip ARM con un FPGA para proporcionar características adicionales específicas y poder de procesamiento paralelo. Puede encontrar un ejemplo de dichos productos aquí: EmbeddedARM: FPGA series

    
respondido por el Wouter Simons
23

¿Qué tan barato obtienen los FPGA? Según Newark, los FPGA más baratos cuestan alrededor de $ 10 (el ciclón Altera más bajo y el Xilinx Spartan más bajo). Es posible que tengan suficiente capacidad para ejecutar una CPU simple de 8 bits.

Como es de esperar, incluso las CPU simples de 32 bits (es decir, sin una MMU) requieren aproximadamente 4 veces los recursos FPGA de una CPU de 8 bits. Los FPGA con recursos apenas suficientes para ejecutar una CPU tan simple de 32 bits cuestan alrededor de $ 14. Según tengo entendido, uCLinux se ha trasladado a algunas de estas CPU de software FPGA (como el NIOS II / e); es posible que encuentre uClinux adecuado para sus propósitos.

Linux de pleno derecho requiere una CPU con una MMU (como NIOS II / f). Una CPU de 32 bits con una MMU requiere aproximadamente 4 veces los recursos FPGA de una CPU de 32 bits sin una MMU; las razones de esto no son tan obvias.

Por lo que puedo decir de la página de Xilinx Microblaze , La CPU suave de Microblaze solo se ejecuta en los FPGA de Xilinx.

Linux ya se ha portado a varias otras CPU de software. Si desea ejecutar Linux en FPGA de otra compañía, es posible que desee ver los puertos de Linux enumerados en "Núcleos de CPU flexibles para FPGA" .

Varias de estas CPU de software, incluida una MMU, cabrán en una Xilinx Spartan XC3S400A ($ 17 de Avnet).

He escuchado que algunas CPU blandas de 32 bits, incluida una MMU, son bastante fáciles de configurar como "doble núcleo" en un chip FPGA de $ 20. Aquellos que siguen "Jan's Razor" podrían intentar comprimir en una docena de CPU de 8 bits en el mismo chip en su lugar.

    
respondido por el davidcary
11

En general, FPGA costará mucho más que el mismo dispositivo implementado en silicio, porque hay muchos gastos generales debido a la reconfiguración. Así que no, no encontrará un FPGA por $ 20-30 que tenga la misma potencia que una CPU ARM que por $ 20-30. Ahora, puede encontrar un FPGA por $ 20-30 que puede realizar tareas específicas mucho más rápido que ese $ 20-30 ARM, pero no podrá vencerlo en tareas de computación generales.

Esta es la razón por la que es común ver a personas pegando un microcontrolador y un FPGA en la misma placa. ARM y PPC son los dos más comúnmente combinados con un FPGA.

    
respondido por el davr
10

Al comprar un FPGA, no olvide tener en cuenta el costo de la memoria Flash que contiene el programa FPGA. Eso es fácil de olvidar.

Como diseñador de PCB, los FPGA son un millón de veces más fáciles de diseñar, porque puedes reorganizar el pinout como quieras incluso después de que se haga el tablero. Hay ahorros de costos potenciales asociados con las pocas capas necesarias para enrutar un FPGA.

A los otros que se apoderan de FPGA vs rendimiento de CPU, estoy de acuerdo en cierta medida. Un procesador real será más rápido en hacer cosas reales del procesador que un FPGA que esté programado para actuar como un procesador.

Eso no es realmente justo para un FPGA, sin embargo. Las CPU son "limitadas en el tiempo"; Si desea trabajar más, necesita más tiempo o un procesador más rápido. Los FPGA son usualmente "limitados al área"; Si quieres trabajar más, necesitas un FPGA más grande.

Por ejemplo, supongamos que crea un analizador espectral que maneja una señal de audio mono. Digamos que toma el 70% del tiempo de CPU, y ya eres tan rápido como la CPU puede ir. No puede agregar soporte estéreo, porque la CPU no es lo suficientemente rápida para hacer el segundo canal antes de que deba manejar el primer canal nuevamente. Pero si está usando el 70% del FPGA, puede comprar un FPGA más grande y colocar el segundo canal. No necesita ir más rápido.

Ahora, si traslada el problema al dominio de Diseño Digital, utilizando Máquinas de Estado Finito y Datapaths en lugar de una CPU, apostaría dólares a pesos que el FPGA aplastará la CPU, a la gasto de complejidad creciente en el diseño.

    
respondido por el ajs410
7

Xilinx ha hecho recientemente un trato con ARM, que les permitirá poner núcleos ARM en FPGA . Desafortunadamente, solo estarán disponibles para los dispositivos Virtex de gama alta.

    
respondido por el Leon Heller
4

Los precios de FPGA son impares: una vez que se comunica con una franquicia, se ve que los precios citados en Digikey, Mouser, etc. pueden ser varias veces más altos de lo que se pueden obtener. Más barato que conozco es Lattice EC1 en QFP100 por un poco menos de GBP3 en la cantidad de bandejas. Agregue GBP0.40 o más para una memoria flash SPI.

Poner las CPU en el tejido de FPGA generalmente no es un buen valor en términos de costo de silicio, pero otros factores como el acoplamiento estrecho entre la CPU y el FPGA, y un número reducido de paquetes pueden alterar la compensación óptima al usar una CPU separada.

    
respondido por el mikeselectricstuff
3

Mi mejor conjetura hasta ahora es algo como un Xilinx XC3S400A, que cuesta alrededor de $ 16, pero no estoy seguro de que pueda manejar un MicroBlaze.

    
respondido por el pingswept
3

Depende mucho de tu aplicación. La aplicación ideal aquí consistiría en una pequeña parte de control (que cabe en un microblaze / NIOS) pero en una parte computacional que puede beneficiarse del enorme paralelismo del hardware personalizado. En estos casos, incluso un FPGA de tamaño modesto (Spartan o equivalente) puede superar fácilmente a cualquier CPU de propósito general. Pero ese es el mejor de los casos (aunque puede lograrse en muchas aplicaciones del mundo real), si su aplicación tiene una parte de control importante o no se asigna fácilmente al hardware, gastar su dinero en hardware fijo (es decir, un ARM) es probablemente mejor.

    
respondido por el Wim
3

Si necesita una placa en lugar de solo el chip, aquí hay dos opciones recientes de 2013:

respondido por el Janus Troelsen
0

Dado que muchos CPLD actuales de Altera son FPGA con memoria de configuración incorporada, puede obtenerlos en http://www.altera.com/products/devices/cpld/max2/mx2-index.jsp

    
respondido por el Brian Carlton
0

En primer lugar, desea ejecutar Linux en un núcleo. ¿Qué le parece a ejecutarlo en un ARM como algunas otras sugerencias en este hilo? Las MCU son buenas para ejecutar el sistema operativo, pero generan un desperdicio de recursos FPGA al construir una MCU. Las MCU pueden encajar en un área de silicio mucho más pequeña cuando se diseñan a medida para eso y, por lo tanto, pueden producirse de manera más económica. Luego, hay otras explicaciones acerca de que los FPGA son realmente buenos en el procesamiento en paralelo, como en el caso de las operaciones lógicas, aunque no parece que el procesamiento sea exacto. Como usted señala, los FPGA poderosos se vuelven caros y, de hecho, tienen hambre. Por lo tanto, una plataforma de bajo costo que puede ejecutar Linux y DSP que necesita los beneficios del paralelismo para una IO rápida, etc. Mire XMOS procesador paralelo

    
respondido por el Pete Tasker

Lea otras preguntas en las etiquetas