Skip to main content

Asynchronous mod-12 up counter using JK

Short answer

Use four positive-edge JK flip-flops with J=K=1. Clock FF0 from CLK; clock FF1, FF2, FF3 from Q0', Q1', Q2'. A NAND of Q3 and Q2 drives active-low clear to reset at count 12 (1100), so the counter cycles 0–11.

Build the design of an asynchronous mod-12 up-counter with positive edge triggering clock and use JK flip-flops.

An asynchronous mod-12 up counter counts 0 to 11 and returns to 0 on the 12th clock pulse. Only FF0 is driven by the clock; the other flip-flops are driven by the previous stage.

Design steps

  1. Flip-flops: 24=16≥122^4 = 16 \ge 12, so 4 JK flip-flops, all with J=K=1J = K = 1 (toggle mode).
  2. Clocking for positive-edge flip-flops: in an up count a stage must toggle when the previous output falls 1→0. A falling QQ is a rising Q‾\overline{Q}, so with positive-edge triggering each stage is clocked from the Q‾\overline{Q} of the previous stage: CLK → FF0, Q0‾\overline{Q_0} → FF1, Q1‾\overline{Q_1} → FF2, Q2‾\overline{Q_2} → FF3.
  3. Reset logic: count 12 = 1100 must clear the counter. It is the first state with Q3=Q2=1Q_3 = Q_2 = 1, so
CLR‾=Q3 Q2‾\overline{CLR} = \overline{Q_3\,Q_2}

A 2-input NAND gate feeds the active-low CLEAR of all four flip-flops.

Circuit diagram

     J=K=1       J=K=1       J=K=1       J=K=1
    +-----+     +-----+     +-----+     +-----+
CLK-> FF0 |Q0'-> FF1 |Q1'-> FF2 |Q2'-> FF3 |Q3
    +--o--+     +--o--+     +--o--+     +--o--+
      CLR         CLR         CLR         CLR

Q3  ---|      |
       | NAND |o--> CLR of all FFs (active low)
Q2  ---|      |

(">" marks a positive-edge clock input; the count is read from Q3Q2Q1Q0Q_3Q_2Q_1Q_0.)

Count sequence

ClockQ3 Q2 Q1 Q0Count
000000
100011
401004
810008
11101111
121100 → 00000

Operation and timing

FF0 toggles at every rising clock edge. When Q0Q_0 falls, Q0‾\overline{Q_0} rises and toggles FF1, and so on, giving an up count. On the 12th rising edge the counter reaches 1100, the NAND output goes low and clears all flip-flops to 0000.

CLK  __|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾
Q3   ______________________________|‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾|_____
Q2   ______________|‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾|_____________________
Q1   ______|‾‾‾‾‾‾‾|_______|‾‾‾‾‾‾‾|_______|‾‾‾‾‾‾‾|_____
Q0   __|‾‾‾|___|‾‾‾|___|‾‾‾|___|‾‾‾|___|‾‾‾|___|‾‾‾|_____
Cnt  0  1   2   3   4   5   6   7   8   9   10  11  0

Q3Q_3 is high for counts 8–11, so it gives fclk/12f_{clk}/12.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Logic chapter 8 questions →