A ripple counter is the cheapest way to build a counter. Every stage is a t flip flop with T = 1 (or a JK with J = K = 1), so it toggles at every clock edge it receives. The trick is in the wiring:
- Only the first flip-flop, Q0, gets the system clock.
- Each later flip-flop is clocked by the output of the stage below it.
No gates are needed. Instead of logic deciding whether a bit should toggle, the circuit only delivers a clock edge to a bit when it ought to toggle.
By the toggle rule, bit k must toggle when bit k − 1 falls from 1 to 0 (that is when a carry reaches it). With positive-edge flip-flops, which this course uses unless told otherwise, you get that edge by clocking each stage from the previous stage's : rises exactly when Q falls.
It is called asynchronous because the flip-flops don't share one clock, and ripple because each change travels up the chain one stage at a time. That has two costs:
- Ripple delay: the last bit can settle as late as n × tpd after the edge.
- Transient states: while the change ripples, the outputs briefly show wrong counts.
A synchronous counter fixes both by giving every flip-flop the same clock.