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.

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

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

Saved successfully!

Ooh no, something went wrong!