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.
TIMESPEC PERIOD Method<br />
Chapter 4: <strong>Xilinx</strong> <strong>Constraints</strong><br />
The primary, recommended method for defining a clock period allows more complex<br />
derivative relationships to be defined as well as a simple clock period. The following<br />
constraint is defined using the TIMESPEC keyword in conjunction with a TNM<br />
constraint attached to the relevant clock net.<br />
UCF Syntax<br />
TIMESPEC “TSidentifier”=PERIOD “TNM_reference” period {HIGH | LOW}<br />
[high_or_low_time] INPUT_JITTER value;<br />
where<br />
• identifier is a reference identifier that has a unique name<br />
• TNM_reference identifies the group of elements to which the period constraint<br />
applies. This is typically the name of a TNM_NET that was attached to a clock<br />
net, but it can be any TNM group or user group (TIMEGRP) that contains only<br />
synchronous elements.<br />
The following rules apply:<br />
• The variable name period is the required clock period.<br />
• The default units for period are nanoseconds, but the number can be followed by<br />
ps, ns, micro, or ms. The period can also be specified as a frequency value, using<br />
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 polarity of the first pulse.<br />
This defines the initial clock edge and is used in the OFFSET constraint. HIGH<br />
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 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 />
• INPUT_JITTER is the random, peak-to-peak jitter on an input clock. The default<br />
units are picoseconds.<br />
Examples<br />
Clock net sys_clk has the constraint tnm=master_clk attached to it and the following<br />
constraint is attached to TIMESPEC.<br />
UCF Syntax<br />
TIMESPEC TS_master = PERIOD “master_clk” 50 HIGH 30 INPUT_JITTER 50;<br />
This period constraint applies to the net master_clk, and defines a clock period of 50<br />
nanoseconds, with an initial 30 nanosecond high time, and INPUT_JITTER at 50 ps.<br />
TIMESPEC TS_clkinA = PERIOD “clkinA” 21 ns LOW 50% INPUT_JITTER 500<br />
ps; TIMESPEC TS_clkinB = PERIOD “clkinB” 21 ns HIGH 50% INPUT_JITTER<br />
500 ps;<br />
NET PERIOD Method<br />
Caution! This is a secondary method, and is not recommended.<br />
Another method of defining a clock period is to attach the following constraint directly<br />
to a net in the path that drives the register clock pins.<br />
<strong>Constraints</strong> <strong>Guide</strong><br />
UG625 (v. 13.2) July 6, 2011 www.xilinx.com 209