Using the Generate Output Products Dialog Box - 2023.2 English

Vivado Design Suite User Guide: Designing IP Subsystems Using IP Integrator (UG994)

Document ID
UG994
Release Date
2023-10-18
Version
2023.2 English

The Vivado IDE generates output products for three different modes:

  • Global: Used for generating output products used in top down synthesis of the whole design. This is essentially disable out-of-context synthesis for the BD, and simply synthesizes it with the whole design.
  • Out of context per IP: Generates the output product for each individual IP used in the BD, and a DCP is created for every IP used in the BD. This option can significantly reduce synthesis runtimes because the IP cache can be used with this option to prevent Vivado synthesis from regenerating output products for specific IP if they do not change. For more information on using the IP Cache, see the Vivado Design Suite User Guide: Designing with IP (UG896).
  • Out of context per Block Design: This lets you synthesize the complete BD separately from, or out of the context of, the top-level design by generating a design checkpoint for the BD itself. This option is generally selected when third-party synthesis is used.

The following figure shows the Generate Output Products dialog box for a BD.

Figure 1. Generate Output Products Dialog Box

Tip: The default mode of Synthesis is out-of-context (OOC) per IP, and IP caching is also enabled by default. This combination reduces synthesis demands.

Global Synthesis

When this mode is chosen, a synthesized design checkpoint (DCP) is created for the entire top-level design, but not for the BD or for individual IP used in the BD. The entire BD is generated in the top-down synthesis mode. You can see this in the Design Runs window, where only one synthesis run is defined.

Figure 2. Design Runs Window for Global Synthesis

The Tcl commands used to generate output products with the Global Synthesis mode are as follows:

set_property synth_checkpoint_mode None [get_files <name_of_bd>.bd]
generate_target all [get_files <name_of_bd>.bd]

Out-of-Context per IP

This mode creates an out-of-context (OOC) synthesis run and DCP for every IP that is instantiated in the design. Notice that each IP in the BD is also marked with a filled square that indicates the IP is marked as OOC.

The Design Runs window lists synthesis runs for each IP used in the BD, as shown in the following figure.

Tip: The Design Runs window also groups the nested synthesis runs for IP used in the child block designs of Hierarchical IP as discussed in Hierarchical IP in IP Integrator.
Figure 3. Design Runs Window for Out-of-Context per IP Synthesis

Generation of the individual output products in OOC per IP mode takes longer than a single global synthesis run; however, runtime improvements are realized in subsequent runs because only the updated blocks or IP are re-synthesized instead of the whole top-level design. In addition, with the IP Cache enabled, Vivado synthesis can provide even greater runtime improvements because the only IP to re-synthesize have been re-customized or were impacted from parameter propagation.

The Tcl commands used to generate output products with the Out-of-Context per IP mode are as follows:

set_property synth_checkpoint_mode Hierarchical [get_files <name_of_bd>.bd]
generate_target all [get_files <name_of_bd>.bd]
Note: Concat, Slice and Constant IP blocks are always synthesized in the Global Synthesis mode. Accordingly, the Design Runs tab will not show a run for all these instances under the Out-of-Context Module runs tree.

You can enable or disable, and change the IP cache settings from the Settings > IP dialog box as shown in the following figure.

Figure 4. Setting IP Cache in the Project Setting Dialog Box