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

Nets

 NETS numNets ;

     [- - { netName
              [ ( {compName pinName | PIN pinName} [+ SYNTHESIZED] ) ] ...
        | MUSTJOIN ( compName pinName ) }
         [+ SHIELDNET shieldNetName] ...
         [+ VPIN vpinName [LAYER layerName] pt pt
              [PLACED pt orient | FIXED pt orient | COVER pt orient]] ...
         [+ SUBNET subnetName
              [ ( {compName pinName | PIN pinName | VPIN vpinName} ) ] ...
              [NONDEFAULTRULE rulename]
              [regularWiring] ...] ...
         [+ XTALK class]
         [+ NONDEFAULTRULE ruleName]
         [+ SOURCE {DIST | NETLIST | TEST | TIMING | USER}]
         [+ FIXEDBUMP]
         [+ FREQUENCY frequency]
         [+ ORIGINAL netName]
         [+ USE {ANALOG | CLOCK | GROUND | POWER | RESET | SCAN | SIGNAL | TIEOFF}]
         [+ PATTERN {BALANCED | STEINER | TRUNK | WIREDLOGIC}]
         [+ ESTCAP wireCapacitance]
         [+ WEIGHT weight]
         [+ PROPERTY {propName propVal} ...] ...
     ;] ...

 END NETS

Defines netlist connectivity for nets containing regular pins.

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.

FREQUENCY frequency

frequency corresponds to the value of a float property named FREQUENCY on the net object. FREQUENCY is a float specified in units of Hertz in DEF. Use the following function to search for the property:

   oaProp *oaProp::find(oaObject *object,
                        const oaString &name,
                        oaBoolean crossDomain = false)

where:

The value of the property is obtained using:

   oaFloat oaFloatProp::getValue() const

MUSTJOIN ( compName pinName )

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

NONDEFAULTRULE ruleName

The NET NONDEFAULTRULE maps to OpenAccess by adding the constraint group that corresponds to the NONDEFAULTRULE to the net's default constraint group. Note that the constraint group for a NONDEFAULTRULE can be in the design or in the tech. ruleName maps to the name of the routeSpec object that is associated with the net.

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.

SHIELDNET shieldNetName

This information corresponds to the name of the shieldNet net (or nets) for the current net. There can be at most 2 SHIELDNET attributes for a net.

SOURCE {DIST | NETLIST | TEST | 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
TEST oacTestSource

SUBNET subnetName
      [ ( {compName pinName | PIN pinName | VPIN vpinName} ) ] ...
      [NONDEFAULTRULE rulename]
      [regularWiring] ...

This creates one or several routes objects for each regular wiring section and attaches them to the net.

regularWiring

   { +COVER | +FIXED | +ROUTED | +NOSHIELD}
       layerName [TAPER | TAPERRULE ruleName] [STYLE styleNum]
         routingPoints
       [NEW layerName [TAPER | TAPERRULE ruleName] [STYLE styleNum]
        routingPoints
       ] ...

The regular wiring statements specify physical wiring for a net. They correspond to the symbolic routes objects attached to a net object. To retrieve this information, you must iterate over all the routes objects associated with the net.

{ +COVER | +FIXED | +ROUTED | +NOSHIELD}

This information corresponds to the routeStatus attribute of the route object. It is obtained using:

   oaRouteStatus oaRoute::getRouteStatus() const

The following table shows the correspondence between DEF route status and oaRouteStatus.

DEF route status oaRouteStatusEnum
FIXED oacFixedRouteStatus
COVER oacLockedRouteStatus
ROUTED or NOSHIELD oacRoutedRouteStatus

The DEF route status is NOSHIELD instead of ROUTED if the route is not shielded:

     oaBoolean oaRoute::isUnShielded() const

layerName [TAPER | TAPERRULE ruleName]

This information corresponds to the routeSpec object associated with the route. If it is the default oaRouteSpec, and the net that the route is attached to is associated with a different oaRouteSpec, TAPER is output. If it is not the default oaRouteSpec and it is different, ruleName is the name of the oaRouteSpec for the route.

Segments with widths that do not conform with the oaRouteSpec width map to separate DEF PATHs with an associated TAPERRULE.

STYLE styleNum

This information specifies which end style to use for the route segments. This styleNum refers to the style defined earlier in the DEF file that is mapped to a particular oaSegStyle.

routingPoints

This information corresponds to the route elements of the route, which are stored in an array. A route element is either a route segment or a via route element.

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

VPIN vpinName [LAYER layerName] pt pt
      [PLACED pt orient | FIXED pt orient | COVER pt orient]

The specified 'noShieldFlag' bit is set to true if DEF routeStatus is NOSHIELD (regular Nets only), or the 'shieldFlag' is set to true if DEF routeStatus is SHIELD (specialNets only).

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.

XTALK class

class corresponds to the value of an integer property named XTALK on the net object. Use the following function to search for the property:

   oaProp *oaProp::find(oaObject *object,
                        const oaString &name,
                        oaBoolean crossDomain = false)

where:

The value of the property is obtained using:

   oaInt4 oaIntProp::getValue() const