(Ripple) Counters

2-bit Asynchronous Counter 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.    Count 0 to 3

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 with n flip-flops can have 2 to the power n states.  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-n counter.  This is because the most significant flip-flop (the furthest flip-flop from the original clock pulse) produces one pulse for every n pulses 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 counter Count 0 to 7 and 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.

3-bit Asynchronous Binary Counter