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

Layer (Cut)

 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.

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

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

ACCURRENTDENSITY {PEAK | AVERAGE | RMS} value

The simple ACCURRENTDENSITY rule is stored in OpenAccess as an oaFloatValue for the oaPhysicalLayer attribute determined from the previous table.

ACCURRENTDENSITY {PEAK | AVERAGE | RMS}
FREQUENCY freq_1 freq_2 ... ;
TABLEENTRIES v_freq_1 v_freq_1 ... ;

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.

ACCURRENTDENSITY {PEAK | AVERAGE | RMS}
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 ... ;

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.

ANTENNA

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.

ANTENNAMODEL {OXIDE1 | OXIDE2 | OXIDE3 | OXIDE4}

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

ANTENNAAREARATIO

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.

ANTENNADIFFAREARATIO {value | PWL (( d1 r1) ( d2 r2 ) ...) }

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

ANTENNACUMAREARATIO value

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

ANTENNACUMDIFFAREARATIO {value | PWL ( ( d1 r1 ) ( d2 r2 ) ...)}

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

ANTENNAAREAFACTOR value [DIFFUSEONLY]

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.

PROPERTY LEF57_ANTENNACUMROUTINGPLUSCUT "ANTENNACUMROUTINGPLUSCUT ;"

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.

PROPERTY LEF57_ANTENNAGATEPLUSDIFF "ANTENNAGATEPLUSDIFF plusDiffFactor ;"

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.

PROPERTY LEF57_ANTENNAAREAMINUSDIFF "ANTENNAAREAMINUSDIFF minusDiffFactor ;"

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.

PROPERTY LEF57_ANTENNAAREADIFFREDUCEPWL "ANTENNAAREADIFFREDUCEPWL
     (( diffArea1 diffAreaFactor1 ) (diffArea2 diffAreaFactor2 ) ... ) ;"

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.

PROPERTY propName propVal

See PROPERTIES

ANTENNACUMROUTINGPLUSCUT

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.

ANTENNAGATEPLUSDIFF plusDiffFactor

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.

ANTENNAAREAMINUSDIFF minusDiffFactor

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.

ANTENNAAREADIFFREDUCEPWL (( diffArea1 metalDiffFactor1 )
                          ( diffArea2 metalDiffFactor2 ) ... )

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.

ARRAYSPACING
    [LONGARRAY]
    [WIDTH viaWidth]
    CUTSPACING cutSpacing
        {ARRAYCUTS arrayCuts SPACING arraySpacing} ...;

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.

DCCURRENTDENSITY AVERAGE
    { value
    | WIDTH width_1 width_2 ... ;
        TABLEENTRIES value_1 value_2 ...
    }

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.

ENCLOSURE [ABOVE | BELOW] overhang1 overhang2
   [WIDTH minWidth [EXCEPTEXTRACUT cutWithin]
   | LENGTH minLength] ;] ...
[PREFERENCLOSURE [ABOVE | BELOW overhang1 overhang2 [WIDTH minWidth] ;] ...

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.

PROPERTY LEF57_SPACING "SPACING cutSpacing
                         [CENTERTOCENTER]
                         [SAMENET | SAMEMETAL]
                         [LAYER secondLayerName [STACK]
                         | ADJACENTCUTS {2 | 3 | 4} WITHIN cutWithin [EXCEPTSAMEPGNET]
                         | PARALLELOVERLAP
                         | AREA cutArea] ;"

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.

RESISTANCE resistancePerCut ;

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

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.

CENTERTOCENTER

In DM4 and later, this mapping is no longer supported.

SAMENET

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.

LAYER secondLayerName [STACK]

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

ADJACENTCUTS {2 | 3 | 4} WITHIN distance [ EXCEPTSAMEPGNET ]

PARALLELOVERLAP

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.

AREA cutArea

The SAMENET keyword, CENTERTOCENTER keywords and STACK keyword are stored as a parameter of the constraint

SPACINGTABLE ORTHOGONAL
     {WITHIN cutWithin SPACING orthoSpacing } ...

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 minWidth

WIDTH is stored in OpenAccess using an oaIntValue for the oacMinWidth constraint in the foundryRules constraint group.