Ring counter
From Wikipedia, the free encyclopedia
A ring counter is a type of counter composed of a circular shift register. The output of the last shift register is fed to the input of the first register.
There are two types of ring counters:
- A straight ring counter or Overbeck counter connects the output of the last shift register to the first shift register input and circulates a single one (or zero) bit around the ring. For example, in a 4-register counter, with initial register values of 1000, the repeating pattern is: 1000, 0100, 0010, 0001. Note that one of the registers must be pre-loaded with a 1 (or 0) in order to operate properly.
- A twisted ring counter or Johnson counter connects the complement of the output of the last shift register to its input and circulates a stream of ones followed by zeros around the ring. For example, in a 4-register counter, with initial register values of 0000, the repeating pattern is: 0000, 1000, 1100, 1110, 1111, 0111, 0011, 0001.
[edit] Four-bit ring counter sequences
Straight ring/Overbeck counter | Twisted ring/Johnson counter | ||||||||||
Clock pulse |
Cycle | Q0 | Q1 | Q2 | Q3 | Clock pulse |
Cycle | Q0 | Q1 | Q2 | Q3 |
0 | I | 1 | 0 | 0 | 0 | 0 | I | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | ||
2 | 0 | 0 | 1 | 0 | 2 | 1 | 1 | 0 | 0 | ||
3 | 0 | 0 | 0 | 1 | 3 | 1 | 1 | 1 | 0 | ||
4 | II | 1 | 0 | 0 | 0 | 4 | 1 | 1 | 1 | 1 | |
5 | 0 | 1 | 0 | 0 | 5 | 0 | 1 | 1 | 1 | ||
6 | 0 | 0 | 1 | 0 | 6 | 0 | 0 | 1 | 1 | ||
7 | 0 | 0 | 0 | 1 | 7 | 0 | 0 | 0 | 1 | ||
8 | III | 1 | 0 | 0 | 0 | 8 | II | 0 | 0 | 0 | 0 |