Counter Tutorial for Logisim-evolution

A counter increments its value on every clock tick — the heartbeat of timers, frequency dividers, and state machines. This tutorial wires a Counter to a Clock and watches it count.

Step 1: Add a Counter

Open the Memory library and place a Counter on the canvas. Select it and check the attribute panel: Maximum Value sets where it stops, and Action On Overflow decides what happens there. Choose Wrap around so it restarts from zero.

Step 2: Add a Clock

Open the Wiring library, place a Clock, and wire it to the counter’s clock input. The Clock’s High Duration and Low Duration attributes set the tick speed — larger values mean slower, easier-to-watch counting. Start with 4 and 4.

Step 3: Display the value

Wire the counter’s output to a Hex Digit Display from the I/O library (or several LEDs for a binary view). Set the counter’s data bit width to 4 so it counts 0–F on the hex display. For a decimal feel, set Maximum Value to 9: the counter now counts 0–9 and wraps.

Step 4: Run the simulation

Choose Simulate → Auto-Tick Enabled so the clock runs on its own. If you prefer manual control, leave auto-tick off and use Simulate → Manual Tick Full Cycle to advance one count per click. Watch the display count up and wrap back to zero.

If nothing moves, check that Simulate → Auto-Propagate is on, and that the counter’s Enable input is driven high — the counter only counts while Enable is 1. (Tie it to a constant 1 with a Power component from the Wiring library if you have no use for it.)

Step 5: Build a two-digit counter

The counter’s carry output goes high when the value reaches the maximum. Wire it to the clock input of a second counter: the first counts ones, the second counts tens. With both set to Maximum Value 9 and Wrap around, you get a 00–99 counter — the core of the digital clock project.

Keep learning