xil_project.pl genera los siguientes archivos:
PROYECTO.prj Contiene un listado completo de todos los fuentes que componen nuestra síntesis. Es equivalente al .prj generado por ISE.
PROYECTO.xcf Contiene los constraints de nuestro diseño. Es opcional y en algunas placas contiene detalles específicos de las mismas.
PROYECTO.xst Contiene opciones de síntesis utilizadas por XST (el sintetizador).
Makefile o PROYECTO.mak Contiene las reglas para sintetizar el proyecto, transferir el resultado a la FPGA y/o PROM y eliminar los archivos generados.
.cvsignore Utilizado por la herramienta cvs, indica que archivos han sido generados, y que, por lo tanto, no deben incluirse en el repositorio.
El contenido del .prj puede ser controlado por
completo utilizando los parámetros Source
e
Include
. En el caso de los .xcf,
.xst y del archivo de make es muy probable que
necesitemos ajustar algún detalle. Esto se logra generando archivos del
tipo PROYECTO.in.EXT, así, si deseamos agregar
constraints podemos colocarlos en PROYECTO.in.xcf.
En el caso del archivo de make podemos agregar target clean
adicionales (ver Sección 3.1.9) y reglas para generar
algunos de los archivos que componen nuestro proyecto. Debemos tener en
cuenta que todos los fuentes de nuestro proyecto son mencionados como
dependencias del target de síntesis. De esta manera es posible agregar
las reglas que los construyen.
Un ejemplo un tanto particular es la generación del módulo
INTERCON
de WISHBONE utilizando la herramienta
WISHBONE Builder. En el Ejemplo 3-7 se muestra como
generar la INTERCON
especificada en un archivo
wb_debug.defines. Este texto se incluiría en el
archivo Makefile.in.
Ejemplo 3-7. Como generar la INTERCON
de WISHBONE
wb_dbg_intercon.vhdl wb_dbg_intercon_package.vhdl wb_dbg_intercon.inc: \ wb_debug.defines wishbone.pl nogui gen-header $< wb_clean: rm -rf wb_dbg_intercon*
En este caso deberíamos especificar ExtraClean=wb_clean
, de esta manera al ejecutar el target clean
se borrarían
todos los archivos generados por WISHBONE Builder.
Otro ejemplo interesante es como mantener actualizados los archivos procesados por la herramienta vhdlspp.pl. Esta herramienta permite generar declaraciones de componentes en forma automática y es útil para generar memorias ROM y estructuras similares. En el Ejemplo 3-8 se muestra como podemos asegurarnos que la descripción hello5.vhdl, que contiene una memoria ROM, se mantenga actualizada. En este caso el componente definido en hello5.vhdl se encuentra declarado en pm_pkg.vhdl. En el ejemplo existe un archivo make en el directorio ../../prgs/ encargado de mantener estos dos archivos. Notar el uso de un target del tipo PHONY para evitar que la síntesis se lleve a cabo aun en el caso en que los archivos no hayan cambiado y, al mismo tiempo, evitar mencionar las dependencias de los archivos en cuestión.