39
FLB 20203 DIGITAL SYSTEMS Asynchronous Counters with MOD number < 2^n 1 Topic 8: Sequential Logic Counters

Topic 8 Counters

Embed Size (px)

Citation preview

Page 1: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 1

Topic 8:

Sequential Logic Counters

Page 2: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 2

Counters

Introduction: Counters

Asynchronous (Ripple) Counters

Asynchronous Counters with MOD number < 2n

Asynchronous Down Counters

Cascading Asynchronous Counters

Page 3: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 3

Synchronous (Parallel) Counters

Up/Down Synchronous Counters

Designing Synchronous Counters

Decoding A Counter

Counters with Parallel Load

Page 4: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 4

Introduction: Counters

Counters are circuits that cycle through a specified number of states.

Two types of counters:synchronous (parallel) countersasynchronous (ripple) counters

Ripple counters allow some flip-flop outputs to be used as a source of clock for other flip-flops.

Synchronous counters apply the same clock to all flip-flops.

Page 5: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 5

Asynchronous (Ripple) Counters

Asynchronous counters: the flip-flops do not change states at exactly the same time as they do not have a common clock pulse.Also known as ripple counters, as the input clock pulse “ripples” through the counter – cumulative delay is a drawback.n flip-flops → a MOD (modulus) 2n counter. (Note: A MOD-x counter cycles through x states.)Output of the last flip-flop (MSB) divides the input clock frequency by the MOD number of the counter, hence a counter is also a frequency divider.

Page 6: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 6

Asynchronous (Ripple) Counters

Example: 2-bit ripple binary counter.

Output of one flip-flop is connected to the clock input of the next more-significant flip-flop.

K

J

K

J

HIGH

Q0 Q1

Q0

FF1FF0

CLK CC

Timing diagram

00 → 01 → 10 → 11 → 00 ...

4321CLK

Q0

Q0

Q1

1 1

1 1

0

0 0

0 0

0

Page 7: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 7

Asynchronous (Ripple) Counters

Example: 3-bit ripple binary counter.

K

J

K

JQ0 Q1

Q0

FF1FF0

CCK

J

Q1C

FF2

Q2

CLK

HIGH

4321CLK

Q0

Q1

1 1

1 1

0

0 0

0 0

0

8765

1 10 0

1 10 0

Q2 0 00 0 1 1 11 0

Recycles back to 0

Page 8: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 8

Asynchronous (Ripple) Counters

Propagation delays in an asynchronous (ripple-clocked) binary counter.If the accumulated delay is greater than the clock pulse, some counter states may be misrepresented!

4321CLK

Q0

Q1

Q2

tPLH(CLK to Q0)

tPHL (CLK to Q0)tPLH (Q0 to Q1)

tPHL (CLK to Q0)tPHL (Q0 to Q1)tPLH (Q1 to Q2)

Page 9: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 9

Asynchronous (Ripple) Counters

Example: 4-bit ripple binary counter (negative-edge triggered).

K

J

K

J Q1Q0

FF1FF0

CCK

JC

FF2

Q2

CLK

HIGH

K

J

C

FF3

Q3

CLK1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Q0

Q1

Q2

Q3

Page 10: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 10

Asyn. Counters with MOD no. < 2n

States may be skipped resulting in a truncated sequence.

Technique: force counter to recycle before going through all of the states in the binary sequence.

Example: Given the following circuit, determine the counting sequence (and hence the modulus no.)

K

JQ

QCLK

CLRK

JQ

QCLK

CLRK

JQ

QCLK

CLR

C B A

BC

All J, Kinputs are 1 (HIGH).

Page 11: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 11

Asyn. Counters with MOD no. < 2n

Example (cont’d):

K

JQ

QCLK

CLRK

JQ

QCLK

CLRK

JQ

QCLK

CLR

C B A

BC

All J, Kinputs are 1 (HIGH).

A

B

1 2

C

NANDOutput

10

3 4 5 6 7 8 9 10 11 12Clock MOD-6 counter

produced by clearing (a MOD-8 binary counter) when count of six (110) occurs.

Page 12: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 12

Asyn. Counters with MOD no. < 2n

Example (cont’d): Counting sequence of circuit (in CBA order).

A

BC

NANDOutput

10

1 2 3 4 5 6 7 8 9 10 11 12Clock

0

0

0

1

0

0

0

1

0

1

1

0

0

0

1

1

0

1

0

0

0

1

0

0

111 000001

110

101100

010

011

Temporary state Counter is a MOD-6

counter.

Page 13: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 13

Asyn. Counters with MOD no. < 2n

Exercise: How to construct an asynchronous MOD-5 counter? MOD-7 counter? MOD-12 counter?

Question: The following is a MOD-? counter?

K

JQ

QCLR

C B A

CDEF All J = K = 1.

K

JQ

QCLR

K

JQ

QCLR

K

JQ

QCLR

K

JQ

QCLR

K

JQ

QCLR

DEF

Page 14: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 14

Asyn. Counters with MOD no. < 2n

Decade counters (or BCD counters) are counters with 10 states (modulus-10) in their sequence. They are commonly used in daily life (e.g.: utility meters, odometers, etc.).Design an asynchronous decade counter.

D

CLK

HIGH

K

J

C

CLR

Q

K

J

C

CLR

QC

K

J

C

CLR

QB

K

J

C

CLR

QA

(A.C)'

Page 15: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 15

Asyn. Counters with MOD no. < 2n

Asynchronous decade/BCD counter (cont’d).

D

CLK

HIGH

K

JC

CLR

Q

K

JC

CLR

QC

K

JC

CLR

QB

K

JC

CLR

QA (A.C)'

D

C

1 2

B

NAND output

3 4 5 6 7 8 9 10Clock

11

A

0

0

0

0

1

0

0

0

0

1

0

0

1

1

0

0

0

0

1

0

1

0

1

0

0

1

1

0

1

1

1

0

0

0

0

1

1

0

0

1

0

0

0

0

Page 16: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 16

Asynchronous Down Counters

So far we are dealing with up counters. Down counters, on the other hand, count downward from a maximum value to zero, and repeat.Example: A 3-bit binary (MOD-23) down counter.

K

J

K

J Q1Q0

CCK

JC

Q2

CLK

1

Q

Q'

Q

Q'

Q

Q'

Q

Q'

3-bit binary up counter

1

K

J

K

J Q1Q0

CCK

JC

Q2

CLKQ

Q'

Q

Q'

Q

Q'

Q

Q'

3-bit binary down counter

Page 17: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 17

Asynchronous Down Counters

Example: A 3-bit binary (MOD-8) down counter.

001000

111

010

011100

110

101

1

K

J

K

J Q1Q0

CCK

JC

Q2

CLKQ

Q'

Q

Q'

Q

Q'

Q

Q'

4321CLK

Q0

Q1

1 1

1 0

0

0 1

0 0

0

8765

1 10 0

1 01 0

Q2 1 10 1 1 0 00 0

Page 18: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 18

Cascading Asynchronous Counters

Larger asynchronous (ripple) counter can be constructed by cascading smaller ripple counters.Connect last-stage output of one counter to the clock input of next counter so as to achieve higher-modulus operation.Example: A modulus-32 ripple counter constructed from a modulus-4 counter and a modulus-8 counter.

K

J

K

J

Q1Q0

CCCLKQ

Q'

Q

Q'

Q

Q' K

J

K

J

Q3Q2

CCK

JC

Q4

Q

Q'

Q

Q'

Q

Q'

Q

Q'

Modulus-4 counter Modulus-8 counter

Page 19: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 19

Cascading Asynchronous Counters

Example: A 6-bit binary counter (counts from 0 to 63) constructed from two 3-bit counters.

3-bit binary counter

3-bit binary counter

Count pulse

A0 A1 A2 A3 A4 A5

A5 A4 A3 A2 A1 A0

0 0 0 0 0 00 0 0 0 0 10 0 0 : : :0 0 0 1 1 10 0 1 0 0 00 0 1 0 0 1: : : : : :

Page 20: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 20

Cascading Asynchronous Counters

If counter is a not a binary counter, requires additional output.

Example: A modulus-100 counter using two decade counters.

CLK

Decade counterQ3 Q2 Q1 Q0

C

CTENTC

1 Decade counterQ3 Q2 Q1 Q0

C

CTENTC

freq

freq/10freq/100

TC = 1 when counter recycles to 0000

Page 21: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 21

Synchronous (Parallel) Counters

Synchronous (parallel) counters: the flip-flops are clocked at the same time by a common clock pulse.

We can design these counters using the sequential logic design process.

Example: 2-bit synchronous binary counter (using T flip-flops, or JK flip-flops with identical J,K inputs).

Present Next Flip-flopstate state inputs

A1 A0 A1+ A0

+ TA1 TA0

0 0 0 1 0 10 1 1 0 1 11 0 1 1 0 11 1 0 0 1 1

0100

1011

Page 22: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 22

Synchronous (Parallel) Counters

Example: 2-bit synchronous binary counter (using T flip-flops, or JK flip-flops with identical J,K inputs).

Present Next Flip-flopstate state inputs

A1 A0 A1+ A0

+ TA1 TA0

0 0 0 1 0 10 1 1 0 1 11 0 1 1 0 11 1 0 0 1 1

TA1 = A0

TA0 = 1

1

K

J

K

J A1A0

CC

CLK

Q

Q'

Q

Q'

Q

Q'

Page 23: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 23

Synchronous (Parallel) Counters

Example: 3-bit synchronous binary counter (using T flip-flops, or JK flip-flops with identical J, K inputs).

Present Next Flip-flopstate state inputs

A2 A1 A0 A2+ A1

+ A0+ TA2 TA1 TA0

0 0 0 0 0 1 0 0 10 0 1 0 1 0 0 1 10 1 0 0 1 1 0 0 10 1 1 1 0 0 1 1 11 0 0 1 0 1 0 0 11 0 1 1 1 0 0 1 11 1 0 1 1 1 0 0 11 1 1 0 0 0 1 1 1

TA2 = A1.A0

A2

A1

A0

11

TA1 = A0 TA0 = 1

A2

A1

A0

11 1

1

A2

A1

A0

1 1 111 1 1

1

Page 24: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 24

Synchronous (Parallel) Counters

Example: 3-bit synchronous binary counter (cont’d).

TA2 = A1.A0 TA1 = A0 TA0 = 1

1

A2

CP

A1 A0

KQ

J KQ

J KQ

J

Page 25: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 25

Synchronous (Parallel) Counters

Note that in a binary counter, the nth bit (shown underlined) is always complemented whenever

011…11 → 100…00

or 111…11 → 000…00Hence, Xn is complemented whenever

Xn-1Xn-2 ... X1X0 = 11…11.

As a result, if T flip-flops are used, then TXn = Xn-1 . Xn-2 . ... . X1 . X0

Page 26: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 26

Synchronous (Parallel) Counters

Example: 4-bit synchronous binary counter.TA3 = A2 . A1 . A0

TA2 = A1 . A0

TA1 = A0

TA0 = 1 1

K

J

K

J A1A0

CC

CLK

Q

Q'

Q

Q'

Q

Q' K

J A2

CQ

Q' K

J A3

CQ

Q'

A1.A0 A2.A1.A0

Page 27: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 27

Synchronous (Parallel) Counters

Example: Synchronous decade/BCD counter.

Clock pulse Q3 Q2 Q1 Q0

Initially 0 0 0 01 0 0 0 12 0 0 1 03 0 0 1 14 0 1 0 05 0 1 0 16 0 1 1 07 0 1 1 18 1 0 0 09 1 0 0 1

10 (recycle) 0 0 0 0

T0 = 1

T1 = Q3'.Q0

T2 = Q1.Q0

T3 = Q2.Q1.Q0 + Q3.Q0

Page 28: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 28

Synchronous (Parallel) Counters

Example: Synchronous decade/BCD counter (cont’d).

T0 = 1T1 = Q3'.Q0

T2 = Q1.Q0

T3 = Q2.Q1.Q0 + Q3.Q0

1 Q1

Q0

CLK

TC

Q

Q'

Q

Q'

Q2 Q3TC

Q

Q'

Q

Q'

TC

Q

Q'

Q

Q'

TC

Q

Q'

Q

Q'

Page 29: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 29

Up/Down Synchronous Counters

Up/down synchronous counter: a bidirectional counter that is capable of counting either up or down.

An input (control) line Up/Down (or simply Up) specifies the direction of counting.

Up/Down = 1 → Count upward

Up/Down = 0 → Count downward

Page 30: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 30

Up/Down Synchronous Counters

Example: A 3-bit up/down synchronous binary counter.Clock pulse Up Q2 Q1 Q0 Down

0 0 0 01 0 0 12 0 1 03 0 1 14 1 0 05 1 0 16 1 1 07 1 1 1

Up counterTQ0 = 1TQ1 = Q0

TQ2 = Q0.Q1

Down counterTQ0 = 1TQ1 = Q0’TQ2 = Q0’.Q1’

TQ0 = 1TQ1 = (Q0.Up) + (Q0'.Up' )TQ2 = ( Q0.Q1.Up ) + (Q0'. Q1'. Up' )

Page 31: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 31

Up/Down Synchronous Counters

Example: A 3-bit up/down synchronous binary counter (cont’d).

TQ0 = 1TQ1 = (Q0.Up) + (Q0'.Up' )TQ2 = ( Q0.Q1.Up ) + (Q0'. Q1'. Up' )

1

Q1Q0

CLK

TC

Q

Q'

Q

Q'

TC

Q

Q'

Q

Q'

TC

Q

Q'

Q

Q'Up

Q2

Page 32: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 32

Designing Synchronous Counters

100000

001

101

111110

011

010

Covered in Lecture #12.

Example: A 3-bit Gray code counter (using JK flip-flops).

Present Next Flip-flopstate state inputs

Q2 Q1 Q0 Q2+ Q1

+ Q0+ JQ2 KQ2 JQ1 KQ1 JQ0 KQ0

0 0 0 0 0 1 0 X 0 X 1 X0 0 1 0 1 1 0 X 1 X X 00 1 0 1 1 0 1 X X 0 0 X0 1 1 0 1 0 0 X X 0 X 11 0 0 0 0 0 X 1 0 X 0 X1 0 1 1 0 0 X 0 0 X X 11 1 0 1 1 1 X 0 X 0 1 X1 1 1 1 0 1 X 0 X 1 X 0

Page 33: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 33

Designing Synchronous Counters

3-bit Gray code counter: flip-flop inputs.

0

1

00 01 11 10Q2

Q1Q0

X XX X1

JQ1 = Q2'.Q0

0

1

00 01 11 10Q2

Q1Q0

X X X X1

JQ2 = Q1.Q0'

0

1

00 01 11 10Q2

Q1Q0

X X X X1

KQ2 = Q1'.Q0'

0

1

00 01 11 10Q2

Q1Q0

X XX X

1

KQ1 = Q2.Q0

0

1

00 01 11 10Q2

Q1Q0

XXXX1

JQ0 = Q2.Q1 + Q2'.Q1'= (Q2 ⊕ Q1)'

1

0

1

00 01 11 10Q2

Q1Q0

XXXX 1

1

KQ0 = Q2.Q1' + Q2'.Q1= Q2 ⊕ Q1

Page 34: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 34

Decoding A Counter

Decoding a counter involves determining which state in the sequence the counter is in.Differentiate between active-HIGH and active-LOWdecoding.Active-HIGH decoding: output HIGH if the counter is in the state concerned.Active-LOW decoding: output LOW if the counter is in the state concerned.

Page 35: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 35

Decoding A Counter

Example: MOD-8 ripple counter (active-HIGH decoding).

1 2 3 4 5 6 7 8 9

A'B'C'

Clock100

HIGH only on count of ABC = 000

A'B'C

HIGH only on count of ABC = 001

A'BC'

HIGH only on count of ABC = 010

...ABC

HIGH only on count of ABC = 111

Page 36: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 36

Decoding A Counter

Example: To detect that a MOD-8 counter is in state 0 (000) or state 1 (001).

A'B'

1 2 3 4 5 6 7 8 9Clock

HIGH only on count of ABC = 000 or ABC = 001

100A'B'C'A'B'C

Example: To detect that a MOD-8 counter is in the odd states (states 1, 3, 5 or 7), simply use C.

C

1 2 3 4 5 6 7 8 9Clock

HIGH only on count of odd states

100

Page 37: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 37

Counters with Parallel Load

Counters could be augmented with parallel load capability for the following purposes:

To start at a different stateTo count a different sequenceAs more sophisticated register with increment/decrement functionality.

Page 38: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 38

Counters with Parallel Load

Different ways of getting a MOD-6 counter:

Count = 1Load = 0CPI4 I3 I2 I1

Count = 1Clear = 1CP

A4 A3 A2 A1

Inputs = 0

Load

(a) Binary states 0,1,2,3,4,5.

I4 I3 I2 I1

A4 A3 A2 A1

Inputs have no effect

Clear

(b) Binary states 0,1,2,3,4,5.

I4 I3 I2 I1

Count = 1Clear = 1CP

A4 A3 A2 A1

0 0 1 1

Load

(d) Binary states 3,4,5,6,7,8.

I4 I3 I2 I1

Count = 1Clear = 1CP

A4 A3 A2 A1

1 0 1 0

Load

Carry-out

(c) Binary states 10,11,12,13,14,15.

Page 39: Topic 8 Counters

FLB 20203 DIGITAL SYSTEMS

Asynchronous Counters with MOD number < 2^n 39

Counters with Parallel Load

4-bit counter with parallel load.

Clear CP Load Count Function0 X X X Clear to 01 X 0 0 No change1 ↑ 1 X Load inputs1 ↑ 0 1 Next state