• No results found

CHAPTER IX REGISTER BLOCKS COUNTERS, SHIFT, AND ROTATE REGISTERS

N/A
N/A
Protected

Academic year: 2021

Share "CHAPTER IX REGISTER BLOCKS COUNTERS, SHIFT, AND ROTATE REGISTERS"

Copied!
20
0
0

Loading.... (view fulltext now)

Full text

(1)

INTRO. TO COMP. ENG.

CHAPTER IX-1 REGISTER BLOCKS

•CHAPTER IX

CHAPTER IX

REGISTER BLOCKS

COUNTERS, SHIFT, AND ROTATE REGISTERS

READ PAGES 249-275 FROM MANO AND KIME

(2)

INTRO. TO COMP. ENG.

CHAPTER IX-2

REGISTER BLOCKS

INTRODUCTION

REGISTER BLOCKS

-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.

(3)

INTRO. TO COMP. ENG.

CHAPTER IX-3

SHIFT REGISTERS

INTRODUCTION

REGISTER BLOCKS

•REGISTER BLOCKS -INTRODUCTION

Logical shift registers take the bits stored and move them up a significant bit or down a significant bit.

Notice that logical and arithmetic shift lefts are the same.

LOGICAL SHIFT RIGHT 0

0

0 ARITHMETIC SHIFT RIGHT

LOGICAL SHIFT LEFT

ARITHMETIC SHIFT LEFT

Sign bit replication

MSB LSB

Cout

Cout

Cout Cout (LSR)

(ASR)

(LSL)

(ASL)

(4)

INTRO. TO COMP. ENG.

CHAPTER IX-4

SHIFT REGISTERS

LSR SAMPLE

REGISTER BLOCKS

•SHIFT REGISTERS -INTRODUCTION

A simple implementation of a logical right shift register might look like the following.

D

Q

D

Q

D

Q

CLK

D

Q

MSB LSB

Shift?

zn 1 zn 2 zn 3 z0

0

(5)

INTRO. TO COMP. ENG.

CHAPTER IX-5

SHIFT REGISTERS

ASR SAMPLE

REGISTER BLOCKS

•REGISTER BLOCKS

•SHIFT REGISTERS -INTRODUCTION -LSR SAMPLE

An arithmetic right shift register might look like the following.

D

Q

D

Q

D

Q

CLK

D

Q

MSB LSB

Shift?

zn 1 zn 2 zn 3 z0

(6)

INTRO. TO COMP. ENG.

CHAPTER IX-6

SHIFT REGISTERS

4-BIT BIDIRECTIONAL

REGISTER BLOCKS

-INTRODUCTION -LSR SAMPLE -ASR SAMPLE

The following is a 4-bit bidirectional shift register with parallel load.

4x1 MUX 3 2 1 0

4x1 MUX 3 2 1 0

4x1 MUX 3 2 1 0

4x1 MUX 3 2 1 0

D

Q

D

Q

D

Q

D

Q CLK

x3 x2 x1 x0

z3 z2 z1 z0

xr

xl

c0 c1

(7)

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

• (right shift data input) and

• (left shift data input) xr

xl

z0 z2 z1

z3

4-bit bidirectional

shift register xr xl c0

c1

x3 x2 x1 x0

(8)

INTRO. TO COMP. ENG.

CHAPTER IX-8

SHIFT REGISTERS

CASCADING (2)

REGISTER BLOCKS

-ASR SAMPLE

-4-BIT BIDIRECTIONAL -CASCADING

For example, an 8-bit bidirectional shift register with parallel load can be formed as follows.

z0 z2 z1

z3

4-bit bidirectional

shift register xr xl

c0 c1

x3 x2 x1 x0

z0 z2 z1

z3

4-bit bidirectional

shift register xr xl

c0 c1

x3 x2 x1 x0

xr xl

c0 c1

z0 z2 z1

z3 z4

z6 z5 z7

x0 x2 x1

x3 x4

x6 x5 x7

(9)

INTRO. TO COMP. ENG.

CHAPTER IX-9

ROTATE REGISTERS

INTRODUCTION

REGISTER BLOCKS

•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.

ROTATE RIGHT

ROTATE LEFT

ROTATE LEFT WITH CARRY

MSB LSB

C ROTATE RIGHT WITH CARRY

C

(10)

INTRO. TO COMP. ENG.

CHAPTER IX-10

ROTATE REGISTERS

USING SHIFT REGISTERS

REGISTER BLOCKS

•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.

z0 z2 z1

z3

4-bit bidirectional

shift register xr xl

c0 c1

x3 x2 x1 x0 c0

c1

x0 x2 x1

x3

z0 z2 z1

z3

(11)

INTRO. TO COMP. ENG.

CHAPTER IX-11

COUNTERS

INTRODUCTION

REGISTER BLOCKS

•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)

(12)

INTRO. TO COMP. ENG.

CHAPTER IX-12

COUNTERS

MODULO-P COUNTERS

REGISTER BLOCKS

•ROTATE REGISTERS

•COUNTERS

-INTRODUCTION

A modulo-p counter is defined by the following equation.

The state diagram for the modulo-p counter is as follows.

S t( + 1) = (S t( ) + x) mod p

Sp 1 p1 S00 S11 S22

1

1 1 1

0 0 0 0

(13)

INTRO. TO COMP. ENG.

CHAPTER IX-13

COUNTERS

RIPPLE AND SYNCHRONOUS

REGISTER BLOCKS

•ROTATE REGISTERS

•COUNTERS

-INTRODUCTION

-MODULO-P COUNTERS

An n-bit binary counter consists of n flip-flops and can count in binary from through .

• This can be formed with a modulo-p counter where .

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.

0 2n – 1

p = 2n

(14)

INTRO. TO COMP. ENG.

CHAPTER IX-14

COUNTERS

TOGGLE CELL

REGISTER BLOCKS

-INTRODUCTION

-MODULO-P COUNTERS -RIPPLE & SYNCHRONOUS

A toggle cell will be useful for implementing counters.

Transparent Latch

Transparent Latch

φ1 φ2

OUT CE

(Count Enable)

CLEAR

CE CLEAR OUT

Present Latch Value

Next Latch Value

X X 0 0 ?

0 0 1 0 0

1 0 1 1 1

0 1 1 1 0

1 1 1 0 1

OUT

φ1 φ2

CE CLEAR

Toggle cell

(15)

INTRO. TO COMP. ENG.

CHAPTER IX-15

COUNTERS

RIPPLE COUNTER

REGISTER BLOCKS

•COUNTERS

-MODULO-P COUNTERS -RIPPLE & SYNCHRONOUS -TOGGLE CELL

The toggle cell can be used as follows to form a ripple counter.

• 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.

OUT

φ1 φ2

CE CLEAR

OUT

φ1 φ2

CE CLEAR

OUT

φ1 φ2

CE CLEAR

OUT

φ1 φ2

CE CLEAR

CLEAR

z0 z1 z2 z3

CE (Count Enable)

φ1 φ2

Toggle cell Toggle cell Toggle cell Toggle cell

(16)

INTRO. TO COMP. ENG.

CHAPTER IX-16

COUNTERS

SYNCHRONOUS COUNTER

REGISTER BLOCKS

-RIPPLE & SYNCHRONOUS -TOGGLE CELL

-RIPPLE COUNTER

Below is an example 4-bit synchronous counter using toggle cells.

• Notice that clock is sent to all toggle cells.

• A simplified form is in Figure 5-11, pp. 269 of Mano & Kime.

OUT

φ1 φ2

CE CLEAR

OUT

φ1 φ2

CE CLEAR

OUT

φ1 φ2

CE CLEAR

OUT

φ1 φ2

CE CLEAR

CLEAR

z0 z1 z2 z3

CE (Count Enable)

φ1 φ2 φ1 φ2 φ1 φ2 φ1 φ2

Toggle cell Toggle cell Toggle cell Toggle cell

(17)

INTRO. TO COMP. ENG.

CHAPTER IX-17

COUNTERS

MORE ON MODULO-P

REGISTER BLOCKS

•COUNTERS

-TOGGLE CELL -RIPPLE COUNTER

-SYNCHRONOUS COUNT.

Notice that the counters developed so far can count from to for n toggle cells.

• Therefore, for module-p counting, the p is currently limited to .

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.

0 2n – 1

2n

z0 z2 z1

z3 CLEAR

CE 4-bit counter φ1

φ2

(18)

INTRO. TO COMP. ENG.

CHAPTER IX-18

COUNTERS

BCD COUNTER (MODULO-10)

REGISTER BLOCKS

-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.

• Notice that the counter is cleared after a value of 9 (1001).

z0 z2 z1

z3 CLEAR

CE 4-bit binary CE

CLEAR

φ1 φ2

φ1 φ2 counter

TC

Terminal Count Output z3 z2 z1 z0

(19)

INTRO. TO COMP. ENG.

CHAPTER IX-19

COUNTERS

TERMINAL COUNT (TC)

REGISTER BLOCKS

•COUNTERS

-SYNCHRONOUS COUNT.

-MORE ON MODULO-P -BCD COUNTER

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.

• In this 4-bit binary counter example, TC=1 only when the output is 1111.

z0 z2 z1

z3 CLEAR CE

4-bit binary φ1 φ2 TC

counter

Notice TC output

(20)

INTRO. TO COMP. ENG.

CHAPTER IX-20

COUNTERS

CASCADING COUNTERS

REGISTER BLOCKS

-MORE ON MODULO-P -BCD COUNTER

-TERMINAL COUNT

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.

z0 z2 z1

z3

CLEAR CE

4-bit binary φ1 φ2

TC

counter

z0 z2 z1

z3

CLEAR CE

4-bit binary φ1 φ2

TC

counter

CLEAR CE

φ1 φ2 φ1

φ2

z0 z2 z1

z3 z4

z6 z5 z7

References

Related documents