Instalación
de GHDL y GTKWave
180416 140916 050420 |
Proyecto GHDL GHDL es un compilador
de
código abierto para el lenguaje VHDL. GHDL
permite la compilación y ejecución de código VHDL
directamente en la PC. Combinado con un analizador de
ondas gráfico (GTKWave)
y un editor de texto (VIM),
GHDL es una herramienta poderosa para la simulación
funcional de circutos descritos con VHDL.
GHDL está basado en el compilador GCC de GNU y puede ejecutarse en Linux, winbugs y Apple OS X. Se pueden obtener los binarios para un sistema operativo en específico o se puede compilar a partir del código fuente para un arquitectura en específico. |
Instalación en Fedora 32 Linux Fedora
utiliza gestores de archivos para la instalación de
aplicaciones. El gestor de archivos en línea de comandos
más popular de Fedora es dnf, se encarga de
resolver dependecias, obtener los paquetes (en Fedora
los paquetes se conocen como rpm) e instalarlos
en el orden apropiado.
Para la instalación de GHDL y GTKWave en Fedora, consideremos que justo terminamos de hacer una instalación básica de la distribución Fedora 32 en inglés. Cambio a administrador o root Es el administrador del sistema el único usaurio que tiene los permisos para instalar, desintalar y configurar aplicaciones. A través del comando su (super user) y el password correspondiente, un usuario puede convertirse en super usuario. [oskr@kro:~]$ su - password: [root@kro:~]# Puede notarse como el nuevo usuario (root) y el prompt (#), los cuales indican que ahora es el administrador del sistema. GHDL Antes de instalar el GHDL es conveniente instalar el grupo des herramientas y bibliotecas de desarrollo del lenguaje C. Para listar los grupos disponibles ejecutamos: [root@kro:~]# dnf grouplist ... C Development Tools and Libraries ... Para instalar el grupo: [root@kro:~]# dnf groupinstall "C Development Tools and Libraries" Buscamos el paquete de ghdl. [root@kro:~]# dnf search ghdl ... ghdl.x86_64 : A VHDL simulator, using the GCC technology ... Se instala con el nombre exacto. [root@kro:~]# dnf install ghdl.x86_64 El comando anterior instalará GHDL y sus dependencias (ghdl-grt, libgnat, zlib-devel). GTKWave Buscamos e instalamos el GTKWave de la misma forma: [root@kro:~]# dnf search gtkwave ... gtkwave.x86_64 : Waveform Viewer ... [root@kro:~]# dnf install gtkwave.x86_64 Las dependecias de gtkwave son Judy y tk. Cambio de administrador o root a usario Realizada la instalación de las herramientas, regresamos a ser un usuario normal: [root@kro:~]# logout [oskr@kro:~]$ El proceso de instalación se pueden ver en este video. Circuito de prueba Utilizamos los archivos de la compuerta NOT (compnot1.vhdl) y su generador de estímulos, (tb_compnot1.vhdl). Creamos un directorio con el nombre del proyecto, en este caso será: [oskr@kro:~]$ mkdir compnot1 ingresamos al directorio de trabajo: [oskr@kro:~]$ cd compnot1 nótese como nuestro promp muestra la ruta de trabajo: [oskr@kro compnot1]$ Descargamos los archivos de ejemplo (escriba toda la línea seguida): [oskr@kro compnot1]$ wget http://academicos.azc.uam.mx/oan/linux/ghdl/compnot1.vhdl [oskr@kro compnot1$ wget http://academicos.azc.uam.mx/oan/linux/ghdl/tb_compnot1.vhdl Para visualizar el código utilizamos un editor de texto sin marcas, como el vim, nano o gedit. [oskr@kro compnot1]$ gedit compnot1.vhdl [oskr@kro compnot1]$ gedit tb_compnot1.vhdl Nótese que el nombre del archivo corresponde al nombre de la entidad. Invocamos a ghdl para el análisis de los códigos: [oskr@kro compnot1]$ ghdl -a compnot1.vhdl [oskr@kro compnot1]$ ghdl -a tb_compnot1.vhdl Generamos el ejecutable al enlazar los módulos (objetos) creados: [oskr@kro compnot1]$ ghdl -e tb_compnot1 Se ejecuta el archivo pasando como parámetros el tiempo máximos de simulación (100 nano segundos) y el archivo en donde se guardarán los resultados (tb_compnot.vcd): [oskr@kro
compnot1]$
ghdl -r tb_compnot1 --stop-time=100ns
--vcd=tb_compnot1.vcd
Una menera alternativa de ejecuatarlo es: [oskr@kro compnot1]$./tb_compnot1 --stop-time=100ns --vcd=tb_compnot1.vcd Finalmente visualizamos los resultados por medio de gtkwave [oskr@kro compnot1]$ gtkwave tb_compnot1.vcd A través de la herramienta make, se puede compilar, enlazar y ejecutar la aplicación con un solo comando, para ello es necesario crear el archivo Makefile. [oskr@kro compnot1]$ wget http://academicos.azc.uam.mx/oan/linux/ghdl/Makefile Visualizamos su contenido. [oskr@kro compnot1]$ gedit Makefile Invocamos el comando make. [oskr@kro compnot1]$ make Se puede observar cómo se lleva a cabo la compilación, enlazado y ejecución, incluso como se llama a la herramienta GTKwave. Se puede generar un archivo que guarde la estructura de la visualización, es decir, escala, variables, posición del cursor, etc., este archivo se pasa como argumento a GTKWave. [oskr@kro compnot1]$ wget http://academicos.azc.uam.mx/oan/linux/ghdl/ondas.gtkw Invocamos nuevamente el comando make. [oskr@kro compnot1]$ make Los pasos para la prueba del circuito se pueden ver en este video. |
Instalación en Windows 10 Editor de texto Vim Para la instalación del
editor de texto sin marcas o editor archivos de caracteres
vim (del inglés Vi IMproved), es necesario obtener el
archivo de instalación disponible en la página de
descargas del proyecto. Este archivo es un
auto-extraible que instala la aplicación de manera
automática.
En este video se muestra la instalación de vim/gvim para windows 10. Para utilizar los binarios o ejecutables desde cualquier ruta, será necesario agragarlo a la variable de ambiente PATH, esto lo hacemos con el siguiente comando: C:\Users\oscar>set PATH=c:\Program Files (x86)\vim\vim82;%PATH%; En este video se muestra el cambio de la variable de ambiente. GHDL para Windows Para instalar GHDL en windows se puede hacer de dos formas: 1. Buscar y descargar un paquete con los ejecutables y bibliotecas, ya sea para sistemas 32 o 64 bits y acceder a los ejecutables. 2. Buscar y descargar algun archivo ejecutable-instalador, ya sea para sistemas 32 o 64 bits, e instalarlo. 3. Descargar el código fuente y construirlo. Los usuarios de Windows están muy acostumbrados a simplemente utilizar un instalador, sin embargo, sería una buena práctica construir los binarios y bibliotecas a partir de un código fuente. Es importante aclarar que el compilador GHDL es una herramienta de consola, por lo que se debe ejecutar en una terminal o "símbolo de sistema". Antes de utilizar el compilador GHDL, se recomienda buscar y analizar los comandos necesarios para trabajar en la terminal. El siguiente tutorial mostrará los comandos que se deben ejecutar tanto para la instalación, configuración, ejecución del compilador GHDL. Instalador de GHDL Descargamos el archivo ghdl-0.31-mcode-win32.zip. Es muy probable que el archivo sea descarcado en el directorio de descargas. Pasamos de la ruta del "home" del usuario a la unidad C. C:\Users\oscar>cd c:\ Creamos el directorio ghdl, ingreamos en el mismo, movemos el archivo descargado al directorio ghdl. C:\mkdir ghdl C:\cd ghdl C:\ghdl>move c:\Users\oscar\Downloads\ghdl-0.31-mcode-win32.zip . Nótese el punto al final de la línea de comandos anterior. Listamos el contenido del directorio actual. C:\ghdl>dir ... ghdl-0.31-mcode-win32.zip ... Descomprimimos el archivo con el comando PowerShell: C:\ghdl>PowerShell expand-archive -Path ./ghdl-0.31-mcode-win32.zip -DestinationPath . Listamos, e ingresamos al directorio creado: C:\ghdl>dir C:\ghdl>cd ghdl-0.31-mcode-win32 C:\ghdl\ghdl-0.31-mcode-win32> Ejecutamos los siguientes scripts de configuración: C:\ghdl\ghdl-0.31-mcode-win32>reanalyze_libs.bat C:\ghdl\ghdl-0.31-mcode-win32>set_ghdl_path.bat El segundo script agrega a la variable de ambiente PATH (de la terminal) la ruta C:\ghdl\ghdl-0.31-mcode-win32\bin donde se encuentran los ejecutables. Podemos visualizar las variables de ambiente con el comando: C:\ghdl\ghdl-0.31-mcode-win32>set ... Path=C:\ghdl\ghdl-0.31-mcode-win32\bin;c:\Windows\system32;c:\windows; ... Ejecutamos los comandos para visualizar la instalación. C:\ghdl\ghdl-0.31-mcode-win32>ghdl --dispconfig C:\ghdl\ghdl-0.31-mcode-win32>ghdl -v Si cambiamos de ruta, aún se podrá ejecutar los comandos de ghdl: C:\ghdl\ghdl-0.31-mcode-win32>cd c:\Users/oscar C:\Users\oscar>ghdl -v Sin embargo, al abrir una nueva terminal el comando anterior no funcionará: C:\Users\oscar>ghdl -v "ghdl" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable. Para que el contenido de la variable de ambiente sea permanente en todas las terminales, se deberá editar la variable de ambiente PATH en la configuración del sistema. Buscar "variables de entorno". En este video se muestra la instalación y configuración de las variables de ambiente en windows 10. GTKWave El visualizador de ondas GTKWave se instala de manera similar GHDL, solo es necesario descomprimir el archivo gtkwave-3.3.71-bin-win32.zip, en una ruta conocida, por ejemplo: C:\gtkwave Al descomprimir generará el directorio gtkwave y los subdirectorios bin, lib y share, de los cuales el que contiene los binarios y las DLL es bin, agregamos este directorio a la variable de ambiente PATH para su acceso: C:\Users\oscar>set PATH=c:\gtkwave\gtkwave\bin;%PATH% Cabe hacer notar que el cambio en la variable de ambiente PATH solamente tendrá efecto en la terminal en la que se ejecutó y una vez cerrada (o terminada la sesión de windows) ya no tendrá efecto, será necesario ejecutarlo de nuevo. Para que windows automáticamente tenga configurada la variable de ambiente PATH con las rutas de ghdl y gtkwave, es necesario modificar las variables de ambiente del sistema. En windows 7 se accede con la herramienta gráfica: Menú de inicio->Botón derecho sobre Equipo->Propiedades->Configuraciones avanzadas del sistema ->Variables de entorno->Variables del sistema Buscamos la variable PATH y seleccionamos editar, al final colocamos un punto y coma (;) y agregamos las rutas deseadas, en este caso: c:\ghdl\ghdl-0.31-mcode-win32\bin;c:\gtkwave\bin (nótese que están separadas por un punto y coma). Finalmente abrimos otra terminal y verificamos que estén las rutas. C:\Users\oskr>set PATH En este video se demuestra la instalación para windows 10. Circuito de prueba Para comprobar que nuestras
herramientas están bien instaladas y configuradas,
compilaremos, enlazaremos, ejecutaremos y visualizaremos
los resultados de una compuerta lógica.
El archivo compnot1.vhdl describe una compuerta NOT de una entrada y una salida y el archivo tb_compnot1.vhdl es el circuito de estímulos. Ambos archivos los colocamos en un directorio, creado previamente, para que sea nuestra ruta de trabajo: C:\Users\oscar>mkdir circuitos C:\Users\oscar>cd circuitos C:\Users\oscar\circuitos>mkdir compnot1 C:\Users\oscar\circuitos>cd compnot1 C:\Users\oscar\circuitos\compnot1> Una vez descargados en el directorio, los podemos visualizar con el editor vim: C:\Users\oscar\circuitos\compnot1>vim compnot1.vhdl C:\Users\oscar\circuitos\compnot1>vim tb_compnot1.vhdl Para analizar o compilar los códigos utilizamos el comando ghdl con la opción -a: C:\Users\oscar\circuitos\compnot1>ghdl -a compnot1.vhdl C:\Users\oskr\circuitos\compnot1>ghdl -a tb_compnot1.vhdl Ahora los enlazamos con el comando ghdl con la opción -e, indicando el nombre del ejecutable (nombre del archivo test bench sin extensión): C:\Users\oscar\circuitos\compnot1>ghdl -e tb_compnot1 Ejecutamos el proyecto indicando el tiempo de simulación con --stop-time= y el nombre del archivo de resultados con --vcd=: C:\Users\oscar\circuitos\compnot1>ghdl
-r tb_compnot1 --stop-time=100ns
--vcd=resultados.vcd
Finalmente para visualizar los resultados, utilizamos el comando: C:\Users\oscar\circuitos\compnot>gtkwave resultados.vcd En este video se demuestra lo anterior. |
Linux Debian 8 Jessie
GHDL Debido a la falta de mantenimiento de los desarrolladores, la comunidad de Debian decidió no incluir el proyecto GHDL a partir de la distribución Debian 7.0.0 Wheezy. La instalación se puede hacer de varias formas de acuerdo a la experiencia de cada usuario. La más compleja consiste en compilar desde el código fuente, ya que se debe compilar el GHDL como parte de GCC. Un método más sencillo es obtener un paquete .deb e instalarlo con las herramientas de gestón de paquetes. Los paquetes .deb son archivos que contienen binarios, documentación y manuales, los cuales son gestionados por el administrador de paquetes de Debian y deben ser construidos con herramientas de la distribución Debian. Este paquete es precisamente lo que ya no pudieron hacer los responsables del proyecto. Para saber qué paquete .deb se debe bajar, se debe verificar la arquitectura del CPU: oskr@kro:~$ uname -m i686 y la versión de Debian: oskr@kro:~$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.0 (jessie) Release: 8.0 Codename: jessie Con esta información podemos proceder a descargar el paquete deb para nuestro sistema en la páguina de sourceforge. En mi caso debo descargar el paquete ghdl_0.33-1jessie1_i386.deb, ya que corresponde a la versión de Debian y a la arquitectura. Antes de instalar el deb, es necesario contar con una instalación básica de Debian, si no se tiene al menos se debería de instalar los siguiente: root@kro:~# apt-get install gcc root@kro:~# apt-get install g++ root@kro:~# apt-get install build-essential apt-get install vim-common vim-gtk Si ya se tenía una instalación básica de Debian, solamente es necesario agregar: root@kro:~# apt-get install gnat-4.9-base libgnat-4.9 root@kro:~# apt-get install zlib1g-dev Procedemos a instalar el archivo: root@kro:~#dpkg -i ghdl_0.33-1jessie1_i386.deb GTKWave El GTWave aún está incluido en la distribución Debian 8, asi que se puede instalar desde un DVD o desde algún repositorio. Antes de intentar instalar GTKWave, probamos que esten instaladas las dependencias: root@kro:~# apt-get install libjudydebian1 gtk8.6 tcl8.6 El instalador nos indicara si ya estan instaladas las dependencias o las instalara. root@kro:~# apt-get install gtkwave Circuito de prueba Utilizamos los archivos de la compuerta NOT (compnot1.vhdl) y su generador de estímulos, (tb_compnot1.vhdl). Creamos un directorio con el nombre del proyecto, que en este caso será: oskr@kro:~$ mkdir compnot1 ingresamos al directorio de trabajo: oskr@kro:~$ cd compnot1 nótese como nuestro promp muestra la ruta de trabajo: oskr@kro:~/compnot1$ Descargamos los archivos de ejemplo: oskr@kro:~/compnot1$ wget http://academicos.azc.uam.mx/oan/linux/ghdl/compnot1.vhdl oskr@kro:~/compnot1$ wget http://academicos.azc.uam.mx/oan/linux/ghdl/tb_compnot1.vhdl Para visualizar el código utilizamos un editor de texto sin marcas, como el vi, vim, nano, pico o gedit. oskr@kro:~/compnot1$ gedit compnot1.vhdl oskr@kro:~/compnot1$ gedit tb_compnot1.vhdl Nótese que el nombre del archivo corresponde al nombre de la entidad. Invocamos a ghdl para el análisis de los códigos: oskr@kro:~/compnot1$ ghdl -a compnot1.vhdl oskr@kro:~/compnot1$ ghdl -a tb_compnot1.vhdl Generamos el ejecutable al enlazar los módulos (objetos) creados: oskr@kro:~/compnot1$ ghdl -e tb_compnot1 Se ejecuta el archivo pasando como parámetros el tiempo máximos de simulación (100 nano segundos) y el archivo en donde se guardarán los resultados (tb_compnot.vcd): oskr@kro:~/compnot1$
ghdl -r tb_compnot1 --stop-time=100ns
--vcd=tb_compnot1.vcd
Una menera alternativa de ejecuatarlo es: oskr@kro:~/compnot1$./tb_compnot1 --stop-time=100ns --vcd=tb_compnot1.vcd Finalmente visualizamos los resultados por medio de gtkwave oskr@kro:~/compnot1$ gtkwave tb_compnot1.vcd |
Linux Ubuntu 15.10 La instalación
de GHDL y GTKWave en Linux Ubuntu es muy similar a la
presentada para la distribución Debian. Esto se debe a
que Ubuntu es una distribución basada en Debian, por lo
tanto, son muy parecidos y compatibles, practicamente
todas las aplicaciones que funcionan en Debian funcionan
en Ubuntu.
oskr@kro:~$
uname -mGHDL Considerando de que se acaba de instalar Ubuntu, lo primero es verificar la arquitectura y la versión instalada. i686 y la versión de Ubuntu: oskr@kro:~$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 15.10 Release: 15.10 Codename: willy Con esta información
podemos proceder a descargar el paquete deb para
nuestro sistema en la páguina de sourceforge.
En mi caso debo descargar el paquete ghdl_0.33-1jessie1_i386.deb,
ya que corresponde a la versión de la arquitectura. Este
paquete funcionará en Ubuntu a pesar de que no aparezca
el nombre de ubuntu, como ya comentamos, Ubuntu es
compatible con Debian.
Antes de instalar el deb, es necesario instalar algunas dependencias: oskr@kro:~$ sudo apt-get install gnat oskr@kro:~$ sudo apt-get install zlib1g-dev Procedemos a instalar el archivo deb, suponiendo que el navegador lo descargó y lo colocó en el directorio Downloads o Descargas: oskr@kro:~$sudo dpkg -i Downloads/ghdl_0.33-1jessie1_i386.deb De manera similar instalamos el editor de texto vim: oskr@kro:~$ sudo apt-get install vim-common vim-gtk GTKWave El GTWave aún está
incluido en la distribución, asi que se puede instalar
desde los repositorios de Ubuntu.
oskr@kro:~$ sudo apt-get install gtkwave Circuito de prueba Seguimos los mismos pasos que se muestran en la distribución de Debian. |