use git manage vivado project

2 minute read

Published:

让我们说中文吧!使用Git管理vivado工程

Use Git to Manage Vivado Project

Motivation

  • Firmware versions often need to be iterated, requiring version control. Using compressed packages takes up a lot of memory and is inconvenient to manage.
  • Large projects require collaboration among multiple people, necessitating version control.
  • You have multiple devices and need to synchronize projects when developing at home or in the lab.

    Method

  • Good file structure, only keeping project source files such as IP cores, RTL code, testbench, scripts, and ignoring project files and intermediate files.
  • Rebuild the project using TCL scripts and source files.
  • Use Git to manage source files and scripts.

    Try to Use TCL to Rebuild the Project

    Simple prj

    nice folder structure(vivado_test)

    vivado_test  //top level project folder
    ├──vivado_prj  //vivado project folder git ignore
    ├──modules  //module folder
    │     ├──submodule1  //submodule1 folder
    │     │     ├──  sim  //submodule1 simulation folder
    │     │     │    ├──  testbench  //submodule1 testbench folder
    │     │     │    └─── script  //submodule1 test script folder
    │     │     ├──  rtl  //submodule1 rtl folder
    │     │     ├──  ip  //submodule1 ip folder
    │     │     └─── doc  //submodule1 document folder
    │     ├──submodule2  //submodule2 ...
    │     └──submodule3  //submodule3 ...
    ├──toplevel_source  //top level source folder
    │     ├──  constraints  //top level constraints folder
    │     ├──  rtl  //top level rtl folder
    │     ├──  bd  //top level bd folder
    │     └─── doc  //top level document folder
    ├──toplevel_sim  //top level simulation folder
    │     ├──  testbench  //top level testbench folder
    │     ├──  script  //top level test script folder
    │     └─── doc  //top level document folder
    ├──readme.md  //project readme file
    ├──.gitignore  //git ignore file
    └──project_gen.tcl  //vivado project rebuild tcl script
    

    Specific Steps

    1. Create Project Folder Structure

    • Project folder: vivado_test (top-level project folder)
    • Project folder: vivado_prj (Vivado project folder)
    • Source folders: modules, toplevel_source, toplevel_sim
    • Project rebuild script: project_gen.tcl

      2. Create a new project in Vivado, selecting vivado_prj as the project directory

      3. Add source files (rtl - verilog/vhdl/systemverilog, ip - xci files) to the source folders

      4. Add source files in Vivado

      5. Generate project rebuild TCL script in Vivado

    • open vivado tcl console
    • cd to the project folder
    • write_project_tcl ./project_gen.tcl

      6. Delete the project files in the project folder vivado_prj (delete the entire project folder)

      7. Manage the project with Git

    • git init
    • git add .
    • git commit -m “first commit”
    • 8. Rebuild the Project

    • Clone the project
    • Open Vivado TCL console
    • cd to the project folder cd E:/work/vivado_git/(replace with your own path)
    • source project_gen.tcl source ./project_gen.tcl
    • Complete the project rebuild