46 votos

¿Las FPGA más baratas?

¿Cómo de baratas son las FPGAs? Sé que son más caras que los microprocesadores de capacidad comparable, pero me pregunto si existen FPGAs que puedan contener un núcleo blando Microblaze que ejecute Linux, dejando puertas disponibles para implementar la funcionalidad DSP (códecs de medios, por ejemplo) a un coste competitivo con, digamos, un Cortex A8 (20-30 dólares en cantidad ~100).

(Pido disculpas si mi terminología no es idiomática, es decir, errónea. Por favor, comente con correcciones o edite directamente).

0 votos

(sin vergüenza) la radio GNU (USRP2) utiliza un AEMB con un montón de bloques DSP. Hace la radio definida por software realmente bien aeste.my/node/29

0 votos

@sybreon Curiosamente, estoy usando USRP2 en mi proyecto de diseño de último año - Niza

0 votos

26voto

Jeremy Ruten Puntos 59989

¿Cómo de baratas son las FPGAs? Según Newark, las FPGA más baratas rondan los 10 dólares (la Altera Cyclone de gama baja y la Xilinx Spartan de gama baja). Pueden tener capacidad suficiente para ejecutar una simple CPU de 8 bits.

Como es de esperar, incluso las CPUs simples (es decir, sin MMU) de 32 bits requieren unas 4 veces los recursos de la FPGA de una CPU de 8 bits. Las FPGAs con apenas recursos suficientes para ejecutar una CPU de 32 bits tan sencilla cuestan alrededor de 14 dólares. Tengo entendido que uCLinux ha sido portado a algunas de estas CPUs blandas de FPGA (como la NIOS II/e) -- puede que encuentres uClinux adecuado para tus propósitos.

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

Por lo que puedo decir de la Página de Xilinx Microblaze , la CPU blanda de Microblaze sólo funciona en FPGAs de Xilinx.

Linux ya ha sido portado a otras CPUs blandas. Si quieres ejecutar Linux en las FPGAs de alguna otra compañía, puede que quieras mirar los puertos de Linux listados en "Núcleos de CPU blandos para FPGA" .

Varias de estas CPUs blandas -incluyendo una MMU- caben en un Xilinx Spartan XC3S400A ( 17 dólares de Avnet ).

He oído que algunas CPUs blandas de 32 bits -incluyendo una MMU- son bastante fáciles de configurar como "doble núcleo" en un chip FPGA de 20 dólares. Los que siguen la "navaja de Jan" podrían intentar meter una docena de CPUs de 8 bits en el mismo chip.

24voto

Erik van Brakel Puntos 7589

Hace poco asistí a una conferencia en línea sobre FPGA's cuya ponencia principal era "¿Debería su próximo procesador ser una FPGA?".

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

Lo que tienes que recordar es que tienes que inicializar tu FPGA cada vez que se enciende, creo que las FPGA's que Xilinx está presentando (que tienen un núcleo ARM en el chip) son una buena opción, pero probablemente sean caras. También pueden ser útiles las Actel con flash en el chip.

En cuanto al rendimiento, la empresa BDTI realizó una prueba de referencia en cálculos altamente paralelos en la que vieron una ganancia de rendimiento de unas 40 veces al cambiar a una FPGA. Lo interesante es que compararon chips con costes similares (23 $ vs 28$ creo).

Aquí están los enlaces que pueden interesarle:

Guía de bolsillo para la selección de procesadores

Archivos de la Conferencia FPGA (inscripción gratuita, pero sólo disponible durante unos 6 meses después de esta respuesta)

Realmente no se puede comparar el rendimiento de los sistemas basados en FPGAs basándose en las estadísticas de MIPS o Mhz. La forma en que una FPGA se utiliza para procesar ciertas tareas es simplemente demasiado diferente a la de un microcontrolador. El diseño del firmware para una FPGA es algo que hay que hacer usando VHDL, por ejemplo, que es parecido al ensamblador. Un nivel de transferencia de registros (RTL) de abstracción. Se están produciendo algunos entornos que proporcionan más abstracción, pero todavía son a menudo específicos del proveedor. La Wikipedia tiene una visión general decente de los lenguajes disponibles para programar código FPGA:

Wikipedia: Programación de FPGA

Wikipedia: Diseño de circuitos digitales

Si tienes dinero para quemar, puedes utilizar 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 precios completamente diferente (1500$ y más), pero abren el diseño de la FPGA a una audiencia mucho más amplia con programación gráfica.

Cada vez son más los proveedores que ofrecen placas que combinan microcontroladores, como un chip ARM, con una FPGA para proporcionar funciones específicas adicionales y potencia de procesamiento en paralelo. Un ejemplo de este tipo de productos se puede encontrar aquí: EmbeddedARM: Serie FPGA

11voto

Por lo general, la FPGA costará mucho más que el mismo dispositivo implementado en silicio, porque hay muchos gastos generales debido a la reconfigurabilidad. Así que no, no encontrará una FPGA por $20-30 that has the same power as an ARM CPU that's $ 20-30. Ahora, usted puede encontrar una FPGA para $20-30 that can perform specific tasks much faster than that $ 20-30 ARM, pero no podrá superarlo en tareas informáticas generales.

Por eso es común ver a la gente pegando un microcontrolador y una FPGA en la misma placa. ARM y PPC son los dos más comúnmente combinados con una FPGA.

4 votos

Entiendo que no voy a encontrar una FPGA que supere a una micro en coste y rendimiento, pero parece que podría existir una FPGA que supere el coste de micro + FPGA, a la vez que ofrezca un rendimiento similar, todo en un solo chip. ¿Tiene sentido?

10voto

Duncan Smart Puntos 9195

Al comprar una FPGA, no hay que olvidar el coste de la memoria Flash que contiene el programa de la FPGA. Es fácil de olvidar.

Como diseñador de PCBs, las FPGAs 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 la placa esté hecha. El menor número de capas necesarias para el trazado de una FPGA puede suponer un ahorro de costes.

A los demás que se burlan del rendimiento de la FPGA frente al de la CPU, estoy de acuerdo hasta cierto punto. Un procesador real será más rápido haciendo cosas propias de un procesador que una FPGA programada para actuar como un procesador.

Pero eso no es justo para una FPGA. Las CPUs están "limitadas en el tiempo"; si quieres hacer más trabajo, necesitas más tiempo, o un procesador más rápido. Las FPGAs suelen estar "limitadas por el área"; si quieres hacer más trabajo, necesitas una FPGA más grande.

Por ejemplo, digamos que haces un analizador espectral que maneja una señal de audio mono. Supongamos que se necesita el 70% del tiempo de la CPU, y que ya es lo más rápido que puede ir la CPU. No puedes añadir soporte estéreo, porque la CPU no es lo suficientemente rápida para hacer el segundo canal antes de tener que manejar el primer canal de nuevo. Pero si estás utilizando el 70% de la FPGA, puedes comprar una FPGA más grande y añadir el segundo canal. No es necesario que vaya más rápido.

Ahora bien, si se traslada el problema al ámbito del diseño digital, utilizando máquinas de estado finito y rutas de datos en lugar de una CPU, apostaría dólares a pesos a que la FPGA aplastar la CPU, a costa de aumentar la complejidad del diseño.

7voto

Mark Biek Puntos 41769

Xilinx ha realizado recientemente un acuerdo con ARM, lo que les permitirá poner núcleos ARM en FPGAs. Por desgracia, solo estarán disponibles para los dispositivos Virtex de gama alta.

3 votos

Muy interesante.

2 votos

Creo que te equivocas al decir que los núcleos ARM sólo aparecen en los dispositivos Virtex. La nota de prensa no lo dice, y no creo que puedas deducirlo del hecho de que los núcleos PPC sólo aparecen en las piezas V2P, V4FX y V5FXT. El sitio web de Xilinx menciona que los dispositivos están optimizados en cuanto a "rendimiento, coste y potencia" (véase xilinx.com/technology/roadmap/processing-platform.htm ); verás que el coste nunca es un vector de optimización para la serie Virtex.

1 votos

Además, ARM nunca se menciona en el anuncio de las FPGAs de la serie 7 ( xilinx.com/technology/roadmap/7-series-fpgas.htm ), y no hay ninguna parte V6 o V7 con un PPC. Mi opinión sobre todo esto es que se están alejando de los procesadores integrados en las partes de alto rendimiento.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X