Editing Subsystem IP - 2024.2 English - 2024.1 English

Vivado Design Suite User Guide: Designing with IP (UG896)

Document ID
UG896
Release Date
2024-11-13
Version
2024.2 English

Some complex subsystem IP do not allow changes to the IS_MANAGED property. This condition is applicable for IP supporting 7 series and UltraScale device families.

Whether or not a subsystem IP allows the IS_MANAGED property to be changed depends on particular customization options of the specific IP.

CAUTION:
Editing the RTL files of such IP has risks.  It is possible to make a change that invalidates the connectivity to the sub-cores. Making changes to these IP HDL sources should be carefully considered.
  1. Make sure the IP has been fully generated using OOC per IP for the synthesis option. You need to have an existing design run for the IP present.
  2. Set the IS_MANAGED property to false, which turns the IS_LOCKED property to true. For complex subsystem IP that do not allow changes to the IS_MANAGED property, set the IS_LOCKED property to true.
  3. This puts the IP under user management.
    CAUTION:
    Once you set IS_MANAGED property to false, the IP is user-managed. You cannot switch the property back to true as there is a reasonably high risk of the user's edited sources being overwritten.
  4. Find the IP RTL file that requires the edit and make changes as needed. You must either:
    • Change to another editor using Tools > Options > General in the text editor section.
    • Edit the files directly on disk using your text editor of choice.
  5. Recreate the IP output products, including the DCP, as follows:
    1. Reset the IP OOC run using the Tcl Console.
    2. Look at the Design Runs tab in the Out-of-Context Module Runs folder, and find the IP you want to re-synthesize; it as called <IP_Name>_synth_1.
    3. Execute the following in the Tcl Console to reset the run:
      reset_run <ip_name>_synth_1
    4. Re-launch the run using the following command in the Tcl Console:
      launch_run <ip_name>_synth_1

    This uses any of the HDL or constraints of the IP that you modified.

After the run completes, you can use the IP as before.

Note: Because subsystem IP do not allow the changing of the IS_MANAGED property there is not any visual indication to show that you have made changes. It is up to the user to keep track of modified IP.