Lab 7 - EE 421L
Cesar Macias
maciasc4@unlv.nevada.edu
10-26-2014
Using buses and arrays in the design of word inverters, muxes, and high-speed adders
We first create a 4 bit inverter to demonstrate the use of buses. The shematic can be seen below
![4bitinverterschematic](4inverterbitschematic.PNG)
This
can be more consice by the use of buses and making the specifying the
size of the instance when instering the piece (IO<from:to>) the
same schematic as the previous can be seen using buses.
![new4bitinvschematic](new4inverterbitschematic.PNG)
symbol of previosu schematic
![4bitinvsym](4bitinvsym.PNG)
we will now simulate this piece and put different size capacitor in each of the ouputs
![4bitinvsim](4bitinvsimu.PNG)
![4bitsimuresults](4bitinvsimuresults.PNG)
From
the simulations results we can see the teh bigger the capacitor the
longer it takes for the signal to change (charge and discharge) and we
can grab a specific signal from the bus without having to do multiple
simulations.
We will now create multiple logic gates that use 8 bit size inputs and outputs
NAND:
schematic
![NAND2bitschem](NAND2bitschem.PNG)
this is the symbol for the 2 bit NAND symbol
![NAND2bitsymbol](NAND2bitsymbol.PNG)
and the schematic for the NAND 8 bit gate
![NAND8bit](NAND8bit.PNG)
NOR:
schematic
![NORschematic](NORschematic.PNG)
2 bit symbol
![nor2bitsym](NOR1bitsym.PNG)
and the 8 bit schematic
![nor8bitschem](NOR8bitschem.PNG)
OR:
schematic
![orschem](orschematic.PNG)
2 bit symbol
![or2bitsym](or2bitsym.PNG)
and the or 8 bit schematic
![or8bitschem](or8bitschem.PNG)
AND:
schematic
![andschem](andschem.PNG)
2 bit symbol
![and2bitsym](and2bitsym.PNG)
and the 8 bit schematic
![and8bitschem](and8bitschem.PNG)
INVERTER:
schematic
![](notschem.PNG)
single input single output symbol
![not1bitsym](not1bitsym.PNG)
and the 8 bit schematic
![](not8bitschem.PNG)
We can now run a simulation of the gates, it's possible to run it in a single schematic as we did below.
![gatesschem](gatesschematic.PNG)
Simulation results can be seen below
![gatessim](gatessims.PNG)
Now we will work on the MUX
![](mux2bitsim.PNG)
The
operation of the MUX is really simple, if high is selected then A is
the output and if Low is selected the B is the output. The
demultiplexer works the same but opposite. When S is high, then the
output will be A but when S is low then the output will be B.
![](demux2bitsim.PNG)
![](demux2bitsimresults.PNG)
Now
the 8 bit wordsize mux and demux will work the same except this
time the lengt of the input and outputs is eight bits long.
8bit multiplexer schematic
![](8muxschematic.PNG)
![](8muxsim.PNG)
We
selected just a couple of output to demostrate that the multiplexer
works, it is not necessary to have 8 bit word sizes since for
demostration purposes all the bits contain the same information. The
same will be done to the demux for simplicity purposes.
![](simdemux8schem.PNG)
![](8demuxsim.PNG)
We
will now do an 8 bit full adder, we will star by making a 2 bit adder
that includes a carry in and a carry out, the schematic can be seen
below
![](fulladderschmatic.PNG)
This is the layour for the full adder
![](fulladderlayout.PNG)
Now
using this full adder we will creaste an 8 bit adder by cascading the
carry outs, the schematic for the 8 bit can be seen below.
![](full8bitadderschem.PNG)
by using buses we connect the carry out from 0 to 6 the the carry in and carry in 0 is separate.
this is the symbol for the 8 bit full adder
![](FA8bitsym.PNG)
this is the test schematic
![](FAeightbitTEstschem.PNG)
this
are the simulated results, I tried using the most general
test possible that will test all
possible cases. I used 1111,1111 + 0000,0000 and a
carry in of 1 after a set time. At first we can see the the output is
1111,1111 carry out 0 but once the carry in is included we get
0000,0000 carry out 1 so it added all the numbers are succesfully and
carried out the 1. Feel free to test the
adder as necessary.![](eightbutFAsimresults.PNG)
The layout and proof of LVS can be seen below.
![](faeightbitlayout.PNG)
![](eightbitFALVS.PNG)
Now we will back up this lab
![](backup.PNG)
The files for this lab can be found here.
Return to labs