0% found this document useful (0 votes)
285 views46 pages

Static Timing Analysis Overview

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
285 views46 pages

Static Timing Analysis Overview

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Static Timing Analysis

[Link] 1

Maven Silicon Confidential

All the presentations, books, documents [hard copies and soft copies] and
projects that you are using and developing as part of the training course are the
proprietary work of Maven Silicon and is fully protected under copyright and
trade secret laws. You may not view, use, disclose, copy, or distribute the
materials or any information except pursuant to a valid written license from
Maven Silicon

[Link] 2

1
Why Timing Analysis ?

Why am I here & listening this??


Is the Timing Analysis, very critical??

 Yes, It is critical, because, timing is one among the


three important design constraints for any chip.
 The Three important design constraints are
 Timing
 Power Consumption
 Area of Silicon chip.

[Link] 3

Why Timing Analysis ?

 How fast can I run the


design?!!!
 Does the design meet a given
timing requirement?!!

2.8 GHz 3.0 GHz

[Link] 4

2
What is Timing Analysis?

 Timing analysis is the methodical analysis of a digital circuit to determine if the


timing constraints defined in specifications are met.

I want to, But,

3.0 GHz 2.8 GHz


Expectation Reality

[Link] 5

Summary

 Timing analysis is the methodical analysis of a digital circuit to determine if the


timing constraints defined in specifications are met.

 Performing Timing Analysis is critical to decide, whether to go ahead with


design or any modifications to be done in the design.

[Link] 6

3
Types of timing analysis

There are two main techniques available to do so

 Dynamic timing analysis – Verifies timing in the functional context by applying


stimulus

 Static timing analysis – Verifies timing in each path of the logic circuit without
applying stimulus

[Link] 7

Dynamic Timing Analysis

Test Bench

Stimulus Output
generation Monitoring
Outputs
Inputs

Top Level
of Design

Clock with desired


frequency

[Link] 8

4
Dynamic Timing Analysis

Advantages:
 Can be very accurate (spice-level)
 Simulator calculates the logic value and delays

Disadvantages:
 Vector creation takes too long, slow
 Incomplete timing coverage
 Analysis quality depends on stimulus vectors
 Requires more memory and CPU resources over STA

[Link] 9

Static Timing Analysis

 STA is an exhaustive method of analyzing, debugging and validating the timing


performance of a design.
 STA is capable of verifying every path.
50 ns
50 ns
200 ns 0 200 ns 0
o/p

100 ns 1 100 ns 1

sel 10 ns

 The main goal of static timing analysis is to verify that, all signals will arrive
neither too early nor too late, and hence proper circuit operation can be assured.

[Link] 10

5
Static Timing Analysis

Advantages:
 Much faster than timing-driven, gate-level simulation
 Exhaustive timing coverage
 Does not require input vectors
 More efficient than DTA in memory and CPU resources
 Capacity for millions of gates

[Link] 11

Static Timing Analysis

Limitations:
 Works best with synchronous (not asynchronous) logic
 Complex to learn
 Must define timing requirements / exceptions
 Difficulty in handling:
 Multiple clocks
 false paths
 Multicycle paths

[Link] 12

6
Summary

Timing Analysis

DTA STA

 Dynamic Timing Analysis is extension to functional verification and it will be


done by driving stimulus to the design.

 Static Timing Analysis ensures that, all the paths in the logic circuit are free of
timing violations.

[Link] 13

False Path

50 ns
50 ns
200 ns 0 200 ns 0
o/p 500 ns
300 ns
100 ns 1 100 ns 1 400 ns

sel 10 ns

False Path

[Link] 14

7
Controlling/Non-Controlling Values

Controlled value of AND

0 0 1

Controlling value of AND Non-Controlling value of AND

Controlled value of OR
1 1 0

Controlling value of OR
Non-Controlling value of OR

[Link] 15

Path sensitization
0
0
w2 = 1
1
w3 = 0
1
w4 = 1

1
1
w2 = 1
0
w3 = 0
0
w4 = 1

[Link] 16

8
Multicycle path

♦ Paths which intentionally require more than one clock cycle to propagate.

D
Comb D

Clk
Clk
D

Clk

[Link] 17

Summary

False Paths
 Paths that physically exist in a design but are not logic /functional paths
 Paths that may not be excited
 Circuit delay = Length of longest path ?
 Not a good enough bound (too pessimistic)
 Circuit delay = Time of last output change

Multicycle Paths
 Paths which intentionally require more than one clock cycle to propagate.

[Link] 18

9
STA in Digital design flow

Specification Floor Planning

Architecture Placement

Behavioral Model Clock Tree Synthesis Timing


Not OK
RTL Coding Routing
Bugs
Verification Static Timing Analysis

Synthesis Physical Layout

Gate Level Simulation Design Rule Check

DFT Insertion Layout Vs Schematic

GDSII
[Link] 19

STA Tools and Vendors

Primetime  Synopsys (gate-level)


PathMill  Epic (Synopsys, transistor-level)
Motive  ViewLogic
Velocity  Mentor Graphics
ETS  Cadence
Goldtime  ExtremeDA
EinsTimer  IBM (Gate-level)
EinsTLT  IBM (transistor-level)
Timecraft  INCENTA

[Link] 20

10
Inputs & outputs of STA Tools

Netlist
SDF & Model Lib
(or) STA Tool Reports
Net delays & SPEf

Constraints

[Link] 21

Sample Reports

[Link] 22

11
Summary

 Static Timing Analysis can be performed on Gate Level Netlist or Routed Netlist.

 STA Tool is going to perform timing analysis by using netlist, delay


informations, and constraints and generates a detailed report by which, we can
understand if there are any timing violations in the design.

[Link] 23

Clock

[Link] 24

12
Clock

♦ The clock is a periodic synchronization signal used as a time reference for data
transfers in synchronous digital systems

T (Clock Period)

[Link] 25

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

[Link] 26

13
Types of Clocks

 Gated Clock

 Virtual Clock

 Generated (Derived) Clock

[Link] 27

Gated clock

♦ Clock gating reduces power consumption by switching off the clock to flipflops
when the value of those flipflops does not change.

♦ It is mainly used in Low Power Applications.

clock
Gated_clock
clk_enb

[Link] 28

14
Gated clock

Results on 32bit
RISC Architecture

[Link] 29

Virtual clock

♦ Virtual clock has no sources.


♦ Not connected to any port or pin within the current design
♦ Mainly used to model the I/O timing specification
♦ Serves as a reference for input or output delays

[Link] 30

15
Generated Clock

♦ A design might include clock dividers or other structures that produce a new
clock from a master source clock.

Generated
Master Clock
Clock

[Link] 31

Clock domain

 Single Clock Domain

 Multi Clock Domain

[Link] 32

16
Synchronizing clock domain

Any two systems are considered


asynchronous to each other:
When they operate at two different
frequency

When they operate at same


frequency, but at two different clock
phase angles

[Link] 33

Synchronizing clock domain

Two common methods for


synchronizing data between clock
domains are:

Use handshake signals to pass data


between clock domains or,

Use fIfOs (first In first Out


memories) to store data using one
clock domain and to retrieve data
using another clock domain.

[Link] 34

17
Clock Variations (Uncertainty)

♦ The possible Uncertainties in clock are


 Latency
 Skew
 Jitter

[Link] 35

Latency

♦ Clock Source latency time it takes for a clock signal to propagate from its
actual ideal waveform origin point to the clock definition point in the design.
♦ Clock Network latency time it takes for a clock signal to propagate from the
clock definition point to a register clock pin.

[Link] 36

18
Clock skew

♦ Difference between arrival times of the clock at different devices is called clock
skew

[Link] 37

Positive skew

[Link] 38

19
Negative skew

[Link] 39

Local 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

[Link] 40

20
Strategies to minimize clock skew

♦ Distribute clock signals in general direction of data flow.


♦ Wires carrying clock between communicating components should be as short as
possible.
♦ Make all wires from the clock source the same length.

[Link] 41

Jitter

♦ Frequency variation in the clock source


♦ Difference between the actual clock period and ideal clock period
♦ Power supply noise and variations in the temperature are the main sources of
jitter

[Link] 42

21
Skew and Jitter

♦ Skew is permanent variation in clock arrival times


• variation in when the same clock edge is seen by two different flip-flops
♦ Jitter is temporary variation in clock arrival times
• variation in when two successive clock edges are seen by the same flip-flop

[Link] 43

Clock

[Link] 44

22
Summary

♦ The clock is a periodic synchronization signal used as a time reference for data
transfers in synchronous digital systems.
♦ Slew: Amount of time it takes for a signal transition to occur.

[Link] 45

Timing parameters in STA

[Link] 46

23
Arrival time

♦ Arrival time - An arrival time defines the instant of time, at which a proper
value will arrive at a particular node.

90 nSec
A
70 nSec Y = A.B
B
20 nSec

[Link] 47

Required time

♦ Required time - Required time defines the instant of time, at which a proper
value is expected to arrive at a particular node.

A 85 nSec - Expectation
70 nSec Y = A.B
B
15 nSec - Expectation
90 nSec – Arrival Time
85 nSec – Required Time

[Link] 48

24
Slack and Critical Path

♦ Slack
• It is the difference between the required (constraint) time and the arrival time
(inputs and delays).
• Negative slack indicates that constraints have not been met, while positive
slack indicates that constraints have been met.
• Slack analysis is used to identify timing critical paths in a design by the static
timing analysis tool

♦ Critical path
• Any logical path in the design that violates the timing constraints
• Path with a negative slack

[Link] 49

Slack Analysis

Wire delay is 1ns. Tpd (Actual) = 84 – 5 = 79nS


Input Arrival Time is 5ns.
Output Required time is 65 Tpd (Expected) = 60nS

[Link] 50

25
Timing met ?

Timing is met when slack is greater than or equal to zero

[Link] 51

Delays in Combinational Circuits

Contamination Delay ( Tcd ) Propagation Delay ( Tpd )


The amount of time needed for a The amount of time needed for a
change in a logic input to result in an change in a logic input to result in a
initial change at an output. permanent change at an output.

I/P O/P

[Link] 52

26
Delays in Sequential Circuits

[Link] 53

Delays in Sequential Circuits

D2Q Delay : A change in input D cannot bring a change in the output of the
flipflop. So, D2Q delay is not valid.

Clk2Q Delay : It is the time it takes for the flipflop output to be in a stable state
after a clock edge occurs.

S2Q Delay : It is the time taken by flipflop to come to SET state after the
application of asynchronous PRESET input.

R2Q Delay : It is the time taken by flipflop to come to RESET state after the
application of asynchronous CLEAR input.

[Link] 54

27
Setup time and Hold time

Synchronous inputs (e.g. D) have Setup, Hold time specification with respect to
the CLOCK input.
Setup Time (tsu): is the minimum time interval for which the input signal must
be stable (unchanging) prior to the sampling event of the clock for the input signal
to be recognized correctly.

Hold Time (th): is the minimum time interval for which the input signal must be
stable (unchanging) following the sampling event of the clock for the input signal
to be recognized correctly.

[Link] 55

Setup time and Hold time

Setup/Hold measured around active clock edge.

[Link] 56

28
Setup time and Hold time Violations

[Link] 57

Setup time

Tclk

Tclk-Q Tinv
1

Tclk – Tsetup ≥ Tclk_Q + Tinv Tclk ≥ Tclk_Q + Tinv + Tsetup

[Link] 58

29
Hold time

0
Tclk-Q T
inv

If Tclk-Q >Thold, then, there will


Tclk-Q + Tinv ≥ Thold be no hold violations for all
the values of Tpd-inv
[Link] 59

Example 1

Determine the Maximum frequency of operation of the given circuit.

T (pd-inv) = 3ns

Tclk ≥ Tclk_Q + Tinv + Tsetup

Tclk ≥ 5 + 3 + 2
Tclk ≥ 10ns
T (Clk-Q) = 5 nS
T (setup) = 2 nS fmax = 1 / Tclk
T (Hold) = 1 nS
fmax = 1 / 10ns = 100MHz
[Link] 60

30
Timing Analysis

[Link] 61

Calculation of Setup time Const without CLK Skew

Tclk

Tclk-Q Tpd

Tclk - Tsetup

Tclk – Tsetup ≥ Tclk_Q(max) + Tpd(max) Tclk ≥ Tclk_Q(max) + Tpd(max) + Tsetup


[Link] 62

31
Calculation of Hold time Const without CLK Skew

Tclk

Tclk-Q

Tpd

Tclk-Q(min) + Tpd(min) ≥ Thold Thold ≤ Tclk-Q(min) + Tpd(min)


[Link] 63

Calculation of Setup time Const with +ve Skew

Tclk

Tclk-Q Tpd

Tclk + Tskew - Tsetup

Tclk
Tskew

Tclk + Tskew - Tsetup ≥ Tclk_Q(max) + Tpd(max) Tclk + Tskew ≥ Tclk_Q(max) + Tpd(max) + Tsetup
[Link] 64

32
Calculation of Hold time Const with +ve Skew

Tclk

Tclk-Q

Tpd

Tskew
Tclk-Q(min) + Tpd(min) ≥ Thold + Tskew Thold ≤ Tclk-Q(min) + Tpd(min) - Tskew
[Link] 65

Calculation of Setup time Const with -ve Skew

Tclk

Tclk-Q Tpd Tskew


Tclk - Tskew - Tsetup

Tskew

Tclk - Tskew - Tsetup ≥ Tclk_Q(max) + Tpd(max) Tclk - Tskew ≥ Tclk_Q(max) + Tpd(max) + Tsetup
[Link] 66

33
Calculation of Hold time Const with -ve Skew

Tclk

Tclk-Q

Tpd

Tskew

Tclk-Q(min) + Tpd(min) ≥ Thold - Tskew Thold ≤ Tclk-Q(min) + Tpd(min) + Tskew


[Link] 67

Example 2

In the below circuit the setup and hold times of the flipflops are 5 ns and 1 ns
respectively. The propagation delay of the flipflops may vary between 4 and 7 ns
while the propagation delay of the gates may vary between 2 and 6 ns. Determine
the Maximum clock frequency and identify the hold time violations. (if any)

-ve skew

Tclk - Tskew ≥ Tclk_Q(max) + Tpd(max) + Tsetup


Tclk - 6 ≥ 7 + 0 + 5
Tclk ≥ 7 + 0 + 5 + 6 Tclk ≥ 18ns f < 55MHz
[Link] 68

34
Example 2

In the below circuit the setup and hold times of the flipflops are 5 ns and 1 ns
respectively. The propagation delay of the flipflops may vary between 4 and 7 ns
while the propagation delay of the gates may vary between 2 and 6 ns. Determine
the Maximum clock frequency and identify the hold time violations. (if any)

-ve skew

Tclk-Q(min) + Tpd(min) ≥ Thold - Tskew


4- 0 ≥ 1 - 2
6≥1 No Hold Violation
[Link] 69

External Setup time & Hold time

External inputs are buffered through pad drivers and may go through
combinational logic before they reach a synchronous input. This buffering adds
propagation delay.

[Link] 70

35
External Setup time

Tsetup (ext) Tsetup (ext)

Tpd(d-in)

Tpd(clk) Tpd(clk)

Tsetup (int) Tsetup (int)

Tsetup(ext) + Tpd(clk) - Tsetup(int) ≥ Tpd(d-in) Tsetup(ext) ≥ Tpd(d-in) + Tsetup(int) - Tpd(clk)

[Link] 71

External Hold time

Thold (ext) Thold (ext)

Tpd(d-in)

Tpd(clk) Tpd(clk)

Thold (int) Thold(int)

Tpd(d-in) ≥ Tpd(clk) + Thold(int) - Thold(ext) Thold(ext) ≥ Tpd(clk) + Thold(int) - Tpd(d-in)

[Link] 72

36
Summary

Slack : It is the difference between the required (constraint) time and the arrival
time (inputs and delays).
Critical path: Any logical path in the design that violates the timing constraints.
Setup Time (tsu): is the minimum time interval for which the input signal must be
stable (unchanging) prior to the sampling event of the clock for the input signal to
be recognized correctly.
A setup time violation, when a signal arrives too late, and misses the time when it
should advance.
Hold Time (th): is the minimum time interval for which the input signal must be
stable (unchanging) following the sampling event of the clock for the input signal
to be recognized correctly.
A hold time violation, when a input signal change too quickly, after the clock's
active transition

[Link] 73

Summary (Contd..)

Scenario Setup time Hold time

No Skew Tclk ≥ Tclk_Q(max) + Tpd(max) + Tsetup Thold ≤ Tclk-Q(min) + Tpd(min)

+ve Skew Tclk + Tskew ≥ Tclk_Q(max) + Tpd(max) + Tsetup Thold ≤ Tclk-Q(min) + Tpd(min) - Tskew

-ve Skew Tclk - Tskew ≥ Tclk_Q(max) + Tpd(max) + Tsetup Thold ≤ Tclk-Q(min) + Tpd(min) + Tskew

External Set up time and Hold time Calculation:

Tsetup(ext) ≥ Tpd(d-in) + Tsetup(int) + Tpd(clk)

Thold(ext) ≥ Tpd(clk) + Thold(int) - Tpd(d-in)

[Link] 74

37
STA Procedure

[Link] 75

Three Steps in Static Timing Analysis

Break the design into sets of timing paths


Calculate the delay of each path
Check all path delays to see if the given timing constraints are met

[Link] 76

38
Types of timing path

Primary input to register path

Register to Primary output path

Register to register path

Primary input to primary output

[Link] 77

Timing Path

A Timing Path is a point-to-point path in a design which can propagate data from
one flip-flop to another.
Each path has a start point and an end point
Start points: Input ports, Clock pins of flip-flops.
Endpoints: Output ports, Data input pins of flip-flops.

[Link] 78

39
Example - 3

Determine Maximum clock frequency.

Tclk ≥ Tclk_Q(max) + Tpd(max) + Tsetup


Tclk ≥ 10 + 5 + 2 Tclk ≥ 10
Tclk ≥ 17 ns
f = 1/17 ns = 58.8MHz
[Link] 79

Example - 4
Path P1 P2 P3 P4 P5 P6 P7
Determine Maximum clock frequency.
Dealy 16 12 11
P1

P3

P2

P1 – i/p to o/p combinational path – U7, U5, U6 → Tcomb = 1+9+6 = 16nSec


P2 – Primary input to register path – U7, U3, U1 → Tcomb + Tsu = 1+8+3 = 12nSec
P3 – Primary input to register path – U7, U4, U2 → Tcomb + Tsu = 1+7+3 = 11nSec
[Link] 80

40
Example - 4
Path P1 P2 P3 P4 P5 P6 P7
Determine Maximum clock frequency.
Dealy 16 12 11 15 16

P4 P5

P4 - Register to register path – U1, U4, U2 → Tclk-q + Tcomb + Tsu = 5+7+3 = 15nSec

P5 - Register to register path – U2, U3, U1 → Tclk-q + Tcomb + Tsu = 5+8+3 = 16nSec
[Link] 81

Example - 4
Path P1 P2 P3 P4 P5 P6 P7
Determine Maximum clock frequency.
Dealy 16 12 11 15 16 20 20
P7

P6

T = 20nSec
f = 1/20n = 50MHz
P6 - Register to Primary output path – U2, U5, U6 → Tclk-q + Tcomb = 5+9+6 = 20nSec

P7 - Register to Primary output path – U1, U5, U6 → Tclk-q + Tcomb = 5+9+6 = 20nSec
[Link] 82

41
Methods to improve timing

[Link] 83

Methods to improve timing

Pipelining

Retiming

Time borrowing

[Link] 84

42
Pipelining

25+23+2= 50 3+2+14+14+2 = 35 3+20+17 = 40

25+23+2=3+23+2
50 = 28 3+2+14+14+2 = 35 3+20+17 = 40
3+20+2 = 25 3+17 = 20
25+2 = 27

[Link] 85

Retiming

3+2+14+14+2 = 35
3+23+2 = 28 3+14+14+2 = 33 3+20+2 = 25 3+17 = 20
25+2 = 27 3+2+2 = 7

3+14+2 = 33
19 3+20+2 = 25 3+17 = 20
25+2 = 27 3+23+2 = 28 3+2+2 = 7 = 213+14+14+2
3+2+14+2

[Link] 86

43
Advantages and Disadvantages

Advantages:
 Higher throughput than combinational system
 Different parts of the logic work on different parts of the problem. So easy
to debug.

Disadvantages:
 Generally, increases latency
 More Silicon Area and More power consumption

[Link] 87

Time Borrowing

T pd = 24 nSec

[Link] 88

44
Time Borrowing

T pd = 19 nSec

[Link] 89

Summary

Pipelining, Retiming and time borrowing are the techniques available for
improving the timing of the circuits.

All these methods have both advantages and disadvantages as well.

[Link] 90

45
Thank You

[Link] 91

46

You might also like