Urgency: Standard
General Description:
How do I apply a PERIOD timing specifications in 2.1i when using a
Virtex CLKDLL?
The rules regarding property tracing through the DLL have changed in
2.1i. When a TNM_NET property is traced into the CLKIN pin of a Virtex
CLKDLL component, the TNM group and its usage will be examined. The TNM
will be pushed through the CLKDLL only if the following conditions are
met:
|
If any of the above conditions are not met, the TNM will not be pushed through the CLKDLL, and the following error message will be issued:
ERROR:NgdHelpers:702 - The TNM "PAD_CLK" drives the CLKIN pin of CLKDLL "$I1".
This TNM cannot be traced through the CLKDLL because it is not used
in exactly one PERIOD specification. This TNM is used in the following
user groups and/or specifications:
TS_PAD_CLK=PERIOD PAD_CLK 20000.000000 pS HIGH 50.000000%
TS_01=FROM PAD_CLK TO PADS 20000.000000 pS
If the above conditions are met each clock output pin on the CLKDLL
will be examined to see if it is connected to a net with at least one other
connection (i.e. it is not a dangling net). If the output pin has a net,
a new TNM group will be created on that net, and a new PERIOD specification
will be created for that group. The new specification will be copied from
the original PERIOD specification, and then modified as follows:
|
|
|
If the DUTY_CYCLE_CORRECTION=TRUE property is found on or above the CLKDLL, the duty cycle will be adjusted to 50%. If DUTY_CYCLE_CORRECTION=FALSE is found, the duty cycle will be unchanged from the original PERIOD specification. If no DUTY_CYCLE_CORRECTION property is found, the default value of TRUE will be assumed. |
|
|
|
|
|
|
|
The PERIOD value will be doubled (if originally expressed as a frequency) or divided in half (if originally expressed as a delay). The duty cycle will also be adjusted to 50%. |
|
The PERIOD value will be divided (if a frequency) or multiplied (if a delay) by the value in the CLKDV_DIVIDE property. If no such property is found on or above the CLKDLL, the default value of 2.0 will be used. The duty cycle will also be adjusted to 50%. |
If the original TNM_NET property is pushed only into the CLKDLL CLKIN pin (i.e. it does not trace to any appropriate elements without going through the CLKDLL), the original TNM group and the original PERIOD specification will be eliminated from the design.
If a newly-created TNM group is pushed forward from a CLKDLL output and encounters the CLKIN input of a second CLKDLL (such as in the 4X configuration), the above process will be repeated to further adjust the PERIOD specification(s) per the behavior of the second CLKDLL. If the group created for the first CLKDLL traces only into the second CLKDLL, that group and its PERIOD specification become unnecessary and will be eliminated.
For further information regarding property tracing through the CLKDLL
refer to the Developmental System Reference Guide Chapter 6.