Skip to main content

Comb vs seq; synchronous decade counter

Short answer

Combinational circuits' outputs rely solely on current inputs; sequential circuits have memory. A synchronous decade counter connects all four JK flip-flops to one clock. With J0=K0=1, J1=Q3'Q0, K1=Q0, J2=K2=Q1Q0, J3=Q2Q1Q0, K3=Q0, it counts 0–9 and directly resets without ripple.

Differentiate between combinational and sequential logic circuits. Explain the operation of a synchronous decade counter with timing diagrams.

Combinational vs sequential logic circuits

PointCombinational circuitSequential circuit
Output depends onPresent inputs onlyPresent inputs and past state
MemoryNo memoryHas memory (flip-flops/latches)
FeedbackNo feedback pathFeedback from output to input
ClockNot neededUsually clocked
Analysis toolTruth tableState table / state diagram
ExamplesAdder, MUX, decoderFlip-flop, register, counter

Synchronous decade counter

A synchronous decade counter counts 0000 to 1001 with all four flip-flops clocked together. Gates decide when each flip-flop toggles. From the excitation table of the 0–9 sequence (states 1010–1111 as don't cares), the JK equations are:

J3=Q2Q1Q0,K3=Q0J2=Q1Q0,K2=Q1Q0J1=Q3‾Q0,K1=Q0J0=1,K0=1\begin{aligned} &J_3 = Q_2Q_1Q_0,\quad K_3 = Q_0 \\ &J_2 = Q_1Q_0,\quad K_2 = Q_1Q_0 \\ &J_1 = \overline{Q_3}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 = Q3'.Q0   K1 = Q0
J2 = K2 = Q1.Q0    J3 = Q2.Q1.Q0  K3 = Q0

Operation

CountQ3 Q2 Q1 Q0Flip-flops that toggle at next clock
00000FF0
10001FF0, FF1
20010FF0
30011FF0, FF1, FF2
40100FF0
50101FF0, FF1
60110FF0
70111FF0, FF1, FF2, FF3 (set)
81000FF0
91001FF0, FF3 (reset); FF1 held by Q3‾=0\overline{Q_3} = 0
  • FF0 toggles on every clock (J0=K0=1J_0 = K_0 = 1).
  • FF1 toggles when Q0=1Q_0 = 1, but at count 9 J1=Q3‾Q0=0J_1 = \overline{Q_3}Q_0 = 0 keeps it at 0.
  • FF2 toggles when Q1Q0=1Q_1Q_0 = 1.
  • FF3 sets when Q2Q1Q0=1Q_2Q_1Q_0 = 1 (7 → 8) and resets when Q0=1Q_0 = 1 while Q3=1Q_3 = 1 (9 → 0).

So after count 9 (1001) the next clock gives 0000 directly, without any false state.

Timing diagram

CLK  __|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾|_|‾
Q3   ________________________________|‾‾‾‾‾‾‾|_______
Q2   ________________|‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾|_______________
Q1   ________|‾‾‾‾‾‾‾|_______|‾‾‾‾‾‾‾|_______________
Q0   ____|‾‾‾|___|‾‾‾|___|‾‾‾|___|‾‾‾|___|‾‾‾|___|‾‾‾
Cnt  0    1   2   3   4   5   6   7   8   9   0   1

All outputs change at the same falling edge, so there is no ripple delay. Q3Q_3 gives fclk/10f_{clk}/10.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Digital Logic chapter 8 questions →