Lab 7 - ECE 421L 

Authored by Jalen Solis, solisj8@unlv.nevada.edu

October 31, 2023

   

Prelab


The purpose of the prelab is to follow tutorial 5 in order to design, layout, and simulate a ring oscillator. The completion of tutorial 5 will be helpful with starting and finishing lab 7.

   

The first thing that needs to be done is to back up previous work from other labs

pl0

   

A new library will be made named "Tutorial 5"

   

In this library we will copy over the inverter cell from Tutorial 3, always making sure we update the instances

The inverter cell will be the main thing used during the prelab

   

A new schematic will be made within the Tutorial 5 library titled "ring_osc"

   

Within the schematic, we will place a single inverter and vdd:

   

pl1

   

Next we will copy the inverter a total of 30 times:

pl2

 

We will then connect a wire from the first inverter to the last inverter:

   

pl3

   

A pin can then be placed on the wire with the name "osc_out":

   

pl4

   

Once the pin is placed, we can connect a dc voltage source to vdd and launch ADE L to simulate the series of inverters:

   

pl5

   

We see that the output is at 2.5 V

It is important to note that this simulation is done without an initial condition

   

The next step is to add an initial condition to the wire named "osc_out":

   

pl6

   

Once the initial condition is set up, the schematic can be simulated and we can see that the plot changes:

   

pl7

   

While this method does work as shown in both plots, it does create clutter and take up a lot of space

To make the schematic more pleasant to look at, an array of the inverter can be made

   

To create the array, all other inverters except for one must be deleted as well as the wire

The inverters name must be changed by adding <1:31> (an array of 31) to the instance name and the display must be changed to "value":

   

pl8

   

A wide wire is then attached to both ends of the inverter and pins must be created for both sides:

pl9

   

Once the schematic is checked & saved, the layout can be started

   

A new cell view for the layout can be created and two inverters can be placed side by side:

pl10

   

Next, the inverters can be connected using metal1 layers:

pl11

   

The second inverter can then be deleted and the view set back to 10:

   

pl12

   

Similar to what was done at the start of the lab, the whole section can be copied and an array of 30 inverters can be made:

   

pl13

   

Once the inverter is copied, a total of 31 inverters will be layed out and we can DRC the layout:

     

pl14

   

We then need to connect the first inverter and last inverter using the metal2 layer:

pl15

   

Once the layout has no errors, three pins can be created:

pl16

   

The layout can then be extracted:

   

pl17

   

Once we have an extracted layout, we can start an LVS:

   

pl18

   

We see that an error occurs after we run the LVS:

pl19

   

To fix this we must go back to our layout and add an output pin:

   

pl20

   

Running the LVS again, we see that the netlists do now match:

   

pl21

   

A symbol can now be created for the ring oscillator:

pl22

pl23

   

A new schematic cell view can be created "sim_ring_osc" to test the symbol:

   

pl24

   

Before simulating, an initial condition of 0V needs to be set at the wire "osc_out":

   

pl25

   

After the initial condition is set, the symbol can be simulated:

pl26

     

Now we can simulate the extracted view by going to Setup -> Environment and inputting "extracted" before "schematic":

   

pl27

   

Running the simulation again, we see that the graphs match:

pl28

   

This completes tutorial 5 and concludes the prelab

   

Lab


The purpose of this lab is to use buses and arrays in the design of word inverters, muxes, and high-speed adders

   

4 - bit Inverter:

   

First we need to grab an inverter that we have already created and alter the parameters:

   

l1

   

Once we set the instance to <3:0> we can save & check our schematic for errors:

   

l2

   

Next we can create a symbol view for the 4-bit inverter:

   

l3

   

Now that we have our 4-bit inverter we can run different capacitive loads with using only one symbol:

l4

   

As soon as we have our pins labeled, we can run the simulations:

   

l6

l7

   

We see that the smaller the capacitor creates a smaller delay while the larger capacitor creates a bigger delay for the rise and fall times

   

8-Bit Inverter:

   

Following what we did for the 4-bit inverter we can create an 8-bit converter fairly easy:

l10

 

Once we have our schematic free of errors we can create a symbol for it:

   

l11

   

8-Bit NAND Gate:

   

Using the NAND gate we built from the previous lab, we can construct an 8-bit NAND gate:

   

l8

   

With no errors, we can create the symbol view:

   

l9

   

8-bit AND Gate:

   

We can create an AND gate by simply adding an inverter to the NAND gate:

l12

 

Once the schematic is checked & saved the symbol can be created:

   

l13

   

This symbol can be used to create the schematic of the 8-bit AND gate:

   

l14

   

Once the schematic is finished the symbol for the 8-bit AND gate can be created:

   

l15

   

8-Bit NOR Gate:

   

First the schematic of the two input NOR gate must be created:

   

l16

   

The symbol view can then be created:

   

l17

   

The symbol view is then used to create the schematic of the 8-bit NOR gate:

   

l18

   

With this schematic constructed, the symbol for the 8-bit NOR gate can be created:

   

l19

   

8-Bit OR Gate:

   

Similar to the AND gate the OR gate is created by connecting an inverter to the NAND gate:

   

l20

   

After check & save is done the symbol view for the OR gate can be created:

   

l21

   

The symbol of the OR gate is then used to make a schematic of the 8-bit OR gate:

   

l22

   

Another symbol is created but for the 8-bit OR gate:

   

l23

   

Simulation of All Logic Gates:

   

Now that all the needed logic gates are created, they can be put into one single schematic with two set inputs:

   

l24

   

Now we can open up ADE L to run the simulation for all the logic gates and see their outputs:

   

l26

l25

   

We see that the outputs of the logic gates match the truth tables

   

8-Bit 2 to 1 DEMUX/MUX:

   

The first step is to create a single bit 2 to 1 DEMUX/MUX by following the schematic from the lab:

l27

   

The symbol view is also going to be identical to the one from the lab:

   

l28

   

This schematic can be used for both a 2 to 1 MUX and 1 to 2 DEMUX, the first one to focus on is the 2 to 1 MUX:

l29

   

Once the schematic is free of errors the ADE L can be brought up and the simulations can be started:

   

l30

l31

   

Referencing the truth table of a 2 to 1 MUX we can see that the values match:

   

muxtt

   

The same symbol can be used for the 1 to 2 DEMUX:

   

l32

   

Running the simulation we get the results of the outputs:

   

l33

l34

   

Referencing the truth table of the DEMUX we see that the outputs match:

   

demuxtt

   

Now that we have a working MUX/DEMUX it can be altered to have 8-bit inputs and outputs:

   

l35

   

The symbol can be shown as:

   

l36

   

The schematic for the 8-bit MUX is the exact same as the single bit MUX the only difference is that the inputs and outputs will be 8-bits:

   

l37

   

Running the simulations we can see the outputs and inputs of the MUX:

   

l38

l39

   

We can see that the output of the 8-bit MUX matches the single bit MUX

   

The same thing is done for the DEMUX, the schematic is made using 8-bit inputs and outputs:

   

l40

   

Again the simulations are presented:

   

l41

l42

   

We see that our outputs match the outputs from the single bit DEMUX

   

8-Bit Full Adder:

   

In order to create an 8-bit full adder, a single bit full adder must be created. The schematic is shown:

   

l43

   

The symbol for the full adder can be created which will be the same design as the one from lab 6:

   

l44

   

Once the symbol is made, the schematic of the 8-bit full adder can be constructed:

   

l45

   

A new symbol is created for the 8-bit full adder:

   

l46

   

With this symbol we can create a schematic that can be simulated:

   

l47

   

After checking for errors, the ADE L can be launched and the schematic can be simulated:

   

l48

l49

   

We can now run the layout of the 8-bit full adder:

   

l50

   

With no errors from the DRC we can extract the layout:

   

l51

   

Once we have the layout extracted we can run the LVS:

   

l52

l53

     

After running the LVS we see that the netlists match

   

This concludes the lab

 

Return to EE 421L Labs