Making Vivado not suck at Git

Making Vivado not suck at Git

Post on how I made Vivado not suck at Git

Making Vivado not suck at Git

Vivado is a great tool for prototyping and simulation, but it’s not really great for version control. I’ve been using Vivado for a while now inside of CPRE 488, and I’ve found that it’s really difficult to use Git with Vivado.

The Problem

Vivado creates a lot of files

Our Solution

You may need to modify the tcl script to include the correct files from a static location in the repo.

For example, in our case (cpre488-mp2), we had to statically define places for:

  • Constraints File
  • VHDL Files (design_1_wrapper.vhd)
  • HW IP Files (avnet_hdmi_out, avnet_hdmi_in, interfaces, onsemi_vita_cam, onsemi_vita_spi)

Tree view of the hardware pipelined vivado folder structure (with some files removed for clarity)

.
├── Constraints
│   └── master.xdc
├── design_1.pdf
├── digital_camera_pipeline.tcl
├── hw
│   └── IP
│       ├── avnet_hdmi_in
│       ├── avnet_hdmi_out
│       ├── interfaces
│       ├── onsemi_vita_cam
│       └── onsemi_vita_spi
└── VHDL
    └── design_1_wrapper.vhd

Fixing Vivado Git

Add and Commit tcl script.

git add digital_camera_pipeline.tcl
git commit -m "added digital_camera_pipeline.tcl"

Upon new clone of repo, cd to repo directory and execute generate tcl script.

git clone https://github.com/conneroisu/cpre488-mp2.git
# IN VIVADO TCL CONSOLE ->
# On IAState Windows PC
# cd C:/Users/connero/Downloads/cpre488-mp2/Vivado/digital_camera_pipeline

# IN VIVADO TCL CONSOLE ->
# source digital_camera_pipeline.tcl
## OR
# TOOLS ->
# Run Tcl Script (opens explorer then select tcl script)

Vivado Folder .gitignore

!*
.Xil/*
project_1/*
digital_camera/*
*.str