Lab 7 - EE 421L 

Authored by Charlene Drake

Email: drakec2@unlv.nevada.edu

November 03, 2021

  

Prelab


For this prelab we were to follow along with Tutorial 5 and design a ring oscillator.


After copying the files from Tutorial 4 into our new library we created the first schematic of the ring oscillator which includeda VDD and 31 inverters that we had created in a previous lab.

ring_oscSchem.jpg

 

With our schematic created and our output wire labeled we were able to run the schematic and received the following simulation.


ring_oscSim1.jpg


As you can see our simulation is not looking right so we need to add initial conditions of 0V to the wire labeled osc_out and we receive the folowing simulation.

sim_ring_osc.jpg


Not that we know how the simulation should look, we are able to simplify the original schematic by using arrays and busses.

ring_oscSchem2.jpg



After simulating our new schematic we receive the same waveform like the previous simulation.

ring_oscSim2.jpg


Now we are able to create the layout of our ring oscillator by first instantiating two inverters and connecting them at vdd, gnd, and the Ai of the first inverter and A of the second inverter. From there we are able to copy the design and instantiated it 30 more times.

ring_oscLayout.jpg


ring_oscExtracted.jpg


With our layout complete and our design extracted, we can DRC.

ring_oscDRC.jpg


When we try to LVS, though, our net-lists fail to match and we need to edit our schematic by adding an output pin label "osc_out."

ring_oscSchem3.jpg


Now when we LVS everything matches.


ring_oscLVS.jpg


Now we can create a symbol for our ring oscillator by copying and pasting the schematic and then deleting VDD.


ring_oscSym.jpg


With that symbol we are able to instantiate a VDD and add a wire labeled osc_out to run another simulation where we receive the same results.


sim_ring_oscSchem.jpg


sim_ring_osc.jpg


From the extracted cell view of our simulation, we receive the same results, again.

sim_ring_oscExtractedSim.jpg


Lab Description


For this lab we were asked to first design a 4-bit inverter, followed by an 8-bit inverter, NAND, NOR, AND, and OR gates.


To start off, we first needed to design an inverter that used 6u/0.6u NMOS and PMOS devices since the one we previously designed used 12u/0.6u.


inverter_6u_0.6u.jpg     inverter_6u_0.6uSym.jpg


Now we were ready to carry on with our designs.


4-bit Inverter


Schematic & Symbol:

4-bit_inverterSchem.jpg    4-bit_inverterSym.jpg


Simulation Schematic & Simulation:

sim_4-bit_inverterSchem.jpg

sim_4-bit_inverter.jpg

As you can see, whenever a low input is received, we get a high output and when a high input is received a low output which is just as expected from an inverter. As for the effect of capacitance load on our outputs, we see that with out<0>, which has no capacitance load, is very fast and has less of a rise and fall time. Out<1> has the largest capacitance load and has the slowest rise and fall time. In conclusion, the larger the capacitance load, the longer the delay for the capacitor to charge.


8-bit Inverter


Schematic & Symbol: 

8-bit_inverterSchem.jpg  8-bit_invertersSym.jpg


Simulation Schematic & Simulation:

sim_8-bit_inverterSchem.jpg
sim_8-bit_inverter.jpg
Just like the 4-bit inverter, whichever input is received, the opposite is output. This time, though, we have 8 outputs rather than 4.

8-bit NAND Gate


Schematic & Symbol:

8-bit_NANDSchem.jpg  8-bit_NANDSym.jpg


Simulation Schematic & Simulation:

sim_8-bit_NANDSchem.jpg

sim_8-bit_NAND.jpg

As you can see, for the inputs "00," "01," & "10" a 1 is output but with the input "11" a 0 is output.


8-bit NOR Gate


Schematic & Symbol:

8-bit_NORSchem.jpg  8-bit_NORSym.jpg


Simulation Schematic & Simulation:

sim_8-bit_NORSchem.jpg

sim_8-bit_NOR.jpg

In this simulation for we receive an output of 1 only from the input "00" and all of the other inputs output 0. We also see some glitches in the waveform.

8-bit AND Gate


Schematic & Simulation

8-bit_ANDSchem.jpg    8-bit_ANDSym.jpg


Simulation Schematic & Simulation:

sim_8-bit_ANDSchem.jpg

sim_8-bit_AND.jpg

Following the truth table for an AND gate, a 1 is output only from the input "11" while all other inputs receive a 0.


8-bit OR Gate


Schematic & Symbol:

8-bit_ORSchem.jpg  8-bit_ORSym.jpg


Simulation Schematic & Simulation:

sim_8-bit_ORSchem.jpg

sim_8-bit_OR.jpg
Just like the NOR simulation, we  see glitches occuring in these waveforms too. As for the outputs, a 0 is receive from the input "00" while all other inputs output a 1.

2-1 MUX/DEMUX

Schematic & Symbol:
2_1_MUXSchem.jpg   2_1_MUXSym.jpg

Simulation Schematic & Simulation:
sim_2_1_MUXSchem.jpg
sim_2_1_MUX.jpg
The simulation of our 2-1 mux follows the provided equation Z = A*S + B*Si where whenever a high S input is received, the output follows A and if a low S input is received,  the output follows B.

8-bit 2-1 Mux

Schematic & Symbol:
8-bit_2_1_MUXSchem.jpg  8-bit_2_1_MUXSym.jpg

Simulation Schematic & Symbol:
sim_8-bit_2_1_MUXSchem.jpg
sim_8-bit_2_1_MUX.jpg
As you can see, our 8-bit 2-1 MUX functions just like the 1-bit 2-1 MUX following the equation
Z = A*S + B*Si where whenever a high S input is received, the output follows A and if a low S input is received,  the output follows B.

Full Adder

Schematic & Symbol:
full_adderSchem.jpg
full_adderSym.jpg

Layout & DRC:
full_adderLayout.jpg
full_adderDRC.jpg

Extracted View & LVS:
full_adderExtracted.jpg
full_adderLVS.jpg

8-bit Full Adder

Schematic & Symbol:
8-bit_full_adderSchem.jpg  8-bit_full_adderSym.jpg

In order to create our layout for the 8-bit full adder, we needed to instantiate our layout of the 1-bit full adder 8 times, connecting each Cout into the next full adder's Cin. The final Cout would then be labeled as Cout<7>.

Layout & DRC:
8-bit_full_adderLayout.jpg
8-bit_full_adderDRC.jpg

Extracted  & LVS:
8-bit_full_adderExtracted.jpg
8-bit_full_adderLVS.jpg


Return to Lab Directory