Xilinx Constraints Guide
Xilinx Constraints Guide
Xilinx Constraints Guide
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapter 4: <strong>Xilinx</strong> <strong>Constraints</strong><br />
Schematic Syntax<br />
PERIOD = period {HIGH|LOW} [ high_or_low_time] INPUT_JITTER value;<br />
UCF Syntax<br />
NET “net_name” PERIOD = period {HIGH|LOW} [ high_or_low_time]<br />
INPUT_JITTER value;<br />
• period is the required clock period. The default units are nanoseconds, but the<br />
timing number can be followed by ps, ns, micro, or ms. The period can also be<br />
specified as a frequency value, using units of MHz, GHz, or kHZ.<br />
• Units may be entered with or without a leading space.<br />
• Units are case-insensitive.<br />
• The HIGH|LOW keyword indicates whether the first pulse in the period is<br />
high or low, and the optional high_or_low_time is the duty cycle of the first pulse.<br />
HIGH is the default logic level if the logic level is not specified.<br />
• If an actual time is specified, it must be less than the period.<br />
• If no high or low time is specified the default duty cycle is 50%.<br />
• The default unit for high_or_low_time is ns, but the number can be followed by<br />
% or by ps, ns, micro or ms to specify an actual time measurement.<br />
The PERIOD constraint is forward traced in exactly the same way a TNM would<br />
be and attaches itself to all of the synchronous elements that the forward tracing<br />
reaches. If a more complex form of tracing behavior is required (for example, where<br />
gated clocks are used in the design), you must place the PERIOD constraint on a<br />
particular net or use the preferred method described in the next section.<br />
Specifying Derived Clocks<br />
The preferred method of defining a clock period uses an identifier, allowing another<br />
clock period specification to reference it. <strong>Xilinx</strong>® recommends using the same HIGH/LOW<br />
keyword on the derived PERIOD constraints as the master PERIOD constraint. If the<br />
master PERIOD constraint has the HIGH keyword or is the default, <strong>Xilinx</strong> recommends<br />
using the same HIGH keyword on the derived PERIOD constraints. To define the<br />
relationship in the case of a derived clock, use the following syntax:<br />
UCF Syntax<br />
TIMESPEC "TSidentifier"=PERIOD "timegroup_name" "TSidentifier" [* or /] factor<br />
PHASE [+ |-] phase_value [units];<br />
where<br />
• identifier is a reference identifier that has a unique name<br />
• factor is a floating point number<br />
Note You can omit the [* or /] factor if the specification being defined has the<br />
same value as the one being referenced (that is, they differ only in phase); this is<br />
the same as using "* 1".<br />
• phase_value is a floating point number<br />
• units are ps, ms, micro, or ns (default)<br />
The following rules apply:<br />
• If an actual time is specified it must be less than the period.<br />
• If no high_or_low_time is specified, the default duty cycle is 50%.<br />
• The default units for high_or_low_time is ns, but the number can be followed by<br />
% or by ps, ns, micro, or ms to specify an actual time measurement.<br />
<strong>Constraints</strong> <strong>Guide</strong><br />
210 www.xilinx.com UG625 (v. 13.2) July 6, 2011