Out-of-Context Design Flow - 2021.2 English

Vivado Design Suite User Guide: Design Flows Overview (UG892)

Document ID
UG892
Release Date
2021-11-17
Version
2021.2 English

By default, the Vivado Design Suite uses an out-of-context (OOC) design flow to synthesize IP from the IP catalog, and block designs from the Vivado IP integrator. This OOC flow lets you synthesize, implement, and analyze design modules in a hierarchical design, IP cores, or block designs, independent of the top-level design. The OOC flow reduces design cycle time, and eliminates design iterations, letting you preserve and reuse synthesis results.

IP cores that are added to a design from the Vivado IP catalog default to use the out-of-context flow. For more information, see this link in the Vivado Design Suite User Guide: Designing with IP (UG896). Block designs created in the Vivado IP integrator also default to the OOC flow when generating output products. For more information, see this link in the Vivado Design Suite User Guide: Designing IP Subsystems Using IP Integrator (UG994).

The Vivado Design Suite also supports global synthesis and implementation of a design, in which all modules, block designs, and IP cores, are synthesized as part of the integrated top-level design. You can mark specific modules or IP for out-of-context synthesis, and other modules for inclusion in the global synthesis of the top-level design. In the case of a block design from Vivado IP integrator, the entire block design can be specified for OOC synthesis, or you can specify OOC synthesis for each individual IP, or per IP used in the block design. When run in global mode, Vivado synthesis has full visibility of design constraints. When run in OOC mode, estimated constraints are used during synthesis.

The Vivado synthesis tool also provides a cache to preserve OOC synthesis results for reuse in other designs that use the same IP customization. This can significantly speed synthesis of large complex designs.

A design checkpoint (DCP) is created for OOC IP or modules, which contains the synthesized netlist and design constraints. OOC modules are seen as black boxes in the top-level design until the synthesized design is open and all the elements are assembled. Before the top-level synthesized design is opened, resource utilization and analysis of the top-level design may not include netlist or resource information from the OOC modules, or black boxes, and so will not provide a complete view of the design.

Important: To obtain more accurate reports, you should open and analyze the top-level synthesized design, which will include all the integrated OOC modules.

The OOC flow is supported in Vivado synthesis, implementation, and analysis. For more information refer to this link in the Vivado Design Suite User Guide: Synthesis (UG901). OOC synthesis can also be used to define a hierarchical design methodology and a team design approach as defined in the Vivado Design Suite User Guide: Hierarchical Design (UG905).