ALU Design Example
ALU Design Example
0 1
MUX M2
Fi
M2 M1 M0 Function Name F=
0 0 0 Add A+ B
0 0 1 Subtract A– B
0 1 0 Increment A+ 1
0 1 1 Decrement A– 1
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B
A * 2 = left-shift
e.g. 3 * 2 = “011” * 2 = “110” = 6
A / 2 = right-shift
0 1
e.g. 3 / 2 = “011” / 2 = “001” = 1 MUX M1
0 1
MUX M2
Fi
M2 M1 M0 Function Name F=
0 0 0 Add A+ B
0 0 1 Subtract A– B
0 1 0 Increment A+ 1
0 1 1 Decrement A– 1
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
0 1
A * 2 = left-shift M0 MUX
e.g. 3 * 2 = “011” * 2 = “110” = 6
A / 2 = right-shift
0 1
e.g. 3 / 2 = “011” / 2 = “001” = 1 MUX M1
0 1
MUX M2
Fi
M2 M1 M0 Function Name F=
0 0 0 Add A+ B
0 0 1 Subtract A– B
0 1 0 Increment A+ 1
0 1 1 Decrement A– 1
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2 Ai Bi Ai Bi
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
0 1 0 1
M0 MUX MUX M0
0 1
MUX M1
0 1
MUX M2
Fi
M2 M1 M0 Function Name F=
0 0 0 Add A+ B
0 0 1 Subtract A– B
0 1 0 Increment A+ 1
0 1 1 Decrement A– 1
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2 Ai Bi Ai Bi
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
0 1 0 1
M0 MUX MUX M0
0 1
MUX M1
0 1
MUX M2
Fi
M2 M1 M0 Function Name F=
0 0 0 Add A+ B
0 0 1 Subtract A– B
0 1 0 Increment A+ 1
0 1 1 Decrement A– 1
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2 Ai Bi Ai Bi
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
0 1 0 1
Ai M0 MUX MUX M0
0 1
MUX M1
Ci+1 FA Ci
0 1
MUX M2
Fi
M2 M1 M0 Function Name F= C0
0 0 0 Add A+ B Bi 0
0 0 1 Subtract A– B NOT(Bi) 1
0 1 0 Increment A+ 1 “0” 1
0 1 1 Decrement A– 1 “1” 0
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2 Ai Bi Ai Bi
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
0 1 0 1
Ai M0 MUX MUX M0
0 1
MUX M1
Ci+1 FA Ci
0 1
MUX M2
Fi
M2 M1 M0 Function Name F= C0
0 0 0 Add A+ B Bi 0
0 0 1 Subtract A– B NOT(Bi) 1
0 1 0 Increment A+ 1 “0” 1
0 1 1 Decrement A– 1 “1” 0
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2 Ai Bi Ai Bi
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
Bi M0
0 1 0 1
Ai M0 MUX MUX M0
0 1
MUX M1
0 1
MUX M1
Ci+1 FA Ci
0 1
MUX M2
Fi
M2 M1 M0 Function Name F= C0
0 0 0 Add A+ B Bi 0
0 0 1 Subtract A– B NOT(Bi) 1
0 1 0 Increment A+ 1 “0” 1
0 1 1 Decrement A– 1 “1” 0
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2 Ai Bi Ai Bi
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
Bi M0
0 1 0 1
Ai M0 MUX MUX M0
0 1
MUX M1
0 1
MUX M1
Ci+1 FA Ci
0 1
MUX M2
Fi
M2 M1 M0 Function Name F= C0
0 0 0 Add A+ B Bi 0
0 0 1 Subtract A– B NOT(Bi) 1
0 1 0 Increment A+ 1 “0” 1
0 1 1 Decrement A– 1 “1” 0
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2 Ai Bi Ai Bi
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
Bi M0
0 1 0 1
Ai M0 M0 MUX MUX M0
0 1
MUX M1
0 1
MUX M1
Ci+1 FA Ci
0 1
MUX M2
Fi
M2 M1 M0 Function Name F= C0
0 0 0 Add A+ B Bi 0
0 0 1 Subtract A– B NOT(Bi) 1
0 1 0 Increment A+ 1 “0” 1
0 1 1 Decrement A– 1 “1” 0
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2 Ai Bi Ai Bi
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
Bi M0
0 1 0 1
Ai M0 M0 MUX MUX M0
0 1
MUX M1
0 1
MUX M1
Ci+1 FA Ci
0 1
MUX M2
Fi
M2 M1 M0 Function Name F= C0 M1 M0
0 0 0 Add A+ B Bi 0
0 0 1 Subtract A– B NOT(Bi) 1
0 1 0 Increment A+ 1 “0” 1
0 1 1 Decrement A– 1 “1” 0
C0
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2 Ai Bi Ai Bi
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
Bi M0
0 1 0 1
Ai M0 M0 MUX MUX M0
0 1
MUX M1
0 1
MUX M1
Ci+1 FA Ci
0 1
MUX M2
Fi
M2 M1 M0 Function Name F= M1 M0
0
0
0
0
C0
1
1 Ai Bi Ai Bi
1
1 Ai-1 Ai+1
Bi M0
0 1 0 1
Ai M0 M0 MUX MUX M0
0 1
MUX M1
0 1
MUX M1
Ci+1 FA Ci
0 1
MUX M2
Fi
M2 M1 M0 Function Name F= M1 M0
0
0
0
0
C0
1
1 Ai Bi Ai Bi
1 1 0 Bitwise-AND A AND B
1 1 1 Bitwise-OR A OR B Ai-1 Ai+1
Bi M0
0 1 0 1
Ai M0 M0 MUX MUX M0
0 1
MUX M1
0 1
MUX M1
Ci+1 FA Ci
0 1
MUX M2
Fi
M2 M1 M0 Function Name F= M1 M0
0
0
0
0
C0
1 0 0 Multiply by 2 A* 2
1 0 1 Divide by 2 A/ 2 Ai Bi Ai Bi
1
1 Ai-1 Ai+1
Bi M0
0 1 0 1
Ai M0 M0 MUX MUX M0
0 1
MUX M1
0 1
MUX M1
Ci+1 FA Ci
0 1
MUX M2
Fi