Professional Documents
Culture Documents
Micro Operations
Micro Operations
Henry Hexmoor
Registers and RTL
Henry
HenryHexmoor
Hexmoor
1
REGISTER TRANSFER AND MICROOPERATIONS
• Register Transfer
• Arithmetic Microoperations
• Logic Microoperations
• Shift Microoperations
Henry Hexmoor
2
SIMPLE DIGITAL SYSTEMS
• Typically,
– What operations are performed on the data in the registers
– What information is passed between registers
Henry Hexmoor
3
Register Transfer Language
MICROOPERATIONS (1)
Henry Hexmoor
4
Register Transfer Language
MICROOPERATION (2)
Registers ALU
(R) (f) 1 clock cycle
R f(R, R)
f: shift, load, clear, increment, add, subtract, complement,
Henry Hexmoor and, or, xor, …
5
Register Transfer Language
- Microoperations set
Henry Hexmoor
6
Register Transfer Language
Henry Hexmoor
7
Register Transfer Language
Henry Hexmoor
8
Register Transfer Language
DESIGNATION OF REGISTERS
MAR
– Registers may also be represented showing the bits of data they contain
Henry Hexmoor
9
Register Transfer Language
DESIGNATION OF REGISTERS
• Designation of a register
- a register
- portion of a register
- a bit of a register
15 0 15 8 7 0
R2 PC(H) PC(L)
Numbering of bits Subfields
Henry Hexmoor
10
Register Transfer
REGISTER TRANSFER
R2 R1
Henry Hexmoor
11
Register Transfer
REGISTER TRANSFER
R3 R5
– the data lines from the source register (R5) to the destination regi
ster (R3)
– Parallel load in the destination register (R3)
– Control lines to perform the action
Henry Hexmoor
12
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 regi
ster R2”, i.e., if (P = 1) then (R2 R1)
Henry Hexmoor
13
Register Transfer
t t+1
Timing diagram
Clock
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
Henry Hexmoor
14
Register Transfer
SIMULTANEOUS OPERATIONS
P: R3 R5, MAR IR
Henry Hexmoor
15
Register Transfer
Henry Hexmoor
16
Register Transfer
CONNECTING REGISTRS
Henry Hexmoor
17
Bus and Memory Transfers
Bus lines
B1 C1 D 1 B2 C2 D 2 B3 C3 D 3 B4 C 4 D 4
0 0 0 0
4 x1 4 x1 4 x1 4 x1
MUX MUX MUX MUX
x
select
y
4-line bus
Henry Hexmoor
18
Henry Hexmoor
19
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
Henry Hexmoor
20
Bus and Memory Transfers
or R2 R1
Henry Hexmoor
21
Bus and Memory Transfers
MEMORY (RAM)
• Memory (RAM) can be thought as a sequential circuits con
taining some number of registers
• These registers hold the words of memory
• Each of the r registers is indicated by an address
• These addresses range from 0 to r-1
• Each register (word) can hold n bits of data
• Assume the RAM contains r = 2k words. It needs the follo
wing
– n data input lines
data input lines
– n data output lines
– k address lines n
– A Read control line
address lines
– A Write control line
k
RAM
Read
unit
Write
n
data output lines
Henry Hexmoor
22
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 whic
h address in memory we will be using
• This is done by indexing memory references
M
Memory Read
AR
unit Write
MEMORY READ
Henry Hexmoor
24
Bus and Memory Transfers
MEMORY WRITE
M[MAR] R1
• This causes the following to occur
– The contents of the MAR get sent to the memory address lines
– A Write (= 1) gets sent to the memory unit
– The values in register R1 get sent over the bus to the data input lines
of the memory
– The values get loaded into the specified address in the memory
Henry Hexmoor
25
Bus and Memory Transfers
Henry Hexmoor
26
Arithmetic Microoperations
MICROOPERATIONS
Henry Hexmoor
27
Arithmetic Microoperations
ARITHMETIC MICROOPERATIONS
• The basic arithmetic microoperations are
– Addition
– Subtraction
– Increment
– Decrement
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
Henry Hexmoor C4 S3 S2 S1 S0
29
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
LOGIC MICROOPERATIONS
• Specify binary operations on the strings of bits in registers
– Logic microoperations are bit-wise operations, i.e., they work on the indi
vidual bits of data
– useful for bit manipulations on binary data
– useful for making logical decisions based on the bit value
• There are, in principle, 16 different logic functions that can b
e defined over two binary input variables
A B F0 F1 F2 … F13 F14 F15
0 0 0 0 0 … 1 1 1
0 1 0 0 0 … 1 1 1
1 0 0 0 1 … 0 1 1
1 1 0 1 0 … 1 0 1
Henry Hexmoor
31
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
Henry Hexmoor
33
Logic Microoperations
– Selective-set AA+B
– Selective-complement A A B
– Selective-clear A A • B’
– Mask (Delete) AA•B
– Clear AAB
– Insert A (A • B) + C
– Compare AAB
– ...
Henry Hexmoor
34
Logic Microoperations
SELECTIVE SET
1 1 0 0 At
1010 B
1 1 1 0 At+1 (A A + B)
Henry Hexmoor
35
Logic Microoperations
SELECTIVE COMPLEMENT
1 1 0 0 At
1010 B
0 1 1 0 At+1 (A A B)
Henry Hexmoor
36
Logic Microoperations
SELECTIVE CLEAR
1 1 0 0 At
1010 B
0 1 0 0 At+1 (A A B’)
Henry Hexmoor
37
Logic Microoperations
MASK OPERATION
1 1 0 0 At
1010 B
1 0 0 0 At+1 (A A B)
Henry Hexmoor
38
Logic Microoperations
CLEAR OPERATION
1 1 0 0 At
1010 B
0 1 1 0 At+1 (A A B)
Henry Hexmoor
39
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
– A mask operation to clear the desired bit positions, followed by
– An OR operation to introduce the new bits into the desired posit
ions
– Example
» Suppose you wanted to introduce 1010 into the low order fo
ur bits of A: 1101 1000 1011 0001 A (Original)
1101 1000 1011 1010 A (Desired)
Henry Hexmoor
40
Shift Microoperations
LOGICAL SHIFT
• In a logical shift the serial input to the shift is a 0.
CIRCULAR SHIFT
• In a circular shift the serial input is the bit that is shifted out o
f the other end of the register.
Henry Hexmoor
42
Logical versus Arithmetic Shift
0
CF
CF
Henry Hexmoor
43
Shift Microoperations
ARITHMETIC SHIFT
• An left arithmetic shift operation must be checked for the over
flow
0
sign
bit
Henry Hexmoor
44
Shift Microoperations
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)
Henry Hexmoor
45
Shift Microoperations
Arithmetic D i
Circuit
Select
Ci+1
0 4x1 Fi
1 MUX
2
3
Ei
Logic
Bi Circuit
Ai
Ai-1 shr
Ai+1 shl
Henry Hexmoor
47