Using the Generate Output Products Dialog Box - 2022.1 English

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

Document ID
UG994
Release Date
2022-04-20
Version
2022.1 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 this link in 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

The Cache scope field is set to Local by default. This can be changed to Disabled or Remote as well, but it is strongly recommended that caching be turned on with either Local or Remote option for Out of context per IP synthesis mode.

With IP cache set to Local, the Vivado tools create a <project_name>.cache directory folder that holds the configuration data and synthesis results for the IP in the BD. With the Cache scope set to Remote, the IP cache folder(s) are created in the specified Cache Location.

Cache data can be cleared by clicking the Clear Cache button.

Out-of-Context per Block Design

Typically used with third-party synthesis tools, this option synthesizes the BD as an OOC module, and creates a design checkpoint for the entire BD. As can be seen from the figure below, the Sources window shows that a Design Checkpoint file (DCP) was created for the BD.

Notice that the BD is also marked with a filled square that indicates the BD is marked as OOC. The Design Runs window shows the OOC synthesis run for the BD.

Figure 5. Design Runs Window for Out-of-Context per Block Design Synthesis

If the BD is added as a synthesized netlist to other projects through the Add Sources wizard, the DCP file is added to the project. See this link in the Vivado Design Suite User Guide: System-Level Design Entry (UG895) for more information on adding BDs as design sources.

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

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