![](https://csdnimg.cn/release/download_crawler_static/12439126/bg11.jpg)
Creating and Packaging Custom IP 17
UG1118 (v2019.2) March 2, 2020 www.xilinx.com
Chapter 2: IP Packaging Basics
Managing Out-of-Context Constraints
By default, IP are synthesized out-of-context (OOC) of the top-level design. When you use
the out-of-context flow, an OOC flow-only XDC is required for sequential logic timing
during Vivado synthesis. This XDC file provides clock definitions for clocks from the
top-level, either from the user or from another IP.
When creating your custom IP, it is recommended that you include an OOC XDC file to
provide these clock definitions for synthesizing the IP standalone.
For more information on the OOC flow, see the following documents:
°
Vivado Design Suite User Guide: Designing with IP (UG896) [Ref 9]
°
Vivado Design Suite User Guide: Synthesis (UG901) [Ref 11]
Note:
For Xilinx delivered IP, the OOC XDC file has _ooc appended to the filename. This is not a
requirement, because the USED_IN file property determines if it is an OOC XDC file, not the
filename.
In a typical design, an IP receives some of its required constraints from the top-level design.
For example, if your custom IP does not directly interface with the device boundary, it
typically relies on the parent design to supply the input clock definitions. The OOC XDC file
generally only contains these input clock definitions. This is required so that clock
definitions exist when the IP is synthesized OOC of the top-level constraints. While this is
not a requirement, it is not recommended to add any additional constraint types. During
implementation of the entire design, the IP netlists link with the top-level netlist and the
OOC XDC is not required.
There are two instances in which an IP must have the input clock definition in the IP XDC file
instead of the OOC XDC file, which are, as follows:
°
IP contains a clock definition connected to an input buffer
°
IP contains a clock definition internal to the IP
In OOC mode, Vivado synthesis does not insert I/O buffers.
°
If your custom IP port has an instantiated input buffer, leave the input clock
definition in your IP XDC file.
°
If the input clock definition is defined on an internal element of the IP, such as a
Flip-Flop or a GT, leave the input clock definition in the IP XDC file.
°
If your use case does not fall into one of the two categories, move the clock
definition to the OOC XDC file.
After the OOC XDC file is created, set the USED_IN property to out_of_context. This
marks the XDC file to be processed in the OOC flow only.