¿Qué es un FPGA?

Dentro de la familia de los dispositivos lógicos programables destacan tres ramas importantes, microcontroladores, microprocesadores y FPGAs. Se trata de distintos tipos de chips que poseen características distintas, por una parte, los microcontroladores (μC) contienen todos los componentes necesarios (ALU, RAM, ROM, y periféricos) para operar en un solo chip. Se distinguen principalmente por su bajo costo, bajo consumo y por trabajar a frecuencias del orden de los MHz. Por otra parte, los microprocesadores cuentan con capacidades superiores, con la desventaja de necesitar más potencia de alimentación y de requerir componentes externos. En este artículo hablaremos de las capacidades de la tercera rama; los FPGAs y por qué han cobrado importancia recientemente.

Microcontroladores PIC

FPGA es el acrónimo del inglés para Matriz de Compuertas Programables en Campo y su nombre no podría ser más descriptivo. Un FPGA puede realizar las conexiones internas y representar las funciones necesarias para convertirse en cualquier sistema digital, desde aquellos compuestos por chips de la serie 74, hasta los poderosos microprocesadores. Es por ello que un FPGA es como un lienzo en blanco para diseñadores de hardware.

La ‘programación’ de un FPGA

Los sistemas que se cargan a un FPGA no son programados; sino descritos, pues la descripción requiere de una asignación a la forma de procesar, mientras que los lenguajes de programación ya tienen este requerimiento establecido. Las sentencias de los archivos de descripción pueden ser ejecutados en paralelo; es decir, todas al mismo tiempo o bien, en serial; en otras palabras, una seguida de la otra.

HDL del inglés Hardware Description Languages son las distintas estructuras y conjuntos de palabras reservadas mediante las cuales los FPGA son descritos. VHDL y Verilog son los principales y se diferencian en la cantidad de instrucciones requeridas para un mismo dispositivo, así como la estructura. VHDL fue creado por el Departamento de Defensa de EEUU, su orden es bastante único si la comparamos con los diversos lenguajes de programación, así como también es bastante largo. Verilog fue desarrollado por los fundadores de la empresa Xilinx, de la cual se tratará posteriormente, algunos experimentados en su uso dicen que es muy parecido al lenguaje C y es más compacto en cuanto a palabras requeridas.

El mercado de los FPGA

Existen diversos fabricantes de estos chips, entre los cuales destacan Xilinx e Intel (antes Altera), en conjunto dominan la mayor parte del mercado. Arduino lanzó en 2018 el Arduino MKR Vidor 4000 que contiene una Intel Cyclone 10. Altera realizó una serie de tarjetas de desarrollo (DE) con FPGA, las cuales incluían LEDs, displays de 7 segmentos, pantallas LCD, tarjetas de video para VGA. Xilinx también cuenta con estas herramientas educativas y de desarrollo basadas en sus modelos principales, los SPARTAN.

FPGA y el mundo Maker

Clifford Wolf

Recientemente Clifford Wolf, un hacker, concluyó un proyecto de ingeniería inversa y documentación de los bitstream de los FPGA iCE40, de tal forma que se puedan desarrollar herramientas sencillas para analizar y crear bitstreams propios. Gracias a esto la comunidad Maker ahora puede usar el trabajo de Clifford para incluir estas poderosas herramientas tecnológicas en sus proyectos de forma más sencilla. Este es un caso similar al de los microcontroladores y Arduino que es su momento facilitaron de forma gigantesca el uso de dispositivos que hasta el momento se reservaban para las áreas de ingeniería y ciencias. ¿Cuáles serán los siguientes dispositivos en experimentar este tipo de cambio?

Referencias:

https://www.330ohms.com/products/arduino-mkr-vidor-4000

https://www.luisllamas.es/que-es-una-fpga/

https://hackaday.com/2019/07/05/bringing-fpga-development-to-the-masses/

https://store.arduino.cc/usa/mkr-vidor-4000

http://sherlin.xbot.es/microcontroladores/introduccion-a-los-microcontroladores/que-es-un-microcontrolador

http://www.clifford.at/

Comentarios