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.
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.
diffbd(check spelling) utility.