Final Prject - EE 421L 

Cesar Macias

maciasc4@unlv.nevada.edu      

11/9/2014

PART 1

ALU

For the final project we will create a simple 8 bit ALU that can perform the following operations: A AND B, A OR B, A + B (addition), and A - B (subtraction).

We first build a one bit ALU to later combine into the final product, an 8 bit ALU.

 The schematic for our ALU is as follows



OperationS1S2
A+B00
A-B01
A or B10
A and B11
The way this ALU works is straight forward except for the subratction, for simplicity when laying it out, this ALU has only one adder that adds and subtracts. To add we get A straight from the input and B comes to a MUX that will see S(0)=0 and select B. For subtraction we are going to use 2's compliment. We get the B signal, but this time S(0)=1 so B inverted is chosen. This adds A+B'. To add the extra 1 we the the S(0) signal which equals 1 and add it to the carry in of the adder. For the "or" and  "and" operation, we select 10 or 11 respectively and the ALU works straighforward.

We then create a symbol of the 1 bit ALU and use it to connect 8 single bit ALU's into an 8 bit ALU. The carry out of bit 0-6 will cascade into the carry in of the full adders and the last carry out will be an output of the ALU. We could've done this part actually laying out 8 ALU's but it is much simple to use buses as seen below.


We will now simulate the ALU. The schematic for the simulation can be seen below.


Now we will show some simulation outputs to show that the ALU works.
00000001+11111111=00000000+(Cn1=1)
The picture below shows the results of this calculation. It also shows  when  00000001+00000000=00000001
This picture will show an example of A-B

 Now we will test A "or" B when A=11111110 and B=10000000 then Z=11111110
Now we can see the results for the same A and B input but for "and" instead of or. This gives us the results of 00000001

From the simulations we can see the ALU is working as expected. We can now procced to part two and lay out the ALU.
PART 2
For part 2 of this project, we are laying out the 8 bit schematic. First we lay out the one-bit ALU and make sure that works.


I layed out the single bit horizontally with A and B on the left, S0 and S1 on top and Z on the left. I chosed this method to make it possible to layout the 8 bit ALU by simply stacking single bit ALU's.

After we get the single bit ALU to DRC and LVS we then go and just like in the schematic, cascade 8 of them as we did in the schematic.

After we build it we have to make sure we can DRC and LVS the eight bit layout.
This concludes the 8 bit ALU building process.
You may find the files for this project here.

Return to labs