Worked Example: A Two-Digit Decimal Counter
← All articles

Worked Example: A Two-Digit Decimal Counter

5 min

One decade counter isn't enough past 9

A single BCD decade counter counts 0 through 9 and wraps back to 0 — fine for one digit, but a two-digit display counting 00 through 99 needs a second decade counter for the tens place, one that advances by exactly 1 every time the ones place wraps around, not on every clock tick.

Gating the tens digit's clock

The ones-place counter's own rollover — the same decode-10-into-RST pulse that resets it — is exactly the signal that should clock the tens place forward. Feed that reset pulse into the tens counter's own CLK input instead of the shared system clock, and the tens digit only ever advances at the instant the ones digit rolls from 9 back to 0.

BCDonesSEG7carryBCDtensSEG7

Two SEG7 displays, one shared idea

Wire each decade counter's 4-bit output into its own SEG7 block, and the two digits together read as a normal two-digit decimal number 00–99 — the exact same carry-drives-the-next-stage pattern used by chained full adders, just applied to counting instead of addition.

Try it yourself

Build both decade counters in the circuit editor, wire the ones-place reset pulse into the tens-place CLK input, drive both into their own SEG7 blocks, and confirm the display reads 00, 01, 02… all the way to 99 before rolling back to 00.

Build a two-digit counter in the circuit editor →