Chapter 3 Digital Design and Computer Architecture , 2 nd Edition - - PowerPoint PPT Presentation

chapter 3
SMART_READER_LITE
LIVE PREVIEW

Chapter 3 Digital Design and Computer Architecture , 2 nd Edition - - PowerPoint PPT Presentation

Chapter 3 Digital Design and Computer Architecture , 2 nd Edition David Money Harris and Sarah L. Harris Chapter 3 <1> Chapter 3 :: Topics Introduction Latches and Flip-Flops Synchronous Logic Design Finite State Machines


slide-1
SLIDE 1

Chapter 3 <1>

Digital Design and Computer Architecture, 2nd Edition

Chapter 3

David Money Harris and Sarah L. Harris

slide-2
SLIDE 2

Chapter 3 <2>

Chapter 3 :: Topics

  • Introduction
  • Latches and Flip-Flops
  • Synchronous Logic Design
  • Finite State Machines
  • Timing of Sequential Logic
  • Parallelism
slide-3
SLIDE 3

Chapter 3 <3>

  • Outputs of sequential logic depend on current

and prior input values – it has memory.

  • Some definitions:

– State: all the information about a circuit necessary to explain its future behavior – Latches and flip-flops: state elements that store

  • ne bit of state

– Synchronous sequential circuits: combinational logic followed by a bank of flip-flops

Introduction

slide-4
SLIDE 4

Chapter 3 <4>

  • Give sequence to events
  • Have memory (short-term)
  • Use feedback from output to input to store

information

Sequential Circuits

slide-5
SLIDE 5

Chapter 3 <5>

  • The state of a circuit influences its future

behavior

  • State elements store state

– Bistable circuit – SR Latch – D Latch – D Flip-flop

State Elements

slide-6
SLIDE 6

Chapter 3 <6>

Q Q Q Q I1 I2 I2 I1

  • Fundamental building block of other state

elements

  • Two outputs: Q, Q
  • No inputs

Bistable Circuit

slide-7
SLIDE 7

Chapter 3 <7>

Q Q I1 I2 1 1 Q Q I1 I2 1 1

  • Consider the two possible cases:

– Q = 0: then Q = 1, Q = 0 (consistent) – Q = 1: then Q = 0, Q = 1 (consistent)

  • Stores 1 bit of state in the state variable, Q (or Q)
  • But there are no inputs to control the state

Bistable Circuit Analysis

slide-8
SLIDE 8

Chapter 3 <8>

R S Q Q N1 N2

  • SR Latch
  • Consider the four possible cases:

– S = 1, R = 0 – S = 0, R = 1 – S = 0, R = 0 – S = 1, R = 1

SR (Set/Reset) Latch

slide-9
SLIDE 9

Chapter 3 <9>

– S = 1, R = 0: then Q = 1 and Q = 0 – S = 0, R = 1: then Q = 1 and Q = 0

SR Latch Analysis

R S Q Q N1 N2 1 1 R S Q Q N1 N2 1 1 1

slide-10
SLIDE 10

Chapter 3 <10>

– S = 1, R = 0: then Q = 1 and Q = 0 Set the output – S = 0, R = 1: then Q = 1 and Q = 0 Reset the output

SR Latch Analysis

R S Q Q N1 N2 1 1 R S Q Q N1 N2 1 1 1

slide-11
SLIDE 11

Chapter 3 <11>

R S Q Q N1 N2 R S Q Q N1 N2 Qprev = 0 Qprev = 1 1

– S = 0, R = 0: then Q = Qprev – S = 1, R = 1: then Q = 0, Q = 0

SR Latch Analysis

R S Q Q N1 N2 1 1

slide-12
SLIDE 12

Chapter 3 <12>

R S Q Q N1 N2 R S Q Q N1 N2 Qprev = 0 Qprev = 1

– S = 0, R = 0: then Q = Qprev Memory! – S = 1, R = 1: then Q = 0, Q = 0 Invalid State Q ≠ NOT Q

SR Latch Analysis

R S Q Q N1 N2 1 1

slide-13
SLIDE 13

Chapter 3 <13>

S R Q Q SR Latch Symbol

  • SR stands for Set/Reset Latch

– Stores one bit of state (Q)

  • Control what value is being stored with S, R

inputs – Set: Make the output 1 (S = 1, R = 0, Q = 1) – Reset: Make the output 0 (S = 0, R = 1, Q = 0)

SR Latch Symbol

slide-14
SLIDE 14

Chapter 3 <14>

D Latch Symbol CLK D Q Q

  • Two inputs: CLK, D

– CLK: controls when the output changes – D (the data input): controls what the output changes to

  • Function

– When CLK = 1, D passes through to Q (transparent) – When CLK = 0, Q holds its previous value (opaque)

  • Avoids invalid case when

Q ≠ NOT Q

D Latch

slide-15
SLIDE 15

Chapter 3 <15>

S R Q Q Q Q D CLK

D R S

CLK D Q Q

S R Q Q CLK D X 1 1 1 D

D Latch Internal Circuit

slide-16
SLIDE 16

Chapter 3 <16>

S R Q Q Q Q D CLK

D R S

CLK D Q Q

S R Q Qprev 1 1 1 Q 1 CLK D X 1 1 1 D X 1 Qprev

D Latch Internal Circuit

slide-17
SLIDE 17

Chapter 3 <17>

D Flip-Flop Symbols D Q Q

  • Inputs: CLK, D
  • Function

– Samples D on rising edge of CLK

  • When CLK rises from 0 to 1, D

passes through to Q

  • Otherwise, Q holds its previous

value – Q changes only on rising edge of CLK

  • Called edge-triggered
  • Activated on the clock edge

D Flip-Flop

slide-18
SLIDE 18

Chapter 3 <18>

CLK D Q Q CLK D Q Q Q Q D N1 CLK L1 L2

  • Two back-to-back latches (L1 and L2) controlled by

complementary clocks

  • When CLK = 0

– L1 is transparent – L2 is opaque – D passes through to N1

  • When CLK = 1

– L2 is transparent – L1 is opaque – N1 passes through to Q

  • Thus, on the edge of the clock (when CLK rises from 0 1)

– D passes through to Q

D Flip-Flop Internal Circuit

slide-19
SLIDE 19

Chapter 3 <19>

CLK D Q Q

D Q Q

CLK D Q (latch) Q (flop)

D Latch vs. D Flip-Flop

slide-20
SLIDE 20

Chapter 3 <20> CLK D Q (latch) Q (flop)

D Latch vs. D Flip-Flop

CLK D Q Q

D Q Q

slide-21
SLIDE 21

Chapter 3 <21>

CLK D Q D Q D Q D Q D0 D1 D2 D3 Q0 Q1 Q2 Q3

D3:0

4 4

CLK Q3:0

Registers

slide-22
SLIDE 22

Chapter 3 <22>

Internal Circuit D Q CLK EN D Q 1 D Q EN Symbol

  • Inputs: CLK, D, EN

– The enable input (EN) controls when new data (D) is stored

  • Function

– EN = 1: D passes through to Q on the clock edge – EN = 0: the flip-flop retains its previous state

Enabled Flip-Flops

slide-23
SLIDE 23

Chapter 3 <23>

Symbols D Q

Reset r

  • Inputs: CLK, D, Reset
  • Function:

– Reset = 1: Q is forced to 0 – Reset = 0: flip-flop behaves as ordinary D flip-flop

Resettable Flip-Flops

slide-24
SLIDE 24

Chapter 3 <24>

  • Two types:

– Synchronous: resets at the clock edge only – Asynchronous: resets immediately when Reset = 1

  • Asynchronously resettable flip-flop requires

changing the internal circuitry of the flip-flop

  • Synchronously resettable flip-flop?

Resettable Flip-Flops

slide-25
SLIDE 25

Chapter 3 <25>

  • Two types:

– Synchronous: resets at the clock edge only – Asynchronous: resets immediately when Reset = 1

  • Asynchronously resettable flip-flop requires

changing the internal circuitry of the flip-flop

  • Synchronously resettable flip-flop?

Resettable Flip-Flops

Internal Circuit D Q CLK D Q Reset

slide-26
SLIDE 26

Chapter 3 <26>

Symbols D Q

Set s

  • Inputs: CLK, D, Set
  • Function:

– Set = 1: Q is set to 1 – Set = 0: the flip-flop behaves as ordinary D flip-flop

Settable Flip-Flops

slide-27
SLIDE 27

Chapter 3 <27> X Y Z time (ns) 0 1 2 3 4 5 6 7 8

X Y Z

  • Sequential circuits: all circuits that aren’t

combinational

  • A problematic circuit:

Sequential Logic

slide-28
SLIDE 28

Chapter 3 <28>

X Y Z

  • Sequential circuits: all circuits that aren’t

combinational

  • A problematic circuit:
  • No inputs and 1-3 outputs
  • Astable circuit, oscillates
  • Period depends on inverter delay
  • It has a cyclic path: output fed back to input

Sequential Logic

X Y Z time (ns) 0 1 2 3 4 5 6 7 8

slide-29
SLIDE 29

Chapter 3 <29>

  • Breaks cyclic paths by inserting registers
  • Registers contain state of the system
  • State changes at clock edge: system synchronized to the

clock

  • Rules of synchronous sequential circuit composition:

– Every circuit element is either a register or a combinational circuit – At least one circuit element is a register – All registers receive the same clock signal – Every cyclic path contains at least one register

  • Two common synchronous sequential circuits

– Finite State Machines (FSMs) – Pipelines

Synchronous Sequential Logic Design

slide-30
SLIDE 30

Chapter 3 <30>

Next State Current State S’ S CLK

C L

Next State Logic Next State

C L

Output Logic Outputs

  • Consists of:

– State register

  • Stores current state
  • Loads next state at clock edge

– Combinational logic

  • Computes the next state
  • Computes the outputs

Finite State Machine (FSM)

slide-31
SLIDE 31

Chapter 3 <31>

CLK M N k k

next state logic

  • utput

logic

Moore FSM CLK M N k k

next state logic

  • utput

logic

inputs inputs

  • utputs
  • utputs

state state next state next state

Mealy FSM

  • Next state determined by current state and inputs
  • Two types of finite state machines differ in output logic:

– Moore FSM: outputs depend only on current state – Mealy FSM: outputs depend on current state and inputs

Finite State Machines (FSMs)

slide-32
SLIDE 32

Chapter 3 <33>

TA TB LA LB CLK Reset Traffic Light Controller

  • Inputs: CLK, Reset, TA, TB
  • Outputs: LA, LB

FSM Black Box

slide-33
SLIDE 33

Chapter 3 <32>

TA LA TA LB TB TB LA LB

Academic Ave. Bravado Blvd. Dorms Fields Dining Hall Labs

  • Traffic light controller

– Traffic sensors: TA, TB (TRUE when there’s traffic) – Lights: LA, LB

FSM Example

slide-34
SLIDE 34

Chapter 3 <34>

S0 LA: green LB: red Reset

  • Moore FSM: outputs labeled in each state
  • States: Circles
  • Transitions: Arcs

FSM State Transition Diagram

slide-35
SLIDE 35

Chapter 3 <35>

  • Moore FSM: outputs labeled in each state
  • States: Circles
  • Transitions: Arcs

FSM State Transition Diagram

S0 LA: green LB: red S1 LA: yellow LB: red S3 LA: red LB: yellow S2 LA: red LB: green TA TA TB TB Reset

slide-36
SLIDE 36

Chapter 3 <36>

Current State Inputs Next State S TA TB S' S0 X S0 1 X S1 X X S2 X S2 X 1 S3 X X

FSM State Transition Table

slide-37
SLIDE 37

Chapter 3 <37>

Current State Inputs Next State S TA TB S' S0 X S1 S0 1 X S0 S1 X X S2 S2 X S3 S2 X 1 S2 S3 X X S0

FSM State Transition Table

slide-38
SLIDE 38

Chapter 3 <38>

Current State Inputs Next State S1 S0 TA TB S'1 S'0 X 1 X 1 X X 1 X 1 X 1 1 1 X X State Encoding S0 00 S1 01 S2 10 S3 11

FSM Encoded State Transition Table

slide-39
SLIDE 39

Chapter 3 <39>

Current State Inputs Next State S1 S0 TA TB S'1 S'0 X 1 1 X 1 X X 1 1 X 1 1 1 X 1 1 1 1 X X State Encoding S0 00 S1 01 S2 10 S3 11 S'1 = S1 Å S0 S'0 = S1S0TA + S1S0TB

FSM Encoded State Transition Table

slide-40
SLIDE 40

Chapter 3 <40>

Current State Outputs S1 S0 LA1 LA0 LB1 LB0 1 1 1 1 Output Encoding green 00 yellow 01 red 10

FSM Output Table

slide-41
SLIDE 41

Chapter 3 <41>

Current State Outputs S1 S0 LA1 LA0 LB1 LB0 1 1 1 1 1 1 1 1 1 1 Output Encoding green 00 yellow 01 red 10 LA1 = S1 LA0 = S1S0 LB1 = S1 LB0 = S1S0

FSM Output Table

slide-42
SLIDE 42

Chapter 3 <42>

S1 S0 S'1 S'0 CLK

state register

Reset r

FSM Schematic: State Register

slide-43
SLIDE 43

Chapter 3 <43>

S1 S0 S'1 S'0 CLK

next state logic state register

Reset TA TB

inputs

S1 S0 r

FSM Schematic: Next State Logic

slide-44
SLIDE 44

Chapter 3 <44>

S1 S0 S'1 S'0 CLK

next state logic

  • utput logic

state register

Reset LA1 LB1 LB0 LA0 TA TB

inputs

  • utputs

S1 S0 r

FSM Schematic: Output Logic

slide-45
SLIDE 45

Chapter 3 <45>

CLK Reset TA TB S'1:0 S1:0 LA1:0 LB1:0 Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10 S1 (01) S2 (10) S3 (11) S0 (00) t (sec) ?? ?? S0 (00) S0 (00) S1 (01) S2 (10) S3 (11) S1 (01) ?? ??

5 10 15 20 25 30 35 40 45 Green (00) Red (10)

S0 (00)

Yellow (01) Red (10) Green (00) Green (00) Red (10) Yellow (01) S0 LA: green LB: red S1 LA: yellow LB: red S3 LA: red LB: yellow S2 LA: red LB: green TA TA TB TB Reset

FSM Timing Diagram

slide-46
SLIDE 46

Chapter 3 <46>

  • Binary encoding:

– i.e., for four states, 00, 01, 10, 11

  • One-hot encoding

– One state bit per state – Only one state bit HIGH at once – i.e., for 4 states, 0001, 0010, 0100, 1000 – Requires more flip-flops – Often next state and output logic is simpler

FSM State Encoding

slide-47
SLIDE 47

Chapter 3 <47>

  • Alyssa P. Hacker has a snail that crawls down a paper tape

with 1’s and 0’s on it. The snail smiles whenever the last two digits it has crawled over are 01. Design Moore and Mealy FSMs of the snail’s brain.

Moore vs. Mealy FSM

slide-48
SLIDE 48

Chapter 3 <48>

Mealy FSM: arcs indicate input/output

State Transition Diagrams

Moore FSM

Reset S0 S1 S2 1 1 1 1

Reset S0 S1 1/1 0/0 1/0 0/0

Mealy FSM

slide-49
SLIDE 49

Chapter 3 <49>

Current State Inputs Next State

S1 S0 A S'1 S'0

1 1 1 1 1 1 1

State Encoding S0 00 S1 01 S2 10

Moore FSM State Transition Table

slide-50
SLIDE 50

Chapter 3 <50>

Current State Inputs Next State

S1 S0 A S'1 S'0

1 1 1 1 1 1 1 1 1 1 1

State Encoding S0 00 S1 01 S2 10

Moore FSM State Transition Table

S1’ = S0A S0’ = A

slide-51
SLIDE 51

Chapter 3 <51>

Current State Output S1 S0 Y 1 1

Moore FSM Output Table

slide-52
SLIDE 52

Chapter 3 <52>

Current State Output S1 S0 Y 1 1 1 Y = S1

Moore FSM Output Table

slide-53
SLIDE 53

Chapter 3 <53>

Current State Input Next State Output S0 A S'0 Y

1 1 1 1

State Encoding S0 00 S1 01

Mealy FSM State Transition & Output Table

slide-54
SLIDE 54

Chapter 3 <54>

Current State Input Next State Output S0 A S'0 Y

1 1 1 1 1 1 1

State Encoding S0 00 S1 01

Mealy FSM State Transition & Output Table

slide-55
SLIDE 55

Chapter 3 <55>

Moore FSM Schematic

Y CLK Reset A r S'0 S0 S'1 S1

slide-56
SLIDE 56

Chapter 3 <56>

Mealy FSM Schematic

S'0 Y CLK Reset A r S0

slide-57
SLIDE 57

Chapter 3 <57>

Moore & Mealy Timing Diagram

Mealy Machine Moore Machine

CLK Reset A S Y S Y Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7 Cycle 8 Cycle 9 Cycle 10 S0 S2 ?? S2 S2 S0 S1 1 1 1 1 1 1 S1 S0 S0 ?? S0 S1 S0 S1 S1 S0 S1 Cycle 11

slide-58
SLIDE 58

Chapter 3 <58>

  • Break complex FSMs into smaller interacting

FSMs

  • Example: Modify traffic light controller to have

Parade Mode.

– Two more inputs: P, R – When P = 1, enter Parade Mode & Bravado Blvd light stays green – When R = 1, leave Parade Mode

Factoring State Machines

slide-59
SLIDE 59

Chapter 3 <59>

Unfactored FSM Factored FSM

Controller FSM

TA TB LA LB P R Mode FSM Lights FSM

P M

Controller FSM

TA TB LA LB R

Parade FSM

slide-60
SLIDE 60

Chapter 3 <60>

S0 LA: green LB: red S1 LA: yellow LB: red S3 LA: red LB: yellow S2 LA: red LB: green TA TA TB TB Reset S4 LA: green LB: red S5 LA: yellow LB: red S7 LA: red LB: yellow S6 LA: red LB: green TA TA P P P P P P R R R R R P R P TA P TA P P TA R TA R R TB R TB R

Unfactored FSM

slide-61
SLIDE 61

Chapter 3 <61>

S0 LA: green LB: red S1 LA: yellow LB: red S3 LA: red LB: yellow S2 LA: red LB: green TA TA M + TB MTB Reset Lights FSM S0 M: 0 S1 M: 1 P Reset P Mode FSM R R

Factored FSM

slide-62
SLIDE 62

Chapter 3 <62>

1. Identify inputs and outputs 2. Sketch state transition diagram 3. Write state transition table 4. Select state encodings 5. For Moore machine:

1. Rewrite state transition table with state encodings 2. Write output table

6. For a Mealy machine:

1. Rewrite combined state transition and output table with state encodings

7. Write Boolean equations for next state and output logic 8. Sketch the circuit schematic

FSM Design Procedure

slide-63
SLIDE 63

Chapter 3 <63>

  • Flip-flop samples D at clock edge
  • D must be stable when sampled
  • Similar to a photograph, D must be stable

around clock edge

  • If not, metastability can occur

Timing

slide-64
SLIDE 64

Chapter 3 <64>

CLK tsetup D thold ta

  • Setup time: tsetup = time before clock edge data must be

stable (i.e. not changing)

  • Hold time: thold = time after clock edge data must be stable
  • Aperture time: ta = time around clock edge data must be

stable (ta = tsetup + thold)

Input Timing Constraints

slide-65
SLIDE 65

Chapter 3 <65>

CLK tccq tpcq Q

  • Propagation delay: tpcq = time after clock edge that the
  • utput Q is guaranteed to be stable (i.e., to stop changing)
  • Contamination delay: tccq = time after clock edge that Q

might be unstable (i.e., start changing)

Output Timing Constraints

slide-66
SLIDE 66

Chapter 3 <66>

  • Synchronous sequential circuit inputs must be

stable during aperture (setup and hold) time around clock edge

  • Specifically, inputs must be stable

– at least tsetup before the clock edge – at least until thold after the clock edge

Dynamic Discipline

slide-67
SLIDE 67

Chapter 3 <67>

  • The delay between registers has a

minimum and maximum delay, dependent

  • n the delays of the circuit elements

C L CLK CLK R1 R2 Q1 D2 (a) CLK Q1 D2 (b) Tc

Dynamic Discipline

slide-68
SLIDE 68

Chapter 3 <68>

  • Depends on the maximum delay from register R1

through combinational logic to R2

  • The input to register R2 must be stable at least tsetup

before clock edge

CLK Q1 D2 Tc tpcq tpd tsetup C L CLK CLK Q1 D2 R1 R2

Tc ≥

Setup Time Constraint

slide-69
SLIDE 69

Chapter 3 <69>

  • Depends on the maximum delay from register R1

through combinational logic to R2

  • The input to register R2 must be stable at least tsetup

before clock edge

CLK Q1 D2 Tc tpcq tpd tsetup C L CLK CLK Q1 D2 R1 R2

Tc ≥ tpcq + tpd + tsetup tpd ≤

Setup Time Constraint

slide-70
SLIDE 70

Chapter 3 <70>

  • Depends on the maximum delay from register R1

through combinational logic to R2

  • The input to register R2 must be stable at least tsetup

before clock edge

CLK Q1 D2 Tc tpcq tpd tsetup C L CLK CLK Q1 D2 R1 R2

Tc ≥ tpcq + tpd + tsetup tpd ≤ Tc – (tpcq + tsetup)

Setup Time Constraint

(tpcq + tsetup): sequencing overhead

slide-71
SLIDE 71

Chapter 3 <71>

  • Depends on the minimum delay from register R1

through the combinational logic to R2

  • The input to register R2 must be stable for at least

thold after the clock edge

CLK Q1 D2 tccq tcd thold C L CLK CLK Q1 D2 R1 R2

thold <

Hold Time Constraint

slide-72
SLIDE 72

Chapter 3 <72>

  • Depends on the minimum delay from register R1

through the combinational logic to R2

  • The input to register R2 must be stable for at least

thold after the clock edge

CLK Q1 D2 tccq tcd thold C L CLK CLK Q1 D2 R1 R2

thold < tccq + tcd tcd >

Hold Time Constraint

slide-73
SLIDE 73

Chapter 3 <73>

  • Depends on the minimum delay from register R1

through the combinational logic to R2

  • The input to register R2 must be stable for at least

thold after the clock edge

CLK Q1 D2 tccq tcd thold C L CLK CLK Q1 D2 R1 R2

thold < tccq + tcd tcd > thold - tccq

Hold Time Constraint

slide-74
SLIDE 74

Chapter 3 <74>

CLK CLK A B C D X' Y' X Y

per gate

Timing Characteristics

tccq = 30 ps tpcq = 50 ps tsetup = 60 ps thold = 70 ps tpd = 35 ps tcd = 25 ps

tpd = tcd = Setup time constraint: Tc ≥ fc = Hold time constraint: tccq + tcd > thold ?

Timing Analysis

slide-75
SLIDE 75

Chapter 3 <75>

CLK CLK A B C D X' Y' X Y

per gate

Timing Characteristics

tccq = 30 ps tpcq = 50 ps tsetup = 60 ps thold = 70 ps tpd = 35 ps tcd = 25 ps

tpd = 3 x 35 ps = 105 ps tcd = 25 ps Setup time constraint: Tc ≥ (50 + 105 + 60) ps = 215 ps fc = 1/Tc = 4.65 GHz Hold time constraint: tccq + tcd > thold ? (30 + 25) ps > 70 ps ? No!

Timing Analysis

slide-76
SLIDE 76

Chapter 3 <76>

per gate

Timing Characteristics

tccq = 30 ps tpcq = 50 ps tsetup = 60 ps thold = 70 ps tpd = 35 ps tcd = 25 ps

tpd = tcd = Setup time constraint: Tc ≥ fc = Hold time constraint: tccq + tcd > thold ?

Timing Analysis

CLK CLK A B C D X' Y' X Y

Add buffers to the short paths:

slide-77
SLIDE 77

Chapter 3 <77>

per gate

Timing Characteristics

tccq = 30 ps tpcq = 50 ps tsetup = 60 ps thold = 70 ps tpd = 35 ps tcd = 25 ps

tpd = 3 x 35 ps = 105 ps tcd = 2 x 25 ps = 50 ps Setup time constraint: Tc ≥ (50 + 105 + 60) ps = 215 ps fc = 1/Tc = 4.65 GHz Hold time constraint: tccq + tcd > thold ? (30 + 50) ps > 70 ps ? Yes!

Timing Analysis

CLK CLK A B C D X' Y' X Y

Add buffers to the short paths:

slide-78
SLIDE 78

Chapter 3 <78>

  • The clock doesn’t arrive at all registers at same time
  • Skew: difference between two clock edges
  • Perform worst case analysis to guarantee dynamic

discipline is not violated for any register – many registers in a system!

t skew

CLK1 CLK2 C L CLK2 CLK1 R1 R2 Q1 D2 CLK delay CLK

Clock Skew

slide-79
SLIDE 79

Chapter 3 <79>

  • In the worst case, CLK2 is earlier than CLK1

CLK1 Q1 D2 Tc tpcq tpd tsetuptskew C L CLK2 CLK1 R1 R2 Q1 D2 CLK2

Tc ≥

Setup Time Constraint with Skew

slide-80
SLIDE 80

Chapter 3 <80>

  • In the worst case, CLK2 is earlier than CLK1

CLK1 Q1 D2 Tc tpcq tpd tsetuptskew C L CLK2 CLK1 R1 R2 Q1 D2 CLK2

Tc ≥ tpcq + tpd + tsetup + tskew tpd ≤

Setup Time Constraint with Skew

slide-81
SLIDE 81

Chapter 3 <81>

  • In the worst case, CLK2 is earlier than CLK1

CLK1 Q1 D2 Tc tpcq tpd tsetuptskew C L CLK2 CLK1 R1 R2 Q1 D2 CLK2

Tc ≥ tpcq + tpd + tsetup + tskew tpd ≤ Tc – (tpcq + tsetup + tskew)

Setup Time Constraint with Skew

slide-82
SLIDE 82

Chapter 3 <82>

  • In the worst case, CLK2 is later than CLK1

tccq tcd thold Q1 D2 tskew C L CLK2 CLK1 R1 R2 Q1 D2 CLK2 CLK1

tccq + tcd >

Hold Time Constraint with Skew

slide-83
SLIDE 83

Chapter 3 <83>

  • In the worst case, CLK2 is later than CLK1

tccq tcd thold Q1 D2 tskew C L CLK2 CLK1 R1 R2 Q1 D2 CLK2 CLK1

tccq + tcd > thold + tskew tcd >

Hold Time Constraint with Skew

slide-84
SLIDE 84

Chapter 3 <84>

  • In the worst case, CLK2 is later than CLK1

tccq tcd thold Q1 D2 tskew C L CLK2 CLK1 R1 R2 Q1 D2 CLK2 CLK1

tccq + tcd > thold + tskew tcd > thold + tskew – tccq

Hold Time Constraint with Skew

slide-85
SLIDE 85

Chapter 3 <85>

CLK tsetup thold

taperture

D Q D Q D Q ??? Case I Case II Case III

D Q CLK button

  • Asynchronous (for example, user)

inputs might violate the dynamic discipline

Violating the Dynamic Discipline

slide-86
SLIDE 86

Chapter 3 <86>

metastable stable stable

  • Bistable devices: two stable states, and a metastable

state between them

  • Flip-flop: two stable states (1 and 0) and one

metastable state

  • If flip-flop lands in metastable state, could stay there

for an undetermined amount of time

Metastability

slide-87
SLIDE 87

Chapter 3 <87>

R S Q Q N1 N2

  • Flip-flop has feedback: if Q is somewhere between

1 and 0, cross-coupled gates drive output to either rail (1 or 0)

  • Metastable signal: if it hasn’t resolved to 1 or 0
  • If flip-flop input changes at random time, probability

that output Q is metastable after waiting some time, t:

P(tres > t) = (T0/Tc ) e-t/τ tres : time to resolve to 1 or 0 T0, τ : properties of the circuit

Flip-Flop Internals

slide-88
SLIDE 88

Chapter 3 <88>

  • Intuitively:

T0/Tc: probability input changes at a bad time (during aperture) P(tres > t) = (T0/Tc ) e-t/τ τ: time constant for how fast flip-flop moves away from metastability P(tres > t) = (T0/Tc ) e-t/τ

  • In short, if flip-flop samples metastable input, if you wait

long enough (t), the output will have resolved to 1 or 0 with high probability.

Metastability

slide-89
SLIDE 89

Chapter 3 <89>

D Q CLK SYNC

  • Asynchronous inputs are inevitable (user interfaces,

systems with different clocks interacting, etc.)

  • Synchronizer goal: make the probability of failure (the
  • utput Q still being metastable) low
  • Synchronizer cannot make the probability of failure 0

Synchronizers

slide-90
SLIDE 90

Chapter 3 <90>

D Q D2 Q D2 Tc tsetup tpcq CLK CLK CLK tres

metastable

F1 F2

  • Synchronizer: built with two back-to-back flip-flops
  • Suppose D is transitioning when sampled by F1
  • Internal signal D2 has (Tc - tsetup) time to resolve to 1
  • r 0

Synchronizer Internals

slide-91
SLIDE 91

Chapter 3 <91>

D Q D2 Q D2 Tc tsetup tpcq CLK CLK CLK tres

metastable

F1 F2

For each sample, probability of failure is:

P(failure) = (T0/Tc ) e-(Tc - tsetup)/τ

Synchronizer Probability of Failure

slide-92
SLIDE 92

Chapter 3 <92>

  • If asynchronous input changes once per second,

probability of failure per second is P(failure).

  • If input changes N times per second, probability of failure

per second is:

P(failure)/second = (NT0/Tc) e-(Tc - tsetup)/τ

  • Synchronizer fails, on average, 1/[P(failure)/second]
  • Called mean time between failures, MTBF:

MTBF = 1/[P(failure)/second] = (Tc/NT0) e(Tc - tsetup)/τ

Synchronizer Mean Time Between Failures

slide-93
SLIDE 93

Chapter 3 <93>

D D2 Q CLK CLK F1 F2

  • Suppose:

Tc = 1/500 MHz = 2 ns τ = 200 ps T0 = 150 ps tsetup = 100 ps N = 10 events per second

  • What is the probability of failure? MTBF?

Example Synchronizer

slide-94
SLIDE 94

Chapter 3 <94>

D D2 Q CLK CLK F1 F2

  • Suppose:

Tc = 1/500 MHz = 2 ns τ = 200 ps T0 = 150 ps tsetup = 100 ps N = 10 events per second

  • What is the probability of failure? MTBF?

P(failure) = (150 ps/2 ns) e-(1.9 ns)/200 ps = 5.6 × 10-6 P(failure)/second = 10 × (5.6 × 10-6 ) = 5.6 × 10-5 / second MTBF = 1/[P(failure)/second] ≈ 5 hours

Example Synchronizer

slide-95
SLIDE 95

Chapter 3 <95>

  • Two types of parallelism:

– Spatial parallelism

  • duplicate hardware performs multiple tasks at once

– Temporal parallelism

  • task is broken into multiple stages
  • also called pipelining
  • for example, an assembly line

Parallelism

slide-96
SLIDE 96

Chapter 3 <96>

  • Token: Group of inputs processed to produce

group of outputs

  • Latency: Time for one token to pass from

start to end

  • Throughput: Number of tokens produced

per unit time Parallelism increases throughput

Parallelism Definitions

slide-97
SLIDE 97

Chapter 3 <97>

  • Ben Bitdiddle bakes cookies to celebrate traffic light

controller installation

  • 5 minutes to roll cookies
  • 15 minutes to bake
  • What is the latency and throughput without parallelism?

Parallelism Example

slide-98
SLIDE 98

Chapter 3 <98>

  • Ben Bitdiddle bakes cookies to celebrate traffic light

controller installation

  • 5 minutes to roll cookies
  • 15 minutes to bake
  • What is the latency and throughput without parallelism?

Latency = 5 + 15 = 20 minutes = 1/3 hour Throughput = 1 tray/ 1/3 hour = 3 trays/hour

Parallelism Example

slide-99
SLIDE 99

Chapter 3 <99>

  • What is the latency and throughput if Ben

uses parallelism?

– Spatial parallelism: Ben asks Allysa P. Hacker to help, using her own oven – Temporal parallelism:

  • two stages: rolling and baking
  • He uses two trays
  • While first batch is baking, he rolls the

second batch, etc.

Parallelism Example

slide-100
SLIDE 100

Chapter 3 <100>

Latency = ? Throughput = ?

Spatial Parallelism

Spatial Parallelism Roll Bake Ben 1 Ben 1 Alyssa 1 Alyssa 1 Ben 2 Ben 2 Alyssa 2 Alyssa 2 Time

5 10 15 20 25 30 35 40 45 50

Tray 1 Tray 2 Tray 3 Tray 4

Latency: time to first tray

Legend

slide-101
SLIDE 101

Chapter 3 <101>

Latency = 5 + 15 = 20 minutes = 1/3 hour Throughput = 2 trays/ 1/3 hour = 6 trays/hour

Spatial Parallelism

Spatial Parallelism Roll Bake Ben 1 Ben 1 Alyssa 1 Alyssa 1 Ben 2 Ben 2 Alyssa 2 Alyssa 2 Time

5 10 15 20 25 30 35 40 45 50

Tray 1 Tray 2 Tray 3 Tray 4

Latency: time to first tray

Legend

slide-102
SLIDE 102

Chapter 3 <102>

Temporal Parallelism Ben 1 Ben 1 Ben 2 Ben 2 Ben 3 Ben 3 Time

5 10 15 20 25 30 35 40 45 50 Latency: time to first tray

Tray 1 Tray 2 Tray 3

Latency = ? Throughput = ?

Temporal Parallelism

slide-103
SLIDE 103

Chapter 3 <103>

Temporal Parallelism Ben 1 Ben 1 Ben 2 Ben 2 Ben 3 Ben 3 Time

5 10 15 20 25 30 35 40 45 50 Latency: time to first tray

Tray 1 Tray 2 Tray 3

Latency = 5 + 15 = 20 minutes = 1/3 hour Throughput = 1 trays/ 1/4 hour = 4 trays/hour Using both techniques, the throughput would be 8 trays/hour

Temporal Parallelism