An asynchronous counter counts clock pulses by cascading flip-flops, where only the first stage receives the external clock and each subsequent stage triggers from the previous output. This ripple propagation keeps the design simple but introduces cumulative delay - typically 5-15 ns per stage with standard 74HC-series logic - making it suitable for frequency division and low-speed event counting but problematic when all output bits must update simultaneously. Below I'll walk through the ripple mechanism, practical timing constraints, and where this architecture still makes sense.
Key Takeaways:
- Ripple delay scales linearly with stage count; a 4-bit asynchronous counter built from 74HC73 flip-flops accumulates roughly 40 ns worst-case propagation, limiting reliable operation below ~10 MHz.
- Asynchronous counters excel at frequency division (each stage halves the input frequency) and require no routing of a high-speed clock tree to every flip-flop.
- Temporary glitch states during multi-bit transitions (e.g., 0111→1000) can cause false triggers in downstream logic unless outputs are strobed after settling.
- Synchronous counters eliminate ripple delay and glitches but demand higher routing resources and consume more power distributing the clock to all stages.
How Ripple Propagation Works
The first flip-flop toggles on every input clock edge. Its output then clocks the second flip-flop, which toggles half as often. That output clocks the third stage, and so on. Because each stage waits for the previous stage to settle, the final output bit updates last - this cascading delay is the signature ripple effect.
From a practical standpoint, you see this clearly on an oscilloscope: probe the least-significant bit (LSB) and it tracks the input clock; probe the most-significant bit (MSB) of a 4-bit counter and you'll see it transition roughly four propagation delays later. That staggered timing is fine for applications like generating a /16 clock divider, but it breaks circuits that sample all bits in parallel - like a microcontroller reading a count value or a comparator checking for a terminal count.
Types and Count Direction
Up Counter: Each flip-flop is clocked by the non-inverted output of the previous stage, so the count increments in standard binary sequence (0000, 0001, 0010, ..., 1111, then wraps to 0000).
Down Counter: Each flip-flop is clocked by the complementary output (Q̄) of the previous stage, reversing the sequence (1111, 1110, 1101, ..., 0000).
The choice hinges on which flip-flop output you wire to the next clock input. J-K and T flip-flops are common because their toggle mode requires minimal external logic - just tie J and K high or hold T high. D flip-flops work but need the inverted output fed back to the D input, adding a gate.
Timing Constraints You Can't Ignore
Cumulative Propagation Delay: Each flip-flop adds its clock-to-output delay (tₚ). For an n-bit counter, worst-case ripple time is n × tₚ. With 74HC73 flip-flops (tₚ ≈ 10 ns at 5 V), a 4-bit counter settles in ~40 ns; an 8-bit counter pushes 80 ns. If your application samples the count before it stabilizes, you read garbage.
Glitch States: During transitions that flip multiple bits - like 0111→1000 - intermediate outputs briefly show illegal states (0110, 0100, 0000, 1000 in sequence). I've seen these glitches false-trigger interrupt logic in microcontroller projects. The fix is either to strobe the outputs with a delayed enable signal that waits for ripple completion or switch to a synchronous counter where all bits change together.
Maximum Clock Frequency: The input clock period must exceed the total ripple delay plus setup time for any downstream logic. For a 4-bit 74HC counter, practical maximum input frequency is around 10-12 MHz; push beyond that and you get metastability or missed counts.

When Asynchronous Counters Still Make Sense
Frequency Division: If you only care about the MSB output and ignore intermediate bits, ripple delay doesn't matter. A 4-bit counter fed with a 1 MHz clock delivers a clean 62.5 kHz square wave at the MSB - no glitches, no synchronization needed. I use this regularly in clock prescaler circuits.
Event Counting with Slow Inputs: Counting mechanical switch closures, sensor pulses, or any signal below 100 kHz rarely hits timing limits. A 74HC393 dual 4-bit counter costs a fraction of a synchronous equivalent and needs no PCB real estate for clock distribution.
Low Gate Count in ASICs/FPGAs: Although FPGAs favor synchronous designs, asynchronous counters can save flip-flops in ultra-low-power or area-constrained blocks where you're willing to hand-manage timing.
What They're Bad At: Any application that reads the full count in parallel (address generation, display multiplexing, terminal-count detection) or operates above a few megahertz. In those cases, the ripple delay either causes functional errors or forces you to add so much external logic (output latches, strobe generation) that a synchronous counter becomes simpler.
Design Checklist
→ Calculate worst-case ripple delay: n × tₚ, where n is the number of stages and tₚ is from the flip-flop datasheet.
→ Verify input clock period ≥ ripple delay + downstream setup time + margin (I use 20% margin).
→ If any logic samples the count, add an output strobe delayed by at least the ripple time, or use a synchronous counter.
→ For divide-by-2ⁿ applications, tap the final stage and ignore intermediate outputs - ripple doesn't matter.
→ Confirm that the flip-flop family (HC, AC, LV) meets your speed and voltage requirements; older 74LS parts have tₚ ≈ 20 ns and won't reach 10 MHz in a 4-bit configuration.
→ Test the full count sequence with a logic analyzer, not just a scope; glitches are easy to miss on a scope set to slow timebase.
Asynchronous vs. Synchronous: The Real Tradeoff
| Aspect | Asynchronous | Synchronous |
|---|---|---|
| Clock distribution | Only to first stage | To all flip-flops |
| Output timing | Ripple delay, bits update sequentially | All bits update on same edge (within clock skew) |
| Maximum speed | Limited by n × tₚ (typically <20 MHz for 4 bits) | Limited by single tₚ + combinational logic (can exceed 100 MHz) |
| Glitch states | Present during multi-bit transitions | Absent if design is synchronous throughout |
| Gate count | n flip-flops | n flip-flops + combinational logic for next-state |
| Power (dynamic) | Lower - only toggling stages draw current | Higher - clock tree and all flip-flops toggle every cycle |
| Best use case | Frequency dividers, slow event counters, minimal board space | Processor buses, high-speed data paths, any parallel readout |
The table shows why asynchronous counters persist in niche roles despite being slower. If you're dividing a 10 MHz system clock down to 1 MHz for a UART, an asynchronous counter does the job with three flip-flops and zero routing congestion. But if you're building an address counter for DRAM refresh or a timer peripheral that a CPU reads directly, synchronous is the only practical choice.

Practical Circuit Notes
Preset and Clear: Most counter ICs (74HC393, 74HC4040) include asynchronous clear inputs; some add synchronous load. I've found that using asynchronous clear to set a non-power-of-two modulus (e.g., decade counter) works but requires a gate to decode the terminal count and pulse the clear - watch for race conditions where the clear arrives before all stages have rippled to the terminal state.
Cascading Beyond 4 Bits: You can chain 4-bit counter ICs by feeding the MSB carry output to the clock input of the next package. Each additional 4-bit stage adds another 40 ns of delay, so an 8-bit counter built from two 74HC393s has ~80 ns ripple and realistically tops out around 5 MHz input frequency.
Interfacing to Microcontrollers: If you must read an asynchronous counter with a microcontroller, either use an input-capture timer triggered by the MSB (so you only care about one bit) or latch the outputs with a 74HC373 transparent latch, holding the latch enable low until the ripple completes. I've burned hours debugging "random" count errors that turned out to be the MCU sampling mid-ripple.
Where the Industry Is Heading
Asynchronous counters still appear in cost-sensitive designs - particularly LED drivers, appliance timers, and automotive dasboard circuits - but synchronous architectures dominate anything with a microprocessor or FPGA. The 74HC590 (8-bit binary counter with output register) and 74HC4040 (12-bit ripple counter) remain in production, which tells you there's still demand, but new IC families (like TI's SN74AUP series) focus on synchronous topologies because mobile and IoT applications prize low latency over gate count.
If you're teaching digital design, asynchronous counters are worth understanding because they expose propagation delay and metastability in a tangible way - concepts that matter even in fully synchronous systems. If you're designing a product, use them only where their limitations don't matter: frequency division, isolated event counting, or anywhere you can tolerate (or never observe) the ripple delay. For everything else, the synchronous counter's clean timing is worth the extra flip-flop clock load.