Skip to main content
Register Transfer and Micro-operations 1
CSE 211
Overview
 Register Transfer Language
 Register Transfer
 Bus and Memory Transfers
 Arithmetic Micro-operations
 Logic Micro-operations
 Shift Micro-operations
 Arithmetic Logic Shift Unit
Register Transfer and Micro-operations 2
CSE 211
Logic Micro operations
Register Transfer and Micro-operations 3
CSE 211
Logic Microoperations
Register Transfer and Micro-operations 4
CSE 211
Hardware Implementation
0 0 F = A  B AND
0 1 F = AB OR
1 0 F = A  B XOR
1 1 F = A’ Complement
S1 S0 Output -operation
Function table
B
A
S
S
F
1
0
i
i
i
0
1
2
3
4 X 1
MUX
Select
Register Transfer and Micro-operations 5
CSE 211
Applications of Logic Microoperations
 Logic microoperations can be used to manipulate individual bits or a
portions of a word in a register
 Consider the data in a register A. In another register, B, is bit data that
will be used to modify the contents of A
 Selective-set A  A + B
 Selective-complement A  A  B
 Selective-clear A  A • B’
 Mask (Delete) A  A • B
 Clear A  A  B
 Insert A  (A • B) + C
 Compare A  A  B
Register Transfer and Micro-operations 6
CSE 211
Applications of Logic Microoperations
1. In a selective set operation, the bit pattern in B is used to set certain bits in A
1 1 0 0 At
1 0 1 0 B
1 1 1 0 At+1 (A  A + B)
If a bit in B is set to 1, that same position in A gets set to 1, otherwise that
bit in A keeps its previous value
2. In a selective complement operation, the bit pattern in B is used to
complement certain bits in A
1 1 0 0 At
1 0 1 0 B
0 1 1 0 At+1 (A  A  B)
If a bit in B is set to 1, that same position in A gets complemented from its
original value, otherwise it is unchanged
Register Transfer and Micro-operations 7
CSE 211
Applications of Logic Microoperations
3. In a selective clear operation, the bit pattern in B is used to clear certain bits
in A
1 1 0 0 At
1 0 1 0 B
0 1 0 0 At+1 (A  A  B’)
If a bit in B is set to 1, that same position in A gets set to 0, otherwise it is
unchanged
4. In a mask operation, the bit pattern in B is used to clear certain bits in A
1 1 0 0 At
1 0 1 0 B
1 0 0 0 At+1 (A  A  B)
If a bit in B is set to 0, that same position in A gets set to 0, otherwise it is
unchanged
Register Transfer and Micro-operations 8
CSE 211
Applications of Logic Microoperations
5. In a clear operation, if the bits in the same position in A and B are the same,
they are cleared in A, otherwise they are set in A
1 1 0 0 At
1 0 1 0 B
0 1 1 0 At+1 (A  A  B)
Register Transfer and Micro-operations 9
CSE 211
Applications of Logic Microoperations
6. An insert operation is used to introduce a specific bit pattern into A register,
leaving the other bit positions unchanged
This is done as
– A mask operation to clear the desired bit positions, followed by
– An OR operation to introduce the new bits into the desired positions
– Example
• Suppose you wanted to introduce 1010 into the low order four bits of A:
• 1101 1000 1011 0001 A (Original)
1101 1000 1011 1010 A (Desired)
• 1101 1000 1011 0001 A (Original)
1111 1111 1111 0000 Mask
1101 1000 1011 0000 A (Intermediate)
0000 0000 0000 1010 Added bits
1101 1000 1011 1010 A (Desired)
Register Transfer and Micro-operations 10
CSE 211
Shift Microoperations
• There are three types of shifts
– Logical shift
– Circular shift
– Arithmetic shift
• What differentiates them is the information that goes into the serial input
Serial
input
• A right shift operation
• A left shift operation
Serial
input
Register Transfer and Micro-operations 11
CSE 211
Logical Shift
• In a logical shift the serial input to the shift is a 0.
• A right logical shift operation:
• A left logical shift operation:
• In a Register Transfer Language, the following notation is used
– shl for a logical shift left
– shr for a logical shift right
– Examples:
• R2  shr R2
• R3  shl R3
0
0
Register Transfer and Micro-operations 12
CSE 211
Circular Shift
• In a circular shift the serial input is the bit that is shifted out of the other
end of the register.
• A right circular shift operation:
• A left circular shift operation:
• In a RTL, the following notation is used
– cil for a circular shift left
– cir for a circular shift right
– Examples:
• R2  cir R2
• R3  cil R3
Register Transfer and Micro-operations 13
CSE 211
Arithmetic Shift
• An arithmetic shift is meant for signed binary numbers (integer)
• An arithmetic left shift multiplies a signed number by two
• An arithmetic right shift divides a signed number by two
• Sign bit : 0 for positive and 1 for negative
• The main distinction of an arithmetic shift is that it must keep the sign of
the number the same as it performs the multiplication or division
• A right arithmetic shift operation:
• A left arithmetic shift operation: 0
sign
bit
sign
bit
Register Transfer and Micro-operations 14
CSE 211
Arithmetic Shift
• An left arithmetic shift operation must be checked for the overflow
0
V
Before the shift, if the leftmost two
bits differ, the shift will result in an
overflow
• In a RTL, the following notation is used
– ashl for an arithmetic shift left
– ashr for an arithmetic shift right
– Examples:
» R2  ashr R2
» R3  ashl R3
sign
bit
Register Transfer and Micro-operations 15
CSE 211
Hardware Implementation of Shift Microoperation
Register Transfer and Micro-operations 16
CSE 211
Arithmetic Logic and Shift Unit
Arithmetic
Circuit
Logic
Circuit
C
C
4 x 1
MUX
Select
0
1
2
3
F
S3
S2
S1
S0
B
A
i
A
D
A
E
shr
shl
i+1 i
i
i
i+1
i-1
i
i
S3 S2 S1 S0 Cin Operation
0 0 0 0 0 F = A
0 0 0 0 1 F = A + 1
0 0 0 1 0 F = A + B
0 0 0 1 1 F = A + B + 1
0 0 1 0 0 F = A + B’
0 0 1 0 1 F = A + B’+ 1
0 0 1 1 0 F = A - 1
0 0 1 1 1 F = A
0 1 0 0 X F = A  B
0 1 0 1 X F = A B
0 1 1 0 X F = A  B
0 1 1 1 X F = A’
1 0 X X X F = shr A
1 1 X X X F = shl A