Final Project   EE 421L

Taylor Rasmussen
rasmus20@unlv.nevada.edu
11.9.2014


PART 1
 
In the final project, we are going to take a lot of the elements we created in earlier labs and put them together in an 8-bit ALU (Arithmetic Logic Unit). This unit will be ble to do the following functions: A+B, A-B, OR, AND. By using the two selector bits (F0, F1) we can tell the ALU which process to perform. The first thing we need to do is make a schematic for the 8-bit ALU. It will take 2 8-bit numbers (A,B) and perform operations on those numbers. The AND operation and OR operation are simple. We can just put both inputs in to the 8-bit AND and OR gates we made earlier. We can then run them into a MUX and use one of the selector bits (F1) to decide which one is output. The output of the first MUX will be run to one of the inputs of another MUX that will toggle between the AND/OR operation and the ADDITION/SUBTRACTION operation using the other selector bit (F0). For addition and subtraction we are going to use the same 8-bit adder with one of the inputs connected to the output of a MUX that will either give us B or the complement of B. For SUBTRACTION we are going to add the 2's complement of B which will give us the right answer. To get the 2's complement we will first take the complement by sending B through an inverter and using a MUX to send that inverted signal to the input of the adder. We will then use the Carry In to add 1 to the complement and make it the 2's complement. For ADDITION we will simply send A and B through the 8-bit adder we made previously.
 

 
Now that we have the schematic we can create a symbol for the 8-bit ALU.
 

 
Finally we need to test the ALU to make sure everything works properly. Here is the schematic for the test circuit. For the selector inputs (F0,F1) the voltages have been declared as variables that we will set in the ADE for the different scenarios. Also, the 8-bit numbers for A and B are as follows:
A="01011111"
B="00001001"
 

 
ADDITION
 
By setting F0 and F1 both to "0" we can perform the ADDITION action. A (01011111)95 +B (00001001)9 should give us Z(01101000)104 and you can see that is exactly what we get.
 

 
SUBTRACTION
 
By setting F0 to "0" and F1 to "1" we can perform the SUBTRACTION action. A (01011111)95 - B (00001001)9 should give us Z(01010110)86 and you can see that is exactly what we get.
 

 
OR
 
By setting F0 to "1" and F1 to "0" we can perform the OR action. A (01011111) OR B (00001001) should give us Z(01011111) and you can see that is exactly what we get.
 

 
AND
 
By setting F0 to "1" and F1 to "1" we can perform the AND action. A (01011111) AND B (00001001) should give us Z(00001001) and you can see that is exactly what we get.
 

 
This concludes part 1 of the final project. As always, I zip up my lab directory and webpage files then backup my files on Google Drive.

Part 2
 
For the second part of the project we need to make a layout for the 8-bit ALU. The easist way is to make layouts for each individual 8-bit piece and as long as they all pass the LVS test then we can connect them together in the 8-bit ALU layout. As we saw in the first part of the project, the parts needed are: AND, OR, ADDER, INVERTER, and several MUX's. Here are the layouts for each individual piece.
 
8-bit AND
 

 
8-bit OR
 

 
8-bit ADDER
 

 
8-bit INVERTER
 

 
8-bit MUX
 

 
Now that all these individual pieces are correct on their own, we can start creating the layout for the ALU.
 
8-bit ALU
 

Here is the layout with the individual parts labeled.

Now we need to make sure it matches the schematic with a LVS check.
 

 
This concludes the final project.
As always, I zip up my lab directory and webpage files then backup my files on Google Drive.
 
 
Here is a copy of the directory I used in this lab.
 
 
 




Return to 421L Homepage