A counter is a device which stores the number of times a particular event or process has occurred (according to Wikipedia). As the name suggests, a counter is a device which is used for “counting” – mostly in relation to a clock signal.
A counter is said to be self-starting if it is possible to enter a counter loop irrespective of the initial state. It is known that all counters generate a sort of sequence of numbers (with each flip-flop representing one bit in a number). Now if the longest loop in the sequence (or the main loop) can be traversed from any state, only then is the counter said to be self-starting.
Self-starting counters are made so that “trap” states can be avoided. A trap state is a state that is accessed due to some error in the operation of the counter. Self-starting counters are made with certain modifications in the circuit so that if the counter goes into a trap state, it can automatically move out of it and come back into the main counting loop.
The entire sequence makes up the main counting loop in this example. Irrespective of the state we start in, we are always going to stay in the main loop only. Hence this counter is self-starting.
In this example, the subsequence 010->011->100->101->110->010 forms the main counting loop. However, it can be seen that the main counting loop can be reached irrespective of the state we choose to start in. Hence this counter is self-starting.
In this example, the subsequence 01->10->11->01 is the main counting loop. It can be seen that if we start in state 00, we can never reach the main counting loop. Hence this loop is not self-starting.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.