A down counter runs a binary counter backwards. Each edge subtracts 1, and from all 0s it wraps to all 1s: 000 → 111 → 110 → …
Subtracting 1 flips the trailing 0s to 1 and the lowest 1 to 0. So the toggle rule turns around:
- A bit toggles exactly when every bit below it is 0 (that is when a borrow reaches it).
- Q0 has nothing below it, so it still toggles every edge.
That gives the hardware directly:
- Synchronous, with T flip-flops: T0 = 1, T1 = , T2 = , T3 = .
- Ripple, with positive-edge flip-flops: clock each stage from the previous Q (not ). Q rises exactly when the bit below goes 0 → 1, which is when a borrow passes through it.
A down counter's terminal count is the all-0s state, the last one before it wraps. Down counters are popular for timers: load a value, count to zero, and raise a flag.