GHDL y GTKWave en linux



Fuentes y binarios

Las fuentes o binarios se pueden obtener de la página principal del proyecto de GHDL. También están disponibles las fuentes de para GTKWave. Los binarios de GHDL v0.27 (i686-pc-linux-gnu) y las fuentes de GTKwave v 3.1.13 están disponibles aquí (7.3MB).  



Preparación de Fedora 9

Es necesario tener una instalación básica de linux fedora 9, la cual deberá de contar entre otras herramientas, el compilador g++ de GNU versión 4.2.4, así como las bibliotecas respectivas.  Un método de instalación de paquetes (RPMs) en fedora es creando un repositorio local a partir del DVD de instalación.

Por ejemplo, para compilar e instalar el visualizador de señales, es necesario contar con GTK2, al instalar gtk2-devel se instalarán otros paquetes dependientes del mismo de manera automática.

#yum search gtk2-devel
#yum install gtk2-devel
#yum install bzip2-devel




Preparación de Debian 4.0r4a

De manera similar, será necesario tener una instalación básica de linux debian 4.0r4a. Un método de instalación de paquetes (DEBs) en debian es accediendo a los DVDs de instalación.

Las herramientas de instalación de aplicaciones en debian también resuelven las dependencias entre paquetes de forma automática.

#apt-cache search libgtk2.0-dev
#apt-get install libgtk2.0-dev
#apt-get install gawk g++-4.1 pkg-config libbz2-dev zlib1g-dev





Instalación ghdl

Ahora, a partir de tgz GhdlGtkwave.tar.gz se realizan los siguientes pasos:

$mkdir tmp.ghdl
$cd tmp.ghdl
$tar -zxvf ../GhdlGtkwave.tar.gz
$tar -xvf ghdl-0.27-i686-pc-linux.tar
$cd ghdl-0.27-i686-pc-linux
$su
#tar -C / -jxvf ghdl-0.27-i686-pc-linux.tar.bz2

Ghdl está basado en C/C++ y bibliotecas extras, por ejemplo:

#apt-get install zlib1g-dev


Instalación GTKWave


En la versión de debian 4.0r4a se puede instalar un versión precompilada de GTKWave, almenos para i386:


#apt-get install gtkwave

Si no se cuenta con una versión compilada (Fedora) se pueden usar las fuentes y compilar la aplicación con los siguientes pasos:


$tar -zxvf  gtkwave-3.1.13.tar.gz
$cd gtkwave-3.1.13
$./configure

El script configure verifica si el sistema cuenta con las herramientas mínimas para poder compilar e instalar el GTKWave. Es recomendable satisfacer todas los requerimientos que solicita.

Satisfechos los requerimientos, se procede a compilar e instalar el GTKWave.

$make
#make install




Ejemplo de prueba

A continuación se muestra el código de un inversor y un generador de estímulos, ambos en VHDL.

$vim inversor.ghdl

entity inversor is
   port
   (
      entrada:in bit;
      salida:out bit
   );
end entity inversor;

architecture beh of inversor is
begin
   salida <= not entrada;
end architecture beh;



$vim tb_inversor.ghdl


entity tb_inversor is
end entity inversor;

architecture beh of tb_inversor is
component inversor is
   port
   (
      entrada:in bit;
      salida:out bit
   );
end component inversor;
signal ent:bit:='0';
signal sal:bit;
begin

U0:
inversor
   port map
   (
      entrada => ent,
       salida => sal
   );


process
begin
  wait for 10 ns;
     ent <= '1';
  wait for 10 ns;
     ent <= '0';

end process;
end architecture beh;


Editados el archivo con la descripción de nuestra compuerta y el archivo de estimulos, se invoca a ghdl para su análisis:

$ghdl -a inversor.vhdl tb_inversor.vhdl

Generamos el ejecutable a partie de los módulos (objetos) creados:

$ghdl -e tb_inversor

Se ejecuta el archivo pasando como parámetros el tiempo máximos de simulación y el archivo en donde se almacenarán los resultados:

$./tb_inversor --stop-time=100ns --vcd=tb_inversor.vcd

Finalmente visualizamos los resultados por medio de gtkwave

$gtkwave tb_inversor.vcd