Asynchronous Counters — worked examples

Digital Electronics · Asynchronous Counters · Example

Example 1: 3-bit ripple counter — full cycle

A 3-bit ripple counter starts at 000. Trace Q2Q1Q0Q_2 Q_1 Q_0 for 8 clock edges (one full cycle).

Clock edgeQ2 Q1 Q0Decimal
0 (start)0 0 00
10 0 11
20 1 02
30 1 13
41 0 04
51 0 15
61 1 06
71 1 17
80 0 00
3 flip-flops produce 23=82^3 = 8 unique states (0 to 7). After the 8th clock edge the counter wraps back to 000.

Example 2: MOD-6 counter — what triggers reset?

You need a counter that cycles 0 through 5 and then wraps. Which count triggers the reset, and how many flip-flops do you need?

  1. Step 1: MOD-6 means 6 states (0 to 5). You need at least log26=3\lceil \log_2 6 \rceil = 3 flip-flops.
  2. Step 2: The counter should never display count 6. When it reaches 110 (six in binary), the reset gate fires immediately.
  3. Step 3: Detect 110: connect Q2Q_2 and Q1Q_1 to a NAND gate. When both are high, assert async clear.
ClockQ2 Q1 Q0Decimal
00 0 00
10 0 11
20 1 02
30 1 13
41 0 04
51 0 15
60 0 00 (reset)
The counter briefly hits 110 (6) before the reset clears it. This happens so fast it is usually invisible, but it is a decode glitch.

Example 3: Maximum clock frequency

A 3-bit ripple counter uses flip-flops with tpd=20nst_{pd} = 20\,\text{ns} each. What is the maximum clock frequency?

  1. Step 1: Total ripple delay = N×tpd=3×20ns=60nsN \times t_{pd} = 3 \times 20\,\text{ns} = 60\,\text{ns}.
  2. Step 2: The clock period must be longer than the total ripple delay, so Tmin=60nsT_{\min} = 60\,\text{ns}.
  3. Step 3: fmax=1Tmin=160×10916.7MHzf_{\max} = \frac{1}{T_{\min}} = \frac{1}{60 \times 10^{-9}} \approx 16.7\,\text{MHz}.
Each additional flip-flop in a ripple counter lowers the maximum operating frequency. For high-speed designs, synchronous counters avoid this bottleneck.