Professional Documents
Culture Documents
Static Timing Analysis
Static Timing Analysis
Introduction
Effective methodology for verifying the timing characteristics of a design
without the use of test vectors
Conventional verification techniques are inadequate for complex
designs
Simulation time using conventional simulators
Thousands of test vectors are required to test all timing paths
using logic simulation
Increasing design complexity & smaller process technologies
Increases the number of iterations for STA
Timing Simulation
(adding vectors)
0%
OVERVIEW
Previous Verification Flow
OVERVIEW
Requires
SDF
(extracted parasitics)
8
12
13
14
Cell Delay
In ASICs, the delay of a cell is affected by:
The input transition time (or slew rate)
The total load seen by the output transistors
Net capacitance and downstream pin capacitances
These will affect how quickly the input and output transistors
can switch
Inherent transistor delays and internal net delays
16
17
Flip-Flops
18
Basic terminologies
Pulse Width
Setup & Hold times
Signal slew
Clock latency
Clock Skew
Input arrival time
Output required time
Slack and Critical path
19
Pulse Width
Pulse width
It is the time between the active and inactive states of the same
signal
20
Signal Slew
Signal (Clock/Data) slew
Amount of time it takes for a signal transition to occur
Accounts for uncertainty in Rise and fall times of the signal
Slew rate is measured in volts/sec
22
Clock Latency
Clock Latency
Difference between the reference (source) clock slew to the clock
tree endpoint signal slew values
Rise latency and fall latency are specified
INV
INV
INV
Rise=7
Fall=4
Rise=7
Fall=4
CLK
INV
INV
Rise=7
Fall=4
BUF
Rise=7
Fall=4
CLKA
INV
Rise=7
Fall=4
Rise=7
Fall=4
CLKB
CLKC
BUF
Rise=7
Fall=4
23
Clock Latency
24
Clock Skew
Clock Skew is a measure of the difference in latency between any two
leaf pins in a clock tree.
between CLKA and CLKB
rise = 22-8 = 14
fall = 22-14 = 8
between CLKB and CLKC
rise = 8-7 = 1
fall = 14-4 = 10
between CLKA and CLKC
rise = 22-7 = 15
fall = 22-4 = 18
It is also defined as the difference in time that a single clock signal
takes to reach two different registers
25
26
27
28
29
31
33
34
36
37
False Paths
False paths
Paths that physically exist in a design but are not logic/functional
paths
These paths never get sensitized under any input conditions
Mux 1
A
Mux 2
C
B1
C1
C2
OUT
B2
38
Multi-cycle paths
Multi-cycle paths
Data Paths that require more than one clock period for execution
2 clock period delay
39
40
41
Example
D Q
CK
Example
D Q
CK
Example
D Q
Q0
0
1
MUX
D Q
Q1
CK
44
Example
PathsfromQ1toQ1: None
PathsfromQ1toQ2: TWmaxtPDFF+tJKsu=20+10=30ns
TWmaxtPDFF+maxtAND+tJKsu=20+12+10=42ns
PathsfromQ2toQ1: TWmaxtPJKFF+tOR+TDsu=25+10+5=40ns
PathsfromQ2toQ2: TWmaxtPJKFF+maxtAND+tJKsu=25+12+10=47ns
TW47ns
45
Clock Skew
If a clock edge does not arrive at different flip-flops at exactly the same
time, then the clock is said to be skewed between these flip-flops. The
difference between the times of arrival at the flip-flops is said to be the
amount of clock skew.
Clock skew is due to different delays on different paths from the clock
generator to the various flip-flops.
Different length wires (wires have delay)
Gates (buffers) on the paths
Flip-Flops that clock on different edges (need to invert clock for
some flip-flops)
Gating the clock to control loading of registers (a very bad idea)
46
D2
C2
D Q
Q2
CK
D Q
C1
Q1
D2
C2
D Q
Q2
CK
48
D2
Logic
Network
C1
D Q
C2
TW
TW
C1
Q1
C1
tSK = tINV
tSK = tINV
C2
C2
Q1
Q1
D2
D2
tPFF
tOR
tsu
tPFF
tOR
tsu
C2 skewed after C1: TW max TPFF + max tNET + tsu - min tINV
C2 skewed before C1: TW max TPFF + max tNET + tsu + max tINV
49
D Q
C1
C2
50
Q1
D2
C1
D Q
Q
C2
51
How does additional delay between the flip-flops affect the skew
calculations?
52
Example: What is the minimum clock period for the following circuit under
the assumption that the clock C2 is skewed after C1 (i.e., C2 is delayed
from C1)?
N2
D1
D Q
Q1
N1
D2
C1
D Q
Q2
C2
54
N2
D1
D Q
Q1
N1
D2
C1
D Q
Q2
C2
NET
CLK
D
CK
D Q
Q
TH = th - min tNET
56
D Q
CK
TH = th + max tC
57
NET
CLK
D
CK
D Q
Q
CLK
CK
Q
NET
TP = tC + tFF + tNET
59
Example
LD
D
CLK
D Q
CK
61
A very bad way to add a load control signal LD to a register that does not
have one is shown belowD
D Q
LD
CK
CLK
The reason this is such a bad idea is illustrated by the following timing
diagram.
The flip-flop sees two rising edges and will trigger twice. The only one we
want is the second one.
62
If LD was constrained to only change when the clock was low, then the only
problem would be the clock skew.
63
If gating the clock is the only way to control the loading of registers, then
use the following approach:
D
D Q
CLK
LD
There is still clock skew, but at least we only have one triggering edge.
64
LD
D
CLK
D Q
Q
65
66
DFF 1
Delay (min) = 5 ns
DFF 2
Data
clk20Mhtzref
clk10Mhtz
67
Delay (min) = 5 ns
DFF 2
Data
clk20Mhtzref
clk10Mhtz
68
DFF 1
Delay (min) = 5 ns
DFF 2
Data
clk20Mhtzref
clk10Mhtz
69
Delay (min) = 5 ns
DFF 2
Data
clk20Mhtzref
Propagation delay = 4 ns
(thru clock tree buffers)
clk10Mhtz
Propagation delay = 2 ns
(thru clock tree buffers)
70
Thank you
71