Chapter 4
Chapter 4
4
1. Logic gates and Boolean algebra Chapter 3: Common digital components (6hr)
2
1. Integrated circuit
2. Combinational circuit
3
2. Decoder, multiplexer and registers
3. Flip flops
1
3. Binary counter
4. Sequential circuit
4. Memory units
Chapter 2: Number system and codes (4hr)
1. Data types
5
2. Complements
Henry Hexmoor B.
By Haftom 05/01/2025 1
CHAPTER FOUR
2
REGISTER TRANSFER AND MICROOPERATIONS
By Haftom B. 05/01/2025
CONTENTS
Register Transfer
Arithmetic Microoperations
Logic Microoperations
Shift Microoperations
MICROOPERATIONS (1)
MICROOPERATION (2)
• An elementary operation performed (during one clock pulse), on the
information stored in one or more registers.
R f(R, R)
DESIGNATION OF REGISTERS
DESIGNATION OF REGISTERS
• Designation of a register
- a register
- portion of a register
- a bit of a register
• Common ways of drawing the block diagram of a register
•The clock is not included as a variable in RTL
REGISTER TRANSFER
Copying the contents of one register to another is a register
transfer
A register transfer is indicated as
R2 R1
In this case the contents of register R1 are copied (loaded) into
register R2
A simultaneous transfer of all bits from the source R1 to the
destination register R2, during one clock pulse
Note that this is a non-destructive; i.e. the contents of R1 are
not altered by copying (loading) them to R2
Register Transfer
REGISTER TRANSFER
A register transfer such as
R3 R5
Implies that the digital system has
the data lines from the source register (R5) to the destination
register (R3)
Parallel load in the destination register (R3)
Control lines to perform the action
Register Transfer
CONTROL FUNCTIONS
Often actions need to only occur if a certain condition is true
This is similar to an “if” statement in a programming language
In digital systems, this is often done via a control signal, called a
control function
If the signal is 1, the action takes place
This is represented as:
P: R2 R1
Which means “if P = 1, then load the contents of register R1 into
register R2”, i.e., if (P = 1) then (R2 R1)
Register Transfer
HARDWARE IMPLEMENTATION OF
CONTROLLED TRANSFERS
Implementation of controlled transfer
P: R2 R1
Load
Transfer occurs here
• The same clock controls the circuits that generate the control
function and the destination register
• Registers are assumed to use positive-edge-triggered flip-flops
Register Transfer
SIMULTANEOUS OPERATIONS
If two or more operations are to occur simultaneously, they
are separated with commas
P: R3 R5, MAR IR
Here, if the control function P = 1, load the contents of R5
into R3, and at the same time (clock), load the contents of
register IR into register MAR
Register Transfer
CONNECTING REGISTRS
In a digital system with many registers, it is impractical to have data
and control lines to directly allow each register to be loaded with the
contents of every possible other registers
To completely connect n registers n(n-1) lines
O(n2) cost
This is not a realistic approach to use in a large digital system
Instead, take a different approach
Have one centralized set of circuits for data transfer – the bus
Have control circuits to select which register is the source, and which
is the destination
Bus and Memory Transfers
Bus lines
B1 C1 D 1 B2 C2 D 2 B3 C3 D 3 B4 C4 D 4
0 0 0 0
4 x1 4 x1 4 x1 4 x1
MUX MUX MUX MUX
x
select
y
4-line bus
Bus and Memory Transfers
Load
Reg. R0 Reg. R1 Reg. R2 Reg. R3
D 0 D1 D2 D 3
z E (enable)
Select 2x4
w
Decoder
S0 0
Select 1
S1 2
Enable 3
Bus and Memory Transfers
MEMORY READ
To read a value from a location in memory and load it into a
register, the register transfer language notation looks like this:
R1 M[MAR]
This causes the following to occur
The contents of the MAR get sent to the memory address
lines
A Read (= 1) gets sent to the memory unit
The contents of the specified address are put on the
memory’s output data lines
These get sent over the bus to be loaded into register R1
Bus and Memory Transfers
MEMORY WRITE
To write a value from a register to a location in memory looks like
this in register transfer language:
M[MAR] R1
MICROOPERATIONS
• Computer system microoperations are of four types:
ARITHMETIC MICROOPERATIONS
The basic arithmetic microoperations are
Addition
Subtraction
Increment
Decrement
The additional arithmetic microoperations are
Add with carry
Subtract with borrow
Transfer/Load
etc. …
SUMMARY OF TYPICAL ARITHMETIC MICRO-OPERATIONS
Henry Hexmoor
By Haftom B. 05/01/2025 29
Arithmetic Microoperations
Binary Adder C3 C2 C1 C0
FA FA FA FA
C4 S3 S2 S1 S0
Binary Adder-Subtractor
B3 A3 B2 A2 B1 A1 B0 A0
C3 C2 C1 C0
FA FA FA FA
C4 S3 S2 S1 S0
Binary Incrementer A3 A2 A1 A0 1
x y x y x y x y
HA HA HA HA
C S C S C S C S
C4 S3 S2 S1 S0
Arithmetic Microoperations
ARITHMETIC CIRCUIT
Cin
S1
S0
A0 X0 C0
S1 D0
S0 FA
B0 0 4x1 Y0 C1
1 MUX
2
3
A1 X1 C1
S1 FA D1
S0
B1 0 4x1 Y1 C2
1 MUX
2
3
A2 X2 C2
S1 FA D2
S0
B2 0 4x1 Y2 C3
1 MUX
2
3
A3 X3 C3
S1 D3
S0 FA
B3 0 4x1 Y3 C4
1 MUX
2
3 Cout
0 1
• Truth tables for 16 functions of 2 variables and the corresponding 16 logic micro-
operations x 0011 Boolean Micro-
Name
y 0101 Function Operations
0000 F0 = 0 F0 Clear
0001 F1 = xy FAB AND
0010 F2 = xy' F A B’
0011 F3 = x FA Transfer A
0100 F4 = x'y F A’ B
0101 F5 = y FB Transfer B
0110 F6 = x y FAB Exclusive-OR
0111 F7 = x + y FAB OR
1000 F8 = (x + y)' F A B)’ NOR
1001 F9 = (x y)' F (A B)’ Exclusive-NOR
1010 F10 = y' F B’ Complement B
1011 F11 = x + y' FAB
1100 F12 = x' F A’ Complement A
1101 F13 = x' + y F A’ B
1110 F14 = (xy)' F (A B)’ NAND
1111 F15 = 1 F all 1's Set to all 1's
Logic Microoperations
1
4X1 Fi
MUX
2
3 Select
S1
S0
Function table
S1 S 0 Output -operation
0 0 F=AB AND
0 1 F = AB OR
1 0 F=AB XOR
1 1 F = A’ Complement
Logic Microoperations
SELECTIVE SET
SELECTIVE COMPLEMENT
SELECTIVE CLEAR
1100 At
1010 B
0100 At+1 (A A B’)
MASK OPERATION
CLEAR OPERATION
1100 At
1010 B
0110 At+1 (A A B)
Logic Microoperations
INSERT OPERATION
An insert operation is used to introduce a specific bit pattern into A
register, leaving the other bit positions unchanged
This is done as
1. A mask operation to clear the desired bit positions, followed by
2. 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)
LOGICAL SHIFT
In a logical shift the serial input to the shift is a 0.
A right logical shift operation:
0
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:
CF
Shift Microoperations
ARITHMETIC SHIFT
An left arithmetic shift operation must be checked for the
overflow 0
sign
bit
S
MUX H0
0
1
A0
A1 S
MUX H1
0
A2 1
A3
S
MUX H2
0
1
S
MUX H3
0
1
Serial
input (IL)
Shift Microoperations
Arithmetic D i
Circuit
Select
Ci+1
0 4x1 Fi
1 MUX
2
3
Ei
Logic
Bi
Ai
Circuit
Ai-1 shr
Ai+1 shl
?
Henry Hexmoor
By Haftom B. 05/01/2025 50