• 0

Version control of Vivado projects



The generate_project scripts on Digilent's github seems to be incompatible with each new version of Vivado. I am starting out in Vivado and I am very interested in the best way to maintain Vivado projects under version control. Is there a best practice for this?

Ideally there would be a function in Vivado to either directly check in only the necessary files, or at least to clean out all generated files so that all that remains in the project are the source files that need to version controlled. I have been working in ISE for many years and it is a mess to filter out the files that need to go into version control. Do anyone have any pointers on how to do version control on Vivado projects?


Link to comment
Share on other sites

2 answers to this question

Recommended Posts

I find it difficult to work with VIvado project files. When I have tried to use on that has been checked in there have been problems about absolute paths that are incorrect when I check out the project.

For that reason and others, I use a non-project flow with Vivado and actually do not generate .xpr files. My Tcl scripts use "in memory projects". This style fits my approach to things and allows me to redirect temporary files to subdirectories so it is easy to keep track of which files to commit.

I have not tried Digilent's generate_project script. My tcl scripts are in https://github.com/cambridgehackers/fpgamake in case they are helpful.

Looks like Digilent has two Github "organizations". I found the create_project.tcl script, so I can answer your question about what to check in. If you follow this style, you do not have to commit any file that is created by Vivado. They're all reproducible from the original sources and tcl script.

If you use IP cores or IP integrator after creating a project, you may want to commit files under project.srcs. I tend to copy the commands that generated the cores or board design from the vivado.jou file into the project creation Tcl script.

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.