LAYER layerName TYPE CUT ; [ENCLOSURE [ABOVE | BELOW] overhang1 overhang2 [WIDTH minWidth [EXCEPTEXTRACUT cutWithin] | LENGTH minLength] ;] ... [PREFERENCLOSURE [ABOVE | BELOW overhang1 overhang2 [WIDTH minWidth] ;] ... [ANTENNAMODEL {OXIDE1 | OXIDE2 | OXIDE3 | OXIDE4} ;] ... [ANTENNAAREARATIO ;] ... [ANTENNADIFFAREARATIO {value | PWL (( d1 r1) ( d2 r2 ) ...) } ;] ... [ANTENNACUMAREARATIO value ;] ... [ANTENNACUMDIFFAREARATIO {value | PWL ( ( d1 r1 ) ( d2 r2 ) ...)} ;] ... [ANTENNAAREAFACTOR value [DIFFUSEONLY] ;] [PROPERTY LEF57_ANTENNACUMROUTINGPLUSCUT "ANTENNACUMROUTINGPLUSCUT ;" ;] [PROPERTY LEF57_ANTENNAGATEPLUSDIFF "ANTENNAGATEPLUSDIFF plusDiffFactor ;" ;] [PROPERTY LEF57_ANTENNAAREAMINUSDIFF "ANTENNAAREAMINUSDIFF minusDiffFactor ;" ;] [PROPERTY LEF57_ANTENNAAREADIFFREDUCEPWL "ANTENNAAREADIFFREDUCEPWL (( diffArea1 diffAreaFactor1 ) (diffArea2 diffAreaFactor2 ) ... ) ;" ;] [PROPERTY propName propVal ;] ... [ANTENNACUMROUTINGPLUSCUT ;] [PROPERTY LEF57_ANTENNACUMROUTINGPLUSCUT "ANTENNACUMROUTINGPLUSCUT ;" ; ;] [ANTENNAGATEPLUSDIFF plusDiffFactor ;] [PROPERTY LEF57_ANTENNAGATEPLUSDIFF "ANTENNAGATEPLUSDIFF plusDiffFactor ;" ; ;] [ANTENNAAREAMINUSDIFF minusDiffFactor ;] [PROPERTY LEF57_ANTENNAAREAMINUSDIFF "ANTENNAAREAMINUSDIFF minusDiffFactor ;" ;] [ANTENNAAREADIFFREDUCEPWL (( diffArea1 metalDiffFactor1 ) ( diffArea2 metalDiffFactor2 ) ... ) ;] [PROPERTY LEF57_ANTENNAAREADIFFREDUCEPWL "ANTENNAAREADIFFREDUCEPWL (( diffArea1 metalDiffFactor1 ) ( diffArea2 metalDiffFactor2 ) ... ) ;" ; ;] [ACCURRENTDENSITY {PEAK | AVERAGE | RMS} { value | FREQUENCY freq_1 freq_2 ... ; [WIDTH width_1 width_2 ... ;] TABLEENTRIES v_freq_1_width_1 v_freq_1_width_2 ... v_freq_2_width_1 v_freq_2_width_2 ... } ;] [DCCURRENTDENSITY AVERAGE { value | WIDTH width_1 width_2 ... ; TABLEENTRIES value_1 value_2 ... } ;] [SPACING cutSpacing [CENTERTOCENTER] [SAMENET] [ LAYER secondLayerName [STACK] | ADJACENTCUTS {2 | 3 | 4} WITHIN distance [ EXCEPTSAMEPGNET ] | PARALLELOVERLAP | AREA cutArea ] ;] ... [SPACINGTABLE ORTHOGONAL {WITHIN cutWithin SPACING orthoSpacing } ... ;] [WIDTH minWidth] [ARRAYSPACING [LONGARRAY] [WIDTH viaWidth] CUTSPACING cutSpacing {ARRAYCUTS arrayCuts SPACING arraySpacing} ...;] [RESISTANCE resistancePerCut ;] [PROPERTY LEF57_SPACING "SPACING cutSpacing [CENTERTOCENTER] [SAMENET | SAMEMETAL] [LAYER secondLayerName [STACK] | ADJACENTCUTS {2 | 3 | 4} WITHIN cutWithin [EXCEPTSAMEPGNET] | PARALLELOVERLAP | AREA cutArea] ;" ;] END layerName
Cut layers are stored in OpenAccess as oaPhysicalLayers with the material attribute set to oacCutMaterial.
The LEF ACCURRENTDENSITY rule is stored in OpenAccess using the oaPhysicalLayer attributes shown in the following table.
ACCURRENTDENSITY | oaPhysicalLayer attribute |
---|---|
PEAK | PeakACCurrentDensity |
AVERAGE | AvgACCurrentDensity |
RMS | RmsACCurrentDensity |
The simple ACCURRENTDENSITY rule is stored in OpenAccess as an oaFloatValue for the oaPhysicalLayer attribute determined from the previous table.
The frequency dependant ACCURRENTDENSITY rule is stored in OpenAccess as an oaFloat1DTblValue for the oaPhysicalLayer attribute determined from the previous table. The values are stored in an oa1DLookupTbl<oaFloat, oaFloat>, with header:frequency and value:density.
The frequency and area dependant ACCURRENTDENSITY rule is stored in OpenAccess as an oaCurDensTblValue for the oaPhysicalLayer attribute determined from the previous table. The values are stored in an oa2DLookupTbl<oaFloat, oaUInt4, oaFloat>, with row:frequency, col:width and value:density.
The ANTENNA attributes are stored in OpenAccess using an oaAntennaRatioArrayValue for the oacAntenna constraint on this layer. The oaAntennaRatioArrayValue contains an oaAntennaRatioValue for each of the four antenna models.
The LAYER ANTENNAMODEL determines which oaAntennaModel is used in OpenAccess to store the LAYER ANTENNA statements. The ANTENNA attributes are stored using an oaAntennaRatioArrayValue for the oacAntenna constraint on the layer. The oaAntennaRatioArrayValue contains an oaAntennaRatioValue for each of the four antenna models. The mapping of LEF ANTENNAMODEL to OpenAccess oaAntennaModelEnum is shown in the following table. The default, if a LEF ANTENNAMODEL is not specified, is to use oacDefaultAntennaModel. Only a single parameter is stored in OpenAccess for the OXIDE model. The first detected is the value stored. If other OXIDE models are specified, they are assumed to be the same.
LEF ANTENNAMODEL | oaAntennaModel |
---|---|
OXIDE1 (default) | oacDefaultAntennaModel |
OXIDE2 | oacSecondAntennaModel |
OXIDE3 | oacThirdAntennaModel |
OXIDE4 | oacFourthAntennaModel |
The LAYER ANTENNAAREARATIO is stored in OpenAccess using the oacAntenna constraint in the foundryRules constraint group. The value is stored in the GateAreaRatio attribute of the ruleType determined from the ANTENNAMODEL.
The LAYER ANTENNADIFFAREARATIO is stored in OpenAccess using the oacAntenna constraint in the foundryRules constraint group. The value is stored in the DiodeAreaRatio attribute of the ruleType, which is determined from the ANTENNAMODEL (see the previous table).
The LAYER ANTENNACUMAREARATIO is stored in OpenAccess by using the oacCumMetalAntenna constraint in the foundryRules constraint group. The value is stored in the GateAreaRatio attribute of the antenna model determined from the ANTENNAMODEL (see the table above).
The LAYER ANTENNACUMDIFFAREARATIO is stored in OpenAccess by using the oacCumMetalAntenna constraint in the foundryRules constraint group. The value is stored in the DiodeAreaRatio attribute of the antenna model determined from the ANTENNAMODEL (see the table above).
The ANTENNAAREAFACTOR is stored in OpenAccess using an oaFltValue for the oacAntennaAreaFactorConstraintParamType constraint parameter on the antenna constraints to which it applies. Since only one antenna calculation method is supported in OpenAccess (side vs non-side), only one of the above factor values is stored in OpenAcess, whereby non-side values have priority in case both are specified.
A single parameter is stored in OpenAccess for all OXIDE models. If multiple OXIDE values are specified, they are all assumed to be the same, and only the first value is stored.
Data model 2 or greater is required to map this property to OpenAccess. The ANTENNACUMROUTINGPLUSCUT attribute is stored using an oaBooleanValue for the oacAntennaCumRoutingPlusCutConstraintParamType constraint parameter on the antenna constraints to which it applies.
Data model 2 or greater is required to map this property to OpenAccess. The ANTENNAGATEPLUSDIFF attribute is stored using an oaFltValue for the oacAntennaDiffPlusFactorConstraintParamType constraint parameter on the antenna constraints to which it applies.
Data model 2 or greater is required to map this property to OpenAccess. The ANTENNAAREAMINUSDIFF attribute is stored using an oaFltValue for the oacAntennaDiffMinusFactorConstraintParamType constraint parameter on the antenna constraints to which it applies.
Data model 2 or greater is required to map this property to OpenAccess. The ANTENNAAREADIFFREDUCEPWL attribute is stored in OpenAccess using an oaFlt1DTblValue for the oacAntennaDiffAreaReduceFactorConstraintParamType constraint parameter on the antenna constraints to which it applies.
See PROPERTIES
Data model 2 or greater is required to map this property to OpenAccess. The ANTENNACUMROUTINGPLUSCUT attribute is stored using an oaBooleanValue for the oacAntennaCumRoutingPlusCutConstraintParamType constraint parameter on the antenna constraints to which it applies.
Only a single parameter for all OXIDE models is stored. If multiple OXIDE models are specified, they are assumed to be the same, and only the first value is stored.
Note: This assumes data model 3 constraints.
Data model 2 or greater is required to map this property to OpenAccess. The ANTENNAGATEPLUSDIFF attribute is stored using an oaFltValue for the oacAntennaDiffPlusFactorConstraintParamType constraint parameter on the antenna constraints to which it applies.
Only a single parameter for all OXIDE models is stored. If multiple OXIDE models are specified, they are assumed to be the same, and only the first value is stored.
Note: This assumes data model 3 constraints.
Data model 2 or greater is required to map this property to OpenAccess. The ANTENNAAREAMINUSDIFF attribute is stored using an oaFltValue for the oacAntennaDiffMinusFactorConstraintParamType constraint parameter on the antenna constraints to which it applies.
Only a single parameter for all OXIDE models is stored. If multiple OXIDE models are specified, they are assumed to be the same, and only the first value is stored.
Note: This assumes data model 3 constraints.
Data model 2 or greater is required to map this property to OpenAccess. The ANTENNAAREADIFFREDUCEPWL attribute is stored in OpenAccess using an oaFlt1DTblValue for the oacAntennaDiffAreaReduceFactorConstraintParamType constraint parameter on the antenna constraints to which it applies.
Only a single parameter for all OXIDE models is stored. If multiple OXIDE models are specified, they are assumed to be the same, and only the first value is stored.
Note: This assumes data model 3 constraints.
PROPERTY LEF57_ARRAYSPACING "ARRAYSPACING [LONGARRAY] [WIDTH viaWidth] CUTSPACING cutSpacing {ARRAYCUTS arrayCuts SPACING arraySpacing} ...;"
The ARRAYSPACING is stored in OpenAccess using an oaInt1DTblValue for the oacMinLargeViaArraySpacing constraint in the foundryRules constraint group. The first value is stored in the table as the default value and at 0 cuts. Additional ARRAYCUTS/SPACING pairs are added to the table.
The ARRAYSPACING LONGARRAY maps to an oaBooleanValue for the oacRectangularLargeViaArraysAllowed constraint in the foundryRules constraint group. If the keyword is present, a value of true is stored. If the keyword is not present, the constraint is not stored.
The ARRAYSPACING WIDTH is stored using an oaIntValue for the oacMinLargeViaArrayWidth constraint in the foundryRules constraint group. The ARRAYSPACING CUTSPACING is stored using an oaIntValue for the oacMinLargeViaArrayCutSpacing constraint in the foundryRules constraint group.
The ARRAYSPACING LONGARRAY is stored in OpenAccess using an oaBooleanValue for the oacRectangularLargeViaArraysAllowed constraint in the foundryRules constraint group. If the keyword is present, a value of true is stored. If the value is not present, the constraint is not stored.
The basic DCCURRENTDENSITY rule is stored in OpenAccess as an oaFloatValue for the AvgDCCurrentDensity attribute on the oaPhysicalLayer.
The area dependant DCCURRENTDENSITY rule is stored in OpenAccess as an oaIntFltTblValue for the AvgDCCurrentDensity attribute on the oaPhysicalLayer. The values are stored in an oa1DLookupTbl<oaInt4, oaFloat>, with header:width and value:density.
The ENCLOSURE for cut layers is stored in OpenAccess using an oaIntDualIntArrayTblValue indexed by width for the oacMinDualExtension constraint in the oacPrecedenceGroupOperator constraint group, on the metal layers above and below the cut layer.
Normal ENCLOSURE attributes map to hard constraints, and PREFERENCLOSURE attributes map to soft constraints in the foundryRules constraint group.
The LENGTH and EXCEPTEXTRACUT parameters are stored as parameters. If multiple, width based, rules with the same parameters for LENGTH and EXCEPTEXTRACUT are present they are grouped together in an oaIntDualIntArrayTblValue, which is indexed by WIDTH.
If multiple rules with different LENGTH and EXCEPTEXTRACUT parameters exist, they are stored as individual constraints grouped together in an oacPrecedenceGroupOperator oaConstraintGroup. The name of the constraintGroupDef used to create the constraint group is the same as the string value for the oaLayerPairConstraintGroupType enum oacMinDualExtension.
The ADJACENTCUTS SPACING for cut layers is stored in OpenAccess using an oaIntValue for the oacMinAdjacentViaSpacing constraint in the foundryRules constraint group. The number of cuts and WITHIN distance are stored as oaIntValues for the oacNumCutsConstraintParamType and oacDistanceConstraintParamType constraint parameters.
In dataModel 4 and later, the CENTERTOCENTER, SAMENET, STACK, and EXCEPTSAMEPGNET keywords are stored as parameters of the constraint. In earlier dataModels, the CENTERTOCENTER and SAMENET keywords do not map to OpenAccess, and a warning is issued if they are found in this context.
The LAYER RESISTANCE attribute is stored in an oaFloatProp named RESISTANCE
on the oaPhysicalLayer.
Note: Resistance-per-cut goes on a layer (vias inherit resistance values if they do not have their own local values).
SPACING cutSpacing is a simple LEF cut layer spacing rule. For dataModel 4, the SPACING for cut layers is stored in OpenAccess using an oaIntValue for the oacMinViaSpacing constraint in the foundryRules constraint group.
In DM4 and later, this mapping is no longer supported.
SPACING cutSpacing is a simple LEF cut layer spacing rule. It maps to OpenAccess using an oaIntValue for the oacMinSpacing constraint in the foundryRules constraint group. If the SAMENET keyword is specified, the oacMinSameNetClearance constraint is used instead.
The LAYER SPACING for cut layers is stored in OpenAccess using an oaIntValue for the oacMinClearance constraint in the foundryRules constraint group. If the SAMENET keyword is specified the oacMinSameNetClearance constraint is used instead.
The SAMENET keyword, CENTERTOCENTER keywords and STACK keywords are stored as parameters of the constraint
The PARALLELOVERLAP spacing maps to OpenAccess using an oaIntValue for the oacMinParallelViaSpacing constraint in the foundryRules constraint group. The CENTERTOCENTER and SAMENET keywords are not stored in OpenAccess.
The SAMENET keyword, CENTERTOCENTER keywords and STACK keyword are stored as a parameter of the constraint
The SPACINGTABLE maps to OpenAccess using an oaInt1DTblValue for the oacMinOrthogonalViaSpacing constraint in the foundry rules constraint group.
The oa1DLookupTbl stored in the value uses oacInclusiveSnapUpInterpolateType as the interpolation type, and uses oacSnapUpExtrapolateType as the extrapolation type. The table header name is orthoSpacing, and its default value is 0, which indicates that the table is not used outside the specified ranges.
An oaIntValue is stored for the oacDistanceWithinConstraintParamType parameter to indicate the maximum distance within which this constraint is used. This is equal to the largest WITHIN value in the table.
The SPACINGTABLE maps to OpenAccess using an oaInt1DTblValue for the oacMinOrthogonalViaSpacing constraint in the foundry rules constraint group.
The oa1DLookupTbl stored in the value uses oacInclusiveSnapUpInterpolateType as the interpolation type, and uses oacSnapUpExtrapolateType as the extrapolation type. The table header name is orthoSpacing, and its default value is 0, which indicates that the table is not used outside the specified ranges.
An oaIntValue is stored for the oacDistanceWithinConstraintParamType parameter to indicate the maximum distance within which this constraint is used. This is equal to the largest WITHIN value in the table.
WIDTH is stored in OpenAccess using an oaIntValue for the oacMinWidth constraint in the foundryRules constraint group.
Copyright © 2003-2008 Cadence Design Systems, Inc.
All rights reserved.