chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/slides/... · 2019-12-05 · chapter 3 ...

103
Chapter 3 <1> Digital Design and Computer Architecture,2 nd Edition Chapter 3 David Money Harris and Sarah L. Harris

Upload: others

Post on 11-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<1>

DigitalDesignandComputerArchitecture,2nd Edition

Chapter3

DavidMoneyHarrisandSarahL.Harris

Page 2: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<2>

Chapter3::Topics

• Introduction• LatchesandFlip-Flops• SynchronousLogicDesign• FiniteStateMachines• TimingofSequentialLogic• Parallelism

Page 3: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<3>

• Outputsofsequentiallogicdependoncurrentand priorinputvalues– ithasmemory.

• Somedefinitions:– State:alltheinformationaboutacircuitnecessarytoexplainitsfuturebehavior

– Latchesandflip-flops:stateelementsthatstoreonebitofstate

– Synchronoussequentialcircuits:combinationallogicfollowedbyabankofflip-flops

Introduction

Page 4: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<4>

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

information

SequentialCircuits

Page 5: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<5>

• The state of a circuit influences its future behavior

• State elements store state– Bistable circuit– SR Latch– D Latch– D Flip-flop

StateElements

Page 6: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<6>

QQ Q

Q

I1

I2

I2 I1

• Fundamental building block of other state elements

• Two outputs: Q, Q• No inputs

Bistable Circuit

Page 7: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<7>

Q

Q

I1

I2

0

1

1

0

Q

Q

I1

I2

1

0

0

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 CircuitAnalysis

Page 8: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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

Page 9: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<9>

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

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

SRLatchAnalysis

R

S

Q

Q

N1

N2

0

1

1

00

0

R

S

Q

Q

N1

N2

1

0

0

10

1

Page 10: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<10>

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

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

SRLatchAnalysis

R

S

Q

Q

N1

N2

0

1

1

00

0

R

S

Q

Q

N1

N2

1

0

0

10

1

Page 11: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<11>

R

S

Q

Q

N1

N2

0

0

R

S

Q

Q

N1

N2

0

0

0

Qprev = 0 Qprev = 1

1

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

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

SRLatchAnalysis

R

S

Q

Q

N1

N2

1

1

0

00

0

Page 12: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<12>

R

S

Q

Q

N1

N2

0

0

R

S

Q

Q

N1

N2

0

0

0

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

Memory!

– S = 1, R = 1: then Q = 0, Q = 0Invalid StateQ ≠ NOT Q

SRLatchAnalysis

R

S

Q

Q

N1

N2

1

1

0

00

0

Page 13: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<13>

S

R Q

Q

SR LatchSymbol

• SR stands for Set/Reset Latch– Stores one bit of state (Q)

• Control what value is being stored with S, Rinputs– Set: Make the output 1

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

(S = 0, R = 1, Q = 0)

• Must do something to avoidinvalid state (when S = R = 1)

SRLatchSymbol

Page 14: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<14>

D LatchSymbol

CLKD 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

DLatch

Page 15: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<15>

S

R Q

Q

Q

QD

CLKD

R

S

CLKD Q

Q

S R Q QCLK D0 X1 01 1

D

DLatchInternalCircuit

Page 16: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<16>

S

R Q

Q

Q

QD

CLKD

R

S

CLKD Q

Q

S R Q0 0 Qprev0 1 01 0 1

Q

10

CLK D0 X1 01 1

DX10

Qprev

DLatchInternalCircuit

Page 17: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<17>

D Flip-FlopSymbols

D QQ

• 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

DFlip-Flop

Page 18: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<18>

CLKD Q

Q

CLKD Q

QQ

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

DFlip-FlopInternalCircuit

Page 19: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<19>

CLKD Q

QD Q

Q

CLK

D

Q (latch)

Q (flop)

DLatchvs.DFlip-Flop

Page 20: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<20>

CLK

D

Q (latch)

Q (flop)

DLatchvs.DFlip-Flop

CLKD Q

QD Q

Q

Page 21: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<21>

CLK

D Q

D Q

D Q

D Q

D0

D1

D2

D3

Q0

Q1

Q2

Q3

D3:04 4

CLK

Q3:0

Registers

Page 22: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<22>

InternalCircuit

D Q

CLKEN

DQ

0

1D QEN

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

EnabledFlip-Flops

Page 23: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<23>

Symbols

D QReset

r

• Inputs: CLK, D, Reset• Function:

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

ResettableFlip-Flops

Page 24: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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?

ResettableFlip-Flops

Page 25: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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?

ResettableFlip-Flops

InternalCircuit

D Q

CLK

D QReset

Page 26: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<26>

Symbols

D QSet

s

• Inputs: CLK, D, Set• Function:

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

SettableFlip-Flops

Page 27: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<27>

XYZ

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:

SequentialLogic

Page 28: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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

SequentialLogic

XYZ

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

Page 29: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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

SynchronousSequentialLogicDesign

Page 30: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<30>

NextState

CurrentState

S’ S

CLK

CL

Next StateLogic

NextState CL

OutputLogic

Outputs

• Consists of:– State register

• Stores current state • Loads next state at clock edge

– Combinational logic• Computes the next state• Computes the outputs

FiniteStateMachine(FSM)

Page 31: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<31>

CLKM Nk knext

statelogic

outputlogic

Moore FSM

CLKM Nk knext

statelogic

outputlogic

inputs

inputs

outputs

outputsstate

statenextstate

nextstate

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

FiniteStateMachines(FSMs)

Page 32: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<33>

TA

TB

LA

LB

CLK

Reset

TrafficLight

Controller

• Inputs: CLK, Reset, TA, TB

• Outputs: LA, LB

FSMBlackBox

Page 33: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<32>

TA

LA

TA

LB

TB

TB

LA

LB

Academic Ave.

BravadoBlvd.

Dorms

Fields

DiningHall

Labs

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

FSMExample

Page 34: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<34>

S0LA: greenLB: red

Reset

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

FSMStateTransitionDiagram

Page 35: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<35>

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

FSMStateTransitionDiagram

S0LA: greenLB: red

S1LA: yellowLB: red

S3LA: redLB: yellow

S2LA: redLB: green

TATA

TB

TB

Reset

Page 36: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<36>

Current State Inputs

Next State

S TA TB S'S0 0 XS0 1 XS1 X XS2 X 0S2 X 1S3 X X

FSMStateTransitionTable

Page 37: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<37>

Current State Inputs

Next State

S TA TB S'S0 0 X S1S0 1 X S0S1 X X S2S2 X 0 S3S2 X 1 S2S3 X X S0

FSMStateTransitionTable

Page 38: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<38>

Current State Inputs Next StateS1 S0 TA TB S'1 S'00 0 0 X0 0 1 X0 1 X X1 0 X 01 0 X 11 1 X X

State Encoding

S0 00

S1 01

S2 10

S3 11

FSMEncodedStateTransitionTable

Page 39: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<39>

Current State Inputs Next StateS1 S0 TA TB S'1 S'00 0 0 X 0 10 0 1 X 0 00 1 X X 1 01 0 X 0 1 11 0 X 1 1 01 1 X X 0 0

State Encoding

S0 00

S1 01

S2 10

S3 11

S'1 = S1 Å S0

S'0 = S1S0TA + S1S0TB

FSMEncodedStateTransitionTable

Page 40: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<40>

Current State OutputsS1 S0 LA1 LA0 LB1 LB0

0 00 11 01 1

Output Encoding

green 00

yellow 01

red 10

FSMOutputTable

Page 41: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<41>

Current State OutputsS1 S0 LA1 LA0 LB1 LB0

0 0 0 0 1 00 1 0 1 1 01 0 1 0 0 01 1 1 0 0 1

Output Encoding

green 00

yellow 01

red 10

LA1 = S1

LA0 = S1S0

LB1 = S1

LB0 = S1S0

FSMOutputTable

Page 42: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<42>

S1

S0

S'1

S'0

CLK

state register

Resetr

FSMSchematic:StateRegister

Page 43: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<43>

S1

S0

S'1

S'0

CLK

next state logic state register

Reset

TA

TB

inputs

S1 S0

r

FSMSchematic:NextStateLogic

Page 44: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<44>

S1

S0

S'1

S'0

CLK

next state logic output logicstate register

Reset

LA1

LB1

LB0

LA0

TA

TB

inputs outputs

S1 S0

r

FSMSchematic:OutputLogic

Page 45: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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)

??

??

0 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)

S0LA: greenLB: red

S1LA: yellowLB: red

S3LA: redLB: yellow

S2LA: redLB: green

TATA

TB

TB

Reset

FSMTimingDiagram

Page 46: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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

FSMStateEncoding

Page 47: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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.

Moorevs.MealyFSM

Page 48: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<48>

Mealy FSM: arcs indicate input/output

StateTransitionDiagrams

Moore FSMReset

S00

S10

S21

0

0 1

1 01

Reset

S0 S1

1/1

0/0

1/0 0/0

Mealy FSM

Page 49: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<49>

Current State Inputs Next State

S1 S0 A S'1 S'00 0 00 0 10 1 00 1 1

1 0 0

1 0 1

State Encoding

S0 00

S1 01

S2 10

MooreFSMStateTransitionTable

Page 50: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<50>

Current State Inputs Next State

S1 S0 A S'1 S'00 0 0 0 10 0 1 0 00 1 0 0 10 1 1 1 0

1 0 0 0 1

1 0 1 0 0

State Encoding

S0 00

S1 01

S2 10

MooreFSMStateTransitionTable

S1’ = S0A

S0’ = A

Page 51: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<51>

Current State OutputS1 S0 Y0 00 11 0

MooreFSMOutputTable

Page 52: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<52>

Current State OutputS1 S0 Y0 0 00 1 01 0 1

Y = S1

MooreFSMOutputTable

Page 53: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<53>

Current State Input

Next State Output

S0 A S'0 Y0 00 11 01 1

State Encoding

S0 00

S1 01

MealyFSMStateTransition&OutputTable

Page 54: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<54>

Current State Input

Next State Output

S0 A S'0 Y0 0 1 00 1 0 01 0 1 01 1 0 1

State Encoding

S0 00

S1 01

MealyFSMStateTransition&OutputTable

Page 55: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<55>

MooreFSMSchematic

Y

CLK

Reset

A

r

S'0 S0

S'1 S1

Page 56: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<56>

MealyFSMSchematic

S'0 Y

CLK

Reset

A

r

S0

Page 57: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<57>

Moore&MealyTimingDiagram

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 S2S0 S1

1 0 1 1 0 1 1 10

S1

S0 S0?? S0 S1 S0S1

S1 S0

S1

Cycle 11

Page 58: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<58>

• BreakcomplexFSMsintosmallerinteractingFSMs

• Example:ModifytrafficlightcontrollertohaveParadeMode.– Twomoreinputs:P,R–WhenP =1,enterParadeMode&BravadoBlvdlightstaysgreen

–WhenR =1,leaveParadeMode

FactoringStateMachines

Page 59: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<59>

Unfactored FSM

FactoredFSM

ControllerFSMTA

TB

LA

LB

PR

ModeFSM

LightsFSM

P

M

ControllerFSM

TA

TB

LA

LB

R

ParadeFSM

Page 60: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<60>

S0LA: greenLB: red

S1LA: yellow

LB: red

S3LA: red

LB: yellow

S2LA: red

LB: green

TA

TA

TB

TB

Reset

S4LA: greenLB: red

S5LA: yellow

LB: red

S7LA: red

LB: yellow

S6LA: red

LB: green

TA

TA

P

P P

P

P

P

R

R

R

R

R

P

RP

TAP

TAP

P

TAR

TAR

R

TBRTBR

Unfactored FSM

Page 61: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<61>

S0LA: greenLB: red

S1LA: yellow

LB: red

S3LA: red

LB: yellow

S2LA: red

LB: green

TA

TA

M + TB

MTB

Reset

Lights FSM

S0M: 0

S1M: 1

PReset P

Mode FSM

R

R

FactoredFSM

Page 62: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<62>

1. Identify inputs and outputs2. Sketch state transition diagram3. Write state transition table4. Select state encodings5. For Moore machine:

1. Rewrite state transition table with state encodings2. 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 logic8. Sketch the circuit schematic

FSMDesignProcedure

Page 63: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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

Page 64: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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)

InputTimingConstraints

Page 65: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<65>

CLK

tccqtpcq

Q

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

• Contamination delay: tccq = time after clock edge that Qmight be unstable (i.e., start changing)

OutputTimingConstraints

Page 66: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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

DynamicDiscipline

Page 67: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<67>

• Thedelaybetweenregistershasaminimum andmaximum delay,dependentonthedelaysofthecircuitelements

CL

CLKCLK

R1 R2

Q1 D2

(a)

CLK

Q1

D2(b)

Tc

DynamicDiscipline

Page 68: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<68>

• Dependsonthemaximum delayfromregisterR1throughcombinationallogictoR2

• TheinputtoregisterR2mustbestableatleasttsetupbeforeclockedge

CLK

Q1

D2

Tc

tpcq tpd tsetup

CL

CLKCLKQ1 D2

R1 R2Tc ≥

SetupTimeConstraint

Page 69: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<69>

• Dependsonthemaximum delayfromregisterR1throughcombinationallogictoR2

• TheinputtoregisterR2mustbestableatleasttsetupbeforeclockedge

CLK

Q1

D2

Tc

tpcq tpd tsetup

CL

CLKCLKQ1 D2

R1 R2Tc ≥ tpcq + tpd + tsetup

tpd ≤

SetupTimeConstraint

Page 70: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<70>

• Dependsonthemaximum delayfromregisterR1throughcombinationallogictoR2

• TheinputtoregisterR2mustbestableatleasttsetupbeforeclockedge

CLK

Q1

D2

Tc

tpcq tpd tsetup

CL

CLKCLKQ1 D2

R1 R2Tc ≥ tpcq + tpd + tsetup

tpd ≤ Tc – (tpcq + tsetup)

SetupTimeConstraint

(tpcq + tsetup):sequencingoverhead

Page 71: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<71>

• Dependsontheminimum delayfromregisterR1throughthecombinationallogictoR2

• TheinputtoregisterR2mustbestableforatleastthold aftertheclockedge

CLK

Q1

D2tccq tcdthold

CL

CLKCLKQ1 D2

R1 R2thold <

HoldTimeConstraint

Page 72: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<72>

• Dependsontheminimum delayfromregisterR1throughthecombinationallogictoR2

• TheinputtoregisterR2mustbestableforatleastthold aftertheclockedge

CLK

Q1

D2tccq tcdthold

CL

CLKCLKQ1 D2

R1 R2thold < tccq + tcd

tcd >

HoldTimeConstraint

Page 73: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<73>

• Dependsontheminimum delayfromregisterR1throughthecombinationallogictoR2

• TheinputtoregisterR2mustbestableforatleastthold aftertheclockedge

CLK

Q1

D2tccq tcdthold

CL

CLKCLKQ1 D2

R1 R2thold < tccq + tcd

tcd > thold - tccq

HoldTimeConstraint

Page 74: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<74>

CLK CLKA

B

C

D

X'

Y'

X

Y

per g

ate

TimingCharacteristicstccq =30ps

tpcq =50ps

tsetup =60ps

thold =70ps

tpd =35ps

tcd =25pstpd =

tcd =

Setuptimeconstraint:

Tc ≥

fc =

Holdtimeconstraint:

tccq +tcd >thold ?

TimingAnalysis

Page 75: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<75>

CLK CLKA

B

C

D

X'

Y'

X

Y

per g

ate

TimingCharacteristicstccq =30ps

tpcq =50ps

tsetup =60ps

thold =70ps

tpd =35ps

tcd =25pstpd =3x35ps =105ps

tcd =25ps

Setuptimeconstraint:

Tc ≥ (50+105+60)ps =215ps

fc =1/Tc =4.65GHz

Holdtimeconstraint:

tccq +tcd >thold ?

(30+25)ps >70ps ?No!

TimingAnalysis

Page 76: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<76>

per g

ate

TimingCharacteristicstccq =30ps

tpcq =50ps

tsetup =60ps

thold =70ps

tpd =35ps

tcd =25pstpd =

tcd =

Setuptimeconstraint:

Tc ≥

fc =

Holdtimeconstraint:

tccq +tcd >thold ?

TimingAnalysis

CLK CLKA

B

C

D

X'

Y'

X

Y

Addbufferstotheshortpaths:

Page 77: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<77>

per g

ate

TimingCharacteristicstccq =30ps

tpcq =50ps

tsetup =60ps

thold =70ps

tpd =35ps

tcd =25pstpd =3x35ps =105ps

tcd =2x25ps =50ps

Setuptimeconstraint:

Tc ≥ (50+105+60)ps =215ps

fc =1/Tc =4.65GHz

Holdtimeconstraint:

tccq +tcd >thold ?

(30+50)ps >70ps ?Yes!

TimingAnalysis

CLK CLKA

B

C

D

X'

Y'

X

Y

Addbufferstotheshortpaths:

Page 78: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<78>

• Theclockdoesn’tarriveatallregistersatsametime

• Skew: differencebetweentwoclockedges• Performworstcaseanalysistoguaranteedynamic

disciplineisnotviolatedforanyregister– manyregistersinasystem!

t skew

CLK1

CLK2

CL

CLK2CLK1

R1 R2

Q1 D2

CLKdelay

CLK

ClockSkew

Page 79: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<79>

• Intheworstcase,CLK2isearlierthanCLK1

CLK1

Q1

D2

Tc

tpcq tpd tsetuptskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2Tc ≥

SetupTimeConstraintwithSkew

Page 80: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<80>

• Intheworstcase,CLK2isearlierthanCLK1

CLK1

Q1

D2

Tc

tpcq tpd tsetuptskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2Tc ≥ tpcq + tpd + tsetup + tskew

tpd ≤

SetupTimeConstraintwithSkew

Page 81: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<81>

• Intheworstcase,CLK2isearlierthanCLK1

CLK1

Q1

D2

Tc

tpcq tpd tsetuptskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2Tc ≥ tpcq + tpd + tsetup + tskew

tpd ≤ Tc – (tpcq + tsetup + tskew)

SetupTimeConstraintwithSkew

Page 82: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<82>

• Intheworstcase,CLK2islaterthanCLK1

tccq tcd

thold

Q1

D2

tskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2

CLK1tccq + tcd >

HoldTimeConstraintwithSkew

Page 83: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<83>

• Intheworstcase,CLK2islaterthanCLK1

tccq tcd

thold

Q1

D2

tskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2

CLK1tccq + tcd > thold + tskew

tcd >

HoldTimeConstraintwithSkew

Page 84: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<84>

• Intheworstcase,CLK2islaterthanCLK1

tccq tcd

thold

Q1

D2

tskew

CL

CLK2CLK1

R1 R2

Q1 D2

CLK2

CLK1tccq + tcd > thold + tskew

tcd > thold + tskew – tccq

HoldTimeConstraintwithSkew

Page 85: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<85>

CLK

tsetup thold

taperture

D

Q

D

Q

D

Q ???

Cas

e I

Cas

e II

Cas

e III

D Q

CLKbutton

• Asynchronous (for example, user) inputs might violate the dynamic discipline

ViolatingtheDynamicDiscipline

Page 86: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<86>

metastable

stablestable

• 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

Page 87: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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 0T0, τ : properties of the circuit

Flip-FlopInternals

Page 88: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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

Page 89: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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 output Q still being metastable) low

• Synchronizer cannot make the probability of failure 0

Synchronizers

Page 90: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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

or 0

SynchronizerInternals

Page 91: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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)/τ

SynchronizerProbabilityofFailure

Page 92: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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)/τ

SynchronizerMeanTimeBetweenFailures

Page 93: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<93>

D D2 Q

CLK CLK

F1 F2

• Suppose: Tc = 1/500 MHz = 2 ns τ = 200 psT0 = 150 ps tsetup = 100 psN = 10 events per second

• What is the probability of failure? MTBF?

ExampleSynchronizer

Page 94: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<94>

D D2 Q

CLK CLK

F1 F2

• Suppose: Tc = 1/500 MHz = 2 ns τ = 200 psT0 = 150 ps tsetup = 100 psN = 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

ExampleSynchronizer

Page 95: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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

Page 96: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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

ParallelismDefinitions

Page 97: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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?

ParallelismExample

Page 98: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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 hourThroughput = 1 tray/ 1/3 hour = 3 trays/hour

ParallelismExample

Page 99: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<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.

ParallelismExample

Page 100: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<100>

Latency = ?Throughput = ?

SpatialParallelismSpatial

Parallelism Roll

Bake

Ben 1 Ben 1

Alyssa 1 Alyssa 1

Ben 2 Ben 2

Alyssa 2 Alyssa 2

Time

0 5 10 15 20 25 30 35 40 45 50

Tray 1

Tray 2

Tray 3

Tray 4

Latency:time to

first tray

Legend

Page 101: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<101>

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

SpatialParallelismSpatial

Parallelism Roll

Bake

Ben 1 Ben 1

Alyssa 1 Alyssa 1

Ben 2 Ben 2

Alyssa 2 Alyssa 2

Time

0 5 10 15 20 25 30 35 40 45 50

Tray 1

Tray 2

Tray 3

Tray 4

Latency:time to

first tray

Legend

Page 102: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<102>

Temporal

Parallelism Ben 1 Ben 1

Ben 2 Ben 2

Ben 3 Ben 3

Time

0 5 10 15 20 25 30 35 40 45 50

Latency:time to

first tray

Tray 1

Tray 2

Tray 3

Latency = ?Throughput = ?

TemporalParallelism

Page 103: Chapter 3vlsicad.cs.binghamton.edu/~pmadden/courses/cs120/Slides/... · 2019-12-05 · Chapter 3  CLK M next k k N state logic output logic Moore FSM CLK M next k k N state

Chapter3<103>

Temporal

Parallelism Ben 1 Ben 1

Ben 2 Ben 2

Ben 3 Ben 3

Time

0 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 hourThroughput = 1 trays/ 1/4 hour = 4 trays/hour

Using both techniques, the throughput would be 8 trays/hour

TemporalParallelism