Revision Controlling Block Diagrams - 2022.1 English

Vivado Design Suite User Guide: Design Flows Overview (UG892)

Document ID
Release Date
2022.1 English

Block diagrams (BD) can contain instances of IPs from Xilinx repositories, IPs from custom IP repositories, references to RTL, or block design containers (references to other BDs). When a BD is validated, the customization of a single IP can affect how connected IPs are customized. The process of applying parameters from one IP to connected IP is coined parameter propagation and occurs when the BD is validated. To revision control a BD, the entire BD directory in the project.srcs should be managed by the revision control system. The directory contains the BD file, the XCI files for the IP post-parameter propagation and some meta data files.

Note: Projects created prior to 2020.2, the BD output products are written to the project.srcs directory where the BD file is residing. In order to help facilitate a clear delineation between project sources and output products, for any new projects created using 2020.2, a project.gen directory is automatically be created in parallel to the project.srcs directory. All BD output products are written to the project.gen directory. In turn, this significantly reduces the size of the BD directory from previous Vivado releases.

In the case of block design containers, there is a BD directory in the project.srcs directory for each BD source in the design. If there are several instances of a block design container on a parent BD, each instance of the block design container is generated in the project.gen directory. Each block design container instance, even though derived from the same source BD, can be unique due to parameter propagation. Therefore, the instances of the each block design containers reside in the project.gen directory, but the source from which they are all derived reside in the project.srcs directory. Any BD directories that reside in the project.srcs directory should be fully revision controlled.

Note: Projects created in 2020.2, IP and BD output products are no longer written to the project.srcs directory. The project.srcs directory should contain the bare minimum number of sources necessary to recreate the project with the exception of files that are referenced from directories external to the project. The cleanup of the project.srcs directory should tremendously improve the delimitation between files that are necessary to be revision controlled and tool generated files.
Note: To view the differences between two versions of a block diagram, see Vivado Design Suite User Guide: Designing IP Subsystems using IP Integrator (UG994) to learn more about the diffbd (check spelling) utility.