chapter ix register blocks counters, shift, and

advertisement
INTRO. TO COMP. ENG.
CHAPTER IX-1
•CHAPTER IX
REGISTER BLOCKS
CHAPTER IX
REGISTER BLOCKS
COUNTERS, SHIFT, AND ROTATE REGISTERS
READ PAGES 249-275 FROM MANO AND KIME
R.M. Dansereau; v.1.0
INTRO. TO COMP. ENG.
CHAPTER IX-2
REGISTER BLOCKS
•
REGISTER BLOCKS
•REGISTER BLOCKS
-INTRODUCTION
INTRODUCTION
Like combinational building blocks, we can also develop some simple
building blocks using registers. These include:
• Shift registers
• Rotate registers
• Counters
•
Implementations of these components can use state machines, but, it is
often easier to think of them without the complication of a state machine.
R.M. Dansereau; v.1.0
INTRO. TO COMP. ENG.
CHAPTER IX-3
SHIFT REGISTERS
REGISTER BLOCKS
•
•REGISTER BLOCKS
-INTRODUCTION
INTRODUCTION
Logical shift registers take the bits stored and move them up a significant
bit or down a significant bit.
MSB
LOGICAL SHIFT RIGHT
(LSR)
0
Cout
Sign bit
ARITHMETIC SHIFT RIGHT
replication
(ASR)
LOGICAL SHIFT LEFT
(LSL)
ARITHMETIC SHIFT LEFT
(ASL)
•
Cout
0
Cout
0
Cout
Notice that logical and arithmetic shift lefts are the same.
R.M. Dansereau; v.1.0
LSB
SHIFT REGISTERS
INTRO. TO COMP. ENG.
CHAPTER IX-4
LSR SAMPLE
REGISTER BLOCKS
•
•REGISTER BLOCKS
•SHIFT REGISTERS
-INTRODUCTION
A simple implementation of a logical right shift register might look like the
following.
0
MSB
D
LSB
D
Q
D
Q
D
Q
Q
Shift?
CLK
zn – 1
R.M. Dansereau; v.1.0
zn – 2
zn – 3
z0
SHIFT REGISTERS
INTRO. TO COMP. ENG.
CHAPTER IX-5
ASR SAMPLE
REGISTER BLOCKS
•
•REGISTER BLOCKS
•SHIFT REGISTERS
-INTRODUCTION
-LSR SAMPLE
An arithmetic right shift register might look like the following.
MSB
D
LSB
D
Q
D
Q
D
Q
Q
Shift?
CLK
zn – 1
R.M. Dansereau; v.1.0
zn – 2
zn – 3
z0
SHIFT REGISTERS
INTRO. TO COMP. ENG.
CHAPTER IX-6
4-BIT BIDIRECTIONAL
REGISTER BLOCKS
•
•SHIFT REGISTERS
-INTRODUCTION
-LSR SAMPLE
-ASR SAMPLE
The following is a 4-bit bidirectional shift register with parallel load.
x3
x2
x1
x0
xl
xr
3 2 1 0
4x1
MUX
3 2 1 0
4x1
MUX
3 2 1 0
4x1
MUX
3 2 1 0
4x1
MUX
D
D
D
D
c0
c1
Q
CLK
R.M. Dansereau; v.1.0
z3
Q
z2
Q
z1
Q
z0
INTRO. TO COMP. ENG.
CHAPTER IX-7
SHIFT REGISTERS
CASCADING (1)
REGISTER BLOCKS
•
•SHIFT REGISTERS
-LSR SAMPLE
-ASR SAMPLE
-4-BIT BIDIRECTIONAL
Cascading of shift registers can also be done if the discarded bit is used to
shift into another shift register module.
•
For instance, the 4-bit bidirectional shift register previously presented can
be easily cascaded using the
• x r (right shift data input) and
• x l (left shift data input)
c0
c1
R.M. Dansereau; v.1.0
x3
x2
x1
x0
4-bit bidirectional
shift register
z3 z2 z1 z0
xl
xr
INTRO. TO COMP. ENG.
CHAPTER IX-8
SHIFT REGISTERS
REGISTER BLOCKS
•
CASCADING (2)
•SHIFT REGISTERS
-ASR SAMPLE
-4-BIT BIDIRECTIONAL
-CASCADING
For example, an 8-bit bidirectional shift register with parallel load can be
formed as follows.
x7 x6 x5 x4
c0
c1
c0
c1
x3 x2 x1 x0
4-bit bidirectional
shift register
z3 z2 z1 z0
z7 z6 z5 z4
R.M. Dansereau; v.1.0
x3 x2 x1 x0
xr
xl
c0
xr
c1
x3 x2 x1 x0
4-bit bidirectional
shift register
z3 z2 z1 z0
z3 z2 z1 z0
xl
xl
xr
INTRO. TO COMP. ENG.
CHAPTER IX-9
REGISTER BLOCKS
•
ROTATE REGISTERS
INTRODUCTION
•SHIFT REGISTERS
-ASR SAMPLE
-4-BIT BIDIRECTIONAL
-CASCADING
A rotate register is the same as a logical shift register except that the
discarded bit is fed back into the empty space from the shift.
MSB
LSB
ROTATE RIGHT
ROTATE RIGHT WITH CARRY
C
ROTATE LEFT
ROTATE LEFT WITH CARRY
C
R.M. Dansereau; v.1.0
ROTATE REGISTERS
INTRO. TO COMP. ENG.
CHAPTER IX-10
USING SHIFT REGISTERS
REGISTER BLOCKS
•
•SHIFT REGISTERS
•ROTATE REGISTERS
-INTRODUCTION
Rotate registers can actually be implemented using shift registers that have
serial data inputs (such as the 4-bit bidirectional shift register discussed).
•
For example, a 4-bit rotate register can be formed as follows.
x3 x2 x1 x0
c0
c0
c1
c1
x3 x2 x1 x0
4-bit bidirectional
shift register
z3 z2 z1 z0
z3 z2 z1 z0
R.M. Dansereau; v.1.0
xl
xr
INTRO. TO COMP. ENG.
CHAPTER IX-11
REGISTER BLOCKS
•
COUNTERS
INTRODUCTION
•SHIFT REGISTERS
•ROTATE REGISTERS
-INTRODUCTION
-USING SHIFT REGISTERS
A counter is a register that on each clock pulse counts up or down, usually
in binary.
•
Types of counters
• ripple counters
• synchronous counters
• binary counters
• BCD counters
• Gray-code counters
• Ring counters (a 1 moves in a ring from one flip-flop to the next)
• up/down counters (ability to increment or decrement)
• counters with a parallel load (load in starting value with parallel input)
R.M. Dansereau; v.1.0
INTRO. TO COMP. ENG.
CHAPTER IX-12
REGISTER BLOCKS
•
COUNTERS
MODULO-P COUNTERS
•SHIFT REGISTERS
•ROTATE REGISTERS
•COUNTERS
-INTRODUCTION
A modulo-p counter is defined by the following equation.
S ( t + 1 ) = ( S ( t ) + x ) mod p
•
The state diagram for the modulo-p counter is as follows.
1
S0 ⁄ 0
0
R.M. Dansereau; v.1.0
1
S1 ⁄ 1
0
1
S2 ⁄ 2
0
1
Sp – 1
p–1
0
INTRO. TO COMP. ENG.
CHAPTER IX-13
REGISTER BLOCKS
•
COUNTERS
RIPPLE AND SYNCHRONOUS
•ROTATE REGISTERS
•COUNTERS
-INTRODUCTION
-MODULO-P COUNTERS
An n-bit binary counter consists of n flip-flops and can count in binary from
0 through 2 n – 1 .
• This can be formed with a modulo-p counter where p = 2 n .
•
Two main categories exist for counters:
• Ripple counters
• One flip-flop transition serves to trigger other flip-flops.
• The clock pulse is usually only sent to the first flip-flop.
• This requires a memory cell that can complement its value.
• The JK flip-flip would be one approach (we have not studied this!)
• Synchronous counters
• Change of state is determined from the present state.
• Clock pulse sent to all flip-flops.
R.M. Dansereau; v.1.0
COUNTERS
INTRO. TO COMP. ENG.
CHAPTER IX-14
TOGGLE CELL
REGISTER BLOCKS
•
•COUNTERS
-INTRODUCTION
-MODULO-P COUNTERS
-RIPPLE & SYNCHRONOUS
A toggle cell will be useful for implementing counters.
CE
(Count Enable)
CLEAR
Present
CE
Latch Value
X
X
0
0
1
0
0
1
1
1
R.M. Dansereau; v.1.0
CLEAR
0
1
1
1
1
Transparent
Latch
Transparent
Latch
φ1
φ2
Next
OUT
Latch Value
0
?
0
0
1
1
1
0
0
1
OUT
Toggle cell
CE
OUT
CLEAR
φ1 φ2
COUNTERS
INTRO. TO COMP. ENG.
CHAPTER IX-15
•COUNTERS
-MODULO-P COUNTERS
-RIPPLE & SYNCHRONOUS
-TOGGLE CELL
RIPPLE COUNTER
REGISTER BLOCKS
The toggle cell can be used as follows to form a ripple counter.
CE
(Count
Toggle cell
Toggle cell
Toggle cell
Toggle cell
Enable) CE
CE
CE
CE
•
φ1
OUT
CLEAR
OUT
CLEAR
OUT
CLEAR
OUT
CLEAR
φ1 φ2
φ1 φ2
φ1 φ2
φ1 φ2
φ2
CLEAR
z0
z1
z2
z3
• Notice that the previous toggle cell is connected to the clock input of the
next cell. This causes the bits to ripple through the counter.
R.M. Dansereau; v.1.0
COUNTERS
INTRO. TO COMP. ENG.
CHAPTER IX-16
SYNCHRONOUS COUNTER
REGISTER BLOCKS
•
•COUNTERS
-RIPPLE & SYNCHRONOUS
-TOGGLE CELL
-RIPPLE COUNTER
Below is an example 4-bit synchronous counter using toggle cells.
Toggle cell
CE
(Count
Enable)
Toggle cell
CE
Toggle cell
CE
OUT
CE
OUT
CLEAR
Toggle cell
CE
OUT
CLEAR
OUT
CLEAR
CLEAR
φ1 φ2
φ1 φ2
φ1 φ2
φ1 φ2
φ1 φ2
φ1 φ2
φ1 φ2
φ1 φ2
CLEAR
z0
z1
z2
• Notice that clock is sent to all toggle cells.
• A simplified form is in Figure 5-11, pp. 269 of Mano & Kime.
R.M. Dansereau; v.1.0
z3
COUNTERS
INTRO. TO COMP. ENG.
CHAPTER IX-17
MORE ON MODULO-P
REGISTER BLOCKS
•
•COUNTERS
-TOGGLE CELL
-RIPPLE COUNTER
-SYNCHRONOUS COUNT.
Notice that the counters developed so far can count from 0 to 2 n – 1 for n
toggle cells.
• Therefore, for module-p counting, the p is currently limited to 2 n .
•
How about if we wish p to be a non-power of 2?
• Need to build what can be referred to as a divide by counter.
• Given the following counter block, a general modulo-p counter can be
constructed by clearing the counter after the desired maximum value.
CE
4-bit counter
CLEAR
z3
R.M. Dansereau; v.1.0
z2
z1
z0
φ1
φ2
INTRO. TO COMP. ENG.
CHAPTER IX-18
REGISTER BLOCKS
•
COUNTERS
BCD COUNTER (MODULO-10)
•COUNTERS
-RIPPLE COUNTER
-SYNCHRONOUS COUNT.
-MORE ON MODULO-P
To illustrate general modulo-p counters, consider the following
implementation of a single digit decimal counter using BCD.
CE
CE
4-bit binary
counter
CLEAR
z3 z2 z1 z0
φ1
φ1
φ2
φ2
CLEAR
TC
Terminal Count Output
• Notice that the counter is cleared after a value of 9 (1001).
R.M. Dansereau; v.1.0
z3 z2 z1 z0
INTRO. TO COMP. ENG.
CHAPTER IX-19
REGISTER BLOCKS
•
COUNTERS
•COUNTERS
-SYNCHRONOUS COUNT.
-MORE ON MODULO-P
-BCD COUNTER
TERMINAL COUNT (TC)
The previous BCD counter was built by deriving a terminal count (TC)
output signal.
•
A terminal count output signal for any counter can be useful, so, we will be
included in general block diagram for a binary counter.
CE
4-bit binary
CLEAR
counter
TC z 3 z 2 z 1 z 0
φ1
φ2
Notice TC output
• In this 4-bit binary counter example, TC=1 only when the output is 1111.
R.M. Dansereau; v.1.0
INTRO. TO COMP. ENG.
CHAPTER IX-20
REGISTER BLOCKS
•
COUNTERS
•COUNTERS
-MORE ON MODULO-P
-BCD COUNTER
-TERMINAL COUNT
CASCADING COUNTERS
With a terminal count output (TC), counters can be easily cascaded
together to form larger counters.
• For instance, an 8-bit binary counter can be formed as follows.
CLEAR
CE
CE
CLEAR
TC
4-bit binary
counter
z3 z2 z1 z0
z7 z6 z5 z4
R.M. Dansereau; v.1.0
φ1 φ1
CE
φ2 φ2
CLEAR
TC
4-bit binary
counter
z3 z2 z1 z0
z3 z2 z1 z0
φ1 φ1
φ2 φ2
Download