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.
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
.
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:
FREQUENCYis the second parameter.
The value of the property is obtained using:
oaFloat oaFloatProp::getValue() const
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 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.
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 name of the shieldNet net (or nets) for the current net. There can be at most 2 SHIELDNET attributes for a net.
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 |
This creates one or several routes objects for each regular wiring section and attaches them to the net.
{ +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.
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
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.
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.
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.
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 |
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).
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.
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:
XTALKstring is the second parameter
The value of the property is obtained using:
oaInt4 oaIntProp::getValue() const
Copyright © 2003-2008 Cadence Design Systems, Inc.
All rights reserved.