Beruflich Dokumente
Kultur Dokumente
This tutorial will demonstrate hierarchical design of a simple chain of gates using simple layout instantiation and also layout of a ring
oscillator circuit using VXL. The process of post-layout extraction and simulation with wire RC model is demonstrated on the ring
oscillator example.
You should now be editing layout view of row cell. Instantiate NAND four times and inverter once to form an array of cascaded cells.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 1 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Your layout will look something like the figure above unless you selected to view all the internal layers.
You may now want to see what's inside of the NAND2X1 cells and the inverter.
To do this, hit hotkey “e” and set Display Levels from 0 to 10, for example.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 2 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
This will show all the layers inside the cells as shown below. Alternatively, you can press Shift-f to display (Ctrl-f to hide) all
underlying layers – up to level 32 in this process.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 3 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
OK, now that we are here, let's say our boss comes over and says "sorry but you need to reduce the number of substrate/well
contacts". First, select the leftmost NAND2X1 cell and hit hotkey “x” (for Design > Hierarchy > Edit In Place).
After you hit “x”, notice that your edit cell is now NAND2X1 (check the top banner of the layout window which says:
Virtuoso® Layout Editing: ee115c NAND2X1 layout).
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 4 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Notice that all four instances will be updated – this is expected since you modified NAND2X1 cell from your library. You can open your
NAND2X1 cell to check this out.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 5 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Removing contacts seems like a bad idea in this case, so undo this exercise by using hotkey “u”. Save the cell and type “B” (capital!)
to get back up.
Now, just for grins, let's wire up two of the gates. Since we want to wire them up in row and NOT in NAND2X1 or INVX1, we must first
make sure row is our edit cell. Now that row is your edit cell, simply use wiring strategy you learned in Tutorials 3 and 4 to hook up a
couple of wires. Figure below shows a zoomed in view to show two gates wired up within row cell.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 6 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Now when you zoom to fit and press Ctrl-f to hide the internal layers, you will see only the top level wire you just made.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 7 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 8 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Click on the cells to see their connectivity in the schematics. Now, we are going to place the cells in row-like fashion similar to that in
the schematic. As you keep dragging the cells into the bounding box, you should observe flylines and objects in the schematic. Your
layout/schematic windows should look as follows as you are dragging the gates:
Layout, third gate is being moved corresponding cell in the schematic
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 9 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Continue with the second and third row (notice that the cells in the second row are flipped, just like they are in the schematic). When
you are done placing the rows, your layout should look similar to this:
Now, we are going to share VDD and GND rails. Make sure the cells are aligned and move the rows such that the prBoundaries meet.
Sharing of the GND rail for the first two rows should look like this:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 10 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Notice that the substrate contacts have nicely overlapped (all that symmetry in cell design is finally paying off!). Overlap the VDD rails of
the second and third rows and re-size the top-level cell boundary. Your layout should now look like this:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 11 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Wire up the internal signals inside the rows first. Notice that when you use Create Path and click on the source node (e.g. pin Z), the
destination node (e.g. pin A) gets highlighted to as a guide for wiring up the circuit (you can imagine that this gets quite useful for large
design which may not be as regular as the ring oscillator). Here’s the layout screen capture to illustrate the highlighting of the path
(both pins Z and A are highlighted in green):
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 12 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Wire up the output of the first row and the input of the second row etc. using Metal2 layer. The layout should look like this (notice
Metal2 wires in red):
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 13 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 14 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
You can cover both contacts with a Metal1 polygon to fix this error.
You can hide all internal layers to see only your top-level routing:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 15 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Create contact stack to connect GND signals. The stack should include:
- M2/M1 contact (power rails are wide, so put 2 contacts)
- M2 rectangle over the M1 GND rail and under M3
- M3/M2 contact (again, put 2 contacts)
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 16 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Repeat this process for the VDD lines. Hint: once you create a contact stack, you can copy it as many times as needed or select
multiple copies as shown below:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 17 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Once you are finished placing VDD contacts, they should be positioned as highlighted:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 18 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Finally, add VDD and GND pins to the power rails. Create a shape pin (shortcut: Ctrl-p) in Metal3 layer.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 19 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Place the VDD! pin at the bottom of your layout and copy if over to other VDD lines (since M3 stripes are not connected, you have to put
pin on each as a way of logically connecting them). Note: for larger designs, all the power/gnd rails will be connected at the top level.
Your VDD! pins should be distributed as follows (check the bottom edge of the layout):
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 20 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Place GND! pins on top of the two gnd lines and your layout is finished. Your top-level routing and pin distribution should finally look like
this:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 21 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 22 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
This indicated Metal2 spacing problem. Click on arrows above to see the errors in layout. It looks like Metal2 wires are too close to
Metal2 from the contact stack as highlighted below:
For more details, in the Error Layer Window you can click View > Explain, and then click on the highlighted shape above.
Following window will appear:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 23 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
This is the marker text window that provides details about the DRC errors. You can also find this information in the manual (may
also review Tutorial 3):
/usr/public.2/ee115c/cadence-labs/gpdk090_v3.4/docs/gpdk090_DRM.pdf
Since we want to fix only Metal2 spacing errors, we can select to display only this layer. Go over to the LSW window.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 24 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Now, go to the layout editor and refresh the window using Window > Redraw (hotkey Ctrl-r). Only Metal2 will be visible in layout
as shown below:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 25 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
DRC violations are indicated with white lines (also circled for better emphasis). The easiest way to fix these errors is to shrink the
Metal2 area in the contact stack. Use ruler to measure 0.2µm away from the signal lines and shrink the Metal2 from the contact stack
accordingly. This process is illustrated below:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 26 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 27 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Click the AV button in the LSW window and press Ctrl-r to refresh the layout. Now, let’s run DRC one more time (if you haven’t
closed previous run, first select Assura > Close Run).
Nice feature of VXL is that your layout is schematic-driven. In other words, you are doing LVS on the fly as you are constantly checking
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 28 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
your schematic during the layout design. That extra effort pays off in the end: your designs typically end up being LVS correct (unless
you mix up some labels in the layout or introduce some bug of that nature). Upon completing the LVS run, following window appears:
> pwd
> /w/fac.01/ee/dejan/ee115c/cadence-labs
> cp /usr/public.2/ee115c/cadence-labs/gpdk090_v3.4/assura/assura_tech.lib .
Click OK.
To start the extraction, go to Assura > Run RCX… (note: if you previously did Assura > Close Run, this menu won’t show up, so
you need to do Assura > Open Run…).
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 29 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
In the Setup tab, choose Extracted View for Output. Make sure Setup Dir is the following:
/usr/public.2/ee115c/cadence-labs/gpdk090_v3.4/assura/rcx
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 30 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Choose RC as the Extraction Mode (both resistance and capacitance) and Schematic Names as the Name Space (since we didn’t
label any nodes in the layout). Also type TP as the Ref Node.
Walk through other tabs just for exercise, but don’t change anything. Click OK.
Click Close.
This will be part of the run report (sitting in your cadence-labs directory):
rcx.Ring_OSC.log
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 31 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Finished /usr/apps/cadence/ASSURA315/tools/assura/bin/rcxToDfII
Now let’s go to the Library Manager window and open av_extracted cell view. Zoom in to the top left corner and you will see
layout annotated with transistor symbols indicating extracted components:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 32 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
In post layout extraction, we are verifying our design against conceptual schematic model. Now, we are going to compare delay
numbers obtained from the schematic (Tutotial 2) with the post layout simulation data. For reference, schematic: T = 400ps (oscillation
period).\
From the extracted view, start Analog Environment and set up simulation the same way you did in Tutorial 2, section Ring
Oscillator Delay Simulation.
In the Setup > Environment, add av_extracted to the switch view list.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 33 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Net 5:net19 is the output of the last inverter in the first row (corresponds to TP from the schematic). Any other point can be chosen,
of course, because the objective is to simulate period of the ring oscillator. Save this state as state_Ring_OSC_ext.
If you get stuck at around 500mV, you can set initial condition on a node to help the simulation converge. To do so, choose
Simulation > Convergence Aids > Initial Condition and select the node you would like to initialize as shown below:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 34 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Now, we measure period from the first falling edge to the second falling edge:
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 35 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 36 de 37
EE115C - Tutorial 5 28/06/11 10:38 a.m.
Layout effects could contribute to this. A slightly different layout achieves 509ps period:
Overall, 20% is a good rule of thumb for performance degradation. Message for your project: it is a good idea to over-design your
circuit in schematic by about 20%, so that the final post layout design meets the specs…
http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 37 de 37