Logo
All chapters
Volume II: Digital Logic  ›  Registers & Counters

Ripple Counters

An asynchronous counter where each flip-flop's output clocks the next — simple but slow.

PrevShift Registers
NextSynchronous Counters

Description

An asynchronous counter built from toggle flip-flops chained output-to-clock. It is the cheapest way to count, using minimal logic. Each flip-flop toggles; its output is the clock for the next stage, so changes ripple.

  • Stage 0 toggles every clock; stage 1 toggles when stage 0 falls, and so on.
  • Each stage divides the frequency by two (a binary counter is a divide chain).
  • Outputs do not change together — the change ripples through stages.
  • Ripple delay accumulates, creating brief wrong (transient) counts.
  • Unsuitable for high speed or for decoding the count directly.
  • What: An asynchronous counter built from toggle flip-flops chained output-to-clock.
  • Why: It is the cheapest way to count, using minimal logic.
  • How: Each flip-flop toggles; its output is the clock for the next stage, so changes ripple.
  • Where: Low-speed counting, frequency division, simple timers.
  • When: When count speed is not critical and gate count must be tiny.

At a glance

What

An asynchronous counter built from toggle flip-flops chained output-to-clock.

Why

It is the cheapest way to count, using minimal logic.

How

Each flip-flop toggles; its output is the clock for the next stage, so changes ripple.

Where

Low-speed counting, frequency division, simple timers.

When

When count speed is not critical and gate count must be tiny.

Think of it like…

Dominoes: you push the first, and each falls only after the one before it — fast to set up, but the last domino lags behind.

How it ripples

  • Stage 0 toggles every clock; stage 1 toggles when stage 0 falls, and so on.
  • Each stage divides the frequency by two (a binary counter is a divide chain).
  • Outputs do not change together — the change ripples through stages.

The catch

  • Ripple delay accumulates, creating brief wrong (transient) counts.
  • Unsuitable for high speed or for decoding the count directly.

Frequency division

StageOutput frequency
Q0fclk / 2
Q1fclk / 4
Q2fclk / 8
Qnfclk / 2ⁿ⁺¹

Binary counter (mod-8)

▶ live simulator
mod-8
0
0
0
0

Press Step or Runto count; each bit's waveform is traced live.

Frequency ↔ period converter

▶ live simulator
Frequency → Period
=

T = 1 / f · pick any input and output unit (Hz/kHz/MHz/GHz ↔ s/ms/µs/ns/ps)

1.0000e-6
s
0.001
ms
1
µs
1000
ns
1.0000e+6
ps

Real-world applications

Frequency dividersLow-speed event countersSimple timers

The 5 Whys

  1. 1

    Why ripple counters? Fewest gates to count.

  2. 2

    Why do they ripple? Each stage is clocked by the previous output.

  3. 3

    Why is that a problem? Delays stack up, making transient wrong counts.

  4. 4

    Why use them anyway? Fine for slow counting and clock division.

  5. 5

    Root cause: cascading toggles trades speed/clean-decode for minimal hardware.

Cheat sheet

Working principle

  • Each flip-flop toggles; its output is the clock for the next stage, so changes ripple.
  • An asynchronous counter built from toggle flip-flops chained output-to-clock.

Formulas & Boolean expressions

  • Stage k output frequency = fclk / 2ᵏ⁺¹
  • Mod (n stages) = 2ⁿ
  • Q0 = fclk / 2
  • Q1 = fclk / 4
  • Q2 = fclk / 8
  • Qn = fclk / 2ⁿ⁺¹

Key facts

  • Stage 0 toggles every clock; stage 1 toggles when stage 0 falls, and so on.
  • Ripple delay accumulates, creating brief wrong (transient) counts.

Why it exists

  • Root cause: cascading toggles trades speed/clean-decode for minimal hardware.
PrevShift Registers
NextSynchronous Counters