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 />
UCF and NCF Syntax<br />
Following are examples of UCF and NCF syntax.<br />
• TIMESPEC PERIOD Method, Recommended<br />
• NET PERIOD Method, Not Recommended<br />
TIMESPEC PERIOD Method, Recommended<br />
This is the primary, recommended method.<br />
TIMESPEC “TSidentifier”=PERIOD “TNM_reference period” [units] [{HIGH | LOW}<br />
[high_or_low_time [hi_lo_units]]] INPUT_JITTER value [units];<br />
where<br />
• identifier is a reference identifier that has a unique name<br />
• TNM_reference is the identifier name that is attached to a clock net (or a net in the<br />
clock path) using the TNM or TNM_NET constraint<br />
When a TNM_NET constraint is traced into the CLKIN input of a DLL, DCM,<br />
PLL, or MMCM component, new PERIOD specifications may be created at the<br />
DLL/DCM/PLL/MMCM outputs. If new PERIOD specifications are created, new<br />
TNM_NET groups to use in those specifications are also created.<br />
Each new TNM_NET group is named the same as the corresponding<br />
DLL/DCM/PLL/MMCM output net (outputnetname). The new PERIOD specification<br />
becomes "TS_outputnetname=PERIOD outputnetname value units."<br />
The new TNM_NET groups are then traced forward from the DLL/DCM/PLL/MMCM<br />
output net to tag all synchronous elements controlled by that clock signal. The new<br />
groups and specifications are shown in the timing analysis reports.<br />
The following rules apply:<br />
• period is the required clock period.<br />
• units is an optional field to indicate the units for a clock period. The default is<br />
nanoseconds (ns), but the timing number can be followed by ps, ms, micro, or %<br />
to indicate the intended units.<br />
• HIGH or LOW indicates whether the first pulse is to be High or Low.<br />
• high_or_low_time is the optional High or Low time, depending on the preceding<br />
keyword. If an actual time is specified, it must be less than the period. If no<br />
high_or_low_time is specified, the default duty cycle is 50 percent.<br />
• hi_lo_units is an optional field to indicate the units for the duty cycle. The default is<br />
nanoseconds (ns), but the high_or_low_time number can be followed by ps, micro,<br />
ms, or % if the High or Low time is an actual time measurement.<br />
The following statement assigns a clock period of 40 ns to the net named CLOCK, with<br />
the first pulse being High and having a duration of 25 nanoseconds.<br />
NET “CLOCK” PERIOD=40 HIGH 25;<br />
NET PERIOD Method, Not Recommended<br />
Caution! This is a secondary method, and is not recommended.<br />
NET “net_name” PERIOD=period [units] [{HIGH|LOW} [high_or_low_time [hi_lo_units]]];<br />
<strong>Constraints</strong> <strong>Guide</strong><br />
212 www.xilinx.com UG625 (v. 13.2) July 6, 2011