ENGR338 Digital Electronics Laboratory
Lab 3 The Inverter

1. Be able to layout and simulate an inverter in Electric.
2. Be able to perform simulation in both LTSpice and IRSIM.

Lab Tasks:

** Task 1: Create the schematic of the inverter. (20 points)

Note that the bigger size of the number denotes the 'drain' side. Please a PMOS and an NMOS in the schematic view, rotate/mirror the PMOS to let the drain oriented to the NMOS. The PMOS is 20/2, the NMOS is 10/2.

Use the vdd and gnd symbols (they are global exports by default so don't export them again). Export the 'in' and 'out' ports for the inverter. Build create an icon view of it.

Run the DRC check to ensure it is error free.

Next, run a simulation to ensure that it inverts the input. Do not forget to set Spice models by selecting the PMOS or the NMOS one at a time and follow Tools - Simulation (Spice) - Set Spice Model. Name them as PMOS and NMOS respectively.

Next, run a transient simulation use a PULSE() input. The spice code is not provided here. Design it one your own.
The results looks like this:

** Task 2: Create the layout of the inverter. (20 points)

Build the layout of the inverter by following the tutorial here. Run DRC and LVS check before you move forward. Also, do not forget to set the Spice models for the PMOS and the NMOS.

** Task 3: Use the multiplier to build a larger inverter.
(20 points)

The inverter you just built is 20/5 and 10/5. In this section, let's built a 100/2 and 50/2 inverter using the multiplier function in Electric.

First, duplicate the inverter cell and rename it as 'Inverter_100_50'. Click the new cell and select the PMOS. Then press tools --> Simulation (spice) --> add Multiplier to set the M=5 adding 5 parallel PMOS. Do the same to NMOS. Others are kept the same as before. We can get the following circuit.

In the layout view, copy/paste the existing PMOS, delete the metal contacts on the left side of the duplicate, then make the connection to the left. Make sure that the connection is built by the green wire (the active field) not the metal (blue).

After you done with the first duplicate, run a DRC check instantly before you moving forward. The gap size indicated in the following figure must be evenly spaced.

Get 5 of the PMOS and the NMOS in parallel and make them 5 times wider. Run DRC/LVS after this is done.

** Task 4: Run simulations to verify the driving capability of these two different inverters.
(20 points)

First, create a simulation schematic view for the 20/10 inverter:

Run 3 simulations to let it drive 100 fF, 1 pF, and 10 pF caps respectively.

Cload = 100 fF

Cload = 1 pF (start having some difficulties to drive the cap).

Cload = 10 pF (can't drive it to the full voltage).

Next, let's grab the wider inverter and see how it goes. (you can directly replace the 20/10 one with the 100/50 one).

Cload = 100 fF

Cload = 1 pF

Cload = 10 pF
Now, you can tell the difference. The 100/50 inverter can drive bigger caps compare to the smaller one.

** Task 5: Use a different simulation tool.
(10 points)

First, open a new schematic cell named "sim_inverter_ALS". Put two inverter in it and set the export input and output. Then press tools--> Simulation (build-in) --> ALS: simulate the current cell.  Then the simulation window pops up. And in the Explorer, the vhdl and net.als cells are added automatically. Set the input signal by pressing G or V to set low signal or high signal. Then we can get the immediate result of other signals: out1, out2.

Select the IN signal, move the cursor to a point, press 'v' or 'g' to toggle the signal. The outputs will respond instantly.

Next, let's try another build-in simulator IRSIM.
According to this website, Electric is not packaged with IRSIM, you must install the plugin JAR file to enable it.

One way to do this is to save/close your current Electric. Open a command line window if you uses windows.

My ElectricVLSI software is located at the C:\ElectricVLSI folder. Download and unzip the plugin file to the same folder.

Do the following operation in the command line.
Here is the very last command for you to copy: (change the version of Electric if you have a different one).
java -classpath "electric-9.07.jar;electricSFS-9.07.jar" com.sun.electric.Launcher

After hitting the 'enter' key, you should have the Electric opened up again. Now, you should be able to see IRSIM under the Tools menu.

Use the same way to toggle the input signal. ('v' and 'g').

One last note: I have two different inverters in the same schematic to be simulated by two different simulators. ALS was arguably not able to show different delay times but IRSIM can. However, I didn't see any differences in delay times in between these two inverters for either simulator. You can ignore this issue for this lab.

Lab reports grading rubric:

Task 1: 20 points.
Task 2: 20 points.
Task 3: 20 points.
Task 4: 20 points.
Task 5: 10 points.
Writing/formatting: 10 points.

The end of the lab.