Hardware libre con Linux
Raul Vazquez CastilloEl desarrollo de hardware es algo que pudiese pensarse esta muy alejado de las posibilidades de cualquier programador que tiene su caja Linux en su casa, pero no es así. Primeramente hay que entender que un circuito digital no es mas que una caja que tiene unas entradas y unas salidas; un microprocesador es también un circuito digital, en el que hay entradas de datos y de control (el programa), así como unas salidas.
Con la utilización de las FPGA’s, que son chips que tienen unos componentes básicos que se pueden unir según nuestras necesidades, es decir, es un chip que lo podemos configurar para que tome la forma del circuito que nosotros queremos diseñar. Esta configuración se encuentra almacenada en una memoria RAM interna, y se carga desde el exterior del chip. De igual forma que en los microcontroladores se carga software, en las FPGA’s se carga la configuración que determina en qué circuito se va a convertir.
Una FPGA’s es un chip que según cómo lo configuremos, podemos realizar cualquier circuito digital. Según que utilicemos una FPGA más grande, con más recursos internos, podremos implementar diseños más complejos. Pero al final tenemos una manera de poder crear diseños digitales sin tener que utilizar componentes externos. Y lo interesante es que una vez configurada la FPGA, lo que tenemos en su interior es hardware.
La manera de describir el circuito es utilizando los llamados lenguajes de descripción hardware. Existen varios: VHDL, Verilog, Handle C, JBits, etc. La ventaja de estos lenguajes es que, además de permitir describir el circuito, permiten definir bancos de pruebas (testbench), que son muy útiles para la simulación y la depuración.
De esta manera el diseño de Hardware se asemeja mas al diseño de Software y lo más importante, al Software GPL, ya que con unas simples herramientas que las podemos cargar de manera gratuita en nuestra caja Linux, podemos empezar a diseñar circuitos (hardware)
Actualmente existen ya proyectos para crear un CPU GPL utilizando FPGA’s, creo que como usuarios de linux se nos abren nuevas alternativas y nuevos retos para aquellos que nos atraiga el desarrollo de hardware.