Can someone list down what is the advantages and disadvantages of the Synchronous counter versus Asynchronous counter in terms of efficiency, expandability and propagation delay?
Syncronous counter have all stages change state from a single clock source. This makes their outputs change state at very near the same point in time.
If you are trying to pick up the output by a processor you want all outputs to be stable at the same time and do it predictably and reliably.
Async counters have their outputs ripple through, with some propagation delay. If all you are doing is dividing down and just interested in last stage output then async is fine to use.
Syncronous counters generally take more current because a higher clock freq is imposed on each stage.