01.07.2013 Views

Xilinx Constraints Guide

Xilinx Constraints Guide

Xilinx Constraints Guide

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!