(Ripple) Counters

A two-bit asynchronous counter is shown
on the left. The external clock is connected to the clock input of
the first flip-flop (FF0) only. So, FF0 changes state at the falling
edge of each clock pulse, but FF1 changes only when triggered by the falling
edge of the Q output of FF0. Because of the inherent propagation delay
through a flip-flop, the transition of the input clock pulse and a transition
of the Q output of FF0 can never occur at exactly the same time.
Therefore, the flip-flops cannot be triggered simultaneously, producing
an asynchronous operation. |

Note that for simplicity, the transitions of Q0, Q1 and CLK in the timing diagram above are shown as simultaneous even though this is an asynchronous counter. Actually, there is some small delay between the CLK, Q0 and Q1 transitions.

Usually, all the CLEAR inputs are connected together, so that a single pulse can clear all the flip-flops before counting starts. The clock pulse fed into FF0 is rippled through the other counters after propagation delays, like a ripple on water, hence the name Ripple Counter.

The 2-bit ripple counter circuit above has four different states, each one corresponding to a count value. Similarly, a counter withnflip-flops can have2 to the power nstates. The number of states in a counter is known as its mod (modulo) number. Thus a 2-bit counter is a mod-4 counter.

A mod-n counter may also described as a divide-by-ncounter. This is because the most significant flip-flop (the furthest flip-flop from the original clock pulse) produces one pulse for everynpulses at the clock input of the least significant flip-flop (the one triggers by the clock pulse). Thus, the above counter is an example of a divide-by-4 counter.

The following is a three-bit asynchronous binary counterand its timing diagram for one cycle. It works exactly the same way as a two-bit asynchronous binary counter mentioned above, except it has eight states due to the third flip-flop.