Skip to main content

Sync vs async; mod-12 synchronous counter

Short answer

Synchronous circuits use a common clock; asynchronous change with inputs. A mod-12 synchronous counter uses four JK flip-flops. J0=K0=1, J1=K1=Q0, J2=Q3'Q1Q0, K2=Q1Q0, J3=Q2Q1Q0, K3=Q1Q0. It counts 0-11 then resets. The timing diagram shows Q0 toggling each clock, with Q3 high for counts 8-11.

Differentiate synchronous and asynchronous sequential circuits. Explain the operation of mod-12 synchronous counter with timing diagram.

Synchronous vs asynchronous sequential circuits

PointSynchronousAsynchronous
TimingState changes only at clock edgesState changes whenever inputs change
ClockCommon clock to all flip-flopsNo common clock
Memory elementsClocked flip-flopsUnclocked latches or gate delays (or FFs clocked by other FFs)
SpeedLimited by clock frequencyCan be faster
ProblemsClock skewRaces, hazards, false states
DesignEasier, systematicHarder
ExampleSynchronous counterRipple counter

Mod-12 synchronous counter

It counts 0000 to 1011 (0–11) and returns to 0000. Four JK flip-flops share a common clock; states 1100–1111 are don't cares.

Excitation table

Present Q3Q2Q1Q0Next Q3Q2Q1Q0J3K3J2K2J1K1J0K0
000000010X0X0X1X
000100100X0X1XX1
001000110X0XX01X
001101000X1XX1X1
010001010XX00X1X
010101100XX01XX1
011001110XX0X01X
011110001XX1X1X1
10001001X00X0X1X
10011010X00X1XX1
10101011X00XX01X
10110000X10XX1X1

Equations (from K-maps)

J3=Q2Q1Q0,K3=Q1Q0J2=Q3‾Q1Q0,K2=Q1Q0J1=Q0,K1=Q0J0=1,K0=1\begin{aligned} &J_3 = Q_2Q_1Q_0,\quad K_3 = Q_1Q_0 \\ &J_2 = \overline{Q_3}Q_1Q_0,\quad K_2 = Q_1Q_0 \\ &J_1 = Q_0,\quad K_1 = Q_0 \\ &J_0 = 1,\quad K_0 = 1 \end{aligned}

Circuit diagram

   +-----+       +-----+       +-----+       +-----+
J0>|J   Q|-Q0 J1>|J   Q|-Q1 J2>|J   Q|-Q2 J3>|J   Q|-Q3
   | FF0 |       | FF1 |       | FF2 |       | FF3 |
K0>|K    |    K1>|K    |    K2>|K    |    K3>|K    |
   +--o--+       +--o--+       +--o--+       +--o--+
      |             |             |             |
CLK---+-------------+-------------+-------------+
J0 = K0 = 1            J1 = K1 = Q0
J2 = Q3'.Q1.Q0  K2 = Q1.Q0
J3 = Q2.Q1.Q0   K3 = Q1.Q0

Operation

  • Q0Q_0 toggles on every clock edge.
  • Q1Q_1 toggles whenever Q0=1Q_0 = 1.
  • Q2Q_2 sets when Q1Q0=1Q_1Q_0 = 1 and Q3=0Q_3 = 0 (at 3 → 4), and resets when Q1Q0=1Q_1Q_0 = 1 (at 7 → 8). At 11 (1011), Q3=1Q_3 = 1 blocks J2J_2, so Q2Q_2 stays 0.
  • Q3Q_3 sets at 7 → 8 (Q2Q1Q0=1Q_2Q_1Q_0 = 1) and resets at 11 → 0 (Q1Q0=1Q_1Q_0 = 1 with Q3=1Q_3 = 1).
  • So at the 12th clock, 1011 goes directly to 0000 with no false intermediate state.

Timing diagram

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, giving fclk/12f_{clk}/12. Unused states go 1100 → 1101 → 1110 → 1111 → 0000, so the counter is self-starting.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Logic chapter 8 questions →