External SetUp and Hold Times
Last Edit July 22, 2001
Introduction
When the input to the data (D) or the clock (C) or both pins on a flip/flop
or a latch are supplied from an external signal, then the external setup
and hold times must be computed. The computations must be for the worstcase
and account for processing skew. The worstcase may be the worstcase
maximum conditions or the worstcase minimum conditions.
Hold time violations are a concern wherever two storage elements interface
with each other and are clocked by different drivers. An example structure
is parallelclocked register flip/flops driven by multiple clock macros.
Any multiple clock organization or clock distribution tree is subject
to this design hazard.
The error occurs when the Q output of one flip/flop (or latch) directly
feeds the D input of another. If the clock to the second flip/flop is
delayed due to tracking or skew, the D input may change during the setup/hold
window. This can be avoided by using the guidelines and design checks
described in this chapter. (See the Case Study: Preventing Hold Violations
Due to Clock Skew.)
To meet design submission requirements, both the maximum worstcase and
the minimum worstcase equations need to be computed to determine the
worstcase window for external setup and hold times for the specified
operating conditions. Both rising edge and falling edge input path propagation
must be evaluated. For deeplynested paths, consult the array vendor for
other effects that must be considered.
Figure 61 illustrates the delay paths. The data delay path is
T_{D}; the clock delay path is T_{C}. Depending on the
methods used to specify macro timing, the data and clock paths may need
to be divided into interface and internal macro components.
Results computed or derived from simulations using FrontAnnotation data
cannot be considered as the circuit specification. Those derived from
BackAnnotation are considered to be the specification.
Figure 61 External SetUp And Hold  Clock And Data Paths
There may be no internal macros in the data or the clock path or both,
leaving the interface macro and the extrinsic loading as the only components
in the paths. There may be multiple internal macros in a clock buffer
tree while the data path is unloaded, or the data path may be heavily
loaded while the clock path remains relatively simple.
The relative loading between these two paths will determine whether the
setup or hold time is negative or positive and how large the setup and
hold window will be. The intrinsic setup and hold time of the latch or
flip/flop is another factor in the equation.
Figure 62 External SetUp And Hold Times  Interpretation
Figure 62 diagrams the definitions of positive setup and hold
times. Data must be held stable relative to the associated clock during
these times. The time span indicated by the setup and hold times is referred
to as a timing "window".
The term window is used since the external setup and hold computations
will produce a wider timing range than will be exhibited by any single
die. For one set of operating conditions, the setup time is computed
assuming that the data path is worstcase maximum and the clock is worstcase
minimum. The hold time reverses this and is computed assuming that the
clock path is worstcase maximum and the data path is worstcase minimum.
The resulting range is designed to encompass all extremes of voltage,
temperature and process. (See Figure 63.)
Figure 63 WorstCase Range
Figure 63 diagrams the worstcase window produced from the maximum
external setup time and the maximum external hold time. The conditions
under which these two values are computed are inconsistent and contradictory
with each other, thereby ensuring that the setup and hold timing "window"
for the same two signals for any single array is contained within the
computed range.
.
