As mentioned earlier, the block memory
generator IP in the design has a newer version available in the IP catalog. The IP is
locked as a result, because it cannot be
re-customized from the IP catalog unless you upgrade it to the latest version. When
adding the XCI to a project, this warning
opens:
WARNING: [IP_Flow 19-2162] IP 'blk_mem_gen_v7_3_0' is locked:
* IP definition 'Block Memory Generator (7.3)' for IP 'blk_mem_gen_v7_3_0' has a newer major version in the IP Catalog.
Please select 'Report IP Status' from the 'Tools/Report' menu or run Tcl command 'report_ip_status' for more information.
In an interactive session, this message can be helpful, but in a batch mode script this would not be seen until after synthesis or implementation fails. To anticipate and prevent this, you can use your script to:
- Determine if an IP is locked.
- Check for a newer version of the IP in the catalog.
- Upgrade an IP if it is locked, and a new version is available.
The following sequence shows you how to do this.
- Check to see if the IP is locked, and store the state in a Tcl
variable. Add the following line to your Tcl
script:
set locked [get_property IS_LOCKED [get_ips blk_mem_gen_v7_3_0]]
- Next, check to see whether there is an upgrade available in the
IP catalog, and store that information in a Tcl variable as well. Add the
following line to your Tcl
script:
set upgrade [get_property UPGRADE_VERSIONS [get_ips blk_mem_gen_v7_3_0]]
This returns the VLNV (Vendor/Library/Name/Version) identifier of the upgrade, if there is one available. If there is no upgrade, the variable will contain an empty string (””). In the case of the blk_mem_gen_v7_3_0 IP, there is an upgrade available.
- Check the stored Tcl variables,
$locked
and$upgrade
, to see if the IP is locked, and if there is an upgrade version for the IP. If so, you can upgrade the IP. - Add the following lines to your Tcl
script:
if {$upgrade != "" && $locked} { upgrade_ip [get_ips blk_mem_gen_v7_3_0]}
This results in an upgrade to the block memory generator IP from the current version in the design to the latest version in the IP catalog.