Professional Documents
Culture Documents
The output of the ALU also is an 8-bit bus, namely Y[7:0] and
any carry output, if generated, can be ignored. The functions ALU
needs to perform can be represented in the following table format.
00_0_00 0 Y=Y1
01_0_00 0 Y=Y1<<1
10_0_00 0 Y=Y1>>1
11_0_00 0 Y=0
A[7:0]
.
LU[7:0]
B[7:0] Logic Unit
1 Y[7:0]
SEL[1:0] Y1[7:0] Shifter
A[7:0] 0
B[7:0] AU[7:0]
.
Arithmetic
Unit
Cin
SEL[2]
SEL[1:0] SEL[4:3]
SEL[4:0]
SEL[1:0] Operation
00 A AND B
01 A OR B
10 A EX-OR B
11 A*
• Out of these four operations, the one to be output is decided by
SEL[1:0]. So we need a 4 to 1 multiplexer.
. . 0
1
. . 2
LU[7:0]
.
3
A[0]
A[1]
.. .. ..
.. .. ..
A[7] Complement block SEL[1:0]
00_0 A
00_1 A+1
01_0 A+B
01_1 A+B+1
10_0 A+B*
10_1 A+B*+1
11_0 A-1
11_1 A
• Out of these eight operations, the one to be output is decided by
SEL[1:0] and Cin. So we need a 8 to 1 multiplexer.
VLSI training ttm inc., 8
.
.
adder
..
1 A[7:0]
0
..
adder 1
2
.
adder
.
1 3 AU[7:0]
adder
4
.
Compl
5
.
adder
6
1
7
A[7:0]
subtracter
1
{SEL[1:0],Cin}
B[7:0] A[7:0]
SEL[4:3] Operation
00 Y=Y1
01 Y=Y1<<1
10 Y=Y1>>1
11 Y=0
• Out of these four operations, the one to be output is decided by
SEL[4:3]. So we need a 4 to 1 multiplexer.
{0,Y1[7:1]} 2
0 3
SEL[4:3]
rotate[2:0]