3 Extracting Layout
3 Extracting Layout
Extracting Layout
3-86
3-94
3-97
Subcircuit Recognition
3-109
3-123
Contents/Search
Index
3-84
Extracting Layout
Uses device definitions that can be specified using generated layers, for a
greatly expanded set of possible definitions. Derived layers are generated
and disposed of automatically.
Creates a netlist file in Berkeley 2G6 SPICE format, usable with any tool
that reads a SPICE netlist. This netlist is ideal for use with the Tanner
T-SpiceTM circuit simulator (to verify device sizes, drive capabilities, and
other circuit performance factors) or the LVS netlist comparator (to check
the equivalence of netlists generated from different sources).
Contents/Search
Index
3-85
Extracting Layout
Only relevant devices and connections need be defined. For example, every
design contains resistors, because no process layer is a perfect conductor. But if
the design to be extracted does not contain any wire long enough for its inherent
Contents/Search
Index
3-86
Extracting Layout
resistance to affect the circuits performance, then the wires do not have to be
defined and extracted as resistors.
Generated Layers
When you use generated layers in an extract definition, L-Edit automatically
generates objects on those layers before proceeding with netlist extraction.
Following netlist extraction, L-Edit automatically deletes the objects it created
during that Extract run. It only deletes objects generated during that Extract run,
howeverpreviously generated objects remain. For further information about
generated layers, see Generating Layers on page 1-435.
To extract resistors and capacitors, you must also enter the following three
constants for each involved layer. Use General Layer Parameters (page 1-158)
to enter these values.
!
Capacitance is the sum of two products: that of the area of the capacitor and the
area capacitance, and that of the perimeter of the capacitor and the fringe
capacitance. (Capacitors are polygons on the recognition layer.) Resistance is the
product of the resistivity and the length of the resistor, divided by the width.
Contents/Search
Index
3-87
Extracting Layout
The extractor only operates on boxes and on 45 and 90 polygons and wires; it
does not extract circles or all-angle polygons and wires.
Note:
Devices in terms of their type, component layers, pins, and model names
The directory L-Edit Pro\tech\mosis contains a set of extract definition files that
correspond to various technology processes. You can modify these files as
necessary to define additional connections and devices for extraction.
For a detailed reference on the syntax of the extract definition file, see Extract
Definition File Format on page 3-123.
Contents/Search
Index
3-88
Extracting Layout
Node Names
Extract can write out nodes as internally generated numbers (using the option
Integers in ExtractOutput) or as descriptive strings (using the option Names
in ExtractOutput). For further information on this dialog, see ExtractOutput
(page 3-101).
To label a node or element for extract to a netlist, you must add a port to the layer
of that node or element, within an object (box, polygon or wire) on that layer.
When Names is selected, L-Edit derives node names from the names of ports
found on the same layer as the node. It derives port names from ports found on
the device-specific recognition layer that are completely enclosed by that device.
If you want to use the same ports for a design rule check that uses an assigned
dummy layer, you can change the layers for your ports by:
#
selecting all objects, which will be just the ports on the node layer
using Edit > Edit Object to change the layer to the layer of your choice.
The strings produced by the extractor are the hierarchical names; each instance
involved in a node is mentioned and separated from the others by a slash (/), with
Contents/Search
Index
3-89
Extracting Layout
the port name at the end. (Instances that are unnamed in the layout are named
automatically by the extractor.) For example, the node name U1/alpha/in
describes a port in contained by an instance alpha, which in turn is contained by
an instance U1.
Configuration Example
The following example illustrates how to configure the extractor to recognize a
transistor in a CMOS n-well process. It shows how transistors may be clearly and
uniquely identified by generated layer definitions and device statements in the
extractor definition file. Other SPICE devices may be identified in similar
fashion.
An NMOS transistor in an n-well CMOS process consists of:
!
The channel
Contents/Search
Index
3-90
Extracting Layout
Device Definition
The following statement causes a MOSFET to be generated in the output.
# NMOS transistor
device = MOSFET(
RLAYER=ntran;
Drain=ndiff, WIDTH;
Gate=Poly;
Source=ndiff, WIDTH;
Bulk=subs;
MODEL=NMOS;
)
The recognition layer is defined as ntran, and the pin layers are defined as ndiff,
Poly, and subs. This causes the extractor to recognize a MOSFET wherever it
sees ntran geometry, touched by geometry on ndiff, Poly, and subs.
However, MOSFETs are not typically created by drawing geometry on ntran,
ndiff, or subs. They are created by drawing Poly geometry over Active
geometry inside NSelect geometry.
To generate correct geometry on the ntran, ndiff, and subs layers from userdrawn geometry on Active, Poly, and N Select layers, use generated layers (see
Generating Layers on page 1-435).
Contents/Search
Index
3-91
Extracting Layout
Recognition Layers
A transistor gate is formed on the chip when Poly geometry and Active geometry
intersect on the layout. The generated layer
gate = ( Poly ) AND ( Active )
Contents/Search
Index
3-92
Extracting Layout
Pin Layers
When the extractor identifies a transistor to be written to the output netlist, it
looks for the pins that should be touching the recognition layer if the device is
properly constructed.
A MOSFET has four pins attached to it: drain, gate, source, and bulk. The gate is
defined to be the Poly geometry that touches the transistor. The bulk in a PMOS
device is the N Well, and in an NMOS device is the substrate (subs). For these
pins, the proper layers are already defined.
In the layout, a single polygon on the Active layer stretches across the whole
transistor, but in a fabricated chip, the diffusion material will not exist under the
gate. The generated layer
Field Active = ( Active ) AND ( NOT (Poly ) )
creates geometry on either side of, but not underneath, a transistor gate.
Finally, an NMOS transistor has source and drain pins made up of n-doped
material, and a PMOS transistor has source and drain pins made of p-doped
material. The doping type is controlled by drawing geometry on the N Select and
P Select layers, so two generated layers can uniquely identify both pin layers:
ndiff = ( Field Active ) AND ( N Select )
pdiff = ( Field Active ) AND ( P Select )
Contents/Search
Index
3-93
Extracting Layout
properties determine the device name, connectivity, and device parameters of the
subcircuit.
You can use properties to format the output of subcircuit information written to a
SPICE netlist. You can attach properties to either a parent cell or an instance.
L-Edit Extract searches for instance properties first. If it does not find any, it
searches for properties on the parent cell.
SPICE OUTPUT properties are only processed as part of subcircuit extraction.
Property Tokens
String properties can include tokens, which are references to other values and
variables. The following tokens are expanded during subcircuit extraction. All
other text is parsed without expansion.
Token
Expansion
Contents/Search
Index
3-94
Extracting Layout
Token
Expansion
${property}
%{port}
\n \t
\\ \# \$ \% \{ \} \[ \]
Contents/Search
Index
3-95
Extracting Layout
Application Example
In the following example, the SPICE OUTPUT property allows you to specify
multiple energy domain connections such as electrical and mechanical
connectionsfor example, the SPICE OUTPUT property of the following
MEMS plate:
X${instance} %{PL_Left}_m %{PL_Right}_m %{PL_Bottom}_m
%{PL_Top}_m %{PL_Left}_e %{PL_Right}_e %{PL_Bottom}_e
%{PL_Top}_e mass4_geo W=${W} L=${L}
3_m
3_e
4_m
6_m
2_m
4_e
6_m
2_m
mass4_geo W=3e-3 L=2e-4
Contents/Search
Index
3-96
Extracting Layout
Output
Subcircuit
Accept
Contents/Search
Index
3-97
Extracting Layout
ExtractGeneral
Contents/Search
Index
3-98
Extracting Layout
Bin size
Contents/Search
Index
3-99
Extracting Layout
For each unnamed device, creates a twodimensional port at the location of the device.
The text of the port is the text of the element
name for the device. Device labels will not be
generated for devices with user-placed labels.
The group Place device labels on layer
contains options for writing the device labels
on the device-specific Recognition Layer or a
user-specified layer.
Contents/Search
Index
3-100
Extracting Layout
ExtractOutput
Contents/Search
Index
3-101
Extracting Layout
Contents/Search
Index
3-102
Extracting Layout
Contents/Search
Index
3-103
Extracting Layout
Note:
L-Edit cannot determine if other nodes in the circuit are ground nodes. If other
nodes are to represent ground, then they must be renamed 0or any of its
equivalentsin the netlist.
Contents/Search
Index
3-104
Extracting Layout
ExtractSubcircuit
Contents/Search
Index
3-105
Extracting Layout
Recognize subcircuit
instances
Subcircuit recognition
layer
Contents/Search
Index
3-106
Extracting Layout
Ignore subcircuit
connection ports with
names
Contents/Search
Index
3-107
Extracting Layout
Contents/Search
Index
3-108
Extracting Layout
Subcircuit Recognition
Most physical layout designs are hierarchical. Hierarchical designs help manage
complexity, encourage the creation and reuse of library cells, and facilitate
computer-aided engineering.
Extract provides a form of hierarchical extraction to automate working with
hierarchical designs and to speed up the extraction process in higher-level cells.
This is done by marking often-instanced lower-level cells as subcircuit cells,
essentially making them black boxes, so that every instance will not be
extracted explicitly.
When not set to recognize subcircuits, Extract flattens instances. The extracted
netlist describes all devices at the same level, with no indication of hierarchy.
However, if subcircuit recognition is activated and there are instances of
subcircuit cells, then the extracted netlist contains:
Contents/Search
Index
3-109
Extracting Layout
represents the instance name, pin1 the pin list, and subcircuit the
subcircuit definition name. (If the instance is unnamed in the layout, Extract
automatically assigns its name in the netlist.)
Subcircuit recognition is recursive within non-subcircuit instances. If a higherlevel cell contains a non-subcircuit instance, and the instanced cell itself contains
marked (subcircuit) instances, then the subcircuit instances are properly extracted
as subcircuits at any level of hierarchy, and any non-subcircuit instances are
flattened.
A .subckt command appears before the first device statement, and an .ends
command appears after the last device statement.
Subcircuit connection ports at the top level (that is, not contained in
instances) of the extracted cell are written as SPICE subcircuit pins in the
output.
Contents/Search
Index
3-110
Extracting Layout
There may be only one SRP per subcircuit cell. If no SRP exists in the cell, then
its instances are not recognized as subcircuits; the extractor flattens them.
Contents/Search
Index
3-111
Extracting Layout
Any geometry in a cell that contains an SRP, including geometry outside the
SRP, appears in instances of the cell but is ignored by the extractor.
Contents/Search
Index
3-112
Extracting Layout
The text associated with a connection port is transferred to the output netlist as
the name of a signal parameter (node) on the subcircuit definition. All connection
ports, on all layers, with the same name (within one subcircuit cell) are extracted
as the same subcircuit pin. The pins of a subcircuit are written in alphabetical,
then numerical, order.
Certain named ports can be ignored as candidates for connection ports. These are
shown in the dialog ExtractSubcircuit (page 3-105), in the Ignore subcircuit
connection ports with names section:
Ignored ports
How specified
Ports on a single
additional layer
down list
Contents/Search
Index
3-113
Extracting Layout
Into a 2-dimensional port, connecting geometry should exactly fill the port,
with neither gaps nor spillovers.
Odd-width wires with extend or round end styles should not be used.
If the connecting geometry touches the connection port but does not exactly
satisfy the above criteria, then a connection is still specified in the output netlist,
but a warning is generated.
Contents/Search
Index
3-114
Extracting Layout
Incorrect
Correct
Incorrect
Contents/Search
Index
3-115
Extracting Layout
Contents/Search
Index
3-116
Extracting Layout
Incorrect
Correct
Correct
DL
Contents/Search
Index
3-117
Extracting Layout
Note:
Subcircuit connection ports and SPR signal connection ports have very similar
functions: they mark the locations of connections from outside to inside
instances. There are, however, some important differences.
!
SPR signal ports may be entirely within the interior of a cell. Subcircuit
connection ports must share an edge with the subcircuit recognition polygon.
Because of these factors, the port construction shown in the following figure is
used in standard cell design for use with both SPR and Extract. Moreover,
running Extract with the Flag improper overlaps option turned off eliminates
subcircuit extract warnings. For further information, see ExtractSubcircuit
(page 3-105).
Contents/Search
Index
3-118
Extracting Layout
Added subcircuit
connection port,
recognizing
connection from top.
Added subcircuit
connection port,
recognizing
connection from
bottom.
Added SRP
Existing 1-D SPR signal port for
autorouting.
Contents/Search
Index
3-119
Extracting Layout
Contents/Search
Index
3-120
Extracting Layout
Contents/Search
Index
3-121
Extracting Layout
How specified
Contents/Search
Index
3-122
Extracting Layout
Layer names are case-sensitive, and must match the case of layer names
defined in the TDB file. The rest of the definition file is case-insensitive;
upper and lower cases can be used interchangeably.
Pin names cannot contain commas, semicolons, or spaces, and they cannot
be named MODEL.
For compatibility with existing extract definition files, the WIDTH keyword
is ignored for all devices except a GAASFET/MESFET.
Contents/Search
Index
3-123
Extracting Layout
IGNORE_SHORTS indicates that if the device has all of its pins connected to
the same node then it will be considered shorted and the device will be
written to the extract netlist file as a comment.
Comment Statements
A comment statement begins with a pound sign (#) and continues to the end of
the line:
# This is an extract definition file comment.
Connection Statements
A connection statement defines a connection between two different process
layers. A connection always involves three layers: the two layers being
connected and the via or contact layer which connects them. Connection
statements have the following format:
connect(Layer1, Layer2, ThroughLayer)
where Layer1 and Layer2 are the names of the layers being connected, and
ThroughLayer is the name of the connecting layer. For example:
# Connect Poly to Metal1
CONNECT(Poly, Metal1, PolyContact)
Contents/Search
Index
3-124
Extracting Layout
Contents/Search
Index
3-125
Extracting Layout
where RLAYER = is required, and rLayer is the name of the recognition layer.
Following the recognition layer is a list of pins of the device. The order of this list
determines the order of the pins in the extracted netlist. The extractor does not
require any particular order, but LVS requires that both source netlists contain
pins in the same order, and SPICE simulators also have strict rules about the
order in which pins appear. We recommend following the standard SPICE
orders:
Contents/Search
Index
3-126
Extracting Layout
If the pin names used in the EXT file are Collector, Base, Emitter, and
Substrate (BJT devices), or Drain, Gate, Source, and Bulk (all other active
devices), they are sorted automatically in the default SPICE order.
Pins are specified as follows:
pinName = pinLayer ;
where pinName is the name of the pin and pinLayer is the name of the associated
layer.
A model definition follows the list of pins. This definition is not required for
passive devices, where MODEL =; is acceptable. The model name, if present,
will be written into the extracted netlist. For SPICE, model names are not
required for capacitors, resistors, inductors, or diodes, but are required for all
other devices.
For passive devices, model statements have the form:
MODEL = [model];
Contents/Search
Index
3-127
Extracting Layout
where MODEL = is required and model is the optional model name. The empty
statement MODEL =; is still required if no model name is specified.
Unitalicized words and characters (except the bracket characters [ and ]) are
to be entered as shown.
Capacitor
DEVICE= CAP (
RLAYER = rLayer [,{AREA} | {LW}];
Plus = Layer1 [,AREA];
Minus = Layer2 [,AREA];
MODEL = [modelname ];
) [IGNORE_SHORTS]
Contents/Search
Index
3-128
Extracting Layout
The optional AREA keyword for a capacitor may be specified on only one
layer (recognition or pin layer) and is used to indicate the layer for which the
capacitance will be calculated.
The LW keyword can only be used with the recognition layer (rLayer).
Contents/Search
Index
3-129
Extracting Layout
The area capacitance (aF/sq. micron) and fringe capacitance (fF/micron) are
specified in the Setup Layers dialog for each specific layer (see Layer Setup
on page 1-155).
Capacitor average length and width are calculated as if the capacitor was a
rectangle. They are calculated as follows:
Resistor
DEVICE=RES (
RLAYER = rLayer [, LW];
Plus = Layer1 ;
Minus = Layer2 ;
MODEL = [ModelName ];
) [IGNORE_SHORTS]
Contents/Search
Index
3-130
Extracting Layout
AREA keyword
Rxxx n1 n2 [ModelName] [R=]rValue
LW keyword
Rxxx n1 n2 [ModelName] L=rLength W=rWidth
The value of is taken from the number specified with the Setup Layers
dialog for the recognition layer (rLayer) of the resistor (see Layer Setup on
page 1-155).
The LW keyword can only be used with the recognition layer (rLayer).
The values of l and w are determined from the layout. The extractor
computes the area of the recognition layer and divides it by the effective
width to obtain l. The width of a pin is the length of the edge that the pin
Contents/Search
Index
3-131
Extracting Layout
shares with the recognition layer (rLayer). The effective width is the average
of the plus pin width and minus pin width.
Minus pin width
Plus pin
Recognition
layer
Minus pin
Minus pin
Inductor
DEVICE=IND (
RLAYER = rLayer ;
Plus = Layer1 ;
Minus = Layer2 ;
MODEL = [model ] ;
) [IGNORE_SHORTS]
Contents/Search
Index
3-132
Extracting Layout
Extract does not calculate inductance; users must add this value after netlist
extraction.
BJT
DEVICE=BJT (
RLAYER = rLayer [,AREA];
Collector = cLayer [,AREA];
Base = bLayer [,AREA];
Emitter = eLayer [,AREA];
[Substrate = [sLayer ]];
MODEL = model ;
[NominalArea = areaVal ;]
) [IGNORE_SHORTS]
A BJT device has the following format in the SPICE output statement:
Qname col bas emt [sub] model [AREA= {rLayerArea | pinArea }
/areaVal]
The optional AREA keyword can be specified on only one layer (the
recognition layer or the pin layer). It is used to indicate the layer for which
the area is to be calculated.
Contents/Search
Index
3-133
Extracting Layout
If no AREA keyword is present, the area will not be written to the SPICE
statement.
Diode
DEVICE=DIODE (
RLAYER = rLayer [, AREA];
Plus = Layer1 [, AREA];
Minus = Layer2 [, AREA];
MODEL = model ;
[NominalArea = areaVal ;]
) [IGNORE_SHORTS]
The optional AREA keyword can be specified on only one layer (the
recognition layer or the pin layer). It is used to indicate the layer for which
the area is to be calculated.
Contents/Search
Index
3-134
Extracting Layout
If no AREA keyword is present, the area will not be written to the SPICE
statement.
GAASFET/MESFET 1
The following syntax can be used to define a GAASFET/MESFET device using
its nominal area as a parameter.
DEVICE=GAASFET (
RLAYER = rLayer [, AREA];
Drain = dLayer [, AREA];
Gate = gLayer [, AREA];
Source = sLayer [, AREA];
[Bulk = [bLayer];]
MODEL = model;
[NominalArea = areaVal;]
) [IGNORE_SHORTS]
The GAASFET/MESFET device has the following format in the SPICE output
statement:
Zname drn gat src [blk] model [AREA= {rLayerArea | pinArea }
/areaVal]
Contents/Search
Index
3-135
Extracting Layout
The optional AREA keyword can be specified on only one layer (the
recognition layer or the pin layer). It is used to indicate the layer for which
the area is to be calculated.
If no AREA keyword is present, the area will not be written to the SPICE
statement.
GAASFET/MESFET 2
The following syntax can be used to define a GAASFET/MESFET device using
its width as a parameter.
DEVICE=GAASFET (
RLAYER = rLayer ;
Drain = dLayer [, WIDTH];
Gate = gLayer ;
Source = sLayer [, WIDTH];
[Bulk = [bLayer ];]
Contents/Search
Index
3-136
Extracting Layout
MODEL = model ;
) [IGNORE_SHORTS]
The length is the length of gate, and the width is the length of the edge that
the indicated layer shares with the recognition layer (rLayer). The length and
width have units of meters.
If no WIDTH keyword is present, the width and length will not be written to
the SPICE statement.
JFET
DEVICE=JFET (
Contents/Search
Index
3-137
Extracting Layout
A JFET device has the following format in the SPICE output statement:
Jname drn gat src [blk] model [AREA= {rLayerArea | pinArea }
/areaVal]
The optional AREA keyword can be specified on only one layer (the
recognition layer or the pin layer). It is used to indicate the layer for which
the area is to be calculated.
If no AREA keyword is present, the area will not be written to the SPICE
statement.
Contents/Search
Index
3-138
Extracting Layout
MOSFET
DEVICE=MOSFET (
RLAYER = rLayer ;
Drain = dLayer {[, AREA] [, PERIMETER [/GATE=#]] |
[,GEO]};
Gate = gLayer ;
Source = sLayer [, AREA] [, PERIMETER [/GATE=#]];
[Bulk = [bLayer ];]
MODEL = model ;
) [IGNORE_SHORTS]
A MOSFET device has the following format in the SPICE output statement:
Mname drn gat src [blk] model L=lengthValue W=widthValue
{[AD=areaValue] [PD=perimeterValue] [AS=areaValue]
[PS=perimeterValue] | [GEO=#]}
The length is the length of gate, and the width is the average length of the
edges that the source and drain share with the recognition layer (rLayer).
The length and width have units of meter.
The optional AREA keyword may be specified on the drain or source pin or
both. It is used to indicate whether the area for that layer will be calculated
and written for the AD (Area of the Drain) and AS (Area of the Source)
output values.
Contents/Search
Index
3-139
Extracting Layout
The optional GEO keyword may be specified on only the drain pin. It is used
to indicate that the GEO value will be written to the SPICE statement. The
GEO keyword can only be used if the AREA and PERIMETER keywords are
not used. The values of GEO written to the SPICE statement are as follows:
GEO=0drain and source areas are not shared
GEO=1drain is shared
GEO=2source is shared
GEO=3both drain and source are shared
The GEO keyword is used with the area calculation method (ACM) for
modeling the source and drain diodes. Users are encouraged to use the
AREA and PERIMETER options because they yield more accurate
approximations of the area and perimeter values than those achieved using
the GEO option.
Contents/Search
Index
3-140
Extracting Layout
Subcircuit
Subcircuits can be defined explicitly for the extractor. This method of describing
subcircuits is different from automatic subcircuit instance recognition (see
Subcircuit Recognition on page 3-109).
DEVICE=SUBCKT (
RLAYER = rLayer [, AREA];
pin1Name = pin1Layer [, AREA];
pin2Name = pin2Layer [, AREA];
. . .
MODEL = model ;
[NominalArea = areaVal ;]
) [IGNORE_SHORTS]
Contents/Search
Index
3-141
Extracting Layout
If no AREA keyword is present, the area will not be written to the SPICE
statement.
Contents/Search
Index
3-142