Question.8
Which of the following circuits represent a valid 3-bit synchronous MOD-4 counter that counts from decimal 7 to decimal 4?
Required sequence:
111 → 110 → 101 → 100 → 111
Select all correct options.
A counter is a sequential circuit that moves through a fixed sequence of binary states.
Counters are used for:
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 → 000In 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 = 1CLK 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

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.Table 1: Asynchronous Up-Counter Sequence
| Clock Pulse | Q2Q1Q0 | Decimal Count |
|---|---|---|
| 0 | 000 | 0 |
| 1 | 001 | 1 |
| 2 | 010 | 2 |
| 3 | 011 | 3 |
| 4 | 100 | 4 |
| 5 | 101 | 5 |
| 6 | 110 | 6 |
| 7 | 111 | 7 |
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 → 111Circuit Connections
For positive-edge-triggered T flip-flops:
T0 = T1 = T2 = 1CLK 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

Working
Q0 toggles on every rising clock edge.Q1 toggles when Q0 changes from 0 → 1.Q2 toggles when Q1 changes from 0 → 1.Table 2: Asynchronous Down-Counter Sequence
| Clock Pulse | Q2Q1Q0 | Decimal Count |
|---|---|---|
| 0 | 111 | 7 |
| 1 | 110 | 6 |
| 2 | 101 | 5 |
| 3 | 100 | 4 |
| 4 | 011 | 3 |
| 5 | 010 | 2 |
| 6 | 001 | 1 |
| 7 | 000 | 0 |
The counting direction depends on three circuit choices:
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

Table 3: Asynchronous Counter Direction
| Flip-Flop Trigger | Next Clock From | Counter Output From | Count Direction |
|---|---|---|---|
| Positive edge | Q | Q | Down |
| Positive edge | Q | ~Q | Up |
| Positive edge | ~Q | Q | Up |
| Positive edge | ~Q | ~Q | Down |
| Negative edge | Q | Q | Up |
| Negative edge | Q | ~Q | Down |
| Negative edge | ~Q | Q | Down |
| Negative edge | ~Q | ~Q | Up |
Changing either the clock source or the output pins reverses the visible counting direction.
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 ⊕ CFor 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

Table 4: Direction-Control Operation
| C | Next Clock Signal | Direction at Q Outputs |
|---|---|---|
| 0 | Q | Down |
| 1 | ~Q | Up |
Working
When C = 0
Q outputs.Q.When C = 1
~Q outputs.Q falls.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.
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

Table 5: Asynchronous Divider Outputs
| Output | Frequency |
|---|---|
Q0 or ~Q0 | fCLK / 2 |
Q1 or ~Q1 | fCLK / 4 |
Q2 or ~Q2 | fCLK / 8 |
Q3 or ~Q3 | fCLK / 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
The MOD number tells how many valid states a counter uses before repeating.
Examples:
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
A 3-bit counter has eight possible states, but a MOD-6 counter requires only:
000 → 001 → 010 → 011 → 100 → 101 → 000When the temporary state 110 appears:
~CLR becomes LOW.000.Fig. 6: Asynchronous MOD-6 Up Counter

Table 6: MOD-6 State Use
| State | Use |
|---|---|
000 to 101 | Valid counting states |
110 | Detected and cleared |
111 | Normally not reached |
An invalid state can be forced to a valid state by controlling each asynchronous input separately.
For example, to force 101:
1.0.This allows an asynchronous up or down counter to recover to the required starting state.
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
Asynchronous counters are simple, but they are less suitable when all output bits must change together.
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 · Q0Fig. 7: 3-bit Synchronous Up Counter

Table 7: Synchronous Up-Counter State Table
| Present State Q2Q1Q0 | Next State Q2Q1Q0 | T2T1T0 |
|---|---|---|
| 000 | 001 | 001 |
| 001 | 010 | 011 |
| 010 | 011 | 001 |
| 011 | 100 | 111 |
| 100 | 101 | 001 |
| 101 | 110 | 011 |
| 110 | 111 | 001 |
| 111 | 000 | 111 |
Working
Q0 toggles during every active clock edge.Q1 toggles when Q0 = 1.Q2 toggles when Q1Q0 = 11.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 · ~Q0Fig. 8: 3-bit Synchronous Down Counter

Table 8: Synchronous Down-Counter State Table
| Present State Q2Q1Q0 | Next State Q2Q1Q0 | T2T1T0 |
|---|---|---|
| 000 | 111 | 111 |
| 001 | 000 | 001 |
| 010 | 001 | 011 |
| 011 | 010 | 001 |
| 100 | 011 | 111 |
| 101 | 100 | 001 |
| 110 | 101 | 011 |
| 111 | 110 | 001 |
Working
Q0 toggles during every active clock edge.Q1 toggles when Q0 = 0.Q2 toggles when Q1Q0 = 00.A synchronous up-down counter uses a control input C.
In this circuit:
C = 1: Up countingC = 0: Down countingTable 9: Synchronous Up-Down Excitation Table
| Present State | Next State C = 0 | T2T1T0 Down | Next State C = 1 | T2T1T0 Up |
|---|---|---|---|---|
| 000 | 111 | 111 | 001 | 001 |
| 001 | 000 | 001 | 010 | 011 |
| 010 | 001 | 011 | 011 | 001 |
| 011 | 010 | 001 | 100 | 111 |
| 100 | 011 | 111 | 101 | 001 |
| 101 | 100 | 001 | 110 | 011 |
| 110 | 101 | 011 | 111 | 001 |
| 111 | 110 | 001 | 000 | 111 |
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

Working
When C = 1
When C = 0
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
T = Q ⊕ Q(next)Invalid states can be handled using two methods:
1. Don’t Care Method
2. Assigned Recovery-State Method
Table 10: Invalid-State Comparison
| Feature | Don’t Care Method | Assigned Recovery-State Method |
|---|---|---|
| Invalid-state next value | Marked as X | Assigned a valid state |
| Logic equations | Usually simpler | May require more logic |
| Recovery from invalid state | Not guaranteed | Guaranteed |
| Lockout possibility | Possible | Avoided |
| Main use | Small and simple circuits | Reliable or self-correcting counters |
Don’t Care Method
Assigned Recovery-State Method
A MOD-11 down counter uses eleven valid states:
10 → 9 → 8 → 7 → 6 → 5 → 4 → 3 → 2 → 1 → 0 → 10Four 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 State | Decimal | Next State | T3T2T1T0 |
|---|---|---|---|
| 0000 | 0 | 1010 | 1010 |
| 0001 | 1 | 0000 | 0001 |
| 0010 | 2 | 0001 | 0011 |
| 0011 | 3 | 0010 | 0001 |
| 0100 | 4 | 0011 | 0111 |
| 0101 | 5 | 0100 | 0001 |
| 0110 | 6 | 0101 | 0011 |
| 0111 | 7 | 0110 | 0001 |
| 1000 | 8 | 0111 | 1111 |
| 1001 | 9 | 1000 | 0001 |
| 1010 | 10 | 1001 | 0011 |
| 1011 | Invalid | 1010 | 0001 |
| 1100 | Invalid | 1010 | 0110 |
| 1101 | Invalid | 1010 | 0111 |
| 1110 | Invalid | 1010 | 0100 |
| 1111 | Invalid | 1010 | 0101 |
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

Working
1010 to 0000 form the valid down-count sequence.0000, the next state becomes 1010.1011 to 1111, the next clock moves it to 1010.~Reset = 0 keep the circuit lock in 1010 state.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 · Q0Fig. 11: 6-bit Synchronous Frequency Divider Circuit

Table 12: Six-Stage Divider Frequencies
| Output | Frequency |
|---|---|
Q0 or ~Q0 | fCLK / 2 |
Q1 or ~Q1 | fCLK / 4 |
Q2 or ~Q2 | fCLK / 8 |
Q3 or ~Q3 | fCLK / 16 |
Q4 or ~Q4 | fCLK / 32 |
Q5 or ~Q5 | fCLK / 64 |
Working
Q0 toggles during every active clock edge.The output transition does not ripple from one flip-flop to another.
Minimum clock period ≈ tCQ + tlogic(max) + tsetup
A synchronous divider gives more closely aligned output transitions than an asynchronous divider.
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
T = Q ⊕ Q(next)Table 13: Custom Sequence Mapping
| Present State | Required Next State | T-Input Calculation |
|---|---|---|
Q2Q1Q0 | Q2(next)Q1(next)Q0(next) | Present bit ⊕ next bit |
The required sequence is:
000 → 110 → 010 → 101 → 111 → 100 → 011 → 001 → 000This sequence uses all eight possible 3-bit states.
Table 14: Custom Sequence Excitation Table
| Present State | Next State | T2 | T1 | T0 |
|---|---|---|---|---|
| 000 | 110 | 1 | 1 | 0 |
| 001 | 000 | 0 | 0 | 1 |
| 010 | 101 | 1 | 1 | 1 |
| 011 | 001 | 0 | 1 | 0 |
| 100 | 011 | 1 | 1 | 1 |
| 101 | 111 | 0 | 1 | 0 |
| 110 | 010 | 1 | 0 | 0 |
| 111 | 100 | 0 | 1 | 1 |
Reduced Equations
T2 = ~Q0
T1 = ~(Q2 ⊕ Q0) + (Q2 ⊕ Q1)
T0 = Q2 ⊕ Q1 ⊕ Q0Fig. 12: Custom Sequence Generator using T Flip Flops

Working
T2, T1, and T0.001, the sequence returns to 000.