Counters
Counters
Counters
Counters are a specific type of sequential circuit. Like registers, the state, or the flipflop values themselves, serves as the output. The output value increases by one on each clock cycle. After the largest value, the output wraps around back to 0. Using two bits, wed get something like this:
Present State A B 0 0 1 1 0 1 0 1 Next State A B 0 1 1 0 1 0 1 0
00 1 11
2
01
1
10
Benefits of counters
Counters can act as simple clocks to keep track of time. They are used for counting the number of occurrences of an event and are useful for generating timing signals to control the sequence of operations in digital computers. You may need to record how many times something has happened. How many bits have been sent or received? How many steps have been performed in some computation? All processors contain a program counter, or PC. Programs consist of a list of instructions that are to be executed one after another (for the most part). The PC keeps track of the instruction currently being executed. The PC increments once on each clock cycle, and the next program instruction is then executed.
Lets try to design a slightly different two-bit counter: Again, the counter outputs will be 00, 01, 10 and 11. Now, there is a single input, X. When X=0, the counter value should increment on each clock cycle. But when X=1, the value should decrement on successive cycles. Well need two flip-flops again. Here are the four possible states:
00
01
11
10
Heres the complete state diagram and state table for this circuit.
00 0 1
1
1 1
01 0 10
Present State Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1
Inputs X 0 1 0 1 0 1 0 1
Next State Q1 Q0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0
11
D flip-flop inputs
If we use D flip-flops, then the D inputs will just be the same as the desired next states. Equations for the D flip-flop inputs are shown at the right. Why does D0 = Q0 make sense?
Present State Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 Inputs X 0 1 0 1 0 1 0 1 Next State Q1 Q0 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0
Q1
0 1
1 0 X
Q0 0 1
1 0
D1 = Q1 Q0 X
Q0 0 0
Q1
1 1
1 1 X
0 0
D0 = Q0
6
Asynchronous Counters
This counter is called asynchronous because not all flip flops are hooked to the same clock. Look at the waveform of the output, Q, in the timing diagram. It resembles a clock as well. If the period of the clock is T, then what is the period of Q, the output of the flip flop? It's 2T! We have a way to create a clock that runs twice as slow. We feed the clock into a T flip flop, where T is hardwired to 1. The output will be a clock who's period is twice as long.
Asynchronous counters
If the clock has period T. Q0 has period 2T. Q1 period is 4T With n flip flops the period is 2n.
An n bit counter is a register of nflip flops And associated gates that follow a sequence of states according to the binary count of n bits from 0 to 2n-1
3 bit asynchronous ripple counter using T flip flops This is called as a ripple counter due to the way the FFs respond one after another in a kind of rippling effect.
10
Synchronous Counters
each flip-flop and a combinational circuit to generate the next state. For an up-counter, use an incrementer => Incrementer
A3 A2 A1
S3
D3 Q3 D2 Q2 D1 Q1 D0 Q0
S2
S1 S0
A0
Clock
11
Changing states
order bit is complemented after every count and every other bit is complemented from one count to the next count if and only if all the lower order bits are equal to 1.
For eg. 0111 (7). .. 1000 (8) is obtained by a) complementing the LOB b) Complementing the second bit because the first bit of 0111 is 1 c) Complementing the third bit coz first 2 bits are 11 d) Complementing the fourth bit coz the first 3 bits are of 0111
are 1
Henry Hexmoor
12
13
An 8-bit counter
As you might expect by now, we can use these general counters to build other counters. Here is an 8-bit counter made from two 4-bit counters. The bottom device represents the least significant four bits, while the top counter represents the most significant four bits. When the bottom counter reaches 1111 (i.e., when CO = 0), it enables the top counter for one cycle. Other implementation notes: The counters share clock and clear signals.
14
15
16
Summary of Counters
Counters serve many purposes in sequential logic design. There are lots of variations on the basic counter. Some can increment or decrement. An enable signal can be added. The counters value may be explicitly set. There are also several ways to make counters. You can follow the sequential design principles to build counters from scratch. You could also modify or combine existing counter devices.
17
Next State Q8 Q4 Q2 Q1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0
19
0 9 14 15 7 6 5
20
1 2 12 3
8
11 13
10
For the BCD counter design, if an invalid state is entered, return to a valid state occurs within two clock cycles Is this adequate?!
21
22
Unused states
The examples shown so far have all had 2n states, and used n flip-flops. But sometimes you may have unused, leftover states. For example, here is a state table and diagram for a counter that repeatedly counts from 0 (000) to 5 (101). What should we put in the table for the two unused states?
Present State Q2 Q1 Q0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Next State Q2 Q1 Q0 0 0 0 1 1 0 ? ? 0 1 1 0 0 0 ? ? 1 0 1 0 1 0 ? ?
000
101
001
100 011
23
010
000
101
001
100 011
24
010
000
101
001
100 011
25
010