Académique Documents
Professionnel Documents
Culture Documents
For a +ve edge triggered design +ve (or rising) edge is called ‘leading
edge’ whereas –ve (or falling) edge is called ‘trailing edge’.
For a -ve edge triggered design –ve (or falling) edge is called ‘leading
edge’ whereas +ve (or rising) edge is called ‘trailing edge’.
basic clock
Minimum pulse width of the clock can be checked in PrimeTime by
using commands given below:
These checks are generally carried out for post layout timing analysis.
Once these commands are set, PrimeTime checks for high and low
pulse widths and reports any violations.
The edge of the clock for which data is detected is known as capture
edge.
This is the edge of the clock wherein data is launched in previous flip
flop and will be captured at this flip flop.
launch clock and capture clock
Skew
Two types of skews are defined: Local skew and Global skew.
Local skew
Local skew is the difference in the arrival of clock signal at the clock
pin of related flops.
Global skew
Global skew is the difference in the arrival of clock signal at the clock
pin of non related flops. This also defined as the difference between
shortest clock path delay and longest clock path delay reaching two
sequential elements.
Positive Skew
If capture clock comes late than launch clock then it is called +ve
skew.
When data and clock are routed in same direction then it is Positive
skew.
Negative Skew
If capture clock comes early than launch clock it is called –ve skew.
Clock and data travel in opposite direction. When data and clock are
routed in opposite then it is negative skew. -ve skew can lead to
setup violation. -ve skew improves hold time. (Effects of skew on setup
and hold will be discussed in detail in forthcoming articles)
Uncertainty
Clock uncertainty is the time difference between the arrivals of clock
signals at registers in one clock domain or between domains.
Pre CTS uncertainty is clock skew, clock Jitter and margin. After CTS
skew is calculated from the actual propagated value of the clock. We
can have some margin of skew + Jitter.
Clock latency
Latency is the delay of the clock source and clock network delay.
Clock source delay is the time taken to propagate from ideal waveform
origin point to clock definition point. Clock network latency is the delay
from clock definition point to register clock pin.
Delay from clock source to beginning of clock tree (i.e. clock definition
point).
The time a clock signal takes to propagate from its ideal waveform
origin point to the clock definition point in the design.
The time clock signal (rise or fall) takes to propagate from the clock
definition point to a register clock pin.
The latency definitions for designs with PLL are slightly different.
Figure below shows latency specifications of such kind of designs.
Latency from the PLL output to the clock input of generated clock
circuitry becomes source latency. From this point onwards till
generated clock divides to flops is now known as network latency. Here
we can observe that part of the network latency is clock to q delay of
the flip flop (of divide by 2 circuit in the given example) is known value.
Jitter
Jitter is the variation of the clock period from edge to edge. It can vary
+/- jitter value.
From cycle to cycle the period and duty cycle can change slightly due
to the clock generation circuitry. Jitter can also be generated from PLL
known as PLL jitter. Possible jitter values should be considered for
proper PLL design. Jitter can be modeled by adding uncertainty regions
around the rising and falling edges of the clock waveform.
• Signal transmitters
• Connectors
• Receivers
Multiple Clocks
If more than one clock is used in a design, then they can be defined to
have different waveforms and frequencies. These clocks are known as
multiple clocks. The logics triggered by each individual clock are then
known as “clock domain”.
Base period is the least common multiple (LCM) of all clock periods
Asynchronous Clocks
Gated clocks
Clock signals that are passed through some gate other than buffer and
inverters are called gated clocks. These clock signals will be under the
control of gated logic. Clock gating is used to turn off clock to some
sections of design to save power. Click here to read more about clock
gating.
Generated clocks
Generated clocks are the clocks that are generated from other clocks
by a circuit within the design such as divider/multiplier circuit.
generated clock
‘Clock’ is the master clock and new clock is generated from F1/Q
output. Master clock is defined with the constraint ‘create_clok’. Unless
and until new generated clock is defined as ‘generated clock’ timing
analysis tools won’t consider it as generated clock. Hence to
accomplish this requirement use “create_generated_clock” command.
‘CLK’ pin of F1 is now treated as clock definition point for the new
generated clock. Hence clock path delay till F1/CLK contributes source
latency whereas delay from F1/CLK contributes network latency.
Virtual Clocks
Virtual clock is the clock which is logically not connected to any port of
the design and physically doesn’t exist. A virtual clock is used when a
block does not contain a port for the clock that an I/O signal is coming
from or going to. Virtual clocks are used during optimization; they do
not really exist in the circuit.
Virtual clocks are clocks that exist in memory but are not part of a
design. Virtual clocks are used as a reference for specifying input and
output delays relative to a clock. This means there is no actual clock
source in the design. Assume the block to be synthesized is “Block_A”.
The clock signal, “VCLK”, would be a virtual clock. The input delay and
output delay would be specified relative to the virtual clock.
Transition Delay
Similarly “fall time” can be defined as the time taken by a signal to fall
from 90 %( 80%) to the 10 %( 20%) of its maximum value.
“This command sets a maximum transition time for the nets attached
to the identified ports or to all the nets in a design by setting the
max_transition attribute on the named objects.
For example, to set a maximum transition time of 3.2 on all nets in the
design adder, enter the following command:
This command can also be used to apply capacitance limit on any net.
Eg:
For net propagation delay is the delay between the time a signal is first
applied to the net and the time it reaches other devices connected to
that net.
Propagation delay is taken as the average of rise time and fall time i.e.
Tpd= (Tphl+Tplh)/2.
Propagation delay depends on the input transition time (slew rate) and
the output load. Hence two dimensional look up tables are used to
calculate these delays. How to calculate propagation delay of net and
gate? Please refer below articles to find the detailed explanation.
Gate Delay
Transistors within a gate take a finite time to switch. This means that a
change on the input of a gate takes a finite time to cause a change on
the output. [Magma]
or
where Cload=Cnet+Cpin
Cnet-->Net capacitance
timing() {
related_pin : "CKN";
timing_type : falling_edge;
timing_sense : non_unate;
cell_rise(delay_template_7x7) {
index_1 ("0.012, 0.032, 0.074, 0.154, 0.318, 0.644, 1.3");
values ( \
rise_transition(delay_template_7x7) {
values ( \
Situation 1:
Input transition and output load values match with table index
values
If both input transition and output load values match with table index
values then corresponding delay value is directly picked up from the
delay “values” table as highlighted by yellow shaded data.
Situation 2:
• When the actual load capacitance values does not fall directly on
or at one of the load-axis index points, the delay is determined
by interpolation from the closest points. Note that to carry out
interpolation input transition point should match with the any
one of the table index values.
• Determine the equation for the line segment connecting the two
nearest points in the table.
y = mx+c
where
y-->delay (ns)
m-->slope
Load point of interest means load capacitance value for which delay
has to be calculated.
Situation 3:
Situation 4:
Output load values doesn't match with table index values and
is outside the table boundary
• When the load point is outside of the boundary of the index, the
delay is extrapolated to the closest known points.
• Lookup value too far out of range of the given table value could
lead to inaccuracy. [Cadence]
Intrinsic delay
• Intrinsic delay is the delay internal to the gate. This is from input
pin of the cell to output pin of the cell.
Net delay is the difference between the time a signal is first applied to
the net and the time it reaches other devices connected to that net.
This is output pin of the cell to the input pin of the next cell.
• Net Length
• Net cross-sectional area
• Resistively of material used for metal layers (Aluminum
vs. copper)
• Number of vias traversed by the net
• Proximity to other nets (crosstalk)
• When the wires are short, the cross section of the wire is large or
the interconnect material used has a low resistivity, a capacitive
only model can be used.
Capacitance
C = (ε / t).WL
Where
ε --> permittivity of dielectric material (SiO2)
Resistance
L --> length
W --> width
At very high frequencies “skin effect” comes into play such that the
resistance becomes frequency dependent. High frequency currents
tend to flow primarily on the surface of a conductor, with the current
density falling off exponentially with depth into the conductor.
Skin effect is only an issue for wider wires. Since clocks tends to carry
the highest frequency signals on a chip and also fairly wide to limit
resistance, the skin effect likely to have its first impact on these lines.
Inductance
Lumped RC Model
Hence,
In general:
τdi=R1C1+(R1+R2)C2+……..+(R1+R2+R3+…..+Ri)Ci
If
R1=R2=R3=….=R
C1=C2=C3=…..C then
τdi=RC+2RC+……..+nRC
Thus Elmore delay is equivalent to the first order time constant of the
network.
Assuming an interconnect wire of length L is partitioned into N
identical segments. Each segment has length L/N.
Then,
τd=L/N.R.L/N.C+ 2 (L/n.r+L/N.C)+……
=(L/N)2(RC+2RC+…….+NRC)
=(L/N)2. N(N+1)
or τd=RC.L2/2
Advantages
• It is simple
• It is always situated between minimum and maximum bounds
Disadvantages
Distributed RC model
Extraction data from already routed designs are used to build a lookup
table known as the wire load model (WLM). WLM is based on the
statistical estimates of R and C based on “Net Fan-out”.
For fanouts greater than those specified in a wire load table, a “slope
factor” is specified for linear extrapolation.
wire_load (“5KGATES”) {
Eg:
Fanout = 7
Wire load modeling allows us to estimate the effect of wire length and
fanout on the resistance, capacitance, and area of nets. Synthesizer
uses these physical values to calculate wire delays and circuit speeds.
Semiconductor vendors develop wire load models, based on statistical
information specific to the vendors’ process. The models include
coefficients for area, capacitance, and resistance per unit length, and a
fanout-to-length table for estimating net lengths (the number of
fanouts determines a nominal length).
1. User specification
Once the final routing step is over in the physical design stage, wire
load models are generated based on the actual routing in the design
and synthesis is redone using those wire load models.
Top:
Applying same wire load models to all nets as if the design has no
hierarchy and uses the wire load model specified for the top level of
the design hierarchy for all nets in a design and its sub designs.
Enclosed:
The wire load model of the smallest design that fully encloses the net
is applied. If the design enclosing the net has no wire load model, then
traverses the design hierarchy upward until we finds a wire load
model. Enclosed mode is more accurate than top mode when cells in
the same design are placed in a contiguous region during layout.
Use enclosed mode if the design has similar logical and physical
hierarchies.
Segmented:
Wire load model for each segment of a net is determined by the design
encompassing the segment. Nets crossing hierarchical boundaries are
divided into segments. For each net segment, the wire load model of
the design containing the segment is used. If the design contains a
segment that has no wire load model, then traverse the design
hierarchy upward until it finds a wire load model.
Contamination Delay:
Best case delay from valid input to valid output. i.e. minimum
propagation delay.