3 votos

¿Cómo está estructurados los directorios de proyectos de Vivado?

Estoy trabajando con Vivado para programar FPGA's en VHDL. ¿Alguien puede explicarme cuáles son los diversos directorios que se crean bajo el directorio del proyecto?

En mis proyectos, se crean las siguientes carpetas:

  • [nombre_del_proyecto].cache
  • [nombre_del_proyecto].hw
  • [nombre_del_proyecto].ip_user_files
  • [nombre_del_proyecto].runs
  • [nombre_del_proyecto].sim
  • [nombre_del_proyecto].srcs

Quiero utilizar git para manejar los proyectos, por lo que necesito saber de qué se compone cada directorio, ya que quiero ignorar los que contienen archivos compilados.

4voto

silverbolt Puntos 18

No agregues el proyecto en sí a git; en su lugar agrega algún tipo de script para generar el proyecto y los núcleos IP necesarios. Hay todo tipo de problemas con los que te encontrarás si confirmas el proyecto real, el menos sería rutas absolutas en varios lugares, por no mencionar una dependencia de versión dura en Vivado. Debería ser posible que Vivado exporte un script TCL para generar el proyecto, así que solo confirma eso y úsalo para regenerar todo el proyecto. Alternativamente, es posible usar algún otro marco de construcción como make o cmake para escribir scripts TCL y ejecutarlos en Vivado para hacer prácticamente lo mismo.

Así es como usualmente lo hago con makefiles:

Archivo make: https://github.com/alexforencich/verilog-ethernet/blob/master/example/VCU118/fpga_10g/fpga/Makefile

vivado.mk que incluye el makefile anterior: https://github.com/alexforencich/verilog-ethernet/blob/master/example/VCU118/fpga_10g/common/vivado.mk

0voto

Mohsen Hashemi Puntos 1

Si recuerdo correctamente... Para hacer check-in de tu proyecto de Vivado en GIT, solo necesitas hacer check-in de lo siguiente:

    [nombre_del_proyecto].xpr      #ARCHIVO DE PROYECTO DE VIVADO
    [nombre_del_proyecto].srcs/*   #CONTIENE TODO EL CÓDIGO FUENTE: *.vhd, *.sv, *.v, *.bd, *.xci
    [nombre_del_proyecto].sdk/*    #CONTIENE TODO EL CÓDIGO ZYNQ: *.c, *.h, etc...

Todos los demás directorios y archivos bajo el directorio del proyecto de Vivado son temporales e intermedios que el compilador recreará cuando inicies el proyecto de Vivado:

$ iniciar vivado [nombre_del_proyecto].xpr 

A continuación se muestra mi script de limpieza para limpiar el directorio del proyecto de Vivado antes de hacer check-in en GIT. (Por favor, haz una copia de seguridad de tu directorio de proyecto antes de ejecutar este script porque no estoy 100% seguro de que siempre sea seguro... Xilinx realmente no documenta qué archivos y directorios son seguros para eliminar, y tuve que aprender esto por ensayo y error.)

desde el directorio del proyecto de Vivado, ejecuta:

   rm -rf *.cache
   rm -rf *.runs
   rm -rf *.sim
   rm -rf *.hw
   rm -rf *.ip_user_files
   rm -rf *.jou
   rm -rf *.log
   rm -rf *.str

Vivado siempre insiste en copiar tus archivos fuente fuera de tu árbol de directorios de origen en el árbol del proyecto de Vivado... lo que suele tener el efecto de desorganizar tu capacidad de organizar tu código fuente y te obliga a hacer check-in de tu proyecto de Vivado en su lugar... simplemente tienes que ceder y dejar que Vivado gestione tu código fuente y la estructura del directorio de GIT...)

(La otra solución de Vivado a este problema es siempre recrear tu archivo de proyecto desde un script tcl y seguir desechando tu archivo de proyecto cada vez que quieras actualizar tu código fuente... ten en cuenta que necesitas iniciar Vivado desde una subshell si lo haces porque Vivado suele matar a su shell llamador en caso de error, efectivamente matando tu script que lo llamó... para un archivo por lotes de Windows "cmd /c vivado -mode tcl nombre_del_script.tcl"...)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X