74. Asynchronous Counters

Question.3

The asynchronous counter circuit shown below uses negative-edge-triggered T flip-flops. Initially, OUT_A = 000 and OUT_B = 111. Which option correctly shows the sequences at OUT_A and OUT_B?

up-and-down-counter
Need Help? Refer to the Quick Guide below

Basic Concept of a Counter

A counter is a sequential circuit that moves through a fixed sequence of binary states.

  • Each active clock edge may advance the stored state according to the counter logic.
  • Flip-flops store the count.
  • An n-bit binary counter has 2ⁿ possible states.

Counters are used for:

  • Counting events
  • Frequency division
  • Timing generation
  • Sequence control
  • Address generation

Asynchronous Up Counter

An asynchronous up counter counts from a smaller value to a larger value.

For a 3-bit counter:

000 → 001 → 010 → 011 → 100 → 101 → 110 → 111 → 000

In an asynchronous counter, only the first flip-flop receives the external clock. Each remaining flip-flop receives its clock from the previous stage.

Circuit Connections

For positive-edge-triggered T flip-flops:

  • T0 = T1 = T2 = 1
  • External CLK is connected to FF0.
  • ~Q0 is connected to the clock of FF1.
  • ~Q1 is connected to the clock of FF2.

Fig. 1: 3-bit Asynchronous Up Counter

3-bit-asynchronous-up-counter

Working

  • Q0 toggles on every rising clock edge.
  • Q1 toggles when Q0 changes from 1 → 0, producing a rising edge at ~Q0.
  • Q2 toggles when Q1 changes from 1 → 0.
  • After the ripple transitions settle, the output count has increased by one.

Table 1: Asynchronous Up-Counter Sequence

Clock PulseQ2Q1Q0Decimal Count
00000
10011
20102
30113
41004
51015
61106
71117

Asynchronous Down Counter

An asynchronous down counter counts from a larger value to a smaller value.

For a 3-bit counter:

111 → 110 → 101 → 100 → 011 → 010 → 001 → 000 → 111

Circuit Connections

For positive-edge-triggered T flip-flops:

  • T0 = T1 = T2 = 1
  • External CLK is connected to FF0.
  • Q0 is connected to the clock of FF1.
  • Q1 is connected to the clock of FF2.

Fig. 2: 3-bit Asynchronous Down Counter

3-bit-asynchronous-down-counter

Working

  • Q0 toggles on every rising clock edge.
  • Q1 toggles when Q0 changes from 0 → 1.
  • Q2 toggles when Q1 changes from 0 → 1.
  • After the ripple transitions settle, the output count has decreased by one.

Table 2: Asynchronous Down-Counter Sequence

Clock PulseQ2Q1Q0Decimal Count
01117
11106
21015
31004
40113
50102
60011
70000

Asynchronous Counter Direction

The counting direction depends on three circuit choices:

  • Flip-flop triggering edge
  • Previous-stage output connected to the next clock
  • Output pins used as the counter output

For a positive-edge-triggered counter using ~Q as the next-stage clock:

  • Q outputs (Out_A) show up counting.
  • ~Q outputs (Out_B) show down counting.

Fig. 3: Asynchronous Counter with Out_A counts up and Out_B counts down

asynchronous-counter-with-out-a-up-count-out-b-up-count

Table 3: Asynchronous Counter Direction

Flip-Flop TriggerNext Clock FromCounter Output FromCount Direction
Positive edgeQQDown
Positive edgeQ~QUp
Positive edge~QQUp
Positive edge~Q~QDown
Negative edgeQQUp
Negative edgeQ~QDown
Negative edge~QQDown
Negative edge~Q~QUp

Changing either the clock source or the output pins reverses the visible counting direction.

Controlled Asynchronous Up-Down Counter

An asynchronous up-down counter uses a control input C to select the counting direction.

An XOR gate is placed between each flip-flop output and the clock input of the next flip-flop.

Connections

For each stage:

CLK(next) = Q ⊕ C

For positive-edge-triggered T flip-flops:

  • C = 0: XOR output follows Q.
  • C = 1: XOR output becomes ~Q.

Fig. 4: Asynchronous Up-Down Counter with control input C

controlled-asynchronous-up-down-counter

Table 4: Direction-Control Operation

CNext Clock SignalDirection at Q Outputs
0QDown
1~QUp

Working

When C = 0

  • The XOR gates pass the Q outputs.
  • Each next stage is triggered by a rising edge at Q.
  • The circuit counts down.

When C = 1

  • The XOR gates produce the ~Q outputs.
  • Each next stage is triggered when the previous Q falls.
  • The circuit counts up.

The direction control C should change only while counting is disabled and all ripple outputs are stable. Changing C can create an unwanted edge at Q ⊕ C and falsely clock the next stage.

Asynchronous Frequency Divider

A T flip-flop with T = 1 divides its clock frequency by two.

Connecting several T flip-flops in a ripple chain produces multiple divided frequencies.

Fig. 5: Asynchronous Frequency Divider Circuit

asynchronous-frequency-divider

Table 5: Asynchronous Divider Outputs

OutputFrequency
Q0 or ~Q0fCLK / 2
Q1 or ~Q1fCLK / 4
Q2 or ~Q2fCLK / 8
Q3 or ~Q3fCLK / 16

For frequency at output Qk, where k = 0, 1, 2, ...:

fQk = fCLK / 2ᵏ⁺¹

For an n-stage counter, the frequency at last output is:

fQ(n−1) = fCLK / 2ⁿ

Working

  • FF0 toggles on every clock pulse.
  • FF1 toggles at half the frequency of FF0.
  • Each additional stage divides the previous frequency by two.

Asynchronous MOD Counters

The MOD number tells how many valid states a counter uses before repeating.

Examples:

  • MOD-4 uses four states.
  • MOD-6 uses six states.
  • MOD-10 uses ten states.

An n-bit binary counter naturally has:

MOD = 2ⁿ

A counter with a smaller MOD value can use asynchronous PRESET and/or CLEAR inputs to redirect unwanted states to a valid state.

Design Method

  1. Find the required number of states.
  2. Select the required number of flip-flops.
  3. Build the normal asynchronous counter.
  4. Identify the first unwanted state.
  5. Decode the unwanted state.
  6. Use ~PRE and/or ~CLR to move the counter to a valid starting state.

Example: MOD-6 Up Counter

A 3-bit counter has eight possible states, but a MOD-6 counter requires only:

000 → 001 → 010 → 011 → 100 → 101 → 000

When the temporary state 110 appears:

  • The state-decoding circuit becomes active.
  • ~CLR becomes LOW.
  • All flip-flops return to 000.

Fig. 6: Asynchronous MOD-6 Up Counter

asynchronous-mod-6-up-counter

Table 6: MOD-6 State Use

StateUse
000 to 101Valid counting states
110Detected and cleared
111Normally not reached

Invalid-State Recovery

An invalid state can be forced to a valid state by controlling each asynchronous input separately.

For example, to force 101:

  • Preset the flip-flops that must become 1.
  • Clear the flip-flops that must become 0.

This allows an asynchronous up or down counter to recover to the required starting state.

Propagation Delay in Asynchronous Counters

Flip-flop outputs in an asynchronous counter do not change at the same time.

The clock transition moves through the counter one stage at a time.

Example

During the change:

011 → 100

The outputs may briefly pass through:

011 → 010 → 000 → 100

These temporary values occur because each flip-flop has a propagation delay.

Total Delay

For an n-bit counter:

Worst-case settling delay ≈ n × flip-flop propagation delay

Effects

  • Temporary incorrect states
  • Decoder glitches
  • Reduced maximum clock frequency
  • Delayed higher-bit outputs

Asynchronous counters are simple, but they are less suitable when all output bits must change together.

Synchronous Up Counter

In a synchronous counter, all flip-flops receive the same clock signal.

A flip-flop toggles only when all lower-order bits are HIGH.

For a 3-bit positive-edge-triggered T counter:

T0 = 1
T1 = Q0
T2 = Q1 · Q0

Fig. 7: 3-bit Synchronous Up Counter

3-bit-synchronous-up-counter

Table 7: Synchronous Up-Counter State Table

Present State Q2Q1Q0Next State Q2Q1Q0T2T1T0
000001001
001010011
010011001
011100111
100101001
101110011
110111001
111000111

Working

  • Q0 toggles during every active clock edge.
  • Q1 toggles when Q0 = 1.
  • Q2 toggles when Q1Q0 = 11.
  • All selected flip-flops toggle together at the active clock edge.

Synchronous Down Counter

A synchronous down counter toggles a higher-order bit when all lower-order bits are LOW.

For a 3-bit positive-edge-triggered T counter:

T0 = 1
T1 = ~Q0
T2 = ~Q1 · ~Q0

Fig. 8: 3-bit Synchronous Down Counter

3-bit-synchronous-down-counter

Table 8: Synchronous Down-Counter State Table

Present State Q2Q1Q0Next State Q2Q1Q0T2T1T0
000111111
001000001
010001011
011010001
100011111
101100001
110101011
111110001

Working

  • Q0 toggles during every active clock edge.
  • Q1 toggles when Q0 = 0.
  • Q2 toggles when Q1Q0 = 00.
  • All selected outputs change together.

Synchronous Up-Down Counter

A synchronous up-down counter uses a control input C.

In this circuit:

  • C = 1: Up counting
  • C = 0: Down counting

Table 9: Synchronous Up-Down Excitation Table

Present StateNext State C = 0T2T1T0 DownNext State C = 1T2T1T0 Up
000111111001001
001000001010011
010001011011001
011010001100111
100011111101001
101100001110011
110101011111001
111110001000111

Reduced Equations

T0 = 1

T1 = C · Q0 + ~C · ~Q0

This can also be written as:

T1 = ~(C ⊕ Q0)

For the third stage:

T2 = C · Q1 · Q0 + ~C · ~Q1 · ~Q0

This can also be written as:

T2 = ~(C ⊕ Q1) · ~(C ⊕ Q0)

[Image: 3-bit-synchronous-up-down-counter (common clock with C-controlled T-input logic)]

Fig. 9: 3-bit Synchronous Up-Down Counter with controlled input C

3-bit-synchronous-up-down-counter

Working

When C = 1

  • Lower bits are checked for HIGH.
  • The circuit follows the up-counting equations.

When C = 0

  • Lower bits are checked for LOW.
  • The circuit follows the down-counting equations.

Synchronous MOD-Counter Design

A synchronous MOD counter uses only the required states from the available binary states.

For M required states, select the smallest number of flip-flops n such that:

2ⁿ ≥ M

Design Method

  1. List the required counting sequence.
  2. Prepare the present-state and next-state table.
  3. Find each T input using: T = Q ⊕ Q(next)
  4. Decide how invalid states should operate.
  5. Simplify the T-input equations.
  6. Build the combinational logic and connect all flip-flops to a common clock.

Invalid-State Operations

Invalid states can be handled using two methods:

1.      Don’t Care Method

2.      Assigned Recovery-State Method

Table 10: Invalid-State Comparison

FeatureDon’t Care MethodAssigned Recovery-State Method
Invalid-state next valueMarked as XAssigned a valid state
Logic equationsUsually simplerMay require more logic
Recovery from invalid stateNot guaranteedGuaranteed
Lockout possibilityPossibleAvoided
Main useSmall and simple circuitsReliable or self-correcting counters

Don’t Care Method

  • Invalid-state entries are treated as X during equation simplification.
  • This reduces logic, but the counter may not recover correctly if noise or startup conditions place it in an invalid state.

Assigned Recovery-State Method

  • Every invalid state is assigned a known valid next state.
  • For example: Invalid State → Initial Valid State
  • This makes the counter self-correcting.

MOD-11 Down Counter

A MOD-11 down counter uses eleven valid states:

10 → 9 → 8 → 7 → 6 → 5 → 4 → 3 → 2 → 1 → 0 → 10

Four T flip-flops are required because:

2³ < 11 ≤ 2⁴

Binary states 1011 to 1111 are invalid. In this design, every invalid state is redirected to 1010, which represents decimal 10.

Table 11: MOD-11 Down-Counter Excitation Table

Present StateDecimalNext StateT3T2T1T0
0000010101010
0001100000001
0010200010011
0011300100001
0100400110111
0101501000001
0110601010011
0111701100001
1000801111111
1001910000001
10101010010011
1011Invalid10100001
1100Invalid10100110
1101Invalid10100111
1110Invalid10100100
1111Invalid10100101

Reduced Equations

T3 = ~Q2 · ~Q1 · ~Q0
T2 = Q2 · Q3 + ~Q1 · ~Q0 · (Q2 + Q3)
T1 = ~Q0 · (~Q2 + ~Q3) + Q2 · Q3 · ~Q1
T0 = Q0 + Q1 · ~Q2 + (Q2 ⊕ Q3)

Fig. 10: Synchronous MOD-11 Down Counter Circuit

synchronous-mod-11-down-counter

Working

  • All flip-flops receive the same positive-edge clock.
  • States 1010 to 0000 form the valid down-count sequence.
  • After 0000, the next state becomes 1010.
  • If the circuit enters 1011 to 1111, the next clock moves it to 1010.
  • ~Reset = 0 keep the circuit lock in 1010 state.

Synchronous Frequency Divider

A synchronous binary up counter can also work as a frequency divider.

All flip-flops receive the same clock, but their T inputs follow the up-counter equations.

For six flip-flops:

T0 = 1
T1 = Q0
T2 = Q1 · Q0
T3 = Q2 · Q1 · Q0
T4 = Q3 · Q2 · Q1 · Q0
T5 = Q4 · Q3 · Q2 · Q1 · Q0

Fig. 11: 6-bit Synchronous Frequency Divider Circuit

six-bit-synchronous-frequency-divider

Table 12: Six-Stage Divider Frequencies

OutputFrequency
Q0 or ~Q0fCLK / 2
Q1 or ~Q1fCLK / 4
Q2 or ~Q2fCLK / 8
Q3 or ~Q3fCLK / 16
Q4 or ~Q4fCLK / 32
Q5 or ~Q5fCLK / 64

Working

  • Q0 toggles during every active clock edge.
  • Each higher output toggles at half the frequency of the previous output.
  • All selected flip-flops update from the same common clock edge.

Propagation Delay at the Outputs

The output transition does not ripple from one flip-flop to another.

  • Each selected output changes after its individual flip-flop clock-to-Q delay.
  • The higher-bit T-input logic must settle before the next active clock edge.
  • The maximum clock frequency is limited by the flip-flop clock-to-Q delay, the longest combinational-logic delay, the setup time, and clock skew.

Minimum clock period ≈ tCQ + tlogic(max) + tsetup

A synchronous divider gives more closely aligned output transitions than an asynchronous divider.

Custom Sequence Generator

A custom sequence generator is a synchronous counter that follows a user-defined order instead of normal binary up or down counting.

Example:

State A → State B → State C → State A

Design Method

  1. Write the required state sequence.
  2. Map each present state to its next state.
  3. Find the T inputs using: T = Q ⊕ Q(next)
  4. Prepare the excitation table.
  5. Simplify the T-input equations.
  6. Build the combinational logic.
  7. Connect all flip-flops to a common clock.

Table 13: Custom Sequence Mapping

Present StateRequired Next StateT-Input Calculation
Q2Q1Q0Q2(next)Q1(next)Q0(next)Present bit ⊕ next bit

Custom Sequence Example

The required sequence is:

000 → 110 → 010 → 101 → 111 → 100 → 011 → 001 → 000

This sequence uses all eight possible 3-bit states.

Table 14: Custom Sequence Excitation Table

Present StateNext StateT2T1T0
000110110
001000001
010101111
011001010
100011111
101111010
110010100
111100011

Reduced Equations

T2 = ~Q0
T1 = ~(Q2 ⊕ Q0) + (Q2 ⊕ Q1)
T0 = Q2 ⊕ Q1 ⊕ Q0

Fig. 12: Custom Sequence Generator using T Flip Flops

custom-sequence-generator-using-t-flip-flops

Working

  • All three T flip-flops receive the same clock.
  • The combinational circuit calculates T2, T1, and T0.
  • At each positive clock edge, the counter moves to the next specified state.
  • After 001, the sequence returns to 000.

 

Select Answer

Restart quiz!