Professional Documents
Culture Documents
I.
Objective
To use Cadence Virtuoso to create a CMOS layout, and use the Cadence tools to verify this layout.
Specifically, in this lab you will:
a)
b)
c)
d)
II.
Setup
Next, replace V0 with a vpulse source and perform a transient analysis as you did in Lab 4.
Use the
parameters for vpulse shown below and run the analysis for 250ns. Print out a graph of the transient
analysis simulation showing both the input and output waveforms. You may need to print out another
plot of a zoomed-in portion of the waveforms, as you will need to measure the gate delay.
Voltage 1
0V
V.
Voltage 2
3V
Delay Time
10 nS
Rise Time
0.1 nS
Fall Time
0.1 nS
Pulse Width
50 nS
Period
100 nS
DCVoltage
0V
Now that you know that you have a working circuit, you can lay it out. Open the schematic view of
inv_example so that you can refer to it as you do your layout. Most of the work for the inverter layout
has been done for you. Open the layout view of the cell inv_example. It should look like Figure 3. The
Virtuoso window will open, as well as another window containing a palette of all of the different layers
you can use in your layout. This window is called the Layer Selection Window (LSW). By selecting a
layer in the LSW, you can create rectangles of that layer in the Virtuoso window by selecting
CreateRectangle from the Virtuoso window or by hitting the r key. The dX and dY indicators above
the layout window show the size of the rectangles that you create. You will build your layouts by
drawing rectangles of the appropriate layers. Information on these and other layout commands can be
found in the lab manual.
Refer to the layout lecture slides on the web for pictures of the inverter layout, in addition to the ones in
this lab. As you go through the layout, if you are unsure what you are doing is allowed by the process
rules, you can run the Design Rule Checker as described in Section VI.
Important: Note that many layers have two types in the LSW, [dg] and [pn]. [dg] indicates layers used
for drawing. You will use these layers almost all of the time. The [pn] layers are used only for creating
pins. Except where told otherwise, you will be using only the [dg] layers for the inverter layout.
Figures 3, 4 ,5.
To complete the inverter layout, follow these steps, referring to the figures indicated:
1) Add Poly (0.4 wide) to connect the gates of the NFET and PFET. (Figure 4) It is okay if your poly
overlaps the poly that forms the gates, but it should be the same width.
2) Add Poly to connect the input pin to the gate connection. (Figure 5).
3) Add Metal1 to connect the NFET and PFET drains. (Figure 6).
4) Connect the left side of the N-Island to the Metal1 by creating a contact. This requires a .9 by .9
square of N-Island, on top of a .9 by .9 square of Metal1, with a .5 by .5 Contact layer centered
between them. (Figure 7).
5) Add a substrate contact by adding a .9 by .9 square of P-Island and a .5 by .5 Contact. (Figure 8)
Figures 6,7,8.
6) Add an output connection to Metal2 by adding a .5 x .5 via and a .9 x .9 square of Metal2 to the
Metal1 connecting the drains. (Figure 9).
7) Identify the power connections, vdd! and gnd! by adding pins using the Createpin command.
In the Create Pin dialog box, select the shape pin type. Enter the pin name in the Terminal
Name box, and make sure that the I/O type is inputOutput. Check the Create Label box. Make
sure that Metal1 [pn] is selected in the LSW and draw .7 x .7 square pins on the rails for power and
ground. (Figure 10).
8) Add the input and output pins, A and Y, in Metal2 [pn], using Createpin as above. Make sure to
use the correct I/O type for the pin that you creating. (Figure 11).
Your finished inverter should look like the one shown in lecture and on the web. (See the online version
of this lab also).
Figures 9,10,11.
As you go through the layout, and when you are done, you should run the Design Rule Checker and
make sure that you are not violating any process rules.
Virtuoso does not check your layout for
errors when you save it, so you must run DRC to verify that there are no errors. Any errors that you find
can be looked up in the process rule books which can be found in the lab, if the error message and
markers do not give you enough information. You can use the ruler command, k, to measure parts of
your design. Use K to clear the rulers from your design.
VII. Extraction
Once your design is complete and passes DRC, you can extract the design. Extraction looks at the layout
and generates a netlist based on it, including any parasitic capacitances, and resistances, if desired.
Running extraction
(do not extract resistances at this point) will create a new view called extracted.
Open this view. It looks like your layout with all of the connected rectangular regions of the same layers
merged together. You will also see labeled blocks for pfets and nfets, as well as capacitors. If you press
shift-F, you can see the symbols for the extracted devices on the extracted view. Unfortunately, the
extracted components do not line up very well with the layout when viewed this way. This is a known
bug in Cadence, but it does not affect the accuracy of the actual extracted netlist, only the visual
representation.
Using the information from the extraction, the Layout Vs. Schematic (LVS) tool can compare your
original schematic to the actual design as laid out. Use the LVS tool
to compare the inv_example
schematic view and the inv_example extracted view. The message stating that LVS succeeded means
only that the LVS process completed, not that the netlists match. Make sure that the output from LVS
says that the netlists match, meaning that your layout and your schematic match. If they do not match,
use the error messages to determine why not, and fix your layout so that the LVS gives the correct
answer. You should have at least one mismatch; the PFET gate width does not match the PFET width in
the schematic. Fix this problem in the layout. Extract and run LVS again.
Once your design passes LVS, you can simulate the extracted netlist using Spectre. First, run the
(If you extract resistances
extraction tool again, only this time set the switch to extract resistances.
and then try to do LVS, you will get errors, so do LVS first, and re-run the extraction to get the
resistances). Open the Analog Artist window for the inverter test schematic. Rerun the VTS simulation
of the pre-layout schematic. Then select SetupEnvironment from the menu. Change the netlist type
from flat to hierarchical. In the Switch View List field, enter the word extracted as the very first item in
the list. This will tell the simulator to use your extracted netlist for simulation, instead of the schematic.
(Remove the word extracted when you want to simulate the schematic again.) Click OK in the
environment window and create new raw and final netlists. Note the parasitic resistances and
capacitances in the extracted netlist. Set the plotting options to overlay the plots, and simulate the VTC
of the extracted netlist. You should have both the pre- and post-layout VTC curves on the same graph.
Label and print out this graph. Repeat the post-layout simulation for transient analysis and print out the
transient analysis graph, showing both the input and output waveforms. You may need to print out
another plot of a zoomed-in portion of the waveforms, as you will need to measure the gate delay.
X.
Open the schematic view for the nor2 cell that you copied earlier in the lab. You will create a layout for
this circuit, performing the same procedures in sections III-IX that you did for the inverter. Specifically,
you must:
1. Perform a pre-layout Verilog simulation of the NOR gate. Record the signals and create a waveform
showing the NOR gate behavior. Print this waveform.
2. Make a symbol of the NOR gate and use it to create a test schematic, like the one you used for the
inverter. Use it to perform a pre-layout Spectre simulation of the NOR gate. Create a VTC showing
the output changing from high to low or low to high as one of the inputs changes. Then perform a
transient analysis, and print a plot showing the input and output curves on the same graph. You may
need to print out another plot of a zoomed-in portion of the waveforms, as you will need to measure
the gate delay.
3. Make a layout of the NOR gate. Use Metal2 contacts for the inputs and outputs, as you did for the
inverter. As you work on the layout, use DRC to check the correctness of your work.
4. Extract the layout (without resistances) and run LVS. Make sure that the extracted netlist matches
the schematic. Use the FileSave As command in the LVS output window to save the LVS output
as a file. Print this file out.
5. Print out your layout using the DesignPlot command from the Virtuoso window. Print to a color
printer if possible, or color and/or label your printout so that the different layers can be
distinguished.
Then simulate, using
6. Extract the layout again, this time using the switch to extract resistances.
Spectre, the same output change as you did in part 2, above. Create a plot showing both the prelayout and post-layout VTCs on the same graph. Then create a transient analysis, showing the input
and output curves on the same graph. You may need to print out another plot of a zoomed-in portion
of the waveforms, as you will need to measure the gate delay.
XI. Questions
(A) Draw two non-trivial cross-sections through your NOR gate layout, as you did in HW3. (You have
an additional metal layer to deal with, but you should be able to figure out how to represent this). Show
the lines along which you are drawing the cross-sections on your layout. Make sure that every layer in
your layout is shown at least once in your cross sections.
(B). Compare the VTCs of the NOR gate obtained pre- and post-layout. Describe and explain any
differences, even minor ones, between the curves.
(C). Measure the gate delay obtained from the transient analyses performed pre- and post-layout.
Explain any differences.
Report requirements:
Introduction State your interpretation of the purpose and objectives of this lab.
Procedure / Results Explanation of how you arrived at your results. Include printouts of the
schematic and layout that you built. Include any hand calculations and equations used. Also include
any graphs (complete with titles and axis labeling).
Analysis Answer the questions given throughout the lab handout. Show that you understand all of the
concepts.
Point Breakdown:
This lab is worth a total of 140 points. The breakdown is as follows:
Style (neat, orderly report) (10 points)
Introduction (5 points)
Pre-layout Verilog simulation (5 points)
Pre-layout transient analysis plot (5 points)
Correct LVS output printout. (5 points)
Layout plot. It must be clear which layers are where. (45 points)
VTC plot showing both pre- and post-layout response. (5 points)
Post-layout transient analysis plot. (5 points)
Cross sections. (25 points)
Comparison of VTCs. (15 points)
Calculation and comparison of pre- and post-layout transient response. (15 points).