Probablemente hayas empezado ya con tu primer proyecto grande en VHDL. Si es así, seguramente echas en falta un procedimiento rápido y cómodo para compilar. Te proponemos dos opciones para automatizar el proceso de generación y prueba de unidades de simulación. La primera es más rápida; la segunda, a pesar de requerir más trabajo inicial, es más cómoda.
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. La importación no es más que la generación de un fichero de configuración de proyecto llamado normalmente work-obj93.cf, si no especificaste estándar forzado VHDL'87, o work-obj87.cf, si añadiste --std=87 a la orden anterior. 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
No especifiques la extensión del archivo, ya que GHDL ya sabe qué fichero la contiene. Este método tiene la ventaja de que, si modificas un fichero de entidad, arquitectura o configuración, GHDL sabe qué es necesario compilar y no compilará más de lo que sea imprescindible. Para simular, una vez que la elaboración haya tenido éxito, tendrás que ejecutar la unidad de simulación con los parámetros adecuados. Echa un vistazo a Sección 8.2; el procedimiento es equivalente.
Quizás prefieras, además, automatizar el proceso de simulación. Si tienes un mínimo (o nulo) conocimiento de GNU make, te proponemos usar un makefile genérico, vhdl.mk, que puedes incluir en el makefile de tu proyecto. Te incluyo en este paquete varios ejemplos que pueden servirte como punto de partida y, de paso, para compilar las prácticas obligatorias 1, 2 y 3 del curso 2002-2003 (Ing. Téc. Infca. Sistemas/UNED). Tiene muchos comentarios y puede servirte como base para hacer tus proyectos además de, porqué no, aprender un poco sobre la excelente herramienta make.