Sie sind auf Seite 1von 37

EE115C - Tutorial 5 28/06/11 10:38 a.m.

EE115C: Digital Electronic Circuits Cadence Tutorials Electrical Engineering


Prof. Dejan Markovic #5: Hierarchical Design and Post-Layout Verification Winter
2007

tutorials | main page | feedback

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.

Bigger Designs and Hierarchy (Warm-up Example)


Now let's use our NAND gate and inverter cell to build something a little more complex.
In the Library Manager, create new cell named row.

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.

Layout Editing: Show/Hide Internals (Review from Tutorial 3)

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.

Layout Editing: Push, Pop, and Edit in Place

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).

Select one of the substrate contacts for deletion as shown below.

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.

Save and close the layout.

Schematic-driven Layout Hierarchy: Ring Oscillator Example


Create layout view for cell Ring_OSC from Tutorial 2. From the Virtuoso Layout Editing window, invoke Tools > Layout
XL. In the VXL dialog window (review Tutorial 3 if needed), uncheck the option of creating I/O pins (because we still don’t know how
many VDD and GND pins we would need in the final design). Your initial cell placement should look like this:

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.

Design Verification: DRC check


Now is a good time to run intermediate DRC check. If you placed M2/M1 and M1/Poly close, then you might run into M1 spacing error
like the one illustrated below:

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.

Layout Editing: Adding Power Rails and Labels


Now we are going to add power rails in Metal3 layer that span the entire height of the layout. We will use five vertical stripes, three for
VDD and two for GND, in alternating order.

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)

This is top-level mapping of the ground signal (contact stack highlighted):

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.

Specify VDD! as pin name.

Select Display Pin Name.

I/O type should be inputOutput.

Click Hide to create the pin.

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.

Save your (hopefully final) layout!

Final Verification: DRC Check


Let’s run final DRC check to make sure our layout meets all the design rules. Start Assura > Run DRC…

Click Yes to see the final DRC report.

Error Layer Window pops up showing few DRC erros:

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.

Select Metal2 drw and click NV.

You will see that only Metal2 remains active.

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.

Layout Editing: Stretch Command


You can resize the object by stretching (Edit > Stretch). After you enter stretch mode (hotkey: “s”), left-click and sweep over the
edge you would like to stretch, that edge will become highlighted, left-click to take the edge and stretch the object. The stretching is
illustrated below:

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).

Your design should be DRC clean!

Close the run: Assura > Close Run.

Final Verification: LVS Check


The next step in the verification process is LVS (review Tutorial 3 for LVS basics). Start the LVS run from the layout window by invoking
Assura > Run LVS…

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:

Click No since no debugging is needed.

Final Verification: Extraction


We are now going to introduce another step in the verification chain: layout extraction and post layout simulation. Copy Assura
technology file to your cadence-labs directory:

> pwd
> /w/fac.01/ee/dejan/ee115c/cadence-labs
> cp /usr/public.2/ee115c/cadence-labs/gpdk090_v3.4/assura/assura_tech.lib .

Modify the assura_tech.lib file to read as follows:


DEFINE gpdk090 /usr/public.2/ee115c/cadence-labs/gpdk090_v3.4/assura

Set up Assura > Technology:

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…).

Following window will pop-up:

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

Click on the Extraction tab.

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.

When the Assura run is complete, the following window pops-up:

Click Close.

This will be part of the run report (sitting in your cadence-labs directory):
rcx.Ring_OSC.log

Summary for ee115c/Ring_OSC/av_extracted

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.

instance count totals:

lib cell view total


analogLib pcapacitor symbol 167
analogLib presistor symbol 322
gpdk090 nmos1v ivpcell 15
gpdk090 pmos1v ivpcell 15

extracted view creation completed


cpu: 0.27 elap: 2 pf: 57 in: 55 out: 88 virt: 55M phys: 0M

Finished /usr/apps/cadence/ASSURA315/tools/assura/bin/rcxToDfII

Run ended: Thu Dec 28 01:16:41 2006

***** Assura terminated normally *****

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:

Similarly, you can zoom in to see parasitic resistances:

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.

Design Verification: Post Layout Simulation

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.

Your final setup should look as follows:

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.

After the simulation is complete, following graphs appears:

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.

The delay is evaluated at: 495ps

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.

So, the post-layout delay is about 20% longer!!!

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…

Hope you have fun with Cadence!

Last Modified on December 27, 2006 by Dejan Markovic

http://www.ee.ucla.edu/~dejan/ee115c/ee115c_tut_5.htm Página 37 de 37

Das könnte Ihnen auch gefallen