| /* ************************************************************************** */ |
| /* ************************************************************************** */ |
| /* ATTENTION: THIS IS AN AUTO-GENERATED FILE. DO NOT CHANGE IT! */ |
| /* ************************************************************************** */ |
| /* ************************************************************************** */ |
| /* Copyright 2012 - 2015, Cadence Design Systems */ |
| /* */ |
| /* This file is part of the Cadence LEF/DEF Open Source */ |
| /* Distribution, Product Version 5.8. */ |
| /* */ |
| /* Licensed under the Apache License, Version 2.0 (the "License"); */ |
| /* you may not use this file except in compliance with the License. */ |
| /* You may obtain a copy of the License at */ |
| /* */ |
| /* http://www.apache.org/licenses/LICENSE-2.0 */ |
| /* */ |
| /* Unless required by applicable law or agreed to in writing, software */ |
| /* distributed under the License is distributed on an "AS IS" BASIS, */ |
| /* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ |
| /* implied. See the License for the specific language governing */ |
| /* permissions and limitations under the License. */ |
| /* */ |
| /* For updates, support, or to become part of the LEF/DEF Community, */ |
| /* check www.openeda.org for details. */ |
| /* */ |
| /* $Author: dell $ */ |
| /* $Revision: #1 $ */ |
| /* $Date: 2017/06/06 $ */ |
| /* $State: $ */ |
| /* ************************************************************************** */ |
| /* ************************************************************************** */ |
| |
| |
| #ifndef CLEFILAYER_H |
| #define CLEFILAYER_H |
| |
| #include <stdio.h> |
| #include "lefiTypedefs.h" |
| |
| typedef enum lefiAntennaEnum { |
| lefiAntennaAR = 1, |
| lefiAntennaDAR = 2, |
| lefiAntennaCAR = 3, |
| lefiAntennaCDAR = 4, |
| lefiAntennaAF = 5, |
| lefiAntennaSAR = 6, |
| lefiAntennaDSAR = 7, |
| lefiAntennaCSAR = 8, |
| lefiAntennaCDSAR = 9, |
| lefiAntennaSAF = 10, |
| lefiAntennaO = 11, |
| lefiAntennaADR = 12 |
| } lefiAntennaEnum; |
| |
| EXTERN int lefiAntennaPWL_numPWL (const lefiAntennaPWL* obj); |
| |
| EXTERN char* lefiLayerDensity_type (const lefiLayerDensity* obj); |
| EXTERN int lefiLayerDensity_hasOneEntry (const lefiLayerDensity* obj); |
| EXTERN double lefiLayerDensity_oneEntry (const lefiLayerDensity* obj); |
| EXTERN int lefiLayerDensity_numFrequency (const lefiLayerDensity* obj); |
| EXTERN double lefiLayerDensity_frequency (const lefiLayerDensity* obj, int index); |
| EXTERN int lefiLayerDensity_numWidths (const lefiLayerDensity* obj); |
| EXTERN double lefiLayerDensity_width (const lefiLayerDensity* obj, int index); |
| EXTERN int lefiLayerDensity_numTableEntries (const lefiLayerDensity* obj); |
| EXTERN double lefiLayerDensity_tableEntry (const lefiLayerDensity* obj, int index); |
| EXTERN int lefiLayerDensity_numCutareas (const lefiLayerDensity* obj); |
| EXTERN double lefiLayerDensity_cutArea (const lefiLayerDensity* obj, int index); |
| |
| /* 5.5 */ |
| |
| EXTERN int lefiParallel_numLength (const lefiParallel* obj); |
| EXTERN int lefiParallel_numWidth (const lefiParallel* obj); |
| EXTERN double lefiParallel_length (const lefiParallel* obj, int iLength); |
| EXTERN double lefiParallel_width (const lefiParallel* obj, int iWidth); |
| EXTERN double lefiParallel_widthSpacing (const lefiParallel* obj, int iWidth, int iWidthSpacing); |
| |
| /* 5.5 */ |
| |
| EXTERN int lefiInfluence_numInfluenceEntry (const lefiInfluence* obj); |
| EXTERN double lefiInfluence_width (const lefiInfluence* obj, int index); |
| EXTERN double lefiInfluence_distance (const lefiInfluence* obj, int index); |
| EXTERN double lefiInfluence_spacing (const lefiInfluence* obj, int index); |
| |
| /* 5.7 */ |
| |
| EXTERN int lefiTwoWidths_numWidth (const lefiTwoWidths* obj); |
| EXTERN double lefiTwoWidths_width (const lefiTwoWidths* obj, int iWidth); |
| EXTERN int lefiTwoWidths_hasWidthPRL (const lefiTwoWidths* obj, int iWidth); |
| EXTERN double lefiTwoWidths_widthPRL (const lefiTwoWidths* obj, int iWidth); |
| EXTERN int lefiTwoWidths_numWidthSpacing (const lefiTwoWidths* obj, int iWidth); |
| EXTERN double lefiTwoWidths_widthSpacing (const lefiTwoWidths* obj, int iWidth, int iWidthSpacing); |
| |
| /* 5.5 */ |
| |
| EXTERN int lefiSpacingTable_isInfluence (const lefiSpacingTable* obj); |
| EXTERN const lefiInfluence* lefiSpacingTable_influence (const lefiSpacingTable* obj); |
| EXTERN int lefiSpacingTable_isParallel (const lefiSpacingTable* obj); |
| EXTERN const lefiParallel* lefiSpacingTable_parallel (const lefiSpacingTable* obj); |
| EXTERN const lefiTwoWidths* lefiSpacingTable_twoWidths (const lefiSpacingTable* obj); |
| |
| /* 5.7 */ |
| |
| EXTERN int lefiOrthogonal_numOrthogonal (const lefiOrthogonal* obj); |
| EXTERN double lefiOrthogonal_cutWithin (const lefiOrthogonal* obj, int index); |
| EXTERN double lefiOrthogonal_orthoSpacing (const lefiOrthogonal* obj, int index); |
| |
| /* 5.5 */ |
| |
| EXTERN int lefiAntennaModel_hasAntennaAreaRatio (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaDiffAreaRatio (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaDiffAreaRatioPWL (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaCumAreaRatio (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaCumDiffAreaRatio (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaCumDiffAreaRatioPWL (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaAreaFactor (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaAreaFactorDUO (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaSideAreaRatio (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaDiffSideAreaRatio (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaDiffSideAreaRatioPWL (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaCumSideAreaRatio (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaCumDiffSideAreaRatio (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaCumDiffSideAreaRatioPWL (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaSideAreaFactor (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaSideAreaFactorDUO (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaCumRoutingPlusCut (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaGatePlusDiff (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaAreaMinusDiff (const lefiAntennaModel* obj); |
| EXTERN int lefiAntennaModel_hasAntennaAreaDiffReducePWL (const lefiAntennaModel* obj); |
| |
| EXTERN char* lefiAntennaModel_antennaOxide (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaAreaRatio (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaDiffAreaRatio (const lefiAntennaModel* obj); |
| EXTERN const lefiAntennaPWL* lefiAntennaModel_antennaDiffAreaRatioPWL (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaCumAreaRatio (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaCumDiffAreaRatio (const lefiAntennaModel* obj); |
| EXTERN const lefiAntennaPWL* lefiAntennaModel_antennaCumDiffAreaRatioPWL (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaAreaFactor (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaSideAreaRatio (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaDiffSideAreaRatio (const lefiAntennaModel* obj); |
| EXTERN const lefiAntennaPWL* lefiAntennaModel_antennaDiffSideAreaRatioPWL (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaCumSideAreaRatio (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaCumDiffSideAreaRatio (const lefiAntennaModel* obj); |
| EXTERN const lefiAntennaPWL* lefiAntennaModel_antennaCumDiffSideAreaRatioPWL (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaSideAreaFactor (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaGatePlusDiff (const lefiAntennaModel* obj); |
| EXTERN double lefiAntennaModel_antennaAreaMinusDiff (const lefiAntennaModel* obj); |
| EXTERN const lefiAntennaPWL* lefiAntennaModel_antennaAreaDiffReducePWL (const lefiAntennaModel* obj); |
| |
| /* 5.6 - minstep switch to multiple and added more options */ |
| |
| /* 5.5 SPACINGTABLE */ |
| |
| /* 5.6 */ |
| |
| /* 5.8 */ |
| /* POLYROUTING, MIMCAP, TSV, PASSIVATION, NWELL */ |
| |
| EXTERN int lefiLayer_hasType (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasLayerType (const lefiLayer* obj); |
| /* ROUTING can be POLYROUTING or MIMCAP */ |
| /* CUT can be TSV or PASSIVATION */ |
| /* MASTERSLICE can be NWELL */ |
| EXTERN int lefiLayer_hasMask (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasPitch (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasXYPitch (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasOffset (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasXYOffset (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasWidth (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasArea (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasDiagPitch (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasXYDiagPitch (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasDiagWidth (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasDiagSpacing (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasSpacingNumber (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasSpacingName (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingLayerStack (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingAdjacent (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingCenterToCenter (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingRange (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingRangeUseLengthThreshold (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingRangeInfluence (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingRangeInfluenceRange (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingRangeRange (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingLengthThreshold (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingLengthThresholdRange (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingParallelOverlap (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingArea (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingEndOfLine (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingParellelEdge (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingTwoEdges (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingAdjacentExcept (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingSamenet (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingSamenetPGonly (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingNotchLength (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingEndOfNotchWidth (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasDirection (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasResistance (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasResistanceArray (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasCapacitance (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasCapacitanceArray (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasHeight (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasThickness (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasWireExtension (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasShrinkage (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasCapMultiplier (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasEdgeCap (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasAntennaLength (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasAntennaArea (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasCurrentDensityPoint (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasCurrentDensityArray (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasAccurrentDensity (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasDccurrentDensity (const lefiLayer* obj); |
| |
| EXTERN int lefiLayer_numProps (const lefiLayer* obj); |
| EXTERN const char* lefiLayer_propName (const lefiLayer* obj, int index); |
| EXTERN const char* lefiLayer_propValue (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_propNumber (const lefiLayer* obj, int index); |
| EXTERN const char lefiLayer_propType (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_propIsNumber (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_propIsString (const lefiLayer* obj, int index); |
| |
| EXTERN int lefiLayer_numSpacing (const lefiLayer* obj); |
| |
| EXTERN char* lefiLayer_name (const lefiLayer* obj); |
| EXTERN const char* lefiLayer_type (const lefiLayer* obj); |
| EXTERN const char* lefiLayer_layerType (const lefiLayer* obj); |
| EXTERN double lefiLayer_pitch (const lefiLayer* obj); |
| EXTERN int lefiLayer_mask (const lefiLayer* obj); |
| EXTERN double lefiLayer_pitchX (const lefiLayer* obj); |
| EXTERN double lefiLayer_pitchY (const lefiLayer* obj); |
| EXTERN double lefiLayer_offset (const lefiLayer* obj); |
| EXTERN double lefiLayer_offsetX (const lefiLayer* obj); |
| EXTERN double lefiLayer_offsetY (const lefiLayer* obj); |
| EXTERN double lefiLayer_width (const lefiLayer* obj); |
| EXTERN double lefiLayer_area (const lefiLayer* obj); |
| EXTERN double lefiLayer_diagPitch (const lefiLayer* obj); |
| EXTERN double lefiLayer_diagPitchX (const lefiLayer* obj); |
| EXTERN double lefiLayer_diagPitchY (const lefiLayer* obj); |
| EXTERN double lefiLayer_diagWidth (const lefiLayer* obj); |
| EXTERN double lefiLayer_diagSpacing (const lefiLayer* obj); |
| EXTERN double lefiLayer_spacing (const lefiLayer* obj, int index); |
| EXTERN char* lefiLayer_spacingName (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_spacingAdjacentCuts (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingAdjacentWithin (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingArea (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingRangeMin (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingRangeMax (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingRangeInfluence (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingRangeInfluenceMin (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingRangeInfluenceMax (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingRangeRangeMin (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingRangeRangeMax (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingLengthThreshold (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingLengthThresholdRangeMin (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingLengthThresholdRangeMax (const lefiLayer* obj, int index); |
| |
| /* 5.7 Spacing endofline */ |
| EXTERN double lefiLayer_spacingEolWidth (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingEolWithin (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingParSpace (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingParWithin (const lefiLayer* obj, int index); |
| |
| /* 5.7 Spacing Notch */ |
| EXTERN double lefiLayer_spacingNotchLength (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingEndOfNotchWidth (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingEndOfNotchSpacing (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_spacingEndOfNotchLength (const lefiLayer* obj, int index); |
| |
| /* 5.5 Minimum cut rules */ |
| EXTERN int lefiLayer_numMinimumcut (const lefiLayer* obj); |
| EXTERN int lefiLayer_minimumcut (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_minimumcutWidth (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasMinimumcutWithin (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_minimumcutWithin (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasMinimumcutConnection (const lefiLayer* obj, int index); |
| EXTERN const char* lefiLayer_minimumcutConnection (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasMinimumcutNumCuts (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_minimumcutLength (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_minimumcutDistance (const lefiLayer* obj, int index); |
| |
| EXTERN const char* lefiLayer_direction (const lefiLayer* obj); |
| EXTERN double lefiLayer_resistance (const lefiLayer* obj); |
| EXTERN double lefiLayer_capacitance (const lefiLayer* obj); |
| EXTERN double lefiLayer_height (const lefiLayer* obj); |
| EXTERN double lefiLayer_wireExtension (const lefiLayer* obj); |
| EXTERN double lefiLayer_thickness (const lefiLayer* obj); |
| EXTERN double lefiLayer_shrinkage (const lefiLayer* obj); |
| EXTERN double lefiLayer_capMultiplier (const lefiLayer* obj); |
| EXTERN double lefiLayer_edgeCap (const lefiLayer* obj); |
| EXTERN double lefiLayer_antennaLength (const lefiLayer* obj); |
| EXTERN double lefiLayer_antennaArea (const lefiLayer* obj); |
| EXTERN double lefiLayer_currentDensityPoint (const lefiLayer* obj); |
| EXTERN void lefiLayer_currentDensityArray (const lefiLayer* obj, int* numPoints, double** widths, double** current); |
| EXTERN void lefiLayer_capacitanceArray (const lefiLayer* obj, int* numPoints, double** widths, double** resValues); |
| EXTERN void lefiLayer_resistanceArray (const lefiLayer* obj, int* numPoints, double** widths, double** capValues); |
| |
| EXTERN int lefiLayer_numAccurrentDensity (const lefiLayer* obj); |
| EXTERN const lefiLayerDensity* lefiLayer_accurrent (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_numDccurrentDensity (const lefiLayer* obj); |
| EXTERN const lefiLayerDensity* lefiLayer_dccurrent (const lefiLayer* obj, int index); |
| |
| /* 3/23/2000 - Wanda da Rosa. The following are for 5.4 Antenna. */ |
| /* Only 5.4 or 5.3 are allowed in a lef file, but not both */ |
| |
| /* 5.5 */ |
| EXTERN int lefiLayer_numAntennaModel (const lefiLayer* obj); |
| EXTERN const lefiAntennaModel* lefiLayer_antennaModel (const lefiLayer* obj, int index); |
| |
| /* The following is 8/21/01 5.4 enhancements */ |
| |
| EXTERN int lefiLayer_hasSlotWireWidth (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasSlotWireLength (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasSlotWidth (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasSlotLength (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasMaxAdjacentSlotSpacing (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasMaxCoaxialSlotSpacing (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasMaxEdgeSlotSpacing (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasSplitWireWidth (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasMinimumDensity (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasMaximumDensity (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasDensityCheckWindow (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasDensityCheckStep (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasFillActiveSpacing (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasMaxwidth (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasMinwidth (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasMinstep (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasProtrusion (const lefiLayer* obj); |
| |
| EXTERN double lefiLayer_slotWireWidth (const lefiLayer* obj); |
| EXTERN double lefiLayer_slotWireLength (const lefiLayer* obj); |
| EXTERN double lefiLayer_slotWidth (const lefiLayer* obj); |
| EXTERN double lefiLayer_slotLength (const lefiLayer* obj); |
| EXTERN double lefiLayer_maxAdjacentSlotSpacing (const lefiLayer* obj); |
| EXTERN double lefiLayer_maxCoaxialSlotSpacing (const lefiLayer* obj); |
| EXTERN double lefiLayer_maxEdgeSlotSpacing (const lefiLayer* obj); |
| EXTERN double lefiLayer_splitWireWidth (const lefiLayer* obj); |
| EXTERN double lefiLayer_minimumDensity (const lefiLayer* obj); |
| EXTERN double lefiLayer_maximumDensity (const lefiLayer* obj); |
| EXTERN double lefiLayer_densityCheckWindowLength (const lefiLayer* obj); |
| EXTERN double lefiLayer_densityCheckWindowWidth (const lefiLayer* obj); |
| EXTERN double lefiLayer_densityCheckStep (const lefiLayer* obj); |
| EXTERN double lefiLayer_fillActiveSpacing (const lefiLayer* obj); |
| EXTERN double lefiLayer_maxwidth (const lefiLayer* obj); |
| EXTERN double lefiLayer_minwidth (const lefiLayer* obj); |
| EXTERN double lefiLayer_protrusionWidth1 (const lefiLayer* obj); |
| EXTERN double lefiLayer_protrusionLength (const lefiLayer* obj); |
| EXTERN double lefiLayer_protrusionWidth2 (const lefiLayer* obj); |
| |
| EXTERN int lefiLayer_numMinstep (const lefiLayer* obj); |
| EXTERN double lefiLayer_minstep (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasMinstepType (const lefiLayer* obj, int index); |
| EXTERN char* lefiLayer_minstepType (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasMinstepLengthsum (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_minstepLengthsum (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasMinstepMaxedges (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_minstepMaxedges (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasMinstepMinAdjLength (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_minstepMinAdjLength (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasMinstepMinBetLength (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_minstepMinBetLength (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasMinstepXSameCorners (const lefiLayer* obj, int index); |
| |
| /* 5.5 MINENCLOSEDAREA */ |
| EXTERN int lefiLayer_numMinenclosedarea (const lefiLayer* obj); |
| EXTERN double lefiLayer_minenclosedarea (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasMinenclosedareaWidth (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_minenclosedareaWidth (const lefiLayer* obj, int index); |
| |
| /* 5.5 SPACINGTABLE FOR LAYER ROUTING */ |
| |
| /* 5.6 ENCLOSURE, PREFERENCLOSURE, RESISTANCEPERCUT & DIAGMINEDGELENGTH */ |
| EXTERN int lefiLayer_numEnclosure (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasEnclosureRule (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_enclosureOverhang1 (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_enclosureOverhang2 (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasEnclosureWidth (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_enclosureMinWidth (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasEnclosureExceptExtraCut (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_enclosureExceptExtraCut (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasEnclosureMinLength (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_enclosureMinLength (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_numPreferEnclosure (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasPreferEnclosureRule (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_preferEnclosureOverhang1 (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_preferEnclosureOverhang2 (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasPreferEnclosureWidth (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_preferEnclosureMinWidth (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasResistancePerCut (const lefiLayer* obj); |
| EXTERN double lefiLayer_resistancePerCut (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasDiagMinEdgeLength (const lefiLayer* obj); |
| EXTERN double lefiLayer_diagMinEdgeLength (const lefiLayer* obj); |
| EXTERN int lefiLayer_numMinSize (const lefiLayer* obj); |
| EXTERN double lefiLayer_minSizeWidth (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_minSizeLength (const lefiLayer* obj, int index); |
| |
| /* 5.7 */ |
| EXTERN int lefiLayer_hasMaxFloatingArea (const lefiLayer* obj); |
| EXTERN double lefiLayer_maxFloatingArea (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasArraySpacing (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasLongArray (const lefiLayer* obj); |
| EXTERN int lefiLayer_hasViaWidth (const lefiLayer* obj); |
| EXTERN double lefiLayer_viaWidth (const lefiLayer* obj); |
| EXTERN double lefiLayer_cutSpacing (const lefiLayer* obj); |
| EXTERN int lefiLayer_numArrayCuts (const lefiLayer* obj); |
| EXTERN int lefiLayer_arrayCuts (const lefiLayer* obj, int index); |
| EXTERN double lefiLayer_arraySpacing (const lefiLayer* obj, int index); |
| EXTERN int lefiLayer_hasSpacingTableOrtho (const lefiLayer* obj); |
| EXTERN const lefiOrthogonal* lefiLayer_orthogonal (const lefiLayer* obj); |
| |
| EXTERN double lefiLayer_lef58WidthTableOrtho (const lefiLayer* obj, int idx); |
| EXTERN int lefiLayer_lef58WidthTableOrthoValues (const lefiLayer* obj); |
| EXTERN double lefiLayer_lef58WidthTableWrongDir (const lefiLayer* obj, int idx); |
| EXTERN int lefiLayer_lef58WidthTableWrongDirValues (const lefiLayer* obj); |
| |
| EXTERN int lefiLayer_need58PropsProcessing (const lefiLayer* obj); |
| |
| /* Debug print */ |
| EXTERN void lefiLayer_print (const lefiLayer* obj, FILE* f); |
| |
| /* 5.5 */ |
| |
| /* Q: quotedstring */ |
| |
| /* 3/23/2000 - Wanda da Rosa. The following is for 5.4 ANTENNA. */ |
| /* Either 5.4 or 5.3 are allowed, not both */ |
| |
| /* 5.5 AntennaModel */ |
| |
| /* 8/29/2001 - Wanda da Rosa. The following is for 5.4 enhancements. */ |
| |
| /* 5.5 SPACINGTABLE */ |
| |
| /* 5.6 */ |
| |
| /* 5.7 */ |
| |
| #endif |