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.
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.
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.
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]
You can enable or disable, and change the IP cache settings from the Settings > IP dialog box as shown in the following figure.
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.
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]