Información

¿Qué es una FPGA? Conceptos básicos de la matriz de puerta programable en campo

 ¿Qué es una FPGA? Conceptos básicos de la matriz de puerta programable en campo

El Field Programmable Gate Array, o FPGA, es un dispositivo lógico programable que puede tener su configuración interna establecida por software o, como se denomina, "firmware". Esto permite que la funcionalidad FPGA se actualice o incluso se cambie totalmente según sea necesario, porque el firmware FPGA se actualiza cuando está en circuito.

Los componentes lógicos programables FPGA, o bloques lógicos como se les conoce, pueden consistir en cualquier cosa, desde puertas lógicas hasta elementos de memoria o bloques de memorias, o casi cualquier elemento. Esto proporciona un grado considerable de flexibilidad.

Aplicaciones FPGA

La naturaleza reconfigurable de la FPGA significa que se puede utilizar en una gran cantidad de aplicaciones diferentes.

  • Creación de prototipos ASIC: Los ASIC o los circuitos integrados específicos de la aplicación se utilizan a menudo en la producción de alto volumen, pero su desarrollo es muy costoso y los cambios son muy costosos y requieren mucho tiempo. Una vez que se fabrica un chip ASIC, su funcionalidad se fija. Además, los chips ASIC suelen ser muy complicados y para garantizar que la funcionalidad sea correcta, a menudo se usa un FPGA en lugar del chip ASIC durante el desarrollo e incluso la producción temprana hasta que se eliminan todos los problemas.
  • Equipo definido por software: Ahora que los equipos tienden más a definirse por software, como en el caso de la radio definida por software, el concepto se está utilizando ampliamente en muchas áreas de la tecnología. Los equipos de prueba definidos por software también se están utilizando cada vez más; aquí, la funcionalidad del instrumento de prueba se puede modificar de acuerdo con lo que se necesite.

Conceptos básicos de FPGA

La gran ventaja de la FPGA es que el chip es completamente programable y se puede reprogramar. De esta forma se convierte en un gran circuito lógico que se puede configurar según un diseño, pero si se requieren cambios se puede reprogramar con una actualización.

Por lo tanto, si se fabrica una tarjeta de circuito o placa y contiene un FPGA como parte del circuito, esto se programa durante el proceso de fabricación, pero luego se puede reprogramar para reflejar cualquier cambio. Por tanto, es programable en campo, y de hecho esto da lugar a su nombre.

Aunque los FPGA ofrecen muchas ventajas, naturalmente existen algunas desventajas. Son más lentos que los ASIC equivalentes (circuito integrado de aplicación específica) u otros circuitos integrados equivalentes y, además, son más caros. (Sin embargo, los ASIC son muy costosos de desarrollar en comparación).

Esto significa que la elección de utilizar un diseño basado en FPGA debe hacerse al principio del ciclo de diseño y dependerá de elementos tales como si el chip necesitará ser reprogramado, si se puede obtener una funcionalidad equivalente en otro lugar y, por supuesto, el costo permitido. A veces, los fabricantes pueden optar por un diseño FPGA para los primeros productos cuando aún se pueden encontrar errores, y luego usar un ASIC cuando el diseño es completamente estable.

Los FPGA se utilizan en muchas aplicaciones. En vista del costo, no se utilizan en productos baratos de alto volumen, sino que los FPGA encuentran aplicaciones en una variedad de áreas donde se pueden necesitar circuitos lógicos complejos y se pueden anticipar cambios. Las aplicaciones FPGA cubren una amplia gama de áreas, desde equipos para video e imágenes, hasta circuitos para aplicaciones aeroespaciales y militares, así como electrónica para procesamiento especializado y mucho más.

Internos de FPGA

La arquitectura interna de la FPGA es la clave de su flexibilidad y, por tanto, de su éxito. Básicamente, una FPGA consta de dos elementos básicos:

  • Bloques lógicos comunes: El bloque lógico en un FPGA se puede implementar de diversas formas. La implementación real depende del fabricante y también de la serie de FPGA que se utilice. Las variaciones incluyen el número de entradas y salidas, la complejidad general del bloque lógico en términos de circuitos y el número de transistores utilizados. Esto, naturalmente, tiene un impacto en la cantidad de área consumida en el chip y, por lo tanto, en el tamaño del silicio utilizado.
  • Enrutamiento interno FPGA: Los canales de enrutamiento dentro de la FPGA comprenden cables que se pueden interconectar mediante interruptores configurables eléctricamente. De esta manera es posible unir diferentes puntos en el chip juntos y así conectar los diferentes bloques lógicos comunes de la forma que se requiera.

Desarrollo de firmware FPGA

Como el FPGA es una matriz lógica configurable, la lógica debe configurarse para cumplir con los requisitos del sistema. La configuración la proporciona el firmware, un conjunto de datos que

En vista de la complejidad de las FPGA, se utiliza software para diseñar la función de una FPGA. El proceso de diseño de FPGA lo inicia el usuario proporcionando una definición de lenguaje de descripción de hardware (HDL) o un diseño esquemático.

Los HDL comunes son VHDL (donde VHDL significa VHSIC Hardware redescripción Language) y Verilog. Una vez que esto se ha completado, la siguiente tarea en el proceso de diseño de FPGA es producir una lista de conexiones generada para la familia de FPGA en particular que se está utilizando. Esto describe la conectividad requerida dentro de la FPGA y se genera utilizando una herramienta de automatización de diseño electrónico.

Luego, la lista de redes se puede ajustar a la arquitectura FPGA real mediante un proceso llamado lugar y ruta, generalmente realizado por el software de lugar y ruta patentado de la compañía FPGA.

Finalmente el diseño apuesta por la FPGA y se puede utilizar en la placa de circuito electrónico para la que está destinado.

Nota sobre la programación FPGA:

Los FPGA requieren que firmwave esté disponible para establecer la configuración de la lógica dentro del chip. Este firmwave se puede desarrollar de varias formas y hay varias plataformas de software diferentes que se pueden utilizar.

Leer más sobre el Programación FPGA

Prueba de FPGA

En vista de su complejidad, es necesario realizar pruebas rigurosas del diseño de FPGA. Esta prueba normalmente se realizará en cada etapa del proceso de desarrollo de FPGA.

Incluye simulación funcional y otras metodologías de verificación, pero una de las cuestiones clave puede ser la sincronización, ya que el tamaño y la complejidad de la lógica básica pueden significar que pueden surgir problemas de sincronización.

Una vez que se completa el proceso de diseño y validación, el archivo binario generado (también utilizando el software patentado de la empresa FPGA) se utiliza para configurar el dispositivo FPGA.

Herramientas FPGA

Las herramientas para desarrollar y probar FPGA están disponibles en una variedad de fuentes. Obviamente, el fabricante puede ofrecer muchas herramientas de desarrollo FPGA, pero hay muchas otras fuentes para síntesis FPGA HDL de terceros, síntesis física FPGA y herramientas de verificación. Estos incluyen el desarrollo real y las distintas etapas de prueba de los FPGA.

Ver el vídeo: Introducción a FPGAs, primeros pasos en el diseño microelectrónico (Octubre 2020).