project management in git

摘录自xilinx社区,自用。

project management in git

Update on the Vivado and GIT saga:

Got a reasonable baseline established saving the following in the repository:

.xpr (had to hand-modify away some absolute paths into relative paths, and then judiciously not allow those to back-propagate when I commit and push changes)

.srcs/(various): you want to save your contraints (constrs_1/new/.xdc is typical), in sources_1 you want anything from imports (imported RTL blocks) and any custom cores from ip//.xci (just save the .xci and not the .xcix). For the block design, save  sources_1/bd//.bd and then hdl/_wrapper.{vhd or v}, then for each core invoked by the block design there is a sources_1/bd//ip//.xci file that you need to capture.

In the .srcs/sim_1 directory there are a few test bench files you should save; I didn't do any Vivado simulation so no real guidance there.

If you have an SDK project, then the key bits in the .sdk directory are the platform HDF, your BSP directory .project, .cproject, Makefile, and system.mss (there may be more for a Linux BSP; my first one is a MicroBlaze standalone though I'm working a MB Linux now). Then, you have your project code and Makefiles, etc. in its directory. If you are taking the ELF and compiling back into your BIT file, you will want to capture that even though it's binary and gets rebuilt...the project file will complain if the ELF doesn't exist when you first load the project and then you'd have to re-add that to the Vivado project sources list if you want your ELF to be compiled into your bitstream for you (which if you want to burn it to board flash is the best option).

Hope this helps and appreciate others' lessons learned. One key complaint I have with Vivado (2018.3) is that if you pull down the project and simply rebuild it, it will move around random chunks of the Block Design (.bd) file for no apparent reason. BAD! Why does it even write it back to disk if you aren't changing it (the sticky bit in the Vivado IDE doesn't show a change)?? And even if you are changing to add stuff, you really should preserve the ordering of entities so as to not create meaningless differences in the source. If my C++ environment did that (e.g., moved class members or methods in the list randomly) I would get really ticked.

你可能感兴趣的:(project management in git)