Understanding Multi-Level IP - 2023.2 English

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

Document ID
Release Date
2023.2 English

Some IP are designed to use other IP as design sources. Depending on how the parent IP was created, there can be OOC synthesis runs for the children IP. The following are types of subsystem IP with a parent-child relationship:

  • IP that reference another IP as a library of files or IP that are beneath the top-level (sub-core reference): Sub-core references are described in Vivado Design Suite User Guide: Creating and Packaging Custom IP (UG1118), have one OOC synthesis run. In the IP Sources there are no sub-core IP shown, there is only one XCI.
  • IP that are packaged with XCI files for child IP (static IP): Static IP are those that were packaged with XCI files for other IP.
  • IP that dynamically create child IP and HDL (dynamic IP): Dynamic IP have one OOC synthesis run because all the IP are synthesized together. Similar to the static IP, you see multiple XCI in the IP sources.
  • IP that use the IP integrator technologies to dynamically create and interconnect IP (subsystem IP): Subsystem IP are the IP that the IP integrator technology creates. For example, when viewing the synthesis log for the 10G Ethernet Subsystem IP you see that black boxes are inferred for the child IP. This is similar to the default flow of IP in a user design during synthesis.

Looking at the IP Sources, you see the XCI for the child IP with output products in the Synthesis folder for the parent IP, as shown in the following figure.

Figure 1. Output Products for Subsystem IP Using XCI files

During OOC synthesis per IP, after the synthesis of the children IP is completed, they are linked together to create the combined DCP for the IP, as shown in the following figure. In this way subsystem IP look just like other IP.

Figure 2. Output Products for Subsystem IP

Tip: The primary benefit of subsystem IP, based upon block design, is that when generating the output products the children IP OOC runs are launched in-parallel.

The Generate Output Products dialog box lets you specify the number of parallel runs in the Run Settings field.

Additionally, if IP Caching is enabled, the hierarchical IP can have cache hits for the children IP. These can greatly speed-up generation.