- In the Hierarchy
view of the Sources
window, open the target XDC file (uart_top.xdc) under the Constraints folder, as shown in the following
There are two items to take note of in the XDC file, as seen above.
Note: The line numbers referenced in the preceding figure might differ from the line numbers in your XDC file because the constraints were edited for easier viewing in this tutorial.
create_clockconstraints (lines 1 and 2)
set_max_delayconstraint relying on the clock object period value (line 14).
- Examine all
create_clockconstraints prior to packaging the new IP definition.
If the created clock is internal to the IP (GT), or if the IP contains an input buffer (IBUF), the
create_clockconstraint should stay in the IP XDC file because it is necessary to define local clocks.
In the next sub-step, you move clocks that are not internal, or local, to the IP from the IP XDC file to an OOC XDC file, because the parent design provides the clock.
For this example, you move the
create_clockconstraints on line 1 and 2 from the design XDC file to an OOC XDC file. When you instantiate the IP you are packaging from the IP catalog into a design, the IP inherits the clock definitions from the parent design.
set_max_delayconstraint is also noteworthy in that it has a dependency on the PERIOD property of defined clocks (
get_clocks –of_objects). This dependency is affected by the order of processing of the constraints of the IP and top-level design.
By default, when IP customizations are instantiated into a design, the AMD Vivado™ IDE processes the XDC files of an IP before the XDC files of the top-level design. This is known as EARLY processing, and is defined by the PROCESSING_ORDER property on the XDC file.
By default, the XDC files of the top-level design are marked for NORMAL processing. This means that the processing of XDC files for IP constraints happens before the top-level design constraints created by the user.
In the case of the
set_max_delayconstraint, the dependency on the clock
PERIODcauses errors in processing the IP constraints early and defining the clock later.To resolve this issue, mark the XDC files of the UART IP for LATE processing.Tip: AMD delivered IP with _clock appended to the XDC filename are all marked for LATE processing.