A ring counter is a shift register that rotates forever. The last flip-flop's output is wired back to the serial input (for a shift-right register, SI = Q0). It is started with exactly one 1, which then travels round the ring:
1000 → 0100 → 0010 → 0001 → 1000 …
Key facts:
- An n-bit ring counter has n states, so it is a mod-n counter using n flip-flops.
- Exactly one bit is 1 in every state. That is one-hot encoding.
- It must be initialized, usually by presetting one flip-flop and clearing the rest at power-up. If it powers up as
0000, it stays at0000forever; with two 1s it circulates the wrong pattern.
Why use one: each output is already decoded. Flip-flop i is 1 only during step i, so its output can directly enable step i of a job with no decoder. Control units use this to generate timing signals T0, T1, T2 … for the steps of fetch and execute.
The trade-off is flip-flop count: a binary counter needs only log₂ n flip-flops for n states, and a johnson counter needs n/2.