Code Monkey home page Code Monkey logo

vivado-git's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vivado-git's Issues

2022.2 Block Design support

As it stands currently, vivado-git doesn't seem to properly handle block designs in the TCL script it generates, at least for Vivado 2022.2 (the only version I currently have access to).

While I'm not terribly familiar with TCL scripting, I was able to modify the script generated for one of my own projects. The necessary changes are described below, in case they prove useful for development purposes (or for other users to reference when making their own modifications).

  • Local IP repositories are actively filtered out during script generation. If any IP components from them are required by the BD, the relevant IP repo must be added manually to the project.
    However, the script actively removes them by default. This can be prevented by simply not setting the IP repo path:
    (Yes, it would be preferable to not use IP repos that are external to the project, but this is sometimes not an option)
 # Set IP repository paths
 set obj [get_filesets sources_1]
 if { $obj != {} } {
-  set_property "ip_repo_paths" "" $obj
  • The BD itself should not be added to the list of IPs required for its creation:
   set bCheckIPs 1
   if { $bCheckIPs == 1 } {
      set list_check_ips "\
-  xilinx.com:user:my_design"1.0\
   "
  • Vivado doesn't like references to DCP files that do not exist. To ensure that first-time project creation is successful, don't set an incremental checkpoint:
 set obj [get_runs synth_1]
-set_property -name "incremental_checkpoint" -value "$proj_dir/my_project.srcs/utils_1/imports/synth_1/my_design_wrapper.dcp" -objects $obj
 set_property -name "auto_incremental_checkpoint" -value "1" -objects $obj

Question About Licensing

@barbedo I am interested in using this repo, but I wasn't able to find information on licensing. Are you providing this as a freeware service to humanity, or did you plan to use an existing open source license?

excisting vivado projects

Hello,
is there is a way to use the scripts with existing vivado projects in order to migrate them to git ? some sort of copying sources and organizing everything to create it ?

Thanks

Error with Vivado 2017.4

I am having problems with Vivado 2017.4.

git add . runs fine, but git commit -m "message" no.

git add .
Not in project directory
Changing directory to: /home/cruiz/repositorios/gitVivado2017/p1
git commit -m "p1"
invalid command name "get_dashboards"

BD Tcl generation fails when spaces present in project path

Thank you for the scripts, they are really helpful! I noticed that generating the BD tcl fails when spaces are present in the project path in Windows. I couldn't pin it down to where exactly it fails, but multiple errors and warnings are thrown which indicate the path is split at the spaces:

INFO: [BD 5-453] Writing out BD creation steps for design_1 as a TCL proc
WARNING: [BD 5-452] The block design design_1 has not been validated, therefore, a block design created using this Tcl proc may result in errors during validation.
WARNING: [Vivado 12-818] No files matched 'C:/Users/<username>/Downloads/Contains'
WARNING: [Vivado 12-818] No files matched 'Space/vivado_project/Test.srcs/sources_1/bd/design_1/design_1.bd'
WARNING: [Vivado 12-818] No files matched 'C:/Users/<username>/Downloads/Contains'
WARNING: [Vivado 12-818] No files matched 'Space/vivado_project/Test.srcs/sources_1/bd/design_1/design_1.bd'
ERROR: [Common 17-55] 'get_property' expects at least one object.
Resolution: If [get_<value>] was used to populate the object, check to make sure this command returns at least one valid object.

The BD is placed in path C:/Users/<username>/Downloads/Contains Space/vivado_project/Test.srcs/sources_1/bd/design_1/design_1.bd in this example. Without the space, everything runs smoothly.

Vivado gets stuck on git commit

I followed the instructions on the README file, and when the command git commit is executed on the Tcl console, VIvado gets stuck (see image below), even tough the Tcl script is generate and can afterwards recreate the project.

image

After clicking on cancel, nothing changes. I am using:

  • Vivado 2020.2
  • Arch Linux 5.13.5-arch1-1

Would you have any hints on how to avoid/fix or debug it?

Thanks.

How to use bd file.

I have an existed bd file, and i put it into src directory, which are expected to be included in the project.
However it is not in the project after running the generated tcl.

I also tried to add the bd file into the newly created project, and use wproj command to update the tcl.
It still did nothing.

How can i let the bd file be generated automatically through the tcl script?

More of a write up anywhere?

I've been looking for a good way to use git with Vivado and came across this today. I was excited to try it today, but am having issues. I setup the folders like you said, I create a new project via the GUI, and then when I run git init in the tcl console, it does it in the project subfolder that won't be tracked. I am sure I am missing something stupid, but I am having issues finding a write up that walks through things in more detail than the README. I am using Vivado 2020.1. Are you aware of any other write ups on your tools? TIA

Write project with blockdesign, use_bd_files and no_copy_sources option

After copying the related files into the src folder and modifying the resulting myproject.tcl, i could generate a project from this without errors. The modfications were:

  • change file paths to point to the files in src/
  • replacing
    set imported_files [import_files -fileset sources_1 $files] with
    add_files -norecurse -fileset $obj $files (= option "no_copy_sources").
  • added set file [file normalize $file] after file definitons, but i am not sure this was necessary.

When using git commit on a project with a blockdesign, the newly written project_name.tcl file does not contain the steps to directly regenerate the blockdesign part. Instead, the tcl file refers to a *.bd file (due to the option -use_bd_files).
However, the file *.bd is in the vivado_project directory, which is excluded from the git repository.
I removed the -use_bd_files option for the git commit command, but the script throws the error:
"This design contains BD sources. The option -no_copy_sources cannot be used without -use_bd_files. Please remove -no_copy_sources if you wish to write out BD's as procs in the project tcl, otherwise add the option -use_bd_files to directly include the *.bd files to the new project"

My questions:

  • Why does the script prevent the usage of the "no_copy_sources" option?
  • Could you elaborate a bit on the reason for relying on the *.bd file instead of recreating everything within the tcl script. I have seen many projects that were archived using the latter approach, can i somehow use this instead?
  • As the bd directory is comparably large, which other files (e.g. .bxml) have to be included under src/bd and how to split the bd directory into
    -- src/bd (version control)
    -- vivado_project/ ,srcs/sources_1/bd/ / (generated) ?

Error with IP INTEGRATOR

I have this error with I create a project with IP INTEGRATOR:

ERROR: [Vivado-projutils-19] This design contains BD sources. The option -no_copy_sources cannot be used without -use_bd_files. Please remove -no_copy_sources if you wish to write out BD's as procs in the project tcl, otherwise add the option -use_bd_files to directly include the *.bd files to the new project 
ERROR: [Common 17-39] 'send_msg_id' failed due to earlier errors.

Error in git commit

Hello,

I have this error when I run git commit:

ERROR: [Common 17-153] Param 'project.enableMergedProjTcl' does not exist

Relative path to IP repository dir

Hello!

First, thank you so much for these scripts! They really help me every day at work and home)

I have noticed a small, but annoying issue with IP repo path generation in TCL. As you know, this path is set in Vivado this way: Project Manager - Settings - Project Settings - IP - Repositoty.

My hierarchy:

│
├── My_IP_repo
├── projects
│      ├── project_0
│      ├── project_1
│      │      ├── src
│      │      ├── vivado_project
│      │      ├── project_1.tcl

So, when IP dir in hierarchy is "higher", that the project_1 origin dir, the path in the project_1.tcl remains empty after wproj run.

What I supposed see:

# Set IP repository paths
set obj [get_filesets sources_1]
if { $obj != {} } {
set_property "ip_repo_paths" "${origin_dir}/../../My_IP_repo/" $obj

# Rebuild user ip_repo's index before adding any source files
update_ip_catalog -rebuild
}

What I actually see:

# Set IP repository paths
set obj [get_filesets sources_1]
if { $obj != {} } {
set_property "ip_repo_paths" "" $obj

# Rebuild user ip_repo's index before adding any source files
update_ip_catalog -rebuild
}

Best regards,
VGN

COE files in block design use absolute paths

I'm using vivado-git with a block design project that includes several BRAM modules, each of which has an associated COE file to set its contents. When calling wproj to generate a project TCL script, the absolute paths of these COE files are kept, instead of being replaced with relative ones. Here's an example snippet, for reference:

  # Create instance: blk_mem_gen_1, and set properties
  set blk_mem_gen_1 [ create_bd_cell -type ip -vlnv xilinx.com:ip:blk_mem_gen:8.4 blk_mem_gen_1 ]
  set_property -dict [list \
    CONFIG.Coe_File {c:/<project path>/src/design/coe/ram_init_1_1.coe} \
    CONFIG.Enable_32bit_Address {false} \
    <...more properties, trimmed for brevity>
  ] $blk_mem_gen_1

Does Vivado even support using relative paths here? If so, can that be implemented as part of this project, or is it preferable to just type the relative path into Vivado in the first place?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.