Project - ECE 421L
SCHEMATIC
Below we can see the simulations for the above schematic. Keep in mind that S<0> and S<1> are the following for the following functions: 00 Addition, 01 Substraction, 10 OR and 11 AND.
Below are the results using an A input with a 50nS delay (adding 50n per bit) and B using a 75nS delay (adding 50n per bit). First are the same inputs that i used for everything followed by the results.
Input:
10 Results (or)
11 Results (and)
01 Results (subtraction)
LAYOUT
For the layout of the 8 bit ALU I decided it would be best to layout a 1 bit first and then copy it 8 times. This would minimize my work as the only connections that would need to be made outside of the block (1 bit block) would be the input/output connections instead of having to repeat the same connections between muxes/gates etc. (if I were to use the 8 bit gate schematics). Using this idea I laid out the other gates that we would be using and set off to build a 1 bit ALU. First I used the previous 8 bit schematic and simply knocked off the bracketed input terms (A<7:0> becomes A) thus making it a 1 bit. I also realized the need for bringing in a Cin bit terminal for the full adder during subtraction mode since this bit would be cascaded down much as the 8 bit Full Adder was.
Next up I began to layout the ALU using my newly made one bit gates.
After this was complete I began to work on the final 8 bit schematic/layout by simply copying this with 8 instances and creating a schematic much like that of the full adder (allowing the cascade use of the Cout bit or Cn1 in my schematic).
And the layout:
A snip showing the S0 connection followed by the cascading nature of the design:
And an overall view showing all the connections with the stop level set to 0 to show the use of 8 identical blocks and identical connections with the exception of the first/last bits.
The final layout of the 8 bit ALU is labeled ALU8_skb_f14 in the design directory.