Sunday, October 18, 2009

4 bit ALU with shifter:

It was for the VLSI II laboratory. There were 16 instructions and for each group it was different. We have done a simpler version in DSCH in the previous term. But this time it was to be done in Cadence Virtuoso which is only available in the Robert Noyce Laboratory. The instructions are:

Selectors        Function         Carry-out                  Desciption
0000                 A+B          1 if (A+B)>15                  Add A to B
0001                 A+1          1 if (A+1)>15                  Increment A
0010                 A-B               1 if A>B               Subtract B from A
0011                   A                 1                           Transfer A
0100                  A                  0                           Transfer A
0101               A+B+1       1 if (A+B+1)>15         Add A to B with Carry
0110               A-B-1             1 if A>B    Subtract B from A with Borrow
0111                 A-1              1 if A>0                    Decrement A
1000            A XOR B                0                           Bitwise XOR
1001            A XOR B                0                           Bitwise XOR
1010             A OR B                 0                           Bitwise OR
1011             A OR B                 0                           Bitwise OR
1100            A AND B                 0                           Bitwise AND
1101            A AND B                 0                           Bitwise AND
1110                 A’                    0                        Complement of A
1111                 A’                    0                        Complement of A

For simplicity, different blocks were created and the end result is shown here with the internal blocks:

Fig: 1 bit Full Adder

Fig: 4-1 Mux

Fig: 2-1 Mux

Fig: Cout Block

Fig: Output Block

Fig: Input B Block

Fig: Input A Block

Fig: Next Carry

Fig: Initial Carry Block

Fig: ALU Block

Fig: Shifter Block

Fig: Final ALU with Shifter

No comments: