Every clock pulse (either negative edge or positive edge ) should come as >= total propagation delay
Time period of clock >= 4*50ns // asynchronous counter
Fmax <= 1/(4*50*10^(-9)) // asynchronous counter
Fmax <= 5MHz
we are taking 4-bit ripple counter 0000 to 1111 thus when the counter moves from 1111 to 0000 it has to update all flip flops and signal to flow from all flip flops so at worst case we need to take all flip flops otherwise uneven output will occur at later part of counting