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:
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).