[SPECIALNETS numNets ; [- netName [ ( {compName pinName | PIN pinName} [+ SYNTHESIZED] ) ] ... [+ SOURCE {DIST | NETLIST | TIMING | USER}] [+ FIXEDBUMP] [+ ORIGINAL netName] [+ USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL | TIEOFF}] [+ PATTERN {BALANCED | STEINER | TRUNK | WIREDLOGIC}] [+ ESTCAP wireCapacitance] [+ WEIGHT weight] [+ PROPERTY {propName propVal} ...] ... [+ VOLTAGE volts] [specialWiring] ... ;] ... END SPECIALNETS]
Defines netlist connectivity for nets containing special pins. A net name can be NULL or "" if a MUSTJOIN net is specified in DEF. For such nets, an auto-named net is created.
Note: The DEF5.3 net _BLOCKAGE_RESERVED
maps to an oaBlockage.
The NET ESTCAP is stored in OpenAccess as an oaIntProp on the oaNet, with the name ESTCAP
. Note that ESTCAP is specified in DEF as an integer in units of 0.000001 of picofarad, which is stored as-is in OpenAccess.
The NET FIXEDBUMP attribute is stored in OpenAccess as the connStatus attribute of the oaNet. FIXEDBUMP is written if the status corresponds to locked
.
netName corresponds to the net name mapped into the DEF name space. It is obtained using:
void oaNet::getName(const oaNameSpace &ns, oaString &name) const
compName and pinName are obtained by iterating over all symbolic oaInstTerms of the net. These correspond to the instance name and terminal name (mapped into the DEF name space) associated with each instTerm. The only supported regular expression for compName is *
.
The ORIGNAL net is stored in OpenAccess as the original attribute of the oaNet. netName corresponds to the name of the original net for the current net.
Note that the ORIGINAL attribute can refer to a net name that is not yet defined in the already processed nets. In that case, the attribute is stored in a temporary table until all nets are parsed.
The NET PATTERN maps to OpenAccess as the oaRoutePattern attribute of the oaNet. The following table shows the correspondence between the DEF PATTERN and oaRoutePattern.
DEF PATTERN | oaRoutePatternEnum |
---|---|
STEINER | oacSteinerRoutePattern |
BALANCED | oacBalancedRoutePattern |
TRUNK | oacTrunkRoutePattern |
Note : WIREDLOGIC information is not stored in the OpenAccess Database.
See PROPERTIES.
This information corresponds to the source attribute for the net and is obtained using the following API:
oaSource oaNet::getSource() const
The following table shows the correspondence between the DEF source and oaSource.
DEF source | oaSourceEnum |
---|---|
NETLIST | oacNetlistSource |
TIMING | oacTimingSource |
DIST | oacDistSource |
USER | oacUserSource |
[ + POLYGON layerName pt pt pt ... | + RECT layerName pt pt | { COVER | FIXED | ROUTED | SHIELD shieldNetName} layerName routeWidth [+ SHAPE {RING | PADRING | BLOCKRING | STRIPE | FOLLOWPIN | IOWIRE | COREWIRE | BLOCKWIRE | BLOCKAGEWIRE | FILLWIRE | FILLWIREOPC | DRCFILL}] [+ STYLE styleNum] routingPoints [NEW layerName routeWidth [+ SHAPE {RING | PADRING | BLOCKRING | STRIPE | FOLLOWPIN | IOWIRE | COREWIRE | BLOCKWIRE | BLOCKAGEWIRE | FILLWIRE | FILLWIREOPC | DRCFILL}] [+ STYLE styleNum] routingPoints ] ... ] ...
The special wiring defines the wiring for both routed and shielded nets.
This section corresponds to the geometric route objects attached to a net object. To retrieve this information, iterate over all the route objects associated with the net.
Coincident point segments are allowed in the SPECIALNETS section if a style is specified. The STYLE is converted to an oaPolygon placed at the specified point.
This information corresponds to the routeStatus attribute of the route object. The following table shows the correspondence between oaRouteStatus attributes and the DEF route status statements.
DEF route status | oaRouteStatusEnum |
---|---|
FIXED | oacFixedRouteStatus |
COVER | oacLockedRouteStatus |
ROUTED or SHIELD | oacRoutedRouteStatus |
The DEF route status is SHIELD instead of ROUTED if the route is a shielding route.
The shieldNetName corresponds to the shielded net name.
This information corresponds to the topology attribute of the route object. The following table shows the correspondence between the DEF route topology and oaRouteTopologyEnum value.
DEF route topology | oaRouteTopologyEnum |
---|---|
RING | oacRingRouteTopology |
PADRING | oacPadRingRouteTopology |
BLOCKRING | oacBlockRingRouteTopology |
STRIPE | oacStripeRouteTopology |
FOLLOWPIN | oacStandardCellWireRouteTopology |
IOWIRE | oacIOWireRouteTopology |
COREWIRE | oacCoreWireRouteTopology |
BLOCKWIRE | oacBlockWireRouteTopology |
BLOCKAGEWIRE, FILLWIRE, FILLWIREOPC, DRCFILL | oacNoneRouteTopology |
The DEF route topology is FILLWIRE when the route purpose is fill
instead of drawing
. The DEF route topology is DRCFILL when rectangle shapes with purpose gapFill
are attached to the net.
If a FILLWIRE shape is included in the DEF special wiring section, the shape or via maps to OpenAccess with the built-in purpose type oacFillPurposeType. DEF shapes designated as FILLWIREOPC map to the built-in purpose type oacFillOPCPurposeType. DEF shapes designated as DRCFILL map to OpenAccess with the purpose oavPurposeNumberGapFill.
This information corresponds to the route elements of the route. A route element is either a route segment or a via route element.
The [DO numX BY numY STEP stepX stepY] portion of the routingPoints syntax is not generated by oa2def.
This information corresponds to the oaSigType attribute of the net and is obtained using:
oaSigType oaNet::getSigType() const
The following table shows the correspondence between DEF USE and oaSigType:
DEF USE | oaSigTypeEnum |
---|---|
ANALOG | oacAnalogSigType |
CLOCK | oacClockSigType |
GROUND | oacGroundSigType |
POWER | oacPowerSigType |
RESET | oacResetSigType |
SCAN | oacScanSigType |
SIGNAL | oacSignalSigType |
TIEOFF | oacTieoffSigType |
- | oacTieHiSigType |
- | oacTieLoSigType |
This is an attribute only in the SPECIALNETS section. VOLTAGE is specified in DEF as an integer in millivolts, but the value stored in OpenAccess is in volts.
The NET WEIGHT is stored in OpenAccess as the priority attribute of the oaNet. The DEF weight range is mapped to the OpenAccess priority by subtracting 1 and limiting the maximum value to 128.
The following table shows the range of valid net weight values and how they map from DEF to the OpenAccess database.
DEF WEIGHT | OpenAccess Value |
---|---|
0 . | -1 |
1 | unset |
2-128 | 1-127 |
129-9999 | 128 |
A weight of 0 is interpretted as unset and maps to OpenAccess as a value of -1. When translating from OpenAccess to DEF, if a DEF NET WEIGHT is 1, the value is not written to the DEF file because 1 is the default DEF WEIGHT value.
Copyright © 2003-2008 Cadence Design Systems, Inc.
All rights reserved.