71
1 STATIC TIMING ANALYSIS STATIC TIMING ANALYSIS

Static Timing Analysis

  • Upload
    nagpal3

  • View
    90

  • Download
    7

Embed Size (px)

DESCRIPTION

college work

Citation preview

Page 1: Static Timing Analysis

1

STATIC TIMING ANALYSISSTATIC TIMING ANALYSIS

Page 2: Static Timing Analysis

2

IntroductionIntroduction

Effective methodology for verifying the timing characteristics of a design Effective methodology for verifying the timing characteristics of a design without the use of test vectorswithout the use of test vectors

Conventional verification techniques are inadequate for complex Conventional verification techniques are inadequate for complex designsdesigns Simulation time using conventional simulatorsSimulation time using conventional simulators

Thousands of test vectors are required to test all timing paths Thousands of test vectors are required to test all timing paths using logic simulation using logic simulation

Increasing design complexity & smaller process technologiesIncreasing design complexity & smaller process technologies Increases the number of iterations for STAIncreases the number of iterations for STA

Page 3: Static Timing Analysis

3

Simulation vs. Static timingSimulation vs. Static timing

0%0% 100%100%

Timing Simulation (adding vectors)

Static timing analysis(eliminating false paths)

True timing pathsTrue timing paths False timing pathsFalse timing paths

STA approach typically takes a fraction of the time it takes to run logic simulation on a large design and guarantees 100% coverage of all true timing paths in the design without having to generate testvectors

Page 4: Static Timing Analysis

4

OVERVIEWOVERVIEW

Previous Verification Flow

Page 5: Static Timing Analysis

5

• Requires extensive vector creation

• Valid for FPGAs and smaller ASICs

• Falls apart on multi-million gate ASICs

OVERVIEWOVERVIEW

Page 6: Static Timing Analysis

6

What is Static Timing Analysis?

Static Timing Analysis is a method for determining if a circuit meets timing constraints without having to simulate

Much faster than timing-driven, gate-level simulation

Proper circuit functionality is not checked

Vector generation NOT required

Page 7: Static Timing Analysis

7

STA in ASIC Design Flow – Pre STA in ASIC Design Flow – Pre layoutlayout

Logic Synthesis

Design For test

Floor planning

Constraints(clocks, input drive,

output load)

Static Timing Analysis

Static Timing Analysis(estimated parasitics)

Page 8: Static Timing Analysis

8

STA in ASIC Design Flow – STA in ASIC Design Flow – Post LayoutPost Layout

Floor planning

Clock Tree Synthesis

Place and Route

Parasitic Extraction

SDF(extracted parasitics)

Constraints(clocks, input drive,

output load)

Static Timing Analysis(estimated parasitics)

Static Timing Analysis(extracted parasitics)

Page 9: Static Timing Analysis

9

2 Types of Timing Verification

Dynamic Timing Simulation

Advantages

Can be very accurate (spice-level)

Disadvantages

Analysis quality depends on stimulus vectors

Non-exhaustive, slow

Examples:

VCS,Spice,ACE

Page 10: Static Timing Analysis

10

Static Timing Analysis (STA)

Advantages

Fast, exhaustive

Better analysis checks against timing requirements

Disadvantage

Less accurate

Must define timing requirements/exceptions

Difficulty handling asynchronous designs, false paths

2 Types of Timing Verification

Page 11: Static Timing Analysis

11

Three Steps in Static Timing Analysis

Circuit is broken down into sets of timing paths

Delay of each path is calculated

Path delays are checked to see if timing constraints

have been met

Page 12: Static Timing Analysis

12

What is a 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 endpoint

Start point:

Input ports Clock pins of flip-flops

Endpoints:

Output ports Data input pins of flip-flops

Page 13: Static Timing Analysis

13

Organizing Timing Paths Into Groups

Timing paths are grouped into path groups by the

clocks controlling their endpoints

Synthesis tools like PrimeTime and Design Compiler organize timing reports by path groups

Page 14: Static Timing Analysis

14

Net and Cell Timing Arcs

The actual path delay is the sum of net and cell delays along the timing path

Page 15: Static Timing Analysis

15

Net and Cell Delay“Net Delay” refers to the total time needed to charge or discharge all of the parasitics of a given net

Total net parasitics are affected by

net length

net fanout

Net delay and parasitics are typically

Back-Annotated (Post-Layout) from data obtained from

an extraction tool

Estimated (Pre-Layout)

Page 16: Static Timing Analysis

16

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

Page 17: Static Timing Analysis

17

Transparent Latch, Level Sensitive

– data passes through when clock high, latched when clock low

Clocked Storage Elements

D-Type Register or Flip-Flop, Edge-Triggered

– data captured on rising edge of clock, held for rest of cycle

Page 18: Static Timing Analysis

18

Flip-Flops

Page 19: Static Timing Analysis

19

Basic terminologiesBasic terminologies

Pulse WidthPulse Width Setup & Hold timesSetup & Hold times Signal slewSignal slew Clock latencyClock latency Clock SkewClock Skew Input arrival timeInput arrival time Output required timeOutput required time Slack and Critical pathSlack and Critical path

Recovery & Removal timeRecovery & Removal timess

False pathsFalse paths Multi-cycle pathsMulti-cycle paths

Page 20: Static Timing Analysis

20

Pulse WidthPulse Width

Pulse widthPulse width It is the time between the active and inactive states of the same It is the time between the active and inactive states of the same

signalsignal

Page 21: Static Timing Analysis

21

Setup and Hold timeSetup and Hold time

Setup time Setup time For an edge triggered sequential element, the setup time is the time For an edge triggered sequential element, the setup time is the time

interval before the active clock edge during which the data should interval before the active clock edge during which the data should remain unchangedremain unchanged

Hold timeHold time Time interval after the active clock edge during which the data Time interval after the active clock edge during which the data

should remain unchangedshould remain unchanged

Both the above 2 timing violations can occur in a design whenBoth the above 2 timing violations can occur in a design whenclock path delay > data path delayclock path delay > data path delay

Page 22: Static Timing Analysis

22

Signal SlewSignal Slew

Signal (Clock/Data) slewSignal (Clock/Data) slew Amount of time it takes for a signal transition to occurAmount of time it takes for a signal transition to occur Accounts for uncertainty in Rise and fall times of the signal Accounts for uncertainty in Rise and fall times of the signal Slew rate is measured in volts/secSlew rate is measured in volts/sec

Page 23: Static Timing Analysis

23

Clock LatencyClock Latency

Clock LatencyClock Latency Difference between the reference (source) clock slew to the clock Difference between the reference (source) clock slew to the clock

tree endpoint signal slew valuestree endpoint signal slew values Rise latency and fall latency are specifiedRise latency and fall latency are specified

INV

Rise=7Rise=7Fall=4Fall=4

Rise=7Rise=7Fall=4Fall=4

Rise=7Rise=7Fall=4Fall=4

Rise=7Rise=7Fall=4Fall=4

Rise=7Rise=7Fall=4Fall=4

Rise=7Rise=7Fall=4Fall=4

Rise=7Rise=7Fall=4Fall=4

CLKCLK

CLKACLKA

CLKBCLKB

CLKCCLKC

INVINV

INVINV

INVINVINVINVINVINV

BUFBUF

BUFBUF

Page 24: Static Timing Analysis

24

Clock LatencyClock Latency

Page 25: Static Timing Analysis

25

Clock SkewClock Skew

Clock Skew is a measure of the difference in latency between any two Clock Skew is a measure of the difference in latency between any two leaf pins in a clock tree.leaf pins in a clock tree. between CLKA and CLKBbetween CLKA and CLKB

rise = 22-8 = 14rise = 22-8 = 14fall = 22-14 = 8fall = 22-14 = 8

between CLKB and CLKCbetween CLKB and CLKC rise = 8-7 = 1rise = 8-7 = 1

fall = 14-4 = 10fall = 14-4 = 10 between CLKA and CLKC between CLKA and CLKC

rise = 22-7 = 15rise = 22-7 = 15fall = 22-4 = 18fall = 22-4 = 18

It is also defined as the difference in time that a single clock signal It is also defined as the difference in time that a single clock signal takes to reach two different registerstakes to reach two different registers

Page 26: Static Timing Analysis

26

Input Arrival timeInput Arrival time

Input Arrival timeInput Arrival time An arrival time defines the time interval during which a data signal An arrival time defines the time interval during which a data signal

can arrive at an input pin in relation to the nearest edge of the clock can arrive at an input pin in relation to the nearest edge of the clock signal that triggers the data transitionsignal that triggers the data transition

Page 27: Static Timing Analysis

27

Output required timeOutput required time

Output required timeOutput required time Specifies the data required time on output ports.Specifies the data required time on output ports.

Page 28: Static Timing Analysis

28

Slack and Critical pathSlack and Critical path

SlackSlack It is the difference between the required (constraint) time and the It is the difference between the required (constraint) time and the

arrival time (inputs and delays).arrival time (inputs and delays). Negative slack indicates that constraints have not been met, while Negative slack indicates that constraints have not been met, while

positive slack indicates that constraints have been met.positive slack indicates that constraints have been met. Slack analysis is used to identify timing critical paths in a design by Slack analysis is used to identify timing critical paths in a design by

the static timing analysis toolthe static timing analysis tool

Critical pathCritical path Any logical path in the design that violates the timing constraintsAny logical path in the design that violates the timing constraints Path with a negative slackPath with a negative slack

Page 29: Static Timing Analysis

29

Slack Analysis – Data Path Slack Analysis – Data Path typestypes

Page 30: Static Timing Analysis

30

Slack analysis – data path Slack analysis – data path typestypes

Primary input-to-register paths Primary input-to-register paths Delays off-chip + Combinational logic delays up to the first Delays off-chip + Combinational logic delays up to the first

sequential device.sequential device. Register-to-primary output paths Register-to-primary output paths

Start at a sequential device Start at a sequential device CLK-to-Q transition delay + the combinational logic delay + external CLK-to-Q transition delay + the combinational logic delay + external

delay requirements delay requirements Register-to-register paths Register-to-register paths

Delay and timing constraint (Setup and Hold) times between Delay and timing constraint (Setup and Hold) times between sequential devices for synchronous clocks + source and destination sequential devices for synchronous clocks + source and destination clock propagation times.clock propagation times.

Primary input-to-primary output paths Primary input-to-primary output paths Delays off-chip + combinational logic delays + external delay Delays off-chip + combinational logic delays + external delay

requirements.requirements.

Page 31: Static Timing Analysis

31

Hold Slack calculationHold Slack calculation

Actual data arrival time definitionActual data arrival time definitionData Input Arrival Timemin + Data path delayminData Input Arrival Timemin + Data path delaymin

If the data path starts in a primary input,If the data path starts in a primary input,Data Input arrivalmin = Input arrival timeminData Input arrivalmin = Input arrival timemin

If the data path starts at a register,If the data path starts at a register,(Source Clock Edgemin + Source Clock Path Delaymin) = (Source Clock Edgemin + Source Clock Path Delaymin) =

Data Input ArrivalminData Input Arrivalmin

Required Stability time definition Required Stability time definition (Destination Clock Edgemax + Destination Clock Path Delaymax) + (Destination Clock Edgemax + Destination Clock Path Delaymax) +

Hold = Required Stability TimemaxHold = Required Stability Timemax

Hold Slack definitionHold Slack definitionActual Data Arrivalmin - Required Stability TimemaxActual Data Arrivalmin - Required Stability Timemax

Page 32: Static Timing Analysis

32

Calculate the hold slackCalculate the hold slack

Source Clock signal timing parameters:Min Edge = 8.002 nsMin clock path delay = 0.002 ns

Destination Clock signal timing parameters:Max Edge = 2.020 nsMax clock path delay = 0.500 ns

Min Data path delay = 0.802 nsHold time constraint = 1.046 ns

Page 33: Static Timing Analysis

33

Hold slack calculationHold slack calculation

Page 34: Static Timing Analysis

34

Setup Slack calculationSetup Slack calculation

Actual data arrival time definitionActual data arrival time definitionData Input Arrival Timemax + Data path delaymaxData Input Arrival Timemax + Data path delaymax

If the data path starts in a primary input,If the data path starts in a primary input,Data Input arrivalmax = Input arrival timemaxData Input arrivalmax = Input arrival timemax

If the data path starts at a register,If the data path starts at a register,(Source Clock Edgemax + Source Clock Path Delaymax) = (Source Clock Edgemax + Source Clock Path Delaymax) =

Data Input ArrivalmaxData Input Arrivalmax

Required Stability time definition Required Stability time definition (Destination Clock Edgemin + Destination Clock Path Delaymin) - (Destination Clock Edgemin + Destination Clock Path Delaymin) -

Setup = Required Stability TimeminSetup = Required Stability Timemin

Setup slack definitionSetup slack definitionRequired Stability Timemin - Actual Data ArrivalmaxRequired Stability Timemin - Actual Data Arrivalmax

Page 35: Static Timing Analysis

35

Calculate the setup slackCalculate the setup slack

Source Clock signal timing parameters:Max Edge = 2.002 nsMax clock path delay = 0.002 ns

Destination Clock signal timing parameters:Min Edge = 20.02 nsMin clock path delay = 0.500 ns

Min Data path delay = 13.002 nsSetup time constraint = 0.046 ns

Page 36: Static Timing Analysis

36

Setup slack calculationSetup slack calculation

Page 37: Static Timing Analysis

37

Recovery and Removal timeRecovery and Removal time

Recovery timeRecovery time

Like setup time for asynchronous port (set, reset)Like setup time for asynchronous port (set, reset) Removal timeRemoval time

Like hold time for asynchronous port (set, reset)Like hold time for asynchronous port (set, reset)

Recovery timeRecovery time

It is the time available between the asynchronous signal going inactive It is the time available between the asynchronous signal going inactive to the active clock edgeto the active clock edge

Removal timeRemoval time

It is the time between active clock edge and asynchronous signal It is the time between active clock edge and asynchronous signal going inactivegoing inactive

Page 38: Static Timing Analysis

38

False PathsFalse Paths

False pathsFalse paths Paths that physically exist in a design but are not logic/functional Paths that physically exist in a design but are not logic/functional

paths paths These paths never get sensitized under any input conditionsThese paths never get sensitized under any input conditions

Mux 1

C C1 C2A

B

Mux 2

S

B1 B2

OUT

Page 39: Static Timing Analysis

39

Multi-cycle pathsMulti-cycle paths

Multi-cycle pathsMulti-cycle paths Data Paths that require more than one clock period for executionData Paths that require more than one clock period for execution

2 clock period delay

Page 40: Static Timing Analysis

40

Sequential Circuit TimingSequential Circuit Timing

ObjectivesObjectives

This section covers several timing considerations encountered in the design This section covers several timing considerations encountered in the design of synchronous sequential circuits. It has the following objectives:of synchronous sequential circuits. It has the following objectives: Define the following global timing parameters and show how they can be Define the following global timing parameters and show how they can be

derived from the basic timing parameters of flip-flops and gates.derived from the basic timing parameters of flip-flops and gates.

• Maximum Clock FrequencyMaximum Clock Frequency

• Maximum allowable clock skewMaximum allowable clock skew

• Global Setup and Hold TimesGlobal Setup and Hold Times Discuss ways to control the loading of data into registers and show why Discuss ways to control the loading of data into registers and show why

gating the clock signal to do this is a poor design practice.gating the clock signal to do this is a poor design practice.

Page 41: Static Timing Analysis

41

Maximum Clock FrequencyMaximum Clock Frequency

The clock frequency for a synchronous sequential circuit is limited by The clock frequency for a synchronous sequential circuit is limited by the timing parameters of its flip-flops and gates. This limit is called the timing parameters of its flip-flops and gates. This limit is called the the maximum clock frequencymaximum clock frequency for the circuit. The for the circuit. The minimum clock periodminimum clock period is is the reciprocal of this frequency.the reciprocal of this frequency.

Relevant timing parametersRelevant timing parameters Gates: Gates:

• Propagation delays: min tPropagation delays: min tPLHPLH, min t, min tPHLPHL, max t, max tPLHPLH, max t, max tPHLPHL

Flip-Flops:Flip-Flops:

• Propagation delays: min tPropagation delays: min tPLHPLH, min t, min tPHLPHL, max t, max tPLHPLH, max t, max tPHLPHL

• Setup time: tSetup time: tsusu

• Hold time: tHold time: thh

Page 42: Static Timing Analysis

42

ExampleExample

TW ≥ max tPFF + tsu

For the 7474, max tPLH = 25ns, max tPHL = 40ns, tsu = 20ns

TW ≥ max (max tPLH + tsu, max tPHL + tsu)

TW ≥ max (25+20, 40+20) = 60

D Q

QCK

Q

Page 43: Static Timing Analysis

43

ExampleExample

D Q

CK

Q

TW ≥ max tPFF + max tPINV + tsu

Page 44: Static Timing Analysis

44

ExampleExample

D Q

Q

D Q

Q

MUX0

1

Q0 Q1

CK

TW ≥ max tPFF + max tPMUX + tsu

Page 45: Static Timing Analysis

45

ExampleExample

Paths from Q1 to Q1:

Paths from Q1 to Q2:

Paths from Q2 to Q1:

Paths from Q2 to Q2:

None

TW ≥ max tPDFF +tJKsu = 20 +10 = 30 ns

TW ≥ max tPDFF + max tAND + tJKsu = 20 + 12 + 10 = 42 ns

TW ≥ max tPJKFF + tOR + TDsu = 25 + 10 + 5 = 40 ns

TW ≥ max tPJKFF + max tAND + tJKsu = 25 + 12 + 10 = 47 ns

TW ≥ 47 ns

Page 46: Static Timing Analysis

46

If a clock edge does not arrive at different flip-flops at exactly the same If a clock edge does not arrive at different flip-flops at exactly the same time, then the clock is said to be time, then the clock is said to be skewedskewed between these flip-flops. The between these flip-flops. The difference between the times of arrival at the flip-flops is said to be the difference between the times of arrival at the flip-flops is said to be the amount ofamount of clock skew clock skew..

Clock skew is due to different delays on different paths from the clock Clock skew is due to different delays on different paths from the clock generator to the various flip-flops.generator to the various flip-flops.

• Different length wires (wires have delay)Different length wires (wires have delay)

• Gates (buffers) on the pathsGates (buffers) on the paths

• Flip-Flops that clock on different edges (need to invert clock for Flip-Flops that clock on different edges (need to invert clock for some flip-flops)some flip-flops)

• Gating the clock to control loading of registers (a very bad idea)Gating the clock to control loading of registers (a very bad idea)

Clock SkewClock Skew

Page 47: Static Timing Analysis

47

• Example (Effect of clock skew on clock rate)Example (Effect of clock skew on clock rate) Clock C2 skewed after C1Clock C2 skewed after C1

Q1Q2

D Q

Q

D Q

Q

CK

C1C2

D2

TW ≥ max TPFF + max tOR + tsu

(if clock not skewed, i.e., tINV = 0)TW ≥ max TPFF + max tOR + tsu - min tINV

(if clock skewed, i.e., tINV > 0)

Page 48: Static Timing Analysis

48

Clock C1 skewed after C2Clock C1 skewed after C2

Q1Q2

D Q

Q

D Q

Q

CK

C1C2

D2

TW ≥ max TPFF + max tOR + tsu

(if clock not skewed, i.e., tINV = 0)

TW ≥ max TPFF + max tOR + tsu + max tINV

(if clock skewed, i.e., tINV > 0)

Page 49: Static Timing Analysis

49

Summary of maximum clock frequency calculationsSummary of maximum clock frequency calculations

D Q

Logic Network

D Q

C1 C2

Q1 D2

C1

Q1

D2

C2

TW

tPFF tOR tsu

tSK = tINV

C1

Q1

D2

C2

TW

tPFF tOR

tsu

tSK = tINV

C2 skewed after C1: TW ≥ max TPFF + max tNET + tsu - min tINV

C2 skewed before C1: TW ≥ max TPFF + max tNET + tsu + max tINV

Page 50: Static Timing Analysis

50

Maximum Allowable Clock SkewMaximum Allowable Clock Skew

How much skew between C1 and C2 can be tolerated in the following How much skew between C1 and C2 can be tolerated in the following circuit?circuit?

– Case 1: C2 delayed after C1Case 1: C2 delayed after C1

D Q

Q

D Q

Q

C2

Q1 D2

C1

tPFF > th + tSK

tSK < min tPFF - th

Page 51: Static Timing Analysis

51

Case 2: C1 delayed from C2Case 2: C1 delayed from C2

D Q

Q

D Q

Q

C2

Q1 D2

C1

Page 52: Static Timing Analysis

52

How does additional delay between the flip-flops affect the skew How does additional delay between the flip-flops affect the skew calculations?calculations?

tSK ≤ min tPFF - th

tsk ≤ min tPFF + min tMUX - th

Page 53: Static Timing Analysis

53

Summary of allowable clock skew calculationsSummary of allowable clock skew calculations

tSK + th ≤ tPFF + tNET

tSK ≤ min tPFF + min tNET - th

Page 54: Static Timing Analysis

54

Example: What is the minimum clock period for the following circuit under 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 the assumption that the clock C2 is skewed after C1 (i.e., C2 is delayed from C1)?from C1)?

N1

N2

C1 C2

Q1 D2 Q2D1D Q

Q

D Q

Q

Page 55: Static Timing Analysis

55

First calculate the maximum allowable clock skew.First calculate the maximum allowable clock skew.

Next calculate the minimum clock period due to the path from Q1 to D2.Next calculate the minimum clock period due to the path from Q1 to D2.

Finally calculate the minimum clock period due to the path from Q2 to Finally calculate the minimum clock period due to the path from Q2 to D1D1

N1

N2

C1 C2

Q1 D2 Q2D1D Q

Q

D Q

Q

tSK < min tPFF + min tN1 - th

TW > max tPFF + max tN1 + tsu - min tSK

TW > max tPFF + max tN1 + tsu + max tSK

TW > max tPFF + max tN2 + tsu + (min tPFF + min tN1 - th)

TW > max tPFF + min tPFF + max tN2 + min tN1 + tsu - th

Page 56: Static Timing Analysis

56

Global Setup Time, Hold Time Global Setup Time, Hold Time and Propagation Delayand Propagation Delay

Global setup and hold times (data delayed)Global setup and hold times (data delayed)

TSU = tsu + max tNETTH = th - min tNET

D Q

Q

X

CK

NET D

CLK

Page 57: Static Timing Analysis

57

Global setup & hold time (clock delayed)Global setup & hold time (clock delayed)

D Q

QCK

D

CLK

TSU = tsu - min tC TH = th + max tC

Page 58: Static Timing Analysis

58

Global setup & hold time (data & clock delayed)Global setup & hold time (data & clock delayed)

D Q

Q

X

CK

NET D

CLK

TSU = + max =-0987654321\ - min . TH = th - min tNET + max tC

Page 59: Static Timing Analysis

59

Global propagation delayGlobal propagation delay

D Q

QCK

NETCLK

YQ

TP = tC + tFF + tNET

Page 60: Static Timing Analysis

60

Summary of global timing parametersSummary of global timing parameters

TSU = tsu + max tPN - min tPC ≤ tsu + max tPN

TH = th + max tPC - min tPN ≤ th + max tPC

TP = tPFF + tPN + tPC

Page 61: Static Timing Analysis

61

ExampleExample

Find TFind TSUSU and T and THH for input signal LD relative to CLK. for input signal LD relative to CLK.

LD

DCLK

CK

QD Q

Q

TSU = tsu +max tNET - min tC

TH = th - min tNET + max tC

= tsu + max tINV + max tNAND + max tNAND - min tINV

= th - min tNAND - min tNAND + max TINV

Page 62: Static Timing Analysis

62

Register load control (gating the clock)Register load control (gating the clock)

• A very bad way to add a load control signal LD to a register that does not A very bad way to add a load control signal LD to a register that does not have one is shown belowhave one is shown below

• The reason this is such a bad idea is illustrated by the following timing The reason this is such a bad idea is illustrated by the following timing diagram.diagram.

• The flip-flop sees two rising edges and will trigger twice. The only one we The flip-flop sees two rising edges and will trigger twice. The only one we want is the second one. want is the second one.

D

LD

CLK

CK

D Q

Q

Page 63: Static Timing Analysis

63

If LD was constrained to only change when the clock was low, then the only If LD was constrained to only change when the clock was low, then the only problem would be the clock skew.problem would be the clock skew.

Page 64: Static Timing Analysis

64

If gating the clock is the only way to control the loading of registers, then If gating the clock is the only way to control the loading of registers, then use the following approach:use the following approach:

There is still clock skew, but at least we only have one triggering edge.There is still clock skew, but at least we only have one triggering edge.

D

LD

CLK

D Q

Q

Page 65: Static Timing Analysis

65

The best way to add a LD control signal is as follows:The best way to add a LD control signal is as follows:

LD

DCLK

D Q

Q

Page 66: Static Timing Analysis

66

Tips & TricksTips & Tricks

Use timing diagrams to determine the timing properties of sequential circuitsUse timing diagrams to determine the timing properties of sequential circuits Using typical timing values from the data sheet (use only max and/or min Using typical timing values from the data sheet (use only max and/or min

values)values) Gating the clockGating the clock

Page 67: Static Timing Analysis

67

Detecting timing violations – Detecting timing violations – CASE 1CASE 1

clk10Mhtzclk10Mhtzclk20Mhtzrefclk20Mhtzref

Delay (min) = 5 nsDelay (min) = 5 nsDFF 2DFF 2DFF 1DFF 1

DataData

(a) Hold time for clocks is 1.5 ns

Determine if there are any timing violations in this designDetermine if there are any timing violations in this design

Page 68: Static Timing Analysis

68

Detecting timing violations – Detecting timing violations – CASE 2CASE 2

Delay (min) = 5 nsDelay (min) = 5 ns

clk10Mhtzclk10Mhtzclk20Mhtzrefclk20Mhtzref

DFF 2DFF 2DFF 1DFF 1

DataData

(a) Hold time for clocks is 1.5 ns(b) Clock skew of 3.72 ns between clk20mref and clk10mz

Determine if there are any timing violations in this designDetermine if there are any timing violations in this design

Page 69: Static Timing Analysis

69

Detecting timing violations – Detecting timing violations – CASE 3CASE 3

(a) Hold time for clocks is 1.5 ns(b) Clock skew of 3.72 ns between clk20mref and clk10mz

clk10Mhtzclk10Mhtzclk20Mhtzrefclk20Mhtzref

DFF 2DFF 2DFF 1DFF 1

DataData

Delay (min) = 5 nsDelay (min) = 5 ns

Page 70: Static Timing Analysis

70

Detecting timing violations – Detecting timing violations – CASE 4CASE 4

Consider(a) Clock skew of 3.72 ns between clk20mref and clk10mz(b) Clock network delays

clk10Mhtzclk10Mhtzclk20Mhtzrefclk20Mhtzref

DFF 2DFF 2DFF 1DFF 1

DataData

Delay (min) = 5 nsDelay (min) = 5 ns

Propagation delay = 2 nsPropagation delay = 2 ns(thru clock tree buffers)(thru clock tree buffers)

Propagation delay = 4 nsPropagation delay = 4 ns(thru clock tree buffers)(thru clock tree buffers)

Page 71: Static Timing Analysis

71

Thank youThank you