Hey all,
I'm working on an Artix 7 project, currently on a CMOD 7 board, with a mix of Xilinx IP components (XADC, MMCM) and my own code. Inevitably, I will have to add more Xilinx IP components.
I am storing all my own RTL code into a separate source code folder that also includes test benches, waveform definitions, anything that I work on myself. This code is in a GIT repo, and updating it is quite simple.
Different story for the actual Vivado project. Currently I'm on a CMOD7 board, but I could change into the Arty A7, and we'll also get a custom board with an Artix7-50 as our own development board. I don't mind creating a new project for each board, I have to anyway since I need to update the constraints files. I'd like to check in the project in GIT, and here's where I'm a bit stuck. Each project generates a number of subfolders. Each IP generated code has its own subfolder somewhere, in addition to god knows what. Then there's simulation folders. And a bunch of other things that I'm not really familiar or interested in, at least not yet.
Can I not just store the directives or instructions to instantiate and generate the IP blocks somewhere? Even if I need to script it in TCL, at least it would be only a script file. I'd love to just be able to commit just the settings for the project (source files, generated IP, XDC file) so that in theory someone else just imports that in Vivado alongside the RTC source and starts synthesyzing straight away.
Does anyone here have a solution for that or a guide that I can have a look at? I'm sure there must be a smart way to manage the essentials on Vivado and not all the stuff it generates.
Cheers,
Alberto