3.4.9 · D5Sequential Circuits

Question bank — Ring and Johnson counters

1,904 words9 min readBack to topic

Before we start, one shared vocabulary reminder so no symbol is unearned:

The one picture below anchors every trap on this page — the left ring shows one hot bit hopping between four spots; the right ring shows the Johnson cycle filling then emptying. Glance at it whenever a question mentions a state sequence, and follow the specific arrows called out in each answer.

Figure — Ring and Johnson counters

True or false — justify

A ring counter with flip-flops counts through distinct states.
False. A ring counter encodes the count as the position of one hot bit among cells, so there are exactly states — the figure belongs to a binary counter. On the figure's left ring, count the labelled nodes: only four.
A Johnson counter with flip-flops has exactly states.
True. It fills the register with 1s in steps, then empties it in steps, so the cycle length is . On the figure's right ring, trace the top-going arrows (, the fill) then the bottom-going arrows (, the empty): four plus four is eight.
Adding one inverter to a ring counter's feedback path is a trivial cosmetic change.
False, and here is the step-by-step why. In a ring counter, feeding back means "whatever leaves the end re-enters unchanged", so a single merely orbits positions — the state graph is one small loop of length (left ring in the figure). Insert the inverter so feeds back, and the rule becomes "whatever leaves re-enters flipped." Now, starting empty, a is injected each clock until the register is full ( new states never visited before), and only then does the feedback flip to and inject zeros for another states. Those states form one big loop (right ring). So one wire doesn't tweak the loop — it stitches a second half onto the state graph, exactly doubling and giving each state a unique adjacent-bit boundary for 2-gate decoding. Fundamental, not cosmetic.
Both ring and Johnson counters power up and begin counting correctly with no help.
False. A ring counter must be preset with exactly one , and a Johnson counter cleared to all-; otherwise either can sit in a stuck or dead-loop state.
In a 4-bit Johnson counter, state is immediately followed by .
False. At the feedback is , so a single shifts in giving . All-zero appears only after all four 1s have shifted out — follow the arrow leaving the node on the figure's right ring; it points to , not back to .
Ring and Johnson counters produce decoding glitches just like binary counters.
False, but for different reasons per counter. A Johnson counter changes exactly one flip-flop output per clock, so no two decoded-output gates can race — that is what makes it glitch-free. A ring counter actually toggles two flip-flop outputs per step (the hot bit vacates one cell and fills the next), yet it is still glitch-free because each state has a single lone : the decoded output is just that one line, needing no multi-input gate to race in the first place. Both avoid the binary counter's problem where many bits flip at once through combinational decode logic (see Glitches and Decoding Hazards).
A ring counter is a worse frequency divider than a Johnson counter of the same size.
Depends on your goal, not "worse". A ring counter divides the clock by ; a Johnson counter by . Same flip-flops, but Johnson gives twice the division ratio (see Frequency Division).
A Johnson counter uses fewer flip-flops than a binary counter for the same number of states.
False. For the same state count, Johnson uses more flip-flops — its utilisation is , far below . You pay silicon in exchange for glitch-free, decode-cheap operation.
Every 4-bit pattern is a valid state of a 4-bit Johnson counter.
False. Only 8 of the 16 patterns are valid; patterns like or are unused and can form a dead loop — you will not find anywhere on the figure's right ring.

Spot the error

"Wiring makes a Johnson counter."
Error: that is a ring counter. A Johnson counter needs — the complemented last output.
"Start a ring counter at ; the first clock will create a ."
Error: feedback only copies existing bits. With all cells , forever, so it stays . You must inject a via preset.
"To decode a Johnson state you need an -input gate like a binary counter."
Error: each Johnson state has a unique adjacent-bit boundary (a single or edge), so a 2-input gate suffices — e.g. decodes .
"A ring counter's step changes only one flip-flop, so it is a single-bit change."
Error: two flip-flops toggle here — goes and goes . The "single-flip-flop-changes" glitch-free property belongs to the Johnson counter; a ring counter's hot bit moves, which flips two cells at once. What is single is the hot bit (one in the pattern), not the number of toggling outputs — trace this exact step as the first arrow on the figure's left ring.
"State decodes as (both low bits high)."
Error: is not unique — state also has . The unique boundary for is .
"A self-starting fix means changing the clock so the counter can't power up wrong."
Error: the clock is untouched. Self-starting modifies the feedback logic so every unused state maps into the valid cycle (see Self-starting Sequential Circuits).

Why questions

Why does the hot bit in a ring counter never split into two 1s?
Because the register only shifts — each clock every cell copies its left neighbour, so a single moves as a block; nothing duplicates it.
Why does the Johnson counter fill from one end then empty from the same end?
Once the last stage becomes , feedback flips to and starts injecting 0s; these 0s push through the same shift direction, emptying the register in the order the 1s entered.
Why do these counters need no decoder to know the current count?
The state is the count directly — the position of the hot bit (ring) or the fill-level (Johnson) is readable straight off the flip-flop outputs, no arithmetic decode needed.
Why is a binary counter more state-efficient yet more glitch-prone than Johnson?
It packs counts into bits, but reaching, say, flips four flip-flop outputs "simultaneously"; tiny timing differences make momentary wrong patterns (glitches on the decoded outputs). Johnson trades that density for a single flip-flop output changing per clock.
Why do Johnson decode gates need no extra hazard-proofing at all?
Because exactly one flip-flop output changes between adjacent states, a decode gate can never momentarily see a false transient pattern — the single-change property already removes the race, so no special hazard immunity has to be added.
Why can't you make a ring counter self-start just by clearing it?
Clearing gives , which is a stuck state for a ring counter (no to circulate). You must preset a lone , or add feedback logic that regenerates one.

Edge cases

: does a zero-flip-flop counter make sense?
No — with no cells there is nothing to shift and no state, so both formulas (, ) give . The domain of both designs is ; is degenerate and excluded.
: what does a 1-bit ring counter do?
With , whatever bit you load just holds forever () — a single degenerate "state", useless as a counter.
: what does a 1-bit Johnson counter do?
With , the single bit toggles each clock: , giving states — effectively a divide-by-2 (a toggle flip-flop).
A 4-bit Johnson counter powers up in — what happens?
It enters a dead loop of unused states never joining the main cycle; only self-starting feedback can rescue it. (The valid cycle is is not among the nodes on the figure's right ring.)
A ring counter powers up in (two hot bits) — is it valid?
No — it is an unused state. It still shifts cleanly (), forming a 4-state dead loop parallel to the real cycle shown on the figure's left ring, so it counts but reports wrong values.
What is the utilisation of an 8-bit ring counter, and why is that "wasteful"?
. It uses only 8 of 256 possible patterns — you buy simplicity and zero glitches with a lot of unused silicon.
At the exact moment a Johnson counter reaches all-1s, what value is queued at ?
. The queued input has already flipped to even though the outputs are still all-, which is why the next state begins the emptying phase.

Recall One-line self-test

Cover this and answer aloud: "Ring = ? states, Johnson = ? states, and the one wire that separates them is ?" Ring , Johnson , and the wire is the inverter feeding back to .

Connections

  • Parent topic — the full derivation these traps test.
  • Shift Registers — the shifting behaviour behind "one moving block of bits".
  • Flip-Flops (D type) — why each cell copies its neighbour.
  • Synchronous Counters — the contrast case.
  • Glitches and Decoding Hazards — the single-bit-change payoff.
  • Self-starting Sequential Circuits — dead loops and their fixes.
  • Frequency Division — divide-by- vs divide-by-.