Question 9.5: Develop a synchronous 3-bit up/down counter with a Gray code...
Develop a synchronous 3-bit up/down counter with a Gray code sequence using J-K flip-flops. The counter should count up when an UP/\overline{\text{DOWN}} control input is 1 and count down when the control input is 0.
Learn more on how we answer questions.
Step 1: The state diagram is shown in Figure 9–33. The 1 or 0 beside each arrow indicates the state of the UP/\overline{\text{DOWN}} control input, Y.
Step 2: The next-state table is derived from the state diagram and is shown in Table 9–12. Notice that for each present state there are two possible next states, depending on the UP/\overline{\text{DOWN}} control variable, Y.
Step 3: The transition table for the J-K flip-flops is repeated in Table 9–13.
Step 4: The Karnaugh maps for the J and K inputs of the flip-flops are shown in Figure 9–34. The UP/\overline{\text{DOWN}} control input, Y, is considered one of the state variables along with Q_{0}, Q_{1}, and Q_{2}. Using the next-state table, the information in the “Flip-Flop Inputs” column of Table 9–13 is transferred onto the maps as indicated for each present state of the counter.
Step 5: The 1s are combined in the largest possible groupings, with “don’t cares” (Xs) used where possible. The groups are factored, and the expressions for the J and K inputs are as follows:
J_{0} = Q_{2} Q_{1} Y + Q_{2} \overline{Q}_{1} \overline{Y} + \overline{Q}_{2} \overline{Q}_{1} Y + \overline{Q}_{2} Q_{1} \overline{Y} K_{0} = \overline{Q}_{2} \overline{Q}_{1} \overline{Y} + \overline{Q}_{2} Q_{1} Y + Q_{2} \overline{Q}_{1} Y + Q_{2} Q_{1} \overline{Y}
J_{2} = Q_{1} \overline{Q}_{0} Y + \overline{Q}_{1} \overline{Q}_{0} \overline{Y} K_{2} = Q_{1} \overline{Q}_{0} \overline{Y} + \overline{Q}_{1} \overline{Q}_{0} Y
Step 6: The J and K equations are implemented with combinational logic. This step is the Related Problem.
TABLE 9–12 | ||||||||
Next-state table for 3-bit up/down Gray code counter. | ||||||||
Present State | Next State | |||||||
Y = 0 (DOWN) | Y = 1 (UP) | |||||||
Q_{2} | Q_{1} | Q_{0} | Q_{2} | Q_{1} | Q_{0} | Q_{2} | Q_{1} | Q_{0} |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
Y = UP/\overline{\text{DOWN}} control input.
TABLE 9–13 | ||||
Transition table for a J-K flip-flop. | ||||
Output Transitions | Flip-Flop Inputs | |||
Q_{N} | Q_{N + 1} | J | K | |
0 | \longrightarrow | 0 | 0 | X |
0 | \longrightarrow | 1 | 1 | X |
1 | \longrightarrow | 0 | X | 1 |
1 | \longrightarrow | 1 | X | 0 |

