¿Buscas un FPGA para aprender Verilog o VHDL? Esto es lo que necesitas

¿Buscas un FPGA para aprender Verilog o VHDL? Esto es lo que necesitas

Josep Roca

El mercado de los FPGA es sumamente complejo, pero para aprender Verilog o VHDL no hace falta hacer uso de un complejo FPGA con cientos de miles de puerta lógicas y con un precio realmente alto nos vale con uno la mar de sencillo. Es por ello que te si sois novatos os vamos a dar una serie de consejos a la hora de escoger vuestro primer FPGA

Una forma de aprender algo es desarrollar ese algo, algo que nos permiten los FPGA gracias al uso de lenguajes de descripción del hardware, los cuales permiten en una sintaxis parecida a C describir todas y cada una de las partes lógicas del mismo. Los FPGA al contrario de los microcontroladores no ejecutan un software sino que se comportan como el hardware en sí mismo.

Las ventajas de los FPGA

FPGA-4

Una de las ventajas que tienen los FPGA en comparación con los microcontroladores es su enorme potencia y versatilidad en comparación con los microcontroladores. Con un FPGA podemos tener una pieza de hardware que nos haga falta al completo de su especificación, ya que hacemos que el FPGA se comporte literalmente como dicha pieza, incluso podemos hacer que se comporte como varias piezas distintas al mismo tiempo.

Pero para programarlos hace falta saber un lenguaje de descripción del hardware como son Verilog y/o VHDL, los cuales no se pueden aprender si no tenemos una plataforma de apoyo y un FPGA que nos permite ir probando el código a medida que vayamos aprendiendo a manejar estos lenguajes de descripción del hardware.

Los FPGA están atados a su fabricante

FPGA

Has decidido aprender VHDL o Verilog, para ello tienes un libro con montones de ejemplos para aprender. En el que te recomiendan un modelo en concreto y nuestra recomendación es que hagas caso a rajatabla.

El motivo de ello es que esos libros de enseñanza han probado el código con un modelo específico y no garantizan que funcione con un FPGA de otra marca y en algunos ejercicios hacen uso de elementos exclusivos de dicha placa.

Esto significa que vas si por ejemplo escoges un modelo de Altera, Xilinx o cualquier otra marca te vas a ver atrapado de por vida en sus herramientas de desarrollo y políticas, ya que parte de su modelo de negocio viene de la venta de herramientas de desarrollo.

¿Dónde radica el problema? Cuando se escribe el código en un lenguaje de descripción de hardware, este es “compilado” en un formato concreto, el cual es diferente para cada fabricante. Lo que provoca que las herramientas acaban asociadas a un fabricante de FPGAs en

¿SoC FPGA o FPGA a secas?

FPGA SoC Novato

No, no los vamos a comparar, pero hay que tener en cuenta que hay muchos FPGA no vienen solos sino que incorporan un SoC, del mismo tipo a los que tenemos en los smartphones, el cual interactúa con el FPGA.

La otra opción y más barata es optar por una placa que solo lleve el FPGA y no el SoC. En el primer caso es ideal para aprender las posibilidades entre los componentes de un SoC y el FPGA de manera combinada. Pero si lo que buscas es aprender a programar un FPGA sin otras florituras entonces puede que te interesa una placa que sea solo un FPGA.

Nuestra recomendación es que vayáis por los del segundo tipo, especialmente por el hecho que este te va a permitir interactuar con las interfaces de E/S que ya tenga integrado el SoC, en vez de tener que comprarlas aparte e incluso programarlas.

La mejor opción para novatos: Raspbery Pi + FPGA

FPGA Icoboard Novato

Lo más seguro es que muchos de vosotros tengáis una Raspberry Pi para hacer ciertos proyectos, pues bien el IcoBoard es compatible con los pines de los diferentes modelos de Raspberry Pi 2B en adelante, por lo que te será muy fácil instalarlo en tu Raspberry Pi para añadirle nuevas funcionalidades y utilizarlo para aprender Verilog.

El FPGA utilizado por la icoBoard es un Lattice iCE40-HX8K de 7680 LUTS y 8 Megabits de SRAM. El hecho de que este pensado para utilizarse junto a un Rasperry Pi supone que te puedes ahorrar el SoC, pero hay una serie de motivos por los cuales recomendamos este modelo y no otros.

Además dado que muchos habréis realizado proyectos con una Raspberry Pi para diferentes proyectos, el uso de un FPGA añadirá nuevas funciones a vuestros proyectos con vuestra Raspberry Pi, lo que amplia enormemente su funcionalidad, a la vez que vais aprendendiendo como realmente funciona el hardware.

¿Por que hacemos esta recomendación para novatos con los FPGA?

eFPGA

El motivo por el cual recomendamos el uso de la icoBoard si sois novatos es por el hecho que a su FPGA, el Lattice iCE40-HX8K, se le ha hecho ingeniería inversa con tal de poder utilizar herramientas totalmente libres y abiertas para el desarrollo en esta placa. ¿La parte negativa de todo ello? Vais a necesitar tener instalada una distribución de Linux para poder hacerlo, pero desde el momento en que es posible que tengáis una ejecutándose en vuestro Raspberry Pi.

El proyecto de ingeniería inversa sobre el Lattice ICE40-HX8K se llama IceStorm, podéis encontrar un enlace al final de este artículo, concretamente en las fuentes que adjuntamos al final del mismo.