Una matriz de puertas programable en campo (FPGA) es un circuito integrado (CI) que puede ser programado por un cliente o un diseñador después de su fabricación, de ahí lo de "programable en campo". La configuración de la FPGA suele especificarse mediante un lenguaje de descripción de hardware (HDL), similar al utilizado para un circuito integrado de aplicación específica (ASIC). Las FPGA pueden utilizarse para implementar cualquier función lógica que pueda realizar un ASIC. La capacidad de actualizar la funcionalidad después de la entrega, y los bajos costes de ingeniería no recurrentes en comparación con un diseño ASIC, pueden hacer que una FPGA sea una opción atractiva para muchas aplicaciones.
Los FPGAs se utilizan en una amplia variedad de aplicaciones, incluyendo la comunicación y las redes, el procesamiento y el almacenamiento de datos, el procesamiento de vídeo e imágenes, la industria militar y aeroespacial, y la electrónica de consumo. ¿La FPGA es analógica o digital? Una FPGA es un dispositivo digital, porque está formada por puertas lógicas que sólo pueden producir dos niveles de tensión, que representan los dos dígitos binarios, 0 y 1. Sin embargo, una FPGA puede utilizarse para crear un circuito analógico, utilizando las puertas lógicas para crear un convertidor analógico-digital (ADC) o un convertidor digital-analógico (DAC). La FPGA puede sustituir a la CPU. No, una FPGA no puede sustituir a una CPU. Una FPGA puede combinarse con una CPU para hacer un procesador personalizado.
¿Cómo se programa una FPGA?
Las FPGA suelen programarse en un lenguaje de descripción de hardware (HDL), como Verilog o VHDL. Estos lenguajes permiten a los diseñadores describir el comportamiento de los circuitos digitales de forma similar a como los programadores describen el comportamiento de los programas de software.
Una vez que el diseño se describe en un HDL, se puede compilar en una forma que se puede utilizar para programar la FPGA. El diseño compilado se llama bitstream, y contiene la información que la FPGA necesita para configurarse para implementar el diseño.
Los flujos de bits se pueden generar utilizando una variedad de herramientas, dependiendo del proveedor de la FPGA. Algunos proveedores proporcionan herramientas que permiten a los diseñadores compilar sus diseños directamente en sus FPGAs, mientras que otros proporcionan herramientas que se ejecutan en ordenadores personales o estaciones de trabajo.
Una vez que se ha generado el flujo de bits, se puede cargar en la FPGA utilizando una variedad de métodos, dependiendo del proveedor de la FPGA. Algunas FPGAs pueden ser programadas usando un puerto USB, mientras que otras requieren un hardware de programación especial. ¿Cómo se codifica una FPGA? Para codificar una FPGA, necesitarás utilizar un lenguaje de descripción de hardware (HDL) como Verilog o VHDL. Utilizarás este HDL para describir la lógica de tu diseño, y la FPGA se configurará para implementar esa lógica.
¿Es la FPGA un microcontrolador?
Una FPGA (Field Programmable Gate Array) es un circuito integrado que puede ser programado por el usuario para realizar un conjunto específico de funciones lógicas. A diferencia de un microcontrolador, que es un sistema completo en un chip que incluye un microprocesador, memoria y periféricos de E/S, una FPGA sólo incluye los recursos lógicos y no puede ejecutar programas.