4-Bit Binary Counter
A fixed-HIGH enable lets the packaged 4-bit counter advance modulo 16 on each rising clock edge. Four lights expose Q3..Q0; clear, load, and terminal-count signals are not connected.
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
On each rising clock edge, the enabled counter advances by one modulo 16.
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.
- 1Clock=before the next edgeExpected:
Q3Q2Q1Q0 = 0111 in the saved stateWhat you'll see:Before the next clock edge, the persisted count is 7: Q0, Q1, and Q2 are on, while Q3 is off. - 2Clock=one rising edge from saved 0111Expected:
Q3Q2Q1Q0 = 1000 after one rising edgeWhat you'll see:The first rising edge advances 7 to 8, changing the displayed word from 0111 to 1000. - 3Clock=eight rising edges from saved 0111Expected:
Q3Q2Q1Q0 = 1111 after eight rising edgesWhat you'll see:Eight rising edges advance the saved count from 7 to 15, so all four output lights are on. - 4Clock=nine rising edges from saved 0111Expected:
Q3Q2Q1Q0 = 0000 after nine rising edgesWhat 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.