Next: Synopsys (Ciranova) PyCell Studio
Up: Parameterized Cells and Vias
Previous: PCell Stretch Handles
Contents
Index
PCell Abutment
Auto-abutment is most commonly used in MOS transistor pcells. If one
overlays two compatible transistor instances, the two instances
reconfigure themselves into a dual-gate configuration, eliminating
redundant geometry.
At this time, the only available example pcell that implements
auto-abutment is the Nmos2 pcell in the IPL_cni130 library supplied
with the Synopsys (Ciranova) PyCell Studio download. This is an
OpenAccess Python portable pcell which is part if the IPL (IPLnow.com)
library of open-source portable pcells.
The following procedure illustrates auto-abutment.
- Download and install the Synopsys PyCell Studio package. This
is free from Synopsys, but requires registration and a password
mailback. Versions are available for Linux and Windows, though the
Windows version is not currently supported in Xic.
- Start Xic in an environment that will load the OpenAccess
libraries and Python from the PyStudio. Use ``-Tcni'' to
reference the appropriate technology file. Edit an empty cell.
- Select the OpenAccess Libs button in the File Menu,
which will bring up the libraries list.
- Select the IPL_cni130 library by clicking on the name.
Then press the Contents button. A new listing window will
appear.
- Scroll down in the new window and click on the Nmos2
entry.
- Then click the Place button in the bottom-right corner of
the same window. The Cell Placement Control panel will appear.
Press the Place button in this panel.
- The Parameters panel will appear, and the cell placement
icon will be attached to the mouse pointer. Click twice in a drawing
window to place two instances of the cell, far enough apart that they
don't overlap. Press Esc to exit placement mode.
- Use the Expand feature from the View Menu to set the
display depth so that the instance content will be shown.
- Now for the fun part. Pop down any pop-up windows or otherwise
move them out of the way. Select one of the cell instances, and move
it over the other, so that the right contact area of one touches the
left contact area of the other. Both instances will reconfigure
themselves, and the overlapped contact will be gone! The structure
represents a dual-gate transistor.
- Move one of the instances well away from the other. Note that
they revert to their original form.
- Click the PCell Control button in the Edit Menu. In
the panel that appears, select Mode 2 (with contact) for Auto-abutment mode.
- As before, move one of the instances so that the contacts
overlap. In this case, note that one of the instances retains the
contact. This mode inplements trasistors with a shared contact.
The abutment protocol adheres as closely as possible to the
description from the eda_tool_integration.pdf document
supplied with the PyCell Studio. There is one very significant
difference, in that Synopsys incorporates the logic into a separate
non-visual pcell, which is created transiently to handle abutment
events. In Xic, the logic is built into the program. Thus,
auto-abutment can be used in native language and Tcl pcells in Xic,
as well as Python pcells. In Xic, the internal logic handles
abutment events, the separate pcell is not used.
Auto-abutment is enabled in a cell through application of a number of
object properties that define aspects of the abutment. These are
applied to objects created in the sub-master (or inherited from the
super-master). The Xic properties as described below correspond to
the properties described for abutment in PyCells, with generally
identical syntax.
-
- ab_class
This is equivalent to the Ciranova pycAbutClass property. It is
applied to pin shapes to specify that two pin shapes from different
cells can be abutted. Only pins with the same ab_class
property string can trigger auto-abutment.
- ab_rules
This is equivalent to the Ciranova pycAbutRules property. The
property is applied to each pin shape that can be abutted, and the
string specifies how the pcell parameters are modified for different
abutment modes.
- ab_directs
This is equivalent to the Ciranova pycAbutDirects property. The
property is applied to each pin shape that can be abutted, and the
string contains a comma-separated list of one or more of the string
tokens left, bottom, right, and top. These
specify the valid abutment directions.
- ab_shapename
This is equivalent to the Ciranova pycAbutShapeName property.
This property is assigned by the pcell developer to each pin shape
which can be abutted. It assigns a unique name to the shape.
- ab_pinsize
This is equivalent to the Ciranova pycAbutPinSize The property
is applied to each pin shape which can be abutted, and supplies an
orientation-independent width parameter.
- ab_inst
This property is applied to instances of abutable cells, and contains
an instance name. Xic normally does not generate or use instance
names.
- ab_prior
This property of a pcell instance indicates that the instance is
abutted, and this property contains pre-abutment parameter values for
use in reverting abutment.
- ab_copy
This property is applied to instances with ab_prior properties
that have just been copied. This will allow parameter reversion of
the copy without touching the partner of the original.
Next: Synopsys (Ciranova) PyCell Studio
Up: Parameterized Cells and Vias
Previous: PCell Stretch Handles
Contents
Index
Stephen R. Whiteley
2024-09-29