Project - ECE 421L 

Authored by Hongzhong Li,

Email: lih12@unlv.nevada.edu    

Today's date:11/10/2014

  

Lab description

For the final project for this lab I will be laying out a simple arithmetic logic unit (ALU). The ALU will have 4 operations and 2 8-bit operands. I have selected the following control signals for my ALU.

 
F0F1Operation
00Addition
01Subtraction
10AND
11OR

 

Most of the components of the ALU have been created in the previous labs, so now it will be a task of assembling the ALU. 2 8-bit 2 to 1 MUXs will be used to select either the output from A or B, A and B, or the output from the 8 bit full adder. The 8-bit full adder performs either addition by inputting A, B, and Cin=0, or subtraction by inputting A, B', and Cin=1. This setup is accomplished by inputting the F1 control signal into both the Cin for the full adder as well as using it for a control signal for the 8-bit MUXs (thus selecting B' for each input into the full adder). It is observed that this setup essentially takes the 2's complement of B (B is inverted and Cin=1 essentially adds 1). The schematic is constructed as shown below.

 
ALU Schematic
 

 

8- bit ALU Symbol
 

 
Simulation Schematic
 


Input:

A01101100
B00111001

Theoretical Result:
 
F0F1Operation
00A + B10100101
01A - B00110011
10A AND B00101000
11A OR B01111101
 
Simulation Result

 


Part 2 - Layout of the ALU

 

To reduce the complication of the 8 bit ALU layout, we first create a 1-Bit ALU schematic and make a layout of the 1-Bit to verify that it LVS.

1 Bit ALU Schematic

 

 

 

1 Bit ALU Layout and LVS Result

 

  

Now that we verified the 1-Bit ALU works we can proceed to create the 8-Bit ALU by cascading 8 of the 1-Bit ALU we just made. Note, since the selector pin "F1" only connects to the "Cin" pin of the 8-Bit ALU once , we need to change our 1-Bit Layout accordingly so that the first 1 Bit ALU has F1 connected to Cin and the rest of the 1 Bit ALU doesnt. Then connect  Cout<7> into Cout<6>, so on and so forth . We will create a bus, connecting all the F1's together. We do the same for F2. We will use Cout<0> as out final Cout output. The A and B inputs will be 8 bit inputs and the Z output will be have 8 bits. Finally, vdd! and gnd! are connected on the side using metal 1.

8 Bit ALU Layout

 

 

8 Bit ALU LVS Result

 

The complete project file can be downloaded from here  

 

Return to EE 421L Labs