Вы находитесь на странице: 1из 17

Design a 4-bit ALU that implements the following set of

operations with only the following components (assume 2s


complement number representation, no need to implement
overflow circuit)
1-bit Full-Adders (FA)
2-input AND/OR/XOR gates
Inverters
2:1 MUX
M2 M1 M0
Function Name
F=
0

Add

A+ B

Subtract

A B

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B

M2

M1

M0

Function Name

F=

Add

A+ B

Subtract

A B

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B

M2

M1

M0

Function Name

F=

Add

A+ B

Subtract

A B

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B

MUX

Fi

M2

M2

M1

M0

Function Name

F=

Add

A+ B

Subtract

A B

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B

A * 2 = left-shift
e.g. 3 * 2 = 011 * 2 = 110 = 6
A / 2 = right-shift
e.g. 3 / 2 = 011 / 2 = 001 = 1

1
MUX

MUX

Fi

M1

M2

M2

M1

M0

Function Name

F=

Add

A+ B

Subtract

A B

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B

A * 2 = left-shift
e.g. 3 * 2 = 011 * 2 = 110 = 6

Ai-1 Ai+1

M0

1
MUX

A / 2 = right-shift
e.g. 3 / 2 = 011 / 2 = 001 = 1

1
MUX

MUX

Fi

M1

M2

M2

M1

M0

Function Name

F=

Add

A+ B

Subtract

A B

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B

Ai Bi Ai Bi
Ai-1 Ai+1

M0

MUX

1
MUX

1
MUX

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

F=

Add

A+ B

Subtract

A B

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B

Ai Bi Ai Bi
Ai-1 Ai+1

M0

MUX

1
MUX

1
MUX

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

F=

Add

A+ B

Subtract

A B

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B

Ai Bi Ai Bi
Ai-1 Ai+1

M0

Ai

MUX

Ci+1

FA

1
MUX

1
MUX

Ci

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

F=

C0

Add

A+ B

Bi

Subtract

A B

NOT(Bi)

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B

Ai Bi Ai Bi
Ai-1 Ai+1

M0

Ai

MUX

Ci+1

FA

1
MUX

1
MUX

Ci

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

F=

Add

A+ B

Bi

Subtract

A B

NOT(Bi)

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B
Bi

C0

Ai Bi Ai Bi
Ai-1 Ai+1

M0
M0

Ai
0

MUX

M1

MUX

Ci+1

FA

1
MUX

1
MUX

Ci

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

F=

Add

A+ B

Bi

Subtract

A B

NOT(Bi)

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B
Bi

C0

Ai Bi Ai Bi
Ai-1 Ai+1

M0
M0

Ai
0

MUX

M1

MUX

Ci+1

FA

1
MUX

1
MUX

Ci

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

F=

Add

A+ B

Bi

Subtract

A B

NOT(Bi)

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B
Bi

C0

Ai Bi Ai Bi
Ai-1 Ai+1

M0
M0

Ai
0

M0

MUX

M1

MUX

Ci+1

FA

1
MUX

1
MUX

Ci

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

F=

Add

A+ B

Bi

Subtract

A B

NOT(Bi)

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B
Bi

C0

Ai Bi Ai Bi
Ai-1 Ai+1

M0
M0

Ai
0

M0

MUX

M1

MUX

Ci+1

FA

1
MUX

1
MUX

Ci

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

F=

Add

A+ B

Bi

Subtract

A B

NOT(Bi)

Increment

A+ 1

Decrement

A 1

Multiply by 2

A* 2

Divide by 2

A/ 2

Bitwise-AND

A AND B

Bitwise-OR

A OR B
Bi

M1 M0

C0

C0
Ai Bi Ai Bi

Ai-1 Ai+1

M0
M0

Ai
0

M0

MUX

M1

MUX

Ci+1

FA

1
MUX

1
MUX

Ci

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

M1 M0

F=

0
0
0
0

C0

1
1

Ai Bi Ai Bi

1
1

Ai-1 Ai+1
Bi

M0
M0

Ai
0

M0

MUX

M1

MUX

Ci+1

FA

1
MUX

1
MUX

Ci

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

M1 M0

F=

0
0
0
0

C0

1
1

Ai Bi Ai Bi

Bitwise-AND

A AND B

Bitwise-OR

A OR B
Bi

Ai-1 Ai+1

M0
M0

Ai
0

M0

MUX

M1

MUX

Ci+1

FA

1
MUX

1
MUX

Ci

MUX

Fi

M1

M2

M0

M2

M1

M0

Function Name

F=

Multiply by 2

A* 2

Divide by 2

A/ 2

M1 M0

0
0
0
0

C0
Ai Bi Ai Bi

1
1

Ai-1 Ai+1
Bi

M0
M0

Ai
0

M0

MUX

M1

MUX

Ci+1

FA

1
MUX

1
MUX

Ci

MUX

Fi

M1

M2

M0

Вам также может понравиться