Skip to main content

3-bit Gray code synchronous counter

Short answer

A 3-bit Gray code synchronous counter uses 3 JK flip-flops with a common clock. The sequence is 000→001→011→010→110→111→101→100→000. Input equations: J2=Q1Q0', K2=Q1'Q0'; J1=Q2'Q0, K1=Q2Q0; J0=XNOR(Q2,Q1), K0=XOR(Q2,Q1).

Design and draw the circuit diagram of a 3 bit gray code synchronous counter.

A 3-bit Gray code counter steps through the 3-bit Gray sequence, in which only one bit changes between successive counts: 000 → 001 → 011 → 010 → 110 → 111 → 101 → 100 → 000. A synchronous design with JK flip-flops is given below.

Step 1: Flip-flops

8 states, so 3 JK flip-flops (Q2Q1Q0Q_2Q_1Q_0) with a common clock. No unused states.

JK excitation: 0→0: J=0, K=X; 0→1: J=1, K=X; 1→0: J=X, K=1; 1→1: J=X, K=0.

Step 2: Excitation table

Present Q2Q1Q0Next Q2Q1Q0J2K2J1K1J0K0
0000010X0X1X
0010110X1XX0
0110100XX0X1
0101101XX00X
110111X0X01X
111101X0X1X0
101100X00XX1
100000X10X0X

Step 3: K-maps

J0: Q2 / Q1Q000011110
01XX0
10XX1
K0: Q2 / Q1Q000011110
0X01X
1X10X
J1: Q2 / Q1Q000011110
001XX
100XX
K1: Q2 / Q1Q000011110
0XX00
1XX10
J2: Q2 / Q1Q000011110
00001
1XXXX
K2: Q2 / Q1Q000011110
0XXXX
11000

Step 4: Equations

J2=Q1Q0‾,K2=Q1‾Q0‾J1=Q2‾Q0,K1=Q2Q0J0=Q2Q1+Q2‾Q1‾,K0=Q2Q1‾+Q2‾Q1\begin{aligned} &J_2 = Q_1\overline{Q_0},\quad K_2 = \overline{Q_1}\overline{Q_0} \\ &J_1 = \overline{Q_2}Q_0,\quad K_1 = Q_2Q_0 \\ &J_0 = Q_2Q_1 + \overline{Q_2}\overline{Q_1},\quad K_0 = Q_2\overline{Q_1} + \overline{Q_2}Q_1 \end{aligned}

So J0=Q2⊕Q1‾J_0 = \overline{Q_2 \oplus Q_1} (XNOR) and K0=Q2⊕Q1K_0 = Q_2 \oplus Q_1 (XOR).

Step 5: Circuit diagram

   +-----+       +-----+       +-----+
J0>|J   Q|-Q0 J1>|J   Q|-Q1 J2>|J   Q|-Q2
   | FF0 |       | FF1 |       | FF2 |
K0>|K    |    K1>|K    |    K2>|K    |
   +--o--+       +--o--+       +--o--+
      |             |             |
CLK---+-------------+-------------+
J0 = XNOR(Q2,Q1)   K0 = XOR(Q2,Q1)
J1 = Q2'.Q0        K1 = Q2.Q0
J2 = Q1.Q0'        K2 = Q1'.Q0'

Gates needed: one XOR, one XNOR (or XOR + NOT) and four 2-input AND gates.

Step 6: Timing diagram

CLK  __|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾
Q2   ________________|‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾|___
Q1   ________|‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾|___________
Q0   ____|‾‾‾‾‾‾‾|_______|‾‾‾‾‾‾‾|_______
Cnt  000  001 011 010 110 111 101 100 000

Only one output changes at each clock edge, which is the main advantage of a Gray code counter (no decoding glitches, low noise).

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Logic chapter 8 questions →