Fig. 1 — 4-Bit Binary CounterInteractive simulation

What You'll Learn

  • Trace CLK and the permanently asserted EN signal into the 4-bit counter.
  • Read Q3Q2Q1Q0 from the four weighted output lights.
  • Verify the 16-state modulo-16 sequence and wrap from 1111 to 0000.
  • Relate each output bit's toggle rate to its binary weight.
  • Distinguish a packaged counter primitive from a schematic that exposes individual flip-flops and next-state logic.

How It Works

The production circuit contains a clock, one integrated 4-bit COUNTER, a logic-1 constant, and four output lights. The clock drives CLK, while the constant drives EN high. The counter's Q0, Q1, Q2, and Q3 outputs connect directly to the four lights labeled with binary weights 1, 2, 4, and 8. No digit display is present.

The saved production state is count 7, so Q3Q2Q1Q0 initially displays 0111. On each subsequent rising clock edge, the enabled counter advances by one modulo 16: 0111 → 1000 → 1001 → ... → 1111 → 0000. Over a complete cycle, the general sequence is 0000 → 0001 → ... → 1111 → 0000.

Q0 changes on every accepted edge, Q1 every two edges, Q2 every four, and Q3 every eight; a complete Q3 period spans 16 count increments. Between rising edges, the stored count and all four outputs remain unchanged.

The COUNTER primitive also has CLR and a reserved LD input, but neither is wired here. Its fifth output, which indicates terminal count in the current component implementation, is also unconnected. The schematic demonstrates a packaged counter block rather than exposing its internal flip-flops or increment logic.

Boolean Expression

Q+=(Q+1) mod 16Q^{+} = (Q + 1) \bmod 16

On each rising clock edge, the enabled counter advances by one modulo 16.

EN=1\mathrm{EN} = 1

The logic-1 constant holds the counter's enable input asserted; it is not a data bit or a displayed output.

Try It Step-by-Step

Set the listed controls in the embedded circuit, then compare the observed modeled state with the expected result.

  1. 1
    Clock=before the next edge
    Expected:Q3Q2Q1Q0 = 0111 in the saved state
    What you'll see:Before the next clock edge, the persisted count is 7: Q0, Q1, and Q2 are on, while Q3 is off.
  2. 2
    Clock=one rising edge from saved 0111
    Expected:Q3Q2Q1Q0 = 1000 after one rising edge
    What you'll see:The first rising edge advances 7 to 8, changing the displayed word from 0111 to 1000.
  3. 3
    Clock=eight rising edges from saved 0111
    Expected:Q3Q2Q1Q0 = 1111 after eight rising edges
    What you'll see:Eight rising edges advance the saved count from 7 to 15, so all four output lights are on.
  4. 4
    Clock=nine rising edges from saved 0111
    Expected:Q3Q2Q1Q0 = 0000 after nine rising edges
    What you'll see:The ninth rising edge advances 15 to 0 and demonstrates modulo-16 wrap.

Components Used

Applications and Design Context

Event counting. An enabled counter advances once for every qualified pulse from a sensor or interface.

Timer prescaling. Successive counter bits provide divide-by-2, divide-by-4, divide-by-8, and divide-by-16 timing signals relative to accepted clock edges.

Address sequencing. Small memories, lookup tables, and test engines can use a binary counter to visit addresses in order.

Control sequencing. A decoder can translate selected counter states into timed control phases.

Test-pattern generation. A 4-bit counter supplies all 16 binary input vectors to a combinational circuit under test.

Frequently Asked Questions

What is the maximum count?

1111₂ is decimal 15. The next accepted rising edge wraps the 4-bit state to 0000, so the counter has 16 distinct states.

Is this a synchronous or ripple counter?

The production schematic uses one integrated COUNTER primitive. Its four outputs update from the same rising-edge event, so the observable behavior is synchronous; the template does not contain a visible ripple chain of flip-flops.

How can I reset the counter?

The counter's CLR pin is present but unconnected in this template. To add user-controlled clearing, connect a switch or suitable reset source to CLR; asserting it clears the stored count to 0000.

How can I pause counting without stopping the clock?

Drive EN low to hold the current count and high to accept rising clock edges. Here EN is wired to a logic-1 constant, so the counter is always enabled unless you edit the circuit.

How fast can this counter run in hardware?

The simulator models logical edge behavior, not a particular silicon timing library. A hardware maximum frequency depends on the counter implementation, process, supply, loading, routing, and setup/hold constraints; it cannot be inferred from this schematic alone.

Continue Learning