Con los ficheros del primer ejemplo, utilizaremos los diferentes modos del GHDL:
$ ls hola_mundo.vhdl inversor.vhdl tb_inversor.vhdl |
Sin necesidad de abrir ningún fichero, podemos conocer qué entidades y arquitecturas están definidas:
$ ghdl -f inversor.vhdl
entity inversor
|
Importamos todas las unidades de diseño en la librería. No tenemos que conocer el diseño:
$ ghdl -i *.vhdl |
Visualizamos todas las unidades que hay en la librería:
$ ghdl -d
entity hola_mundo
|
En nuestro diseño, sabemos que la entidad superior (top level) es tb_inv. No obstante, si el diseño no lo hemos hecho nosotros, podemos intentar descubrir cuál es la entidad superior utilizando el modo de búsqueda:
$ ghdl -f *.vhdl
entity hola_mundo **
|
Las entidades superiores son las que se indican con doble asterisco.
En vez de analizar ``a mano'' (usando la opción -a), es mejor utilizar el modo make, que hace todo lo necesario para elaborar la entidad indicada:
$ ghdl -m tb_inv
analyze tb_inversor.vhdl
|
Se analizan las dependencias, se hace el análisis y finalmente la elaboración. Sin embargo, es mucho más cómodo generar un fichero Makefile y trabajar directamente con make:
$ ghdl -gen-makefile tb_inv > Makefile |
Ahora, podemos modificar cualquier de los ficheros .vhdl con un editor de texto, y al hacer make, automáticamente se analizarán sólo los ficheros actualizados y se realizará la elaboración de la nueva entidad:
$ make
ghdl -a tb_inversor.vhdl
|
El comando make se puede invocar directamente desde entornos de trabajo como Emacs o Anjuta.
Juan Gonzalez 2004-10-01