FPGA

¿Te imaginas poder meter tu proyecto de electrónica digital en un sólo chip? ¿diseñar tus contadores, registros de desplazamiento, multiplexores, comparadores, etc, con todos los bits que necesites? ¿hacer proyectos que trabajan en paralelo y en tiempo real? Para terminar, ¿te imaginas diseñar tu propio microprocesador o microcontrolador? Todo esto existe desde hace más de 30 años.

En plan rápido te comento lo siguiente: Un chico llamado Clifford Wolf tomó una FPGA sencilla (la Icestick) e hizo ingeniería inversa para poder sintetizar circuitos dentro de ella. Al cabo de tres años lo consiguió y creó, junto a Mathias Lasser y Cotton Seed el proyecto Icestorm. En muy poco tiempo se han ido uniendo más personas y se están desarrollando a pasos agigantados herramientas libres con las que cualquier usuario puede crear su propio proyecto integrado dentro de un sólo chip (en la FPGA).

Pongo un vídeo ilustrativo que pertenece a Juan González Gómez (alias Obijuan) para que te hagas una idea de lo que se trata. Ten en cuenta que el vídeo es muy antiguo (pero pedagógicamente representativo), hoy en día Icestudio ha evolucionado exponencialmente y ahora permite hacer cosas muy complejas e incluir periféricos.

Jesús Arroyo Torrens es el creador de este sencillo y potente programa llamado Icestudio, aunque hoy en día y desde hace unos años el proyecto lo está liderando Carlos Venegas Arrabé. Imagino que conoces otros programas de diseño digital, pero Icestudio transforma todas las puertas lógicas y flip-flops en un "bitstream" y lo carga directamente en la FPGA. El "bitstream" no es un programa ni un código, sino más bien un mapa de conexiones.

Te recomiendo fehacientemente ver (porque es muy gráfico) este documento realizado por Obijuan, gran colaborador y divulgador de las herramientas libres, y también es alguien que abre caminos muy interesantes a personas como nosotros, con inquietudes tecnológicas.

Si tienes unos conocimientos mínimos de electrónica digital podrás comenzar a trabajar directamente con elementos electrónicos que ya están incluidos en Icestudio (puertas lógicas, flip-flops, multiplexores, decóders, etc). Pero con el tiempo irás viendo códigos en lenguaje de descripción hardware Verilog (y viene de camino VHDL #1, #2). No te preocupes si no conoces este tipo de lenguaje, de hecho lo aprenderás poco a poco y casi sin darte cuenta, a la vez irás descubriendo poco a poco también, lo potente que puede llegar a ser.

Como decía arriba, si no conoces este mundo has llegado al lugar adecuado; y si ya tenías conocimientos previos de FPGA, quizás descubras herramientas libres que hasta el momento no tenías noticias y además "pesa" muy poco (en mega bytes) y es gratis.

¡Quiero comenzar ya!

Siempre daré mi apoyo a las herramientas libres pero me he encontrado en alguna situación en la que necesitaba un tipo de FPGA concreta y que por el momento no tienen soporte (es cuestión de tiempo que se liberen), entonces he tenido que recurrir a herramientas privativas. A continuación tienes un enlace para iniciarse con este tipo de herramientas.