Skip to main content
Logo image

Section 10.1 Overview of simple counters

The most basic counter is a register to hold the current value of the count, and an incrementer to generate the next value in the count sequence (Figure 8.3.1). Enhancements to this basic setup include:
  • Enable (count-hold control)
  • Clear (reset control)
  • Direction (up-down control)
  • Variable step size (count increment)
  • Load (initial value or override value)
  • Arbitrary count limit (terminal count)
  • Count sequence (straight binary, Gray code...)
This more capable counter includes the current state register, and combinational logic to generate the counter’s next state, based on the current state and the external inputs, as in Figure 10.1.1, below.
described in detail following the image
Block diagram
Figure 10.1.1. A counter consists of a register to hold the current value, and combinational logic to determine the next value of the count based on the current count and external inputs.
The combinational logic is made from arithmetic elements and multiplexers controlled by inputs. An example, from an earlier section, is a counter that runs from 0 to a maximum value \(M-1\text{,}\) and generates a terminal count (TC) signal when the maximum value is reached, Figure 9.2.2. The VHDL model for a counter may either be purely synchronous or a mixed synchronous-asynchronous process, Listing 9.2.3.