Circuito FPGA

FPGA
Información sobre la plantilla
Fpga.jpg
Spartan – Xilinx
Inventado por:Ross Freeman
Fecha de invención:1984

Las Field Programmable Gate Arrays (FPGA) son circuitos integrados reconfigurables compuestos de interconexiones programables que combinan bloques lógicos programables, de memoria embebida y de procesamiento de señales digitales, entre otros. Dicho en palabras más simples, una FPGA es “hardware programable”. A diferencia de las CPUs y las GPUs, los recursos de una FPGA pueden ser configurados para crear pipelines de instrucciones específicos para el problema a resolver. Si bien operan a frecuencias de reloj más bajas y tienen picos de rendimiento inferiores, la posibilidad de adaptar el hardware para cada aplicación particular le permite a las FPGAs lograr mejores tasas de rendimiento en la mayoría de los casos. En forma adicional, suelen ser más eficientes desde el punto de vista energético ya que no hay desperdicio en los recursos de silicio.

Características de los FPGA

Existen distintas razones y características por las que se invierte y desarrollan los FPGA, pero entre ellas las más relevantes son:

Arquitectura programable

Los FPGA a diferencia de otras arquitecturas, son programables. Esto les otorga una gran flexibilidad de uso, puesto que su programación puede alterarse para mejorarles o solucionar fallas. Esto permitiría por ejemplo; optimizar un FPGA para manejar de mejor manera procesos complejos tras haberse realizado un análisis y optimización de su programación inicial. Con ello, la nueva versión del software del FPGA permitiría mejorar el rendimiento o solucionar problemas de seguridad detectados, una situación imposible usando arquitecturas como la ASIC.

Normalmente la programación de los FPGA se realiza en lenguajes de programación de bajo nivel llamados Verilog o VHDL. Ambos sirven para “describir” al FPGA la forma en cómo debe manejar el hardware del mismo. Sin embargo, muchas empresas ofrecen sistemas de programación de más alto nivel que facilitan esta tarea aún más.

Desarrollo acelerado del hardware

Dado que los FPGA son más sencillo a nivel lógico, las compañías son capaces de traer nuevos productos al mercado de forma más rápida. Al tiempo también en el que los FPGA evolucionan y ofrecen mejores características. Esto es algo que los ASIC no pueden ofrecer, porque su desarrollo requiere de ciclos de fabricación mucho más extensos.

Para las compañías dedicadas a blockchain esto es perfecto. Si por ejemplo, una compañía diseña un dispositivo de hardware FPGA para manejar Lightning Network, desarrollar y mejorar dicho dispositivo le será más fácil que hacer otro desde cero. Con ello el costo general por diseño y el tiempo de salida al mercado de nuevos dispositivos disminuye. Una situación ventajosa para las compañías blockchain, especialmente en un mundo tecnológico que avanza a pasos agigantados.

Mejor nivel de integración en hardware

Los FPGA actuales incluyen procesadores en el chip, sistemas de entrada y salida de datos y mucho más. Más funciones dentro de la FPGA significan menos dispositivos en la placa de circuitos, lo que aumenta la fiabilidad al reducir el número de fallos de los dispositivos. Adicional a la fiabilidad, también aumenta el rendimiento, pues estos sistemas son capaces de construirse más integrados en el die.

Esta es una de las características más llamativas de los FPGA frente a los ASIC. Los ASIC son en general, una serie de chips que trabajan en paralelo dentro de una complicada tarjeta de circuitos. En dicha tarjeta hay equipos de diferentes fabricantes y con ordenes de calidad distintas. La falla de uno de esos circuitos, significa la falla de todo el ASIC. Pero en los sistemas FPGA esto es distinto. Debido a que el proceso de fabricación es más integrado, la calidad de los circuitos incluidos puede controlarse mucho mejor. Con esto, se puede mejorar sustancialmente la calidad de los dispositivos y su vida útil se alarga.

Disminución de los costos totales de operación

Los ASIC suelen ser más baratos que una solución FPGA. Pero el mantenimiento de un ASIC es mucho más costoso. De hecho, debido a la inamovilidad del hardware ASIC estos quedan rápidamente obsoletos. Sin embargo, los FPGA mejoran en muchos sentidos esta situación.

Aplicaciones

Cualquier circuito de aplicación específica puede ser implementado en una FPGA, siempre y cuando esta disponga de los recursos necesarios. Las aplicaciones donde más comúnmente se utilizan las FPGA incluyen a los DSP (procesamiento digital de señales), radio definido por software, sistemas aeroespaciales y de defensa, prototipos de ASIC, sistemas de imágenes para medicina, sistemas de visión para computadoras, reconocimiento de voz, bioinformática, emulación de hardware de computadora, entre otras. Cabe notar que su uso en otras áreas es cada vez mayor, sobre todo en aquellas aplicaciones que requieren un alto grado de paralelismo.

Existe código fuente disponible (bajo licencia GNU GPL) de sistemas como microprocesadores, microcontroladores, filtros, módulos de comunicaciones y memorias, entre otros. Estos códigos se llaman cores.

Actualmente es posible implementar todo un SoC mediante una FPGA única, existen herramientas libres y núcleos de propiedad intelectual del código abierto que facilitan su implementación, tal es es caso de la Arquitectura de Bus Simple (SBA) que provee una librería de código VHDL portable para la implementación en FPGAs de distintos fabricantes.

Tecnología de la memoria de programación

Las FPGA también se pueden diferenciar por utilizar diferentes tecnologías de memoria:

  • Volátiles: basadas en RAM. Su programación se pierde al quitar la alimentación. Requieren una memoria externa no volátil para configurarlas al arrancar (antes o durante el reinicio).
  • No Volátiles: basadas en ROM. Hay de dos tipos, las reprogramables y las no reprogramables.
  1. Reprogramables: basadas en EPROM o flash. Estas se pueden borrar y volver a reprogramar aunque con un límite de unos 10 000 ciclos.
  2. No reprogramables: basadas en fusibles o antifusibles. Solo se pueden programar una vez, lo que las hace poco recomendables para trabajos en laboratorios.

Referencias