VHDL & LINUX

Dentro de mi poca experiencia en linux una de las cosas mas complicadas  que me ha tocado experimentar es el compilar y simular en en VHDL (Very High Speed Integrated Circuit), llegue   incluso a  recurrir a la emulacion  o virtualizacion de compiladores como Xilixs o Quartus, sin embargo googlenado un poco  y con muchas horas de practica logre desde la consola de mi linux generar simulaciones en este lenguaje. Dejo a continuacion un link con los paquetes necesarios para la compilacion y simulacion de un proyecto http://packages.ubuntu.com/, si usas ubuntu puedes desde synaptic buscar los paquetes GTKWave o bien utilizar:

$ sudo aptitude install ghdl
$ sudo aptitude install gtkwave

Si usas otra distribución, puedes verificar si encuentras el codigo fuente, en la excelente página de Roberto Aragón se puede encontrar información y ayuda, el enlace es el que sigue:

http://web.madritel.es/personales4/raragon/vhdl/t1.html

A continuacion les comento de  algunos comandos utiles para  compilar nustros proyectos y claro para  generarla simualcion de los mismos, GHDL dispone de un método muy sencillo para detectar las dependencias entre ficheros (la opción -i) y para elaborar la unidad de simulación (la opción -m). Si dispones de todos los ficheros fuente de la unidad, ejecutando:

$ ghdl -i *.vhd

importarás todos los componentes definidos en los ficheros.  Una vez generado este fichero, GHDL ya sabe las dependencias entre entidades, arquitecturas y configuraciones de tu unidad y es capaz de generarla. Para ello sólo tienes que ejecutar la orden:

$ ghdl -m unidad-de-simulación

Para simular el recién creado modelo, puedes ahora generar un fichero de onda (VCD) y después verlo con GTKWAVE o ejecutar al mismo tiempo ambos programas. Para el primer caso primero ejecuta:

$ ./adder_tb –vcd=adder.vcd

a lo que el sistema responderá:

adder_tb.vhdl:52:7:(assertion note): end of test

lo que significa que la simulación ha terminado con éxito. Se habrá creado el fichero adder_tb.vcd que contiene un seguimiendo de onda cuadrada en respuesta a la simulación. Para poder verlo y verificar los datos ejecuta:

$ gtkwave adder.vcd

y usa las opciones de menú en Search->Signal Search…para añadir señales y poder verificar las salidas del modelo. Si estás usando la versión 2.0.0pre3 de gtkwave y dispones de un fichero con trazas salvadas de una anterior ejecución (p.e. llamado adder.trc) puedes ejecutar la simulación cargando automáticamente las trazas con la llamada:

$ gtkwave adder.vcd adder.trc

Para ejecutar la simulación y al mismo tiempo ver la onda también puedes usar:

$ ./adder_tb –vcd=- | gtkwave -vcd

Arrancará directamente GTKWAVE, de modo que puedas añadir las señales que quieras, y comprobar que tu modelo funciona adecuadamente.

Yo tarde mucho encontrando esta información en Google, y este post es  únicamente para  facilitar a  aquellos  googleros que necesiten esta información de  forma mas rápida y sencilla. En caso de que tengan alguna duda sobre el lenguaje, algún proyecto que no salgo o quieran simplemente compartir  un poco de información dejen  un comentario para   hacer el post correspondiente.

edito!!  sabado 28 de Noviembre 2009

Agradezco a la comunidad http://chitlesh.fedorapeople.org/FEL/ por el apoyo mostrado, ademas  que  los screenshots pertenecen a esta web.