The Core Container feature helps simplify working with revision control systems by providing a single file representation of an IP.
set_property coreContainer.alwaysCreateXCI 1 [current_project]
This optional feature lets you elect to have IP and all generated output files contained in one compressed binary file with an extension of XCIX. This extension is similar to the XCI file used for the IP customization file and works in a similar way.
[get_ips {<ip_name>}]
When adding or reading an IP, you specify the XCI file, and in the case where you have enabled the core container, you add or read the XCIX file.
When enabling the core container feature for an existing IP, the XCIX file replaces the IP directory and the output products. When disabling the core container feature for an IP, the XCIX file is converted to the IP directory with all the output products including the XCI file.
Enabling the core container for an IP changes the on-disk representation of that IP instance; the internal representation for the IP remains the same within Vivado.
Within the Vivado Sources view the two IP appear the same, both listing the output products, all of which can be opened for viewing from within the Vivado IDE.
On disk, there is a folder for clk_core
and the single XCIX file for the char_fifo
IP. When an
IP uses the Core Container, the Vivado tools read the IP source files needed during
synthesis and implementation from this single XCIX file. The files are not extracted to
a temporary directory, they are read directly from the binary.
Using just the XCIX file allows you the same abilities as with the XCI file, such as:
- Reporting status and details of the IP (Report IP Status)
- Upgrading the IP when a new version is available; as well as the ability to use an older version of the IP if desired
- Ability to re-customize the IP (if the latest version)
- Ability to reset and regenerate the IP (if the latest version)
Visually, the IP looks the same in a project whether using the core container feature or not. The IP Sources tab shows all the files that have been generated for the IP and you retain the ability to open then for viewing as before. Also, Tcl commands related to IP remain the same whether or not you use the core container.
As with all IP, certain files are stored in the ip_user_files
directory for ease of use. See IP User Files (ip_user_files) for Core Container for more details.