Editing IP Sources - 2024.1 English

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

Document ID
UG896
Release Date
2024-05-30
Version
2024.1 English

To prepare an IP for editing:

  1. If you have not customized the IP, do so, and generate all output products, including the DCP. If you do not want to use the default OOC flow for the IP, disable the DCP creation.

    AMD highly recommends that you use the default flow.

  2. After you generate the output products (including the DCP, if applicable) are generated, set the IS_MANAGED property to false on the XCI file for the IP using the following Tcl command:
    set_property IS_MANAGED false [get_files <IP_Name>.xci]

    If it is a complex subsystem IP, the following error message displays:

    ERROR: [IP_Flow 19-3666] The is_managed property cannot be directly modified for 
    hierarchical IP.
    CAUTION:
    Once you set IS_MANAGED property to false, the IP is user-managed. You cannot switch the property back to true as there’s a reasonably high risk of the user’s edited sources being overwritten.
  3. Upon receipt of this error, read the Editing Subsystem IP, and follow those steps.

    Setting the IS_MANAGED property to false causes the property IS_LOCKED to become TRUE. The IP icon in the IP Sources window changes to , showing the IP is not managed by Vivado and is instead user-managed.

    In the output window of the Report IP Status command you see that the IP is under user management, and you can modify non-encrypted HDL files and XDC files.

  4. Complete the required edits.
  5. Re-create the IP output products, including the DCP, as follows:
    1. Reset the IP OOC run. This has to be performed using the Tcl Console. Look at the Design Runs tab in the Out-of-Context Module Runs folder, and find the IP where you set the IS_MANAGED property to FALSE, with the name <IP_Name>_synth_1. Execute the following command in the Tcl Console to reset the run:
      reset_run <ip_name>_synth_1
      
    2. Re-launch the run using the following command:
      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.

      By referencing the XCI file (which is recommended) you have access to the IP source files for simulation, the DCP for synthesis of the top-level file and implementation.