The recommended method to revision controlling IP includes:
- Preserving the IP repository
- Checking in the XCI file
The IP repository is where the parametrizable IP source code resides and the XCI file contains the parameters to apply to the source code. The combination of these two sources enables Vivado to regenerate the instance of the IP for your specific design. To recreate the project, the generated IP does not need to be preserved because it can be rebuilt. If you are using custom packaged IP, it is further recommended that you manage the project from which the IP was packaged.
The lastest version of all AMD IP are installed with Vivado. When upgrading a project to the latest version of Vivado, the AMD IP repository will only contain the latest version of AMD IP. Report IP Status will prompt you to upgrade your design to incorporate the new IP. Depending on the IP changes, design modifications might be necessary to preserve the functionality of your design. It is recommended that you upgrade AMD IP when upgrading to the latest version of Vivado.
If you do not want to upgrade the IP you must revision control the IP XCI file along with the IP output products that reside in the project.gen directory. The IP cannot be re-customized because the original IP repo no longer exists. The generated output product must be preserved to recreate the design. The output products essentially become project sources. The IP will be locked and cannot be re-customized.
Locked IP can also be preserved using an XCIX file (also known as an IP core container). The XCIX file contains the XCI file and the generated output products of the IP. This enables a single file option for revision controlling a generated IP.
The final method for preserving IP uses Tcl. The command
generates a Tcl script that will recreate the IP based on the current configuration.
Replaying the Tcl script will recreate the XCI file. The generated Tcl script does not
preserve the IP repository and therefor it is mandatory that the repository be present
when replaying the generated Tcl.