Professional Documents
Culture Documents
1. Logic gates and Boolean algebra Chapter 3: Common digital components (6hr)
1. Integrated circuit
2. Combinational circuit
2. Decoder, multiplexer and registers
3. Flip flops
3. Binary counter
4. Sequential circuit
4. Memory units
Chapter 2: Number system and codes (4hr)
1. Data types
2. Complements
Henry Hexmoor
Bekretsyon B. 7/30/2022 1
2
REGISTER TRANSFER AND MICROOPERATIONS
Bekretsyon B. 7/30/2022
CONTENTS
Register Transfer
Arithmetic Microoperations
Logic Microoperations
Shift Microoperations
Bekretsyon B. 7/30/2022 3
SIMPLE DIGITAL SYSTEMS
Bekretsyon B. 7/30/2022 4
Register Transfer Language
MICROOPERATIONS (1)
Bekretsyon B. 7/30/2022 5
Register Transfer Language
MICROOPERATION
R f(R, R)
Bekretsyon B. 7/30/2022 7
Register Transfer Language
Bekretsyon B. 7/30/2022 8
Register Transfer Language
DESIGNATION OF REGISTERS
DESIGNATION OF REGISTERS
• Designation of a register
- a register
- portion of a register
- a bit of a register
Bekretsyon B. 7/30/2022 11
Register Transfer
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
Bekretsyon B. 7/30/2022 12
Register Transfer
REGISTER TRANSFER
Bekretsyon B. 7/30/2022 13
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)
Bekretsyon B. 7/30/2022 14
Register Transfer
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
Bekretsyon B. 7/30/2022 15
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
Bekretsyon B. 7/30/2022 16
Register Transfer
Bekretsyon B. 7/30/2022 17
Register Transfer
CONNECTING REGISTRS
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
Bekretsyon B. 7/30/2022 19
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
Bekretsyon B. 7/30/2022 20
Bus and Memory Transfers
Bekretsyon B. 7/30/2022 21
MEMORY RAM Bus and Memory Transfers
address lines
n data input lines k
RAM
n data output lines Read
unit
Write
k address lines
n
A Read control line data output lines
Bekretsyon B. 7/30/2022 22
A Write control line
Bus and Memory Transfers
MEMORY TRANSFER
Collectively, the memory is viewed at the register level as a device, M.
Since it contains multiple locations, we must specify which address in
memory we will be using
This is done by indexing memory references
Memory is usually accessed in computer systems by putting the
desired address in a special register, the Memory Address Register
(MAR, or AR)
When memory is accessed, the contents of the MAR get sent to the
memory unit’s address lines
M
Read
Memory
AR
unit Write
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
Bekretsyon B. 7/30/2022 24
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
Bekretsyon B. 7/30/2022 25
Bus and Memory Transfers
Bekretsyon B. 7/30/2022 26
Arithmetic Microoperations
MICROOPERATIONS
• Computer system microoperations are of four types:
Bekretsyon B. 7/30/2022 27
Arithmetic Microoperations
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. …
Bekretsyon B. 7/30/2022 28
SUMMARY OF TYPICAL ARITHMETIC MICRO-OPERATIONS
Henry Hexmoor
Bekretsyon B. 7/30/2022 29
Arithmetic Microoperations
B3 A3 B2 A2 B1 A1 B0 A0
Binary Adder
FA C3 FA C2 FA C1 FA C0
C4 S3 S2 S1 S0
Binary Adder-Subtractor
B3 A3 B2 A2 B1 A1 B0 A0
FA C3 FA C2 FA C1 FA C0
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
Bekretsyon B. 7/30/2022 30
Arithmetic Microoperations
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
Bekretsyon B. 7/30/2022 32
Logic Microoperations
• 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
Bekretsyon B. 7/30/2022 33
Logic Microoperations
Ai
0
Bi
1
4X1 Fi
MUX
2
3 Select
S1
S0
Function table
S1 S0 Output -operation
0 0 F=AB AND
0 1 F = AB OR
1 0 F=AB XOR
1 1 F = A’ Complement
Bekretsyon B. 7/30/2022 34
Logic Microoperations
Bekretsyon B. 7/30/2022 35
Logic Microoperations
SELECTIVE SET
Bekretsyon B. 7/30/2022 36
Logic Microoperations
SELECTIVE COMPLEMENT
Bekretsyon B. 7/30/2022 37
Logic Microoperations
SELECTIVE CLEAR
1100 At
1010 B
0100 At+1 (A A B’)
Bekretsyon B. 7/30/2022 38
Logic Microoperations
MASK OPERATION
Bekretsyon B. 7/30/2022 39
Logic Microoperations
CLEAR OPERATION
1100 At
1010 B
0110 At+1 (A A B)
Bekretsyon B. 7/30/2022 40
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)
Bekretsyon B. 7/30/2022 41
Shift Microoperations
LOGICAL SHIFT
In a logical shift the serial input to the shift is a 0.
A right logical shift operation:
0
Bekretsyon B. 7/30/2022 42
Shift Microoperations
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:
0
CF
CF
Bekretsyon B. 7/30/2022 44
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)
Bekretsyon B. 7/30/2022 46
Shift Microoperations
S3
S2 Ci
S1
S0
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
Bekretsyon B. 7/30/2022 48
o Bitwise Division: Logically shifting an unsigned integer
right by n bits divides the operand by 2n.
In the following statements, we divide 32 by 21, producing 16:
mov dl,32 ; dl=100000
shr dl,1 ; dl=010000 cf=0
Exercise , write an assembly program that divide 32 by
23 using SHR:
mov dl,32 ; dl=______________
shr dl,3 ; dl=______________ cf=______
Henry Hexmoor
Bekretsyon B. 7/30/2022 49
Henry Hexmoor
Bekretsyon B. 7/30/2022 50