1. ¿Qué es un FPGA?
En el nivel más alto, los FPGAs son chips de silicio reprogramables. Al utilizar bloques de lógica pre-construidos y recursos para ruteo programables, usted puede configurar estos chips para implementar funcionalidades personalizadas en hardware sin tener que utilizar una tablilla de prototipos o un cautín. Sólo deberá desarrollar tareas de cómputo digital en software y compilarlas en un archivo de configuración o bitstream que contenga información de cómo deben conectarse los componentes. Además, los FPGAs son completamente reconfigurables y al instante toman una nueva “personalidad” cuando usted compila una diferente configuración de circuitos. Anteriormente sólo los ingenieros con un profundo entendimiento de diseño de hardware digital podían trabajar con la tecnología FPGA. Sin embargo, el aumento de herramientas de diseño de alto nivel está cambiando las reglas de programación de FPGAs, con nuevas tecnologías que convierten los diagramas a bloques gráficos, o hasta el código ANSI C a circuitos de hardware digital.
La adopción de chips FPGA en la industria ha sido impulsada por el hecho de que los FPGAs combinan lo mejor de los ASICs y de los sistemas basados en procesadores. Ofrecen velocidades temporizadas por hardware y fiabilidad, pero sin requerir altos volúmenes de recursos para compensar el gran gasto que genera un diseño personalizado de ASIC. El silicio reprogramable tiene la misma capacidad de ajustarse que un software que se ejecuta en un sistema basado en procesadores, pero no está limitado por el número de núcleos disponibles. A diferencia de los procesadores, los FPGAs llevan a cabo diferentes operaciones de manera paralela, por lo que éstas no necesitan competir por los mismos recursos. Cada tarea de procesos independientes se asigna a una sección dedicada del chip, y puede ejecutarse de manera autónoma sin ser afectada por otros bloques de lógica. Como resultado, el rendimiento de una parte de la aplicación no se ve afectado cuando se agregan otros procesos.
2. Los Cinco Beneficios Principales de la Tecnología FPGA
- Rendimiento
- Tiempo en Llegar al Mercado
- Precio
- Fiabilidad
- Mantenimiento a Largo Plazo
- Rendimiento – Aprovechando del paralelismo del hardware, los FPGAs exceden la potencia de cómputo de los procesadores digitales de señales (DSPs) rompiendo el paradigma de ejecución secuencial y logrando más en cada ciclo de reloj. BDTI, una destacada firma analista que realiza evaluaciones de referencia, lanzó evaluaciones mostrando cómo los FPGAs pueden entregar significativamente más potencia de procesamiento por dólar que una solución de DSP, en algunas aplicaciones2. El controlar entradas y salidas (E/S) a nivel de hardware ofrece tiempos de respuesta más veloces y funcionalidad especializada que coincide con los requerimientos de una aplicación.
- Tiempo en llegar al mercado – La tecnología FPGA ofrece flexibilidad y capacidades de rápido desarrollo de prototipos para enfrentar los retos de que un producto se libere tarde al mercado. Usted puede probar una idea o un concepto y verificarlo en hardware sin tener que pasar por el largo proceso de fabricación por el que pasa un diseño personalizado de ASIC3. Posteriormente podrá implementar cambios y realizar iteraciones de un diseño FPGA en cuestión de horas en vez de semanas. También existe hardware comercial listo para usarse (COTS) con diferentes tipos de E/S ya conectados a un chip FPGA programable por el usuario. El aumento en disponibilidad de herramientas de software de alto nivel disminuye la curva de aprendizaje con niveles de abstracción. Estas herramientas frecuentemente incluyen importantes núcleos IP (funciones pre-construidas) para control avanzado y procesamiento de señales.
- Precio – El precio de la ingeniería no recurrente de un diseño personalizado ASIC excede considerablemente al de las soluciones de hardware basadas en FPGA. La fuerte inversión inicial de los ASICs es fácilmente justificable para los fabricantes de equipos originales que embarcan miles de chips por año, pero muchos usuarios finales necesitan la funcionalidad de un hardware personalizado para decenas o cientos de sistemas en desarrollo. La misma naturaleza programable del silicio implica que no hay precio de fabricación o largo plazos de ejecución de ensamblado. Los requerimientos de un sistema van cambiando con el tiempo, y el precio de cambiar incrementalmente los diseños FPGA es insignificante al compararlo con el precio de implementar cambios en un ASIC antes de su lanzamiento.
- Fiabilidad – Mientras que las herramientas de software ofrecen un entorno de programación, los circuitos de un FPGA son una implementación segura de la ejecución de un programa. Los sistemas basados en procesadores frecuentemente implican varios niveles de abstracción para auxiliar a programar las tareas y compartir los recursos entre procesos múltiples. El software a nivel driver se encarga de administrar los recursos de hardware y el sistema operativo administra la memoria y el ancho de banda del procesador. El núcleo de un procesador sólo puede ejecutar una instrucción a la vez, y los sistemas basados en procesadores están siempre en riesgo de que sus tareas se obstruyan entre sí. Los FPGAs, que no necesitan sistemas operativos, minimizan los retos de fiabilidad con ejecución paralela y hardware preciso dedicado a cada tarea.
- Mantenimiento a largo plazo – Como se mencionó anteriormente, los chips FPGA son actualizables en campo y no requieren el tiempo y el precio que implica rediseñar un ASIC. Los protocolos de comunicación digital por ejemplo, tienen especificaciones que podrían cambiar con el tiempo, y las interfaces basadas en ASICs podrían causar retos de mantenimiento y habilidad de actualización. Los chips FPGA, al ser reconfigurables, son capaces de mantenerse al tanto con modificaciones a futuro que pudieran ser necesarias. Mientras el producto o sistema se va desarrollando, usted puede implementarle mejoras funcionales sin la necesidad de invertir tiempo rediseñando el hardware o modificando el diseño de la tarjeta.
3. Escoger un FPGA
Al examinar las especificaciones de un chip FPGA, observe que generalmente están divididos en bloques de lógica configurables como segmentos o células de lógica, funciones fijas de lógica como multiplicadores, y recursos de memoria como RAM en bloque embebida. El chip FPGA tiene otros componentes, pero éstos son generalmente los más importantes cuando se seleccionan y comparan FPGAs para una aplicación en particular.
| Virtex-II 1000 |
Virtex-II 3000 |
Spartan-3 1000 |
Spartan-3 2000 |
Virtex-5 LX30 |
Virtex-5 LX50 |
Virtex-5 LX85 |
Virtex-5 LX110 |
|
| Compuertas | 1 millón | 3 millones | 1 millón | 2 millones | ----- | ----- | ----- | ----- |
| Flip-Flops | 10,240 | 28,672 | 15,360 | 40,960 | 19,200 | 28,800 | 51,840 | 69,120 |
| LUTs | 10,240 | 28,672 | 15,360 | 40,960 | 19,200 | 28,800 | 51,840 | 69,120 |
| Multiplicadores | 40 | 96 | 24 | 40 | 32 | 48 | 48 | 64 |
| RAM en Bloque (kb) | 720 | 1,728 | 432 | 720 | 1,152 | 1,728 | 3,456 | 4,608 |
Tabla 1. Especificaciones de Recursos FPGA de Varias Familias
La Tabla 1 muestra especificaciones de recursos usados para comparar chips FPGA dentro de varias familias de Xilinx. El número de compuertas ha sido una forma típica de comparar el tamaño de los chips FPGA contra la tecnología ASIC, pero no describe realmente el número de componentes individuales dentro de un FPGA. Ésta es una de las razones por las cuales Xilinx no especificó el número de compuertas de sistema equivalentes en la nueva familia Virtex-5.
Para obtener más información acerca de especificaciones y cómo funcionan los FPGAs, lea la nota técnica “FPGAs a Fondo”.
4. Resumen
La adopción de la tecnología FPGA continúa creciendo mientras que las herramientas de alto nivel evolucionan para ofrecer a los ingenieros e investigadores con diferentes niveles de experiencia los beneficios del silicio reprogramable. Para obtener más información acerca de cómo se utilizan los FPGAs en diversas industrias y aplicaciones, vea la sección “Pasos Siguientes” a continuación.
Pasos Siguientes
Busque Casos de Estudio Usando Tecnología FPGA
Vea el Video: Introducción a NI LabVIEW FPGA
Recursos Adicionales:
Nota Técnica: FPGAs a Fondo
1 The Field-Programmable Gate Array (FPGA): Expanding Its Boundaries, InStat Market Research, April 2006
2 BDTI Focus Report: FPGAs for DSP, Second Edition, BDTI Benchmarking, 2006
3 FPGAs accelerate time to market for industrial designs, M. Thompson, EE Times 7/2/2004 http://www.us.design-reuse.com/articles/8190/fpgas-accelerate-time-to-market-for-industrial-designs.html
