- 2081 Bhadra · 6 marks
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
- Flip-flops: , so 4 JK flip-flops, all with (toggle mode).
- Clocking for positive-edge flip-flops: in an up count a stage must toggle when the previous output falls 1→0. A falling is a rising , so with positive-edge triggering each stage is clocked from the of the previous stage: CLK → FF0, → FF1, → FF2, → FF3.
- Reset logic: count 12 = 1100 must clear the counter. It is the first state with , so
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 .)
Count sequence
| Clock | Q3 Q2 Q1 Q0 | Count |
|---|---|---|
| 0 | 0000 | 0 |
| 1 | 0001 | 1 |
| 4 | 0100 | 4 |
| 8 | 1000 | 8 |
| 11 | 1011 | 11 |
| 12 | 1100 → 0000 | 0 |
Operation and timing
FF0 toggles at every rising clock edge. When falls, 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
is high for counts 8–11, so it gives .
✓ Answer checked by Claude Opus 5.5 (high effort)
Related questions
- Asynchronous mod-12 up counter, positive edge · Digital Logic, chapter 8 · asked 3×
- Asynchronous mod-12 down counter · Digital Logic, chapter 8
- SR equation; mod-5 counter using D flip-flops · Digital Logic, chapter 8
- Ripple counter; asynchronous mod-11 up counter · Digital Logic, chapter 8
- Mod-10 negative edge ripple counter with JK · Digital Logic, chapter 8
- Mod-5 Gray code synchronous up counter · Digital Logic, chapter 8