Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge...

69
Synchronous Sequential Logic Flip-Flops Chapter 5, Digital Design, Mano & Ciletti

Transcript of Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge...

Page 1: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Synchronous Sequential Logic

Flip-Flops

Chapter 5, Digital Design, Mano & Ciletti

Page 2: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Outline

● Flip-Flops, Latches● Latch● Set-Reset Latch (SR Latch)● SR Latch: NOR vs. NAND● SR NAND Latch with Enable● D-Latch

Page 3: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Flip-Flops vs. Latches

● FFs are edge sensitive– Only change state at clock edge

● Latch is a level sensitive sequential circuit

D

FF-

Latch-Q

Page 4: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Terms: Trigger, Transition

● Trigger: A change in the output of a latch/FF as a result of a change in the input– FF is triggered at the positive edge of the clock

– D-latch is triggered every time the En is at logic-1 level.

Page 5: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Terms: Trigger, Transition

● Trigger: A change in the output of a latch/FF as a result of a change in the input– FF is triggered at the positive edge of the clock

– D-latch is triggered every time the En is at logic-1 level.

● Transition– Clock pulse goes through two transitions: from 0 to 1

and the return from 1 to 0.

– FF is triggered at the 0 to 1 (low-to-high) transition of the clock

Page 6: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Level triggered to Edge-Triggered

D

FF-Latch-Q

Requirement: Output must be stable for a full clock cycle

Requirement: Output must be stable for a full clock cycle

Page 7: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Level triggered to Edge-Triggered

D

FF-Latch-Q

Requirement: Output must be stable for a full clock cycle

Requirement: Output must be stable for a full clock cycle

Observe: Output is already stable in the negative cycleObserve: Output is already stable in the negative cycle

Page 8: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Level triggered to Edge-Triggered

D

FF-Latch-Q

Requirement: Output must be stable for a full clock cycle

Requirement: Output must be stable for a full clock cycle

FF- Q

Page 9: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Level triggered to Edge-Triggered

D

FF-Latch-Q

Requirement: Output must be stable for a full clock cycle

Requirement: Output must be stable for a full clock cycle

FF- Q

Negative Edge

Triggered

Negative Edge

Triggered

Page 10: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Level triggered to Edge-Triggered

D

FF-Latch-Q

Capture last stable value before rising edge; Keep it

stable for another half cycle

Capture last stable value before rising edge; Keep it

stable for another half cycle

FF- Q

Page 11: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Level triggered to Edge-Triggered

D

FF-Latch-Q

Capture last stable value before rising edge; Keep it

stable for another half cycle

Capture last stable value before rising edge; Keep it

stable for another half cycle

FF-Q

LatchLatch

Page 12: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Level triggered to Edge-Triggered

D

FF-Latch1 – Q

FF-Latch2 – Q

Page 13: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Level triggered to Edge-Triggered

D

FF-Latch1 – Q

FF-Latch2 – Q

Output of Latch1 is input to Latch 2.

Output of Latch1 is input to Latch 2.

Page 14: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Level triggered to Edge-Triggered

D

FF-Latch1 – Q1

FF-Latch2 – Q2

Latch2 is triggered when C=0. But Q1 is stable during this period.

Latch2 is triggered when C=0. But Q1 is stable during this period.

Output of Latch1 is input to Latch 2.

Output of Latch1 is input to Latch 2.

Page 15: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Negative Edge-Triggered D-FF

Page 16: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Negative Edge-Triggered D-FF

D

Page 17: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Negative Edge-Triggered D-FF

D

Y

Page 18: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Negative Edge-Triggered D-FF

D

Y

Q

Page 19: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Negative Edge-Triggered D-FF

D

Y

Q Slave is transparent atClk Low. Input is constant.

Slave is transparent atClk Low. Input is constant.

Page 20: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Negative Edge-Triggered D-FF

D

Y

Q

Page 21: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Negative Edge-Triggered D-FF

D

Y

QSlave is Opaque at Clk HighSlave is Opaque at Clk High

Page 22: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Negative Edge-Triggered D-FF

D

Y

Q

Page 23: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Negative Edge-Triggered D-FF

D

Y

Q

Page 24: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Negative Edge-Triggered D-FF

D

Y

Q

How to make a positve-edge triggered D-FF?

How to make a positve-edge triggered D-FF?

Page 25: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

FF Construction Summary

● Employ two latches (with opposite trigger behaviour)

Page 26: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

FF Construction Summary

● Employ two latches (with opposite trigger behaviour)– Latch 1 is transparent when Latch 2 is opaque and

vice-versa

Page 27: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

FF Construction Summary

● Employ two latches (with opposite trigger behaviour)– Latch 1 is transparent when Latch 2 is opaque and

vice-versa

– Latch 1 output is fed to Latch 2

Page 28: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

FF Construction Summary

● Employ two latches (with opposite trigger behaviour)– Latch 1 is transparent when Latch 2 is opaque and

vice-versa

– Latch 1 output is fed to Latch 2

– When Latch 1 is opaque, its output is constant. Feed it to Latch 2. Output of FF will be constant.

Page 29: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

Positive Edge-Triggered

Positive Edge-Triggered

Page 30: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

Page 31: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

1

1

Page 32: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

1

1

Maintains previous state

Maintains previous state

Page 33: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

0

D has to be setup before Clk = 1

D has to be setup before Clk = 1

Page 34: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

0

0

Case 1. D=0.Case 1. D=0.

Page 35: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

0

0

1

Page 36: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

0

0

1

1

1

1

Page 37: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

0

0

1

1

1

10

0

Page 38: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

0

0

1

1

1

10

0 1

No change in QNo change in Q

Page 39: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

0

0

1

1

1

10

0 1

Positive edge triggers

Positive edge triggers

Page 40: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

0

1

1

1

1

10

0 1

Page 41: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

0

0

1

1

1

1

10

0 1

Page 42: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

0

0

1

1

1

1

10

0 1

1

1

Page 43: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

0

0

1

1

1

1

10

0 1

1

1

0

Page 44: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

0

0

1

1

1

1

10

0 1

1

1

0

Q follows DQ follows D

Page 45: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

1

0

Case 2. D=1Case 2. D=1

Page 46: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

1

0

01

Page 47: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

1

0

0

0 1

Page 48: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

1

0

0

0 1

Positive edge triggers

Positive edge triggers

Page 49: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

1

1

1

1

0

0 1

1

Page 50: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

1

1

1

0

0 1

Page 51: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

1

1

1

0

0 1

1

Page 52: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

1

1

1

0

0 1

1

0

1

Q follows DQ follows D

Page 53: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

1

1

1

0

0 1

1

0

1

Q is stable after Clk transition

Q is stable after Clk transition

Page 54: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

1

0

1

0

0 1

1

0

Page 55: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

1

0

1

1

1

1

0

1

Page 56: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

1

0

1

1

1

1

0

0

10

Q does not varyQ does not vary

Page 57: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

3 SR Latch – D-FF

0

1

0

1

1

1

1

0

0

10

Transition Clk to 0Transition Clk to 0

Page 58: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

D-Flip Flop

Page 59: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

D-Flip Flop

● Timing of input input data w.r.t clock is important

Page 60: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

D-Flip Flop

● Timing of input input data w.r.t clock is important

● Minimum time before clock transition for D input to be stable: Setup time

Page 61: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

D-Flip Flop

● Timing of input input data w.r.t clock is important

● Minimum time before clock transition for D input to be stable: Setup time

● Minimum time during which the D input must not change after clock transition: Hold time

Page 62: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

D-Flip Flop

● Propagation delay of the FF: interval between the trigger edge and the stabilization of the output to a new state.– Clock-to-Q delay

Page 63: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Flip-Flop Operations

● Three operations on a FF: Set it to 1, Reset it to 0, or Complement output

Page 64: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Flip-Flop Operations

● Three operations on a FF: Set it to 1, Reset it to 0, or Complement output

● D-FF can set or reset output

Page 65: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Flip-Flop Operations

● Three operations on a FF: Set it to 1, Reset it to 0, or Complement output

● D-FF can set or reset output● 2-input JK flip-flop can do all three

Page 66: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Flip-Flop Operations

● Three operations on a FF: Set it to 1, Reset it to 0, or Complement output

● D-FF can set or reset output● 2-input JK flip-flop can do all three● J =1: Set; K=1: Reset; J=K=1, Q is

complemented

Page 67: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Flip-Flop Operations

● Three operations on a FF: Set it to 1, Reset it to 0, or Complement output

● D-FF can set or reset output● 2-input JK flip-flop can do all three● J =1: Set; K=1: Reset; J=K=1, Q is

complemented● Circuit applied to the D input:

Page 68: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

JK FF

Page 69: Flip-Flops · Flip-Flops vs. Latches FFs are edge sensitive – Only change state at clock edge Latch is a level sensitive sequential circuit D FF-Latch-Q

Summary

● Flip-Flops vs. Latches● Latch● Set-Reset Latch (SR Latch)● SR Latch: NOR vs. NAND● SR NAND Latch with Enable● D-Latch