Some constraints that are necessary for the OOC implementation can cause undesirable results if imported into the top-level design. To prevent this behavior these constraints need to be specified in separated XDC file(s), and designated for OOC use only. There are two ways to specify that the XDC file should be used for the OOC flow only. Specifying that a particular XDC file’s constraints should only be used in the OOC flow adds a marker to them. This makes the tools ignore the constraints when reading them into a non-OOC design.
Method 1: Using read_xdc
When reading in an XDC file with the read_xdc
command, the -mode out_of_context
switch can be used.
read_xdc -mode out_of_context <file>.xdc
read_xdc
command can be issued prior to or after a
design has been loaded with link_design
.Method 2: USED_IN property
If files are being added using the add_files
command, then a property can be
set on a file to specify that it is to be used in OOC only. It is required to
specify all flows in which the XDC file is to be used in (that is, synthesis and/or
implementation).
add_files <file>.xdc
set_property USED_IN {synthesis implementation out_of_context} [get_files <file>]
add_files
command must be issued prior to a design
being loaded with link_design
. Using add_files
on a design that is already loaded has no
effect.