1.A counter is a circuit that progresses in a defined sequence at the rate of one state per clock pulse.
2.The modulus of a counter is the number of states through which the counter output progresses before repeating.
3.A counter with an ascending sequence of states is called an UP counter. A counter with a descending sequence of states is called a DOWN counter.
4.In general, the maximum modulus of a counter is given by 2n for an n-bit counter.
5.A counter whose modulus is 2n is called a full-sequence counter. The count progresses from 0 to 2n 1, which corresponds to a binary output of all 0s to all 1s.
6.A counter whose output is less than 2n is called a truncated sequence counter.
7.The adjacent outputs of a full-sequence binary counter have
afrequency ratio of 2 1. The less significant of the two bits has the higher frequency.
8.The outputs of a truncated sequence counter do not necessarily have a simple frequency relationship.
9.A synchronous counter consists of a series of flip-flops, all clocked from the same source, that stores the present state of the counter and a combinational circuit that monitors the counter’s present state and determines its next state.
10.A synchronous counter can be analyzed by a formal procedure that includes the following steps:
a.Write the Boolean equations for the synchronous inputs of the counter flip-flops in terms of the present state of the flip-flip outputs.
b.Evaluate each Boolean equation for an initial state to find the states of the synchronous inputs.
c.Use flip-flop function tables to determine each flip-flop next state.
d.Set the next state to the new present state.
e.Continue until the sequence repeats.
11.The analysis procedure above should be applied to any unused states of the counter to ensure that they will enter the count sequence properly.
12.A synchronous counter can be designed using a formal method that relies on the excitation tables of the flip-flops used in the counter. An excitation table indicates the required logic levels on the flip-flop inputs to effect a particular transition.
13.The synchronous counter design procedure is based on the following steps:
a.Draw the state diagram of the counter and use it to list the relationship between the counter’s present and next states. The table should list the counter’s present states in binary order.
b.For the initial design, unused states can be set to a known destination, such as 0, or treated as don’t care states.
c.Use the flip-flop excitation table to determine the synchronous input levels for each present-to-next state transition.
d.Use Boolean algebra or Karnaugh maps to find the simplest equations for the flip-flop inputs (JK, D, or T) in terms of Q.
e.Unused states should be analyzed by substituting their values into the Boolean equations of the counter. This will verify whether or not an unused state will enter the count sequence properly.
14.If a counter must reset to 0 from an unused state, the flipflops can be reset asynchronously to their initial states or the counter can be designed with the unused states always having 0 as their next state.
15.A counter can be designed in VHDL by using a behavioral description or a structural design that uses a component from the Library of Parameterized Modules (LPM).
16.A behavioral counter design requires a PROCESS statement that lists the clock signal and any asynchronous inputs in its sensitivity list. An IF statement inside the PROCESS can monitor the active clock edge by using the predefined EVENT attribute (e.g., clk EVENT) and increment a count variable.
17.A variable is local to a PROCESS and is assigned with the : operator. A signal is global to the VHDL design entity and is assigned with the <= operator. (Recall that a signal is like an internal connecting wire and a variable is a piece of working memory.)
18.A structural counter design can use an LPM component (lpm_counter) and instantiate the component in a component instantiation statement. The statement’s generic map specifies the component parameters, and its port map indicates the correspondence between the component port names and the user port, signal, or variable names.
19.Some of the most common control features available in synchronous counters include:
a.Synchronous or asynchronous parallel load, which allows the count to be set to any value whenever a LOAD input is asserted
b.Synchronous or asynchronous clear (reset), which sets all of the counter outputs to zero
c.Count enable, which allows the count sequence to progress when asserted and inhibits the count when deasserted
d.Bidirectional control, which determines whether the counter counts up or down