16 Cascade

Embed Size (px)

Citation preview

  • 8/9/2019 16 Cascade

    1/36

    16

    Page 1ECE 238L 2006

    Cascaded Counters

  • 8/9/2019 16 Cascade

    2/36

    16

    Page 2ECE 238L 2006

    A Mod4 Counter

    (A 2-bit counter)CLR INC Q1 Q0 N1 N0

    0 0 0 0 0 0

    0 0 0 1 0 1

    0 0 1 0 1 0

    0 0 1 1 1 1

    0 1 0 0 0 1

    0 1 0 1 1 00 1 1 0 1 1

    0 1 1 1 0 0

    1 - - - 0 0

    00

    10

    0111

    CLR INC

    CLR INC

    CLR

    CLR INCCLR INC

    CLR INC

    CLR INC

    CLR INC

    CLR INC

  • 8/9/2019 16 Cascade

    3/36

    16

    Page 3ECE 238L 2006

    A Mod4 Counter With a RolloverSignal

    CLR INC Q1 Q0 N1 N0 Rollover

    0 0 0 0 0 0 0

    0 0 0 1 0 1 0

    0 0 1 0 1 0 0

    0 0 1 1 1 1 0

    0 1 0 0 0 1 0

    0 1 0 1 1 0 00 1 1 0 1 1 0

    0 1 1 1 0 0 1

    1 - - - 0 0 0

    00

    10

    0111

    CLR INC

    CLR INC

    CLR

    CLR INCCLR INC

    CLR INC/Rollover

    CLR INC

    CLR INC

    Signal Rollovercan be used to tellother circuitry that counter isrolling over to all 0s

    Mealy output CLR INC

  • 8/9/2019 16 Cascade

    4/36

    16

    Page 4ECE 238L 2006

    Cascading 2 Mod4 Counters

    00

    01

    02

    0310

    11

    12

    13

    20

    21

    22

    23

    3031

    32

    33

    00

    Count sequence

    Mod4Counter

    2

    INCRollover0

    Digit0

    Increment higherdigits counterwhen lower digits

    counter is rollingover

    Digit1 Digit0

    CLR

    Mod4Counter

    2

    Rollover1

    Digit1

    CLR

    clk clk

  • 8/9/2019 16 Cascade

    5/36

    16

    Page 5ECE 238L 2006

    3 Digits Worth

    Mod4Counter

    2

    INCRollover0

    Digit0

    CLR

    Mod4Counter

    2

    Rollover1

    Digit1

    CLR

    Mod4Counter

    2

    Rollover2

    Digit2

    CLR

    Increment higherdigits counterwhen lower digits

    counter is rollingover

    Can do this with any

    counter that hasa Rollover outputCould build a digital watch

    or clock circuit this way withMod60 and Mod24 counters

    clkclkclk

  • 8/9/2019 16 Cascade

    6/36

    16

    Page 6ECE 238L 2006

    Cascading Counters

    A counter will increment only when

    The counter below it is at its terminal countand it is being incremented That isthe definition of the Rolloversignal

    Some people try to tie Rolloverto the clkinput of the next higher counter

    Bad idea Very bad idea Violates our Globally Synchronous policy Doesnt work as intended

  • 8/9/2019 16 Cascade

    7/36

    16

    Page 7ECE 238L 2006

    Mod4

    Counter

    2

    INC=1

    Rollover0

    Digit0

    CLR

    Mod4

    Counter

    2

    Rollover1

    Digit1

    CLR

    clk1clk

    1

    clk

    Digit0 2 0

    Clk1

    (Rollover0)

    3

    Digit1 1 2

    1 2

    Sequence should be:-12-13-20-21-22-23-30-

    but we get:-12-23-20-21-22-33-30-

    ?????

    DO NOT TIE CLKinputs on modulesto anything but theclock !!!!!!

    Even if you tinkeruntilyou get the right countsequence, you mustguarantee that signal

    Rollover0 has no hazards

    Digit0 transition from 1-2makes this difficult ifnot impossible

  • 8/9/2019 16 Cascade

    8/36

    16

    Page 8ECE 238L 2006

    Mod4

    Counter

    2

    INC=1

    Rollover0

    Digit0

    CLR

    Mod4

    Counter

    2

    Rollover1

    Digit1

    CLR

    clk1clk

    1

    clk

    Digit0 2 0

    Clk1

    (Rollover0)

    3

    Digit1 1 2

    1 2

    Sequence should be:-12-13-20-21-22-23-30-

    but we get:-12-23-20-21-22-33-30-

    ?????

    DO NOT TIE CLKinputs on modulesto anything but theclock !!!!!!

    Even if you tinkeruntilyou get the right countsequence, you mustguarantee that signal

    Rollover0 has no hazards

    Digit0 transition from 1-2makes this difficult ifnot impossible

    Possible hazard

  • 8/9/2019 16 Cascade

    9/36

    16

    Page 9ECE 238L 2006

    Ripple Counters

    When you tie a rollover-like signal to a clock

    on the next higher digit

    ripple counter A ripple counter is an ASYNCHRONOUS

    counter

    Transitions are not all synchronized to the clock Different flip flops change at different times

    Similar to gated clocks (seen earlier)

    Asynchronous circuits are an advanced topic

  • 8/9/2019 16 Cascade

    10/36

    16

    Page 10ECE 238L 2006

    Another Common Ripple Counter

    CLK

    T Q

    Q

    1T Q

    Q

    1T Q

    Q

    1T Q

    Q

    1

    Q3 Q2 Q1 Q0

    Sequence is:

    0000

    0001

    0010

    00110100

    0101

    0110

    0111

    10001001

    1010

    1011

    1100

    11011110

    1111

    0000

    So what is the problem?

  • 8/9/2019 16 Cascade

    11/36

    16

    Page 11ECE 238L 2006

    Timing Diagram

    clk

    Q0

    Q1

    Q2

    Q3

    Q0 changes in response to clock edge

    Only after it changes does Q1s FF get a clock

    Only after that does Q2s FF get a clock

    Net effect is that all the FFs change atdifferent times

    Logic depending on Q3 has very little timeto react before next clock edge

  • 8/9/2019 16 Cascade

    12/36

    16

    Page 12ECE 238L 2006

    Do Not Use Asynchronous or Ripple

    Counters

    CLK

    T Q

    Q1T Q

    Q1T Q

    Q1T Q

    Q1

    Q3 Q2 Q1 Q0

    Mod4

    Counter

    2

    INC=1

    Rollover0

    Digit0

    CLR

    Mod4

    Counter

    2

    Rollover1

    Digit1

    CLR

    clk1

    clk

    1

  • 8/9/2019 16 Cascade

    13/36

    16

    Page 13ECE 238L 2006

    Reset

    Reset

    Reset

    00 CEin Reset

    (CEin Reset)/CEout

    CEin ResetCEin Reset

    01

    10

    11

    Mod4 Counter

  • 8/9/2019 16 Cascade

    14/36

    16

    Page 14ECE 238L 2006

    The State Flip- Flop

    Note: Both CLK and CE are requiredto change the flip-flop

  • 8/9/2019 16 Cascade

    15/36

    16

    Page 15ECE 238L 2006

    Mod4 Counter

    CEin Q1 Q0 N1 N0 CEout

    0 0 0 0 0 0

    0 0 1 0 1 0

    0 1 0 1 0 0

    0 1 1 1 1 0

    1 0 0 0 1 0

    1 0 1 1 0 0

    1 1 0 1 1 0

    1 1 1 0 0 1

    Q1Q0 N1

    Ce 00 01 11 10

    0 1 1

    1 1 1

    Q1Q0 N0

    Ce 00 01 11 10

    0 1 1

    1 1 1

    N1 = CeQ1+ Q1Q0 + CeQ1Q0

    N0 = CeQ0+ CeQ0CEout = CeQ1Q0

    Note: No change when CEin=0

  • 8/9/2019 16 Cascade

    16/36

    16

    Page 16ECE 238L 2006

    Mod4 Counter

  • 8/9/2019 16 Cascade

    17/36

    16

    Page 17ECE 238L 2006

    Reset

    CLKin

    Dout

    Next Counter

    CEout

    Stage 2

    increments

    is tooearly

    Cascaded Ripple Counter

  • 8/9/2019 16 Cascade

    18/36

    16

    Page 18ECE 238L 2006

    Cascaded Ripple Counter

    Why is Next Stage increment too early?

    10 11

    00 01

    Stage 1

    CEout

    Stage 2

    CEout from Stage 1 is used as the clockfor Stage 2

    master loads slave loads

  • 8/9/2019 16 Cascade

    19/36

    16

    Page 19ECE 238L 2006

    Cascaded Ripple Counter

    A Ripple Counter is an ASYNCHRONOUS counter

    since its transitions are NOTsynchronized to the

    system clock.

    In a SYNCHRONOUS counter, all stages transition

    with the system clock

  • 8/9/2019 16 Cascade

    20/36

    16

    Page 20ECE 238L 2006

    Reset

    CLKin

    Dout

    Next Counter

    CEout

    Cascaded Synchronous Counter

    Stage 2 isincremented

    at the correcttime

  • 8/9/2019 16 Cascade

    21/36

    16

    Page 21ECE 238L 2006

    10 11

    00 01

    Stage 1

    CEout

    Stage 2

    00

    slave loads slave loadsmaster loadsmaster loads

    Stage 2 master loads

    Stage 2 slave loads

    Cascaded Synchronous Counter

    System

    Clock

  • 8/9/2019 16 Cascade

    22/36

    16

    Page 22ECE 238L 2006

    Stage 1

    Stage 2

    Stage 3

    S

    SA

    A

    Cascaded Counters

    The more stages you add to the counter, the biggerthe discrepancy between Synchronous and Asynchronouscounters

  • 8/9/2019 16 Cascade

    23/36

    16

    Page 23ECE 238L 2006

    Cascaded Synchronous Counter

    Clk

    CEin

    CEin

    Count

    Clk

    CEin

    CEin

    Count

    Clk

    CEin

    CEin

    Count

    1

    CEin controls when the S.M. can change

    CEin also controls when the CEout will be generated

  • 8/9/2019 16 Cascade

    24/36

    16

    Page 24ECE 238L 2006

    Color Code: ClockStage 1

    Stage 2

    Stage 3

    Cascaded Synchronous Counter

    Note that the CEout from each stage is synchronized with thesystem clock and with each other. The stage transitions are allsynchronized with the system clock

    CEout 1

    CEout 2

  • 8/9/2019 16 Cascade

    25/36

    16

    Page 25ECE 238L 2006

    Cascaded Synchronous Counter

    Lesson : Always use SYNCHRONOUS

    counters and timers.

    M d4 C

  • 8/9/2019 16 Cascade

    26/36

    16

    Page 26ECE 238L 2006

    A Mod4 Counter

    D Q

    D Q

    IFL

    Inc

    Terminal

    Count

    Count

    Value

    CLR INC Q1 Q0 N1 N0 RO

    0 0 0 0 0 0 0

    0 0 0 1 0 1 0

    0 0 1 0 1 0 0

    0 0 1 1 1 1 0

    0 1 0 0 0 1 0

    0 1 0 1 1 0 0

    0 1 1 0 1 1 0

    0 1 1 1 0 0 11 - - - 0 0 0

    Clr

    A M d4 C t

  • 8/9/2019 16 Cascade

    27/36

    16

    Page 27ECE 238L 2006

    D Q

    D Q

    IFL

    Inc

    Terminal

    Count

    RollOver

    A Mod4 Counter

    Count

    Value

    You wouldnt really build it like this!

    Clr

    CLR INC Q1 Q0 N1 N0 RO

    0 0 0 0 0 0 0

    0 0 0 1 0 1 0

    0 0 1 0 1 0 0

    0 0 1 1 1 1 0

    0 1 0 0 0 1 0

    0 1 0 1 1 0 0

    0 1 1 0 1 1 0

    0 1 1 1 0 0 11 - - - 0 0 0

    C d d C t

  • 8/9/2019 16 Cascade

    28/36

    16

    Page 28ECE 238L 2006

    Cascaded Counters

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    CV CV CV

    Inc

    Clk

    Clr Clr Clr

    Clr

    C d d C t

  • 8/9/2019 16 Cascade

    29/36

    16

    Page 29ECE 238L 2006

    Cascaded Counters

    Assume that the second timer is already at the terminal count

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    CV CV CV

    Inc

    Clk

    Clr Clr Clr

    Clr

    C s d d C t s

  • 8/9/2019 16 Cascade

    30/36

    16

    Page 30ECE 238L 2006

    Cascaded Counters

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    CV CV CV

    Inc

    Clk

    Clr Clr Clr

    Clr

    C sc d d C unt rs

  • 8/9/2019 16 Cascade

    31/36

    16

    Page 31ECE 238L 2006

    Cascaded Counters

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    CV CV CV

    Inc

    Clk

    Clr Clr Clr

    Clr

    Cascaded Counters

  • 8/9/2019 16 Cascade

    32/36

    16

    Page 32ECE 238L 2006

    Cascaded Counters

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    CV CV CV

    Inc

    Clk

    Clr Clr Clr

    Clr

    Cascaded Counters

  • 8/9/2019 16 Cascade

    33/36

    16

    Page 33ECE 238L 2006

    Cascaded Counters

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    CV CV CV

    Inc

    Clk

    Clr Clr Clr

    Clr

    Cascaded Counters

  • 8/9/2019 16 Cascade

    34/36

    16

    Page 34ECE 238L 2006

    Cascaded Counters

    It looks like the Inc signal will ripple from counter to counter.Why is this any different from the toggle flip-flop example?

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    MOD4

    Inc

    TC

    Clk

    CV CV CV

    Inc

    Clk

    Clr Clr Clr

    Clr

    A Mod4 Counter

  • 8/9/2019 16 Cascade

    35/36

    16

    Page 35ECE 238L 2006

    D Q

    D Q

    IFL

    Inc

    Terminal

    Count

    Roll

    Over

    A Mod4 Counter

    Count

    Value

    The right way!

    Clr

    A Mod4 Counter

  • 8/9/2019 16 Cascade

    36/36

    16

    Page 36ECE 238L 2006

    A Mod4 Counter

    MOD4

    Count

    Value

    Roll

    Over

    Clock

    Clear

    Increment