oaheader.gif
topics.gif classes.gif classes.gif exceptions.gif progguide.gif infomodel.gif index.gif help.gif
 
 
 

Special Nets

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

ESTCAP wireCapacitance

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.

FIXEDBUMP

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
      [ ( {compName pinName | PIN pinName} [+ SYNTHESIZED] ) ] ...

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

ORIGINAL netName

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.

PATTERN {BALANCED | STEINER | TRUNK | WIREDLOGIC}

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.

PROPERTY {propName propVal} ...

See PROPERTIES.

SOURCE {DIST | NETLIST | TIMING | USER}

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

specialWiring

 [ + 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.

{ COVER | FIXED | ROUTED | SHIELD shieldNetName}

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.

SHAPE {RING | PADRING | BLOCKRING | STRIPE | FOLLOWPIN | IOWIRE | COREWIRE
| BLOCKWIRE | BLOCKAGEWIRE | FILLWIRE | FILLWIREOPC | DRCFILL}

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.

routingPoints

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.

USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL | TIEOFF}

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

VOLTAGE volts

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.

WEIGHT weight

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.