Programación en VHDL/Apéndices/Instalación y uso de GHDL
GHDL es un programa para Linux y Windows con licencia GPL que puede compilar y simular ficheros en VHDL. GHDL es un compilador basado en la tecnología de GCC y que genera ejecutables. También se usará el programa GTKWave para visualizar los resultados de la simulación.
Se ha elegido este programa para compilar y simular los programas de este libro por ser libre y gratuito. No obstante hay muchos otros programas, también para Windows, que pueden ser usados, algunos son:
- ActiveVHDL (Aldec)
- Leapfrog (Cadence)
- Leonardo (Mentor Graphics)
- Max Plus II (Altera)
- Project Manager y Modelsim (Xilinx)
- SYNOPSYS
- VeryBest
Instalación
[editar]El compilador GHDL puede descargarse de http://ghdl.free.fr/ en sus versiones de Windows, Linux y código fuente Ada. Si se opta por la tercera opción se necesita instalar el compilador GNAT (ver instalación de GNAT en el wikilibro de Ada).
Los programas normalmente llevan un fichero que explica la forma de instalarlos. También puede consultarse en español en la página https://oc.iaia.lcc.uma.es/~raragon/comidilla/ghdl.html.
Compilar y simular con GHDL
[editar]Para compilar un programa hay que abrir la consola e ir al directorio donde están los ficheros creados. En primer lugar hay que compilar los ficheros del diseño y después los bancos de pruebas. Para compilar hay que usar el programa ghdl:
En este ejemplo se simulará un simple negador de una entrada y una salida. El fichero se llama negador.vhd y el código es:
ENTITY negador IS
PORT (a: IN bit;
b: OUT bit);
END negador;
ARCHITECTURE neg OF negador IS
BEGIN
b <= not a;
END neg;
El banco de pruebas es un fichero llamado negador_tb.vhd que contiene el siguiente código:
ENTITY negador_tb IS
END negador_tb;
ARCHITECTURE neg_tb OF negador_tb IS
COMPONENT negador
PORT (a: IN bit;
b: OUT bit );
END COMPONENT;
SIGNAL a: bit;
SIGNAL b: bit;
BEGIN
u0: negador PORT MAP (a,b);
a <= '1' after 0 ns,'0' after 5 ns,'1' after 10 ns, '0' after 15 ns;
END neg_tb;
Una vez que se tienen los ficheros se escribe en la consola:
ghdl -a negador.vhd ghdl -a negador_tb.vhd ghdl -e negador_tb ghdl -r negador_tb --vcd=negador.vcd gtkwave negador.vcd
A continuación se pueden ver unas capturas de pantalla de los comandos y del resultado:
En GTKWave hay que seleccionar qué señales se quieren visualizar y cuánto tiempo se muestra. En la siguiente imagen se ha presionado el botón "Show All" y se han dejado únicamente las señales a y b.
Para más información sobre estos programas consultar sus respectivas ayudas.