Worked examples — Synchronous vs asynchronous counters
The parent note told you what ripple and synchronous counters are. This child page exercises every corner of the maths: every frequency-division case, every settle-time case, the degenerate one-bit counter, the limiting large- behaviour, a real-world word problem, and an exam-style trap.
Before we start, here is every symbol and tool we will use, and what each means in plain words — because we reuse them relentlessly.
The scenario matrix
Every problem this topic can throw is one of these cells. The worked examples below are labelled [Cell X] so you can see the whole space is covered.
| Cell | Case class | What makes it tricky |
|---|---|---|
| A | Exact power-of-2 division | clean , count |
| B | Non-power-of-2 target | must round FF count up, output not exact |
| C | Degenerate: | one flip-flop — is it even a "counter"? |
| D | Ripple settle-time | delays add; find |
| E | Sync settle-time + compare | delay independent of ; speed-up ratio |
| F | Limiting large- | what happens to as |
| G | Word problem | pick components from a real spec |
| H | Exam twist: toggle logic | vs trap |
Case A — exact power-of-2 division
Case B — the target is NOT a power of two
Case C — the degenerate one-flip-flop counter
[Cell C]
Forecast: with , . Does "ripple vs synchronous" even mean anything here?
Step 1 — apply the ripple formula at . Why this step? We must check the edge of the domain — formulas must survive their smallest input.
Step 2 — set in the sync formula, and say why. Why this step? With only one flip-flop there is no lower bit to AND, so there is no AND gate at all — its delay is literally zero. Also there is no cascaded clock, so we drop of the (absent) upper stage. Substituting : The two families give the identical number.
Step 3 — interpret. Why this step? Numbers alone can mislead; we ask what it means. With one flip-flop there is no second clock to cascade, so "ripple" and "synchronous" are identical — the distinction only appears once . A lone T flip-flop just does ÷2. It counts the single sequence — technically a modulo-2 counter.
Verify: at with , ripple and sync max frequencies both equal ✔.
Case D — ripple settle time
ns [Cell D]
Forecast: guess . Will more bits help or hurt speed?
Step 1 — add the delays. Why this step? In ripple, each edge waits for the previous flip-flop to settle first — the delays are in series, so they add. Look at s02: each stage's output arrives one later than the last — a staircase of red delay arrows.

Step 2 — invert to get frequency. Why this step? Max frequency = one edge per settle window; anything faster and the count is never valid.
Verify (units + number): MHz ✔. Units: ✔.
Case E — synchronous, and the speed-up ratio
[Cell E]
Take ns, ns, ns.
Forecast: how many times faster than the ripple version of Ex 4?
Step 1 — sum the fixed delays. Why this step? Every flip-flop clocks together, so the count settles in one flip-flop delay plus the carry AND-tree delay plus setup — no multiplies it.
Step 2 — frequency. Why this step? Same "one edge per settle window" logic.
Step 3 — speed-up ratio. Why this step? This is the whole engineering payoff — compare to Ex 4's 48 ns.
Verify: ; MHz; ✔.
Case F — the limiting behaviour as grows
? [Cell F]
Forecast: which family survives large , and which collapses?
Step 1 — take the limit for ripple. Why this step? We want the trend, not one number, so we see how each formula behaves as blows up. A huge ripple counter's max clock tends to zero — it gets uselessly slow.
Step 2 — take the limit for sync (idealised tree). Why this step? Compare directly, holding fixed. It doesn't depend on , so it stays flat. Look at s03: the red ripple curve dives toward the axis, the green sync line is horizontal.

Step 3 — unpack the "ideal tree" caveat. Why this step? That flat line assumed stays constant, but in real silicon it does not — and a good engineer must know why. A synchronous bit ANDs together all lower bits. As grows, that AND gate has more inputs (its fan-in grows), and wide gates are slower, so creeps up — mildly (like for a balanced tree of small AND gates), not linearly like ripple. Carry-lookahead structuring keeps this growth gentle; that is precisely why we say "ideal tree." Bottom line: sync still crushes ripple for large , just not perfectly flat.
Verify (spot values, ns): ripple at gives MHz — strictly falling toward 0 ✔; sync stays MHz for all three ✔.
Case G — real-world word problem
[Cell G]
A cheap watch crystal oscillates at Hz. You want a 1 Hz tick (one per second) to advance the seconds display. Design the divider.
Forecast: how many flip-flops?
Step 1 — ratio. Why this step? We need the total division factor .
Step 2 — is it a clean power of two? Why this step? Watch crystals are chosen at Hz precisely because it is a power of two — so a plain ripple chain works exactly.
Step 3 — report. Why this step? State the buildable answer. A 15-stage ripple counter turns Hz into exactly Hz at output . (This is literally why quartz watches use that frequency!)
Verify: and Hz exactly ✔.
Case H — exam twist: the toggle-logic trap
for a synchronous up-counter, then say when bit 4 flips [Cell H]
Forecast: is it , or something bigger?
Step 1 — recall the carry condition. Why this step? In binary counting, a digit increments only when a carry reaches it — meaning every lower digit is 1, not just the neighbour. (Recall is the output wire of flip-flop , value 0 or 1.)
Step 2 — find the exact transition. Why this step? "When does bit 4 flip?" = when all four lower bits are 1, i.e. state .
Step 3 — expose the trap. Why this step? The seductive wrong answer is (copying ripple's "clocked by previous bit"). But in synchronous design all flip-flops share the clock, so each must self-decide by AND-ing all lower bits.
Verify: is 1 only in state ; at , so the product is ; at any state below 15 at least one lower bit is 0 so the product is ✔. And , ✔.
Recall Rapid self-check across the matrix
Divide 16 MHz → 1 MHz needs how many FF? ::: 4 (since ). Closest ripple stage count for 10→1 MHz? ::: 3 FF, giving 1.25 MHz. 6-bit ripple, ns, ? ::: about 20.83 MHz. Same 6-bit synchronous with 12 ns total, ? ::: about 83.3 MHz (4× faster). As , ripple tends to? ::: 0 (it collapses); sync stays ~constant (mild growth). A 32768 Hz crystal needs how many FF for a 1 Hz tick? ::: 15 (since ). Synchronous equals? ::: , flips at .
add (, dies as grows). Sync = delays share (one window, near-flat forever).
Connections
- Frequency division — every ÷ example above
- Propagation delay — the that adds in ripple
- Modulo-N counters — how to divide by a non-power-of-two (Cell B)
- Carry lookahead — the AND-tree keeping sync speed near-flat (Cells E, F)
- T flip-flop / JK flip-flop — the toggling unit in every example
- Clock skew — the real-world caveat behind "all clocks fire together"