
Bidirectional counters, also referred to as UP/DOWN counters, are capable of progressing in either direction through any given count sequence. Recall that in general, bidirectional counters can be reversed at any point in their count sequence. Let us now examine the design of a synchronous 3-bit binary bidirectional counter.
The state transition diagram in Figure 3c shows the count sequence information, note that because the counter can be reversed at any point in its count sequence a double headed arrow is used to represent the state transitions.
Figure 3c: State Diagram for 3-bit bidirectional counter
The present state-next state information, which is extracted from the state transition diagram, is indicated in the table below.

Using the present state inputs the logic functions for the flip-flop inputs are determined. For example lets consider how J2 is determined.
Q2
Q1
Q0
Y
Flop-Flop present state
0=down 1=up
J2K2
J1K1
J0K0
0 -> 1
0 -> 1
0 -> 1
0
1X
1X
1X
0 -> 0
0 -> 0
0 -> 1
1
0X
0X
1X
0 -> 0
0 -> 0
1 -> 0
0
0X
0X
X1
0 -> 0
0 -> 1
1 -> 0
1
0X
1X
X1
0 -> 0
1 -> 0
0 -> 1
0
0X
X1
1X
0 -> 0
1 -> 1
0 -> 1
1
0X
X0
1X
0 -> 0
1 -> 1
1 -> 0
0
0X
X0
X1
0 -> 1
1 -> 0
1 -> 0
1
1X
X1
X1
1 -> 0
0 -> 1
0 -> 1
0
X1
1X
1X
1 -> 1
0 -> 0
0 -> 1
1
X0
0X
1X
1 -> 1
0 -> 0
1 -> 0
0
X0
0X
X1
1 -> 1
0 -> 1
1 -> 0
1
X0
1X
X1
1 -> 1
1 -> 0
0 -> 1
0
X0
X1
1X
1 -> 1
1 -> 1
0 -> 1
1
X0
X0
1X
1 -> 1
1 -> 1
1 -> 0
0
X0
X0
X1
1 -> 0
1 -> 0
1 -> 0
1
X1
X1
X1
Based on the groupings in the K-Map we get: ![]()

Using the same approach for all the input variables we ultimately determine that:
| |
| |
|
Finally, we may now design the logic circuit
for the bidirectional counter as shown below. NB: ![]()

Copyright © Adrian Als , 1999
This page was last modified: Wednesday, April 12, 2000