Difference between revisions of "Vlsi:Cadence Tips"

From Applied Optics Wiki
Jump to: navigation, search
(Added a summary of Voltage Storm analysis procedure.)
(Add warnings/errors to transient simulations)
 
(5 intermediate revisions by 2 users not shown)
Line 7: Line 7:
 
I can never remember which voltage/current is which, so I've created an image to remind me: [[Image:Vpulse.png]]
 
I can never remember which voltage/current is which, so I've created an image to remind me: [[Image:Vpulse.png]]
  
=== Voltage Storm Analysis ===
+
== RC Extraction for C35/S35/H35 in IC 6.1 ==
Voltage Storm is a tool that allows the analysis of IR drops. For example, it can be used to monitor the distribution of VDD across an array of pixels.
+
 
Follow this procedure for the analysis:
+
To run RCX successfully, you must first pass LVS correctly as normal. Do this by running LVS without any switches. If you run RCX now, it will fail. Now carry out LVS with the switch "resimulate_extracted" to guarantee that also substrate shorts are found correctly. RCX will run without any problems (note that you must not use the "resimulate_extracted" switch for normal LVS runs as it may give false results.
* Create your schematic and layout.
+
 
* Make sure your labels are in the center of any path or metal or poly they are on.
+
== Add warnings/errors to transient/dc simulations ==
* From the '''Create''' menu, choose '''Pins from labels...''' and click OK to create pins on the layout.
+
 
* Run LVS from Assura, and then run RCX to generate the extracted view. You may need to use the JoinableNet function if you haven't joined some nets together.
+
From http://www.cadence.com/Community/forums/p/14258/23865.aspx
* In the RCX window, choose to extract RC and use '''infinite Max Fracture Lengths squares''' in the Extraction tab, and enable '''extract parasitic resistor width''' (Netlisting Tab).
+
in the ADE gui you can use the "Simulation -> Device Checking"  interface.  It will create "assert" statements in your netlist
* Set up a test bench configuration, containing the extracted view. Use the hierarchy editor.
+
* Run a simulation that uses the extracted view. A short transient, AC or DC simulation is fine.
+
(See "spectre -help assert" ).
* From your Spectre ADE window, choose '''Session >> Schematic Window''' to open the test cell, and descend into the extracted view. This makes sure that you are in context.
+
* From the extracted view menu, choose '''Tools >> Voltage Storm''' from the menu.
+
Here an example where I check a node voltage of a resistor if it exceeds a volatage range with a time limit:
* Select from the '''EM and IR''' menu, '''IR Drop Analysis'''
+
* Accept the use of the presistor (default)
+
Check_net assert expr="(V(R0:1) )" min=1 max=2 duration=1u message="Voltage Exceeds Maximum" level=warning
* If all was correctly set up, your pins and available signals will be listed. Select the pins or signals of interest, using the '''CTRL''' key for multiple selections.
+
* Enter or browse to your simulation directory.
+
"Check_net" is just a name. "level" can be also "error" which will stop the simulation.
* Highlight one of the simulations in the list box.
+
 
* Press OK. The tool will perform some operations (can be seen in the CIW), and an '''IR Voltage Drop Results''' window will pop up.
+
A better description:
* This allows you to choose on of those pins/signals chosen earlier, and study the drop.
+
 
* To display the voltage distribution, click one of the buttons near the bottom of the form. '''Hide layers, Display highlights''' is particularly useful.
+
To enable device checking, use the menu Simulation->Options->Analog
* It may be necessary to load a resource file in your LSW to get the layers to display in a nice format. From the LSW, choose '''Edit >> Resource Editor''', and from that window choose '''File >> Load'''
+
Look in the "Check" tab and add a tick to the checkbox "dochecklimit" under "DEVICE CHECKING OPTIONS".
* The voltage variation is shown in the form of a colour map on the extracted layout window.
+
Click OK.
 +
 +
Now go to the menu Simulation->Device Checking...
 +
A very simple check is to look at the voltage on a net. For more options like checking device parameters,
 +
click "Help" in the Device Check Specification window.
 +
Choose "Type" as "Expression", then type your expression in. This would be "V(out)" to check the voltage on
 +
a net named "out". Set the min/max range for your check and click "Add".
 +
Now run a simulation and check the output log.

Latest revision as of 11:43, 14 December 2009

Virtual Connections in Assura LVS

If you have two wires on a layout that are unconnected but will be connected together in a higher level then place a pin on both wires. When running Assura LVS you need to set some further options. Enable "View avParameters" and then click "Modify avParameters...". Find the "joinPins" option, enable it ("Use in run") and set it to "Top". Click OK to close the avParameters window. Now enable "View Additional Functions" followed by "Use joinableNet Function". Now click "Modify joinableNet Function...". In the new window enable "root cell?" then add your net to the "Net Names to Join" box and click "Add to Command List (below)" to add it. Click OK to close the joinableNet window and then run LVS as normal.

Voltage / Current Pulse Sources

I can never remember which voltage/current is which, so I've created an image to remind me: Vpulse.png

RC Extraction for C35/S35/H35 in IC 6.1

To run RCX successfully, you must first pass LVS correctly as normal. Do this by running LVS without any switches. If you run RCX now, it will fail. Now carry out LVS with the switch "resimulate_extracted" to guarantee that also substrate shorts are found correctly. RCX will run without any problems (note that you must not use the "resimulate_extracted" switch for normal LVS runs as it may give false results.

Add warnings/errors to transient/dc simulations

From http://www.cadence.com/Community/forums/p/14258/23865.aspx

in the ADE gui you can use the "Simulation -> Device Checking"   interface.  It will create "assert" statements in your netlist

(See "spectre -help assert" ).

Here an example where I check a node voltage of a resistor if it exceeds a volatage range with a time limit:

Check_net assert expr="(V(R0:1) )" min=1 max=2 duration=1u message="Voltage Exceeds Maximum" level=warning

"Check_net" is just a name. "level" can be also "error" which will stop the simulation.

A better description:

To enable device checking, use the menu Simulation->Options->Analog
Look in the "Check" tab and add a tick to the checkbox "dochecklimit" under "DEVICE CHECKING OPTIONS".
Click OK.

Now go to the menu Simulation->Device Checking...
A very simple check is to look at the voltage on a net. For more options like checking device parameters,
click "Help" in the Device Check Specification window.
Choose "Type" as "Expression", then type your expression in. This would be "V(out)" to check the voltage on
a net named "out". Set the min/max range for your check and click "Add".
Now run a simulation and check the output log.