Some basics of the Johnson Counter:
It is a "non-constant-weighted" counter. This means that there is no numeric value that is assigned to any of the bit positions.
~
The sequence is one of many sequences that comprise the family of "cyclic counters". Cyclic counters have the property that when going from one state to the next one and ONLY one bit changes state. You will notice that the "invalid" loop does not have this property. Most practical implementations of the Johnson counter have an additional decoder to detect an illegal state, and force the counter into a legal state.
~
The Johnson counter has some interesting and useful properties:
~
. Any state can be decoded with a single 2 input "And" gate
. (assuming the the output and its complement is available
. for each stage)
~
. Any consequtive sequence of states can be decoded with a
. single 2 input "And" gate (with the above assumption).
~
. The output of the "And" gate decoder will be "glitch-free", since
. one and only one input changes state for any state transition
. of the counter.
~
The maximum number of states for a Johnson counter is 2N, vs 2^N for a binary counter.
Regards,
Kral