1 /* ************************************************************************** */ 2 /* ************************************************************************** */ 3 /* ATTENTION: THIS IS AN AUTO-GENERATED FILE. DO NOT CHANGE IT! */ 4 /* ************************************************************************** */ 5 /* ************************************************************************** */ 6 /* Copyright 2012 - 2015, Cadence Design Systems */ 7 /* */ 8 /* This file is part of the Cadence LEF/DEF Open Source */ 9 /* Distribution, Product Version 5.8. */ 10 /* */ 11 /* Licensed under the Apache License, Version 2.0 (the "License"); */ 12 /* you may not use this file except in compliance with the License. */ 13 /* You may obtain a copy of the License at */ 14 /* */ 15 /* http://www.apache.org/licenses/LICENSE-2.0 */ 16 /* */ 17 /* Unless required by applicable law or agreed to in writing, software */ 18 /* distributed under the License is distributed on an "AS IS" BASIS, */ 19 /* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ 20 /* implied. See the License for the specific language governing */ 21 /* permissions and limitations under the License. */ 22 /* */ 23 /* For updates, support, or to become part of the LEF/DEF Community, */ 24 /* check www.openeda.org for details. */ 25 /* */ 26 /* $Author: dell $ */ 27 /* $Revision: #1 $ */ 28 /* $Date: 2017/06/06 $ */ 29 /* $State: $ */ 30 /* ************************************************************************** */ 31 /* ************************************************************************** */ 32 33 34 #ifndef CLEFILAYER_H 35 #define CLEFILAYER_H 36 37 #include <stdio.h> 38 #include "lefiTypedefs.h" 39 40 typedef enum lefiAntennaEnum { 41 lefiAntennaAR = 1, 42 lefiAntennaDAR = 2, 43 lefiAntennaCAR = 3, 44 lefiAntennaCDAR = 4, 45 lefiAntennaAF = 5, 46 lefiAntennaSAR = 6, 47 lefiAntennaDSAR = 7, 48 lefiAntennaCSAR = 8, 49 lefiAntennaCDSAR = 9, 50 lefiAntennaSAF = 10, 51 lefiAntennaO = 11, 52 lefiAntennaADR = 12 53 } lefiAntennaEnum; 54 55 EXTERN int lefiAntennaPWL_numPWL (const lefiAntennaPWL* obj); 56 57 EXTERN char* lefiLayerDensity_type (const lefiLayerDensity* obj); 58 EXTERN int lefiLayerDensity_hasOneEntry (const lefiLayerDensity* obj); 59 EXTERN double lefiLayerDensity_oneEntry (const lefiLayerDensity* obj); 60 EXTERN int lefiLayerDensity_numFrequency (const lefiLayerDensity* obj); 61 EXTERN double lefiLayerDensity_frequency (const lefiLayerDensity* obj, int index); 62 EXTERN int lefiLayerDensity_numWidths (const lefiLayerDensity* obj); 63 EXTERN double lefiLayerDensity_width (const lefiLayerDensity* obj, int index); 64 EXTERN int lefiLayerDensity_numTableEntries (const lefiLayerDensity* obj); 65 EXTERN double lefiLayerDensity_tableEntry (const lefiLayerDensity* obj, int index); 66 EXTERN int lefiLayerDensity_numCutareas (const lefiLayerDensity* obj); 67 EXTERN double lefiLayerDensity_cutArea (const lefiLayerDensity* obj, int index); 68 69 /* 5.5 */ 70 71 EXTERN int lefiParallel_numLength (const lefiParallel* obj); 72 EXTERN int lefiParallel_numWidth (const lefiParallel* obj); 73 EXTERN double lefiParallel_length (const lefiParallel* obj, int iLength); 74 EXTERN double lefiParallel_width (const lefiParallel* obj, int iWidth); 75 EXTERN double lefiParallel_widthSpacing (const lefiParallel* obj, int iWidth, int iWidthSpacing); 76 77 /* 5.5 */ 78 79 EXTERN int lefiInfluence_numInfluenceEntry (const lefiInfluence* obj); 80 EXTERN double lefiInfluence_width (const lefiInfluence* obj, int index); 81 EXTERN double lefiInfluence_distance (const lefiInfluence* obj, int index); 82 EXTERN double lefiInfluence_spacing (const lefiInfluence* obj, int index); 83 84 /* 5.7 */ 85 86 EXTERN int lefiTwoWidths_numWidth (const lefiTwoWidths* obj); 87 EXTERN double lefiTwoWidths_width (const lefiTwoWidths* obj, int iWidth); 88 EXTERN int lefiTwoWidths_hasWidthPRL (const lefiTwoWidths* obj, int iWidth); 89 EXTERN double lefiTwoWidths_widthPRL (const lefiTwoWidths* obj, int iWidth); 90 EXTERN int lefiTwoWidths_numWidthSpacing (const lefiTwoWidths* obj, int iWidth); 91 EXTERN double lefiTwoWidths_widthSpacing (const lefiTwoWidths* obj, int iWidth, int iWidthSpacing); 92 93 /* 5.5 */ 94 95 EXTERN int lefiSpacingTable_isInfluence (const lefiSpacingTable* obj); 96 EXTERN const lefiInfluence* lefiSpacingTable_influence (const lefiSpacingTable* obj); 97 EXTERN int lefiSpacingTable_isParallel (const lefiSpacingTable* obj); 98 EXTERN const lefiParallel* lefiSpacingTable_parallel (const lefiSpacingTable* obj); 99 EXTERN const lefiTwoWidths* lefiSpacingTable_twoWidths (const lefiSpacingTable* obj); 100 101 /* 5.7 */ 102 103 EXTERN int lefiOrthogonal_numOrthogonal (const lefiOrthogonal* obj); 104 EXTERN double lefiOrthogonal_cutWithin (const lefiOrthogonal* obj, int index); 105 EXTERN double lefiOrthogonal_orthoSpacing (const lefiOrthogonal* obj, int index); 106 107 /* 5.5 */ 108 109 EXTERN int lefiAntennaModel_hasAntennaAreaRatio (const lefiAntennaModel* obj); 110 EXTERN int lefiAntennaModel_hasAntennaDiffAreaRatio (const lefiAntennaModel* obj); 111 EXTERN int lefiAntennaModel_hasAntennaDiffAreaRatioPWL (const lefiAntennaModel* obj); 112 EXTERN int lefiAntennaModel_hasAntennaCumAreaRatio (const lefiAntennaModel* obj); 113 EXTERN int lefiAntennaModel_hasAntennaCumDiffAreaRatio (const lefiAntennaModel* obj); 114 EXTERN int lefiAntennaModel_hasAntennaCumDiffAreaRatioPWL (const lefiAntennaModel* obj); 115 EXTERN int lefiAntennaModel_hasAntennaAreaFactor (const lefiAntennaModel* obj); 116 EXTERN int lefiAntennaModel_hasAntennaAreaFactorDUO (const lefiAntennaModel* obj); 117 EXTERN int lefiAntennaModel_hasAntennaSideAreaRatio (const lefiAntennaModel* obj); 118 EXTERN int lefiAntennaModel_hasAntennaDiffSideAreaRatio (const lefiAntennaModel* obj); 119 EXTERN int lefiAntennaModel_hasAntennaDiffSideAreaRatioPWL (const lefiAntennaModel* obj); 120 EXTERN int lefiAntennaModel_hasAntennaCumSideAreaRatio (const lefiAntennaModel* obj); 121 EXTERN int lefiAntennaModel_hasAntennaCumDiffSideAreaRatio (const lefiAntennaModel* obj); 122 EXTERN int lefiAntennaModel_hasAntennaCumDiffSideAreaRatioPWL (const lefiAntennaModel* obj); 123 EXTERN int lefiAntennaModel_hasAntennaSideAreaFactor (const lefiAntennaModel* obj); 124 EXTERN int lefiAntennaModel_hasAntennaSideAreaFactorDUO (const lefiAntennaModel* obj); 125 EXTERN int lefiAntennaModel_hasAntennaCumRoutingPlusCut (const lefiAntennaModel* obj); 126 EXTERN int lefiAntennaModel_hasAntennaGatePlusDiff (const lefiAntennaModel* obj); 127 EXTERN int lefiAntennaModel_hasAntennaAreaMinusDiff (const lefiAntennaModel* obj); 128 EXTERN int lefiAntennaModel_hasAntennaAreaDiffReducePWL (const lefiAntennaModel* obj); 129 130 EXTERN char* lefiAntennaModel_antennaOxide (const lefiAntennaModel* obj); 131 EXTERN double lefiAntennaModel_antennaAreaRatio (const lefiAntennaModel* obj); 132 EXTERN double lefiAntennaModel_antennaDiffAreaRatio (const lefiAntennaModel* obj); 133 EXTERN const lefiAntennaPWL* lefiAntennaModel_antennaDiffAreaRatioPWL (const lefiAntennaModel* obj); 134 EXTERN double lefiAntennaModel_antennaCumAreaRatio (const lefiAntennaModel* obj); 135 EXTERN double lefiAntennaModel_antennaCumDiffAreaRatio (const lefiAntennaModel* obj); 136 EXTERN const lefiAntennaPWL* lefiAntennaModel_antennaCumDiffAreaRatioPWL (const lefiAntennaModel* obj); 137 EXTERN double lefiAntennaModel_antennaAreaFactor (const lefiAntennaModel* obj); 138 EXTERN double lefiAntennaModel_antennaSideAreaRatio (const lefiAntennaModel* obj); 139 EXTERN double lefiAntennaModel_antennaDiffSideAreaRatio (const lefiAntennaModel* obj); 140 EXTERN const lefiAntennaPWL* lefiAntennaModel_antennaDiffSideAreaRatioPWL (const lefiAntennaModel* obj); 141 EXTERN double lefiAntennaModel_antennaCumSideAreaRatio (const lefiAntennaModel* obj); 142 EXTERN double lefiAntennaModel_antennaCumDiffSideAreaRatio (const lefiAntennaModel* obj); 143 EXTERN const lefiAntennaPWL* lefiAntennaModel_antennaCumDiffSideAreaRatioPWL (const lefiAntennaModel* obj); 144 EXTERN double lefiAntennaModel_antennaSideAreaFactor (const lefiAntennaModel* obj); 145 EXTERN double lefiAntennaModel_antennaGatePlusDiff (const lefiAntennaModel* obj); 146 EXTERN double lefiAntennaModel_antennaAreaMinusDiff (const lefiAntennaModel* obj); 147 EXTERN const lefiAntennaPWL* lefiAntennaModel_antennaAreaDiffReducePWL (const lefiAntennaModel* obj); 148 149 /* 5.6 - minstep switch to multiple and added more options */ 150 151 /* 5.5 SPACINGTABLE */ 152 153 /* 5.6 */ 154 155 /* 5.8 */ 156 /* POLYROUTING, MIMCAP, TSV, PASSIVATION, NWELL */ 157 158 EXTERN int lefiLayer_hasType (const lefiLayer* obj); 159 EXTERN int lefiLayer_hasLayerType (const lefiLayer* obj); 160 /* ROUTING can be POLYROUTING or MIMCAP */ 161 /* CUT can be TSV or PASSIVATION */ 162 /* MASTERSLICE can be NWELL */ 163 EXTERN int lefiLayer_hasMask (const lefiLayer* obj); 164 EXTERN int lefiLayer_hasPitch (const lefiLayer* obj); 165 EXTERN int lefiLayer_hasXYPitch (const lefiLayer* obj); 166 EXTERN int lefiLayer_hasOffset (const lefiLayer* obj); 167 EXTERN int lefiLayer_hasXYOffset (const lefiLayer* obj); 168 EXTERN int lefiLayer_hasWidth (const lefiLayer* obj); 169 EXTERN int lefiLayer_hasArea (const lefiLayer* obj); 170 EXTERN int lefiLayer_hasDiagPitch (const lefiLayer* obj); 171 EXTERN int lefiLayer_hasXYDiagPitch (const lefiLayer* obj); 172 EXTERN int lefiLayer_hasDiagWidth (const lefiLayer* obj); 173 EXTERN int lefiLayer_hasDiagSpacing (const lefiLayer* obj); 174 EXTERN int lefiLayer_hasSpacingNumber (const lefiLayer* obj); 175 EXTERN int lefiLayer_hasSpacingName (const lefiLayer* obj, int index); 176 EXTERN int lefiLayer_hasSpacingLayerStack (const lefiLayer* obj, int index); 177 EXTERN int lefiLayer_hasSpacingAdjacent (const lefiLayer* obj, int index); 178 EXTERN int lefiLayer_hasSpacingCenterToCenter (const lefiLayer* obj, int index); 179 EXTERN int lefiLayer_hasSpacingRange (const lefiLayer* obj, int index); 180 EXTERN int lefiLayer_hasSpacingRangeUseLengthThreshold (const lefiLayer* obj, int index); 181 EXTERN int lefiLayer_hasSpacingRangeInfluence (const lefiLayer* obj, int index); 182 EXTERN int lefiLayer_hasSpacingRangeInfluenceRange (const lefiLayer* obj, int index); 183 EXTERN int lefiLayer_hasSpacingRangeRange (const lefiLayer* obj, int index); 184 EXTERN int lefiLayer_hasSpacingLengthThreshold (const lefiLayer* obj, int index); 185 EXTERN int lefiLayer_hasSpacingLengthThresholdRange (const lefiLayer* obj, int index); 186 EXTERN int lefiLayer_hasSpacingParallelOverlap (const lefiLayer* obj, int index); 187 EXTERN int lefiLayer_hasSpacingArea (const lefiLayer* obj, int index); 188 EXTERN int lefiLayer_hasSpacingEndOfLine (const lefiLayer* obj, int index); 189 EXTERN int lefiLayer_hasSpacingParellelEdge (const lefiLayer* obj, int index); 190 EXTERN int lefiLayer_hasSpacingTwoEdges (const lefiLayer* obj, int index); 191 EXTERN int lefiLayer_hasSpacingAdjacentExcept (const lefiLayer* obj, int index); 192 EXTERN int lefiLayer_hasSpacingSamenet (const lefiLayer* obj, int index); 193 EXTERN int lefiLayer_hasSpacingSamenetPGonly (const lefiLayer* obj, int index); 194 EXTERN int lefiLayer_hasSpacingNotchLength (const lefiLayer* obj, int index); 195 EXTERN int lefiLayer_hasSpacingEndOfNotchWidth (const lefiLayer* obj, int index); 196 EXTERN int lefiLayer_hasDirection (const lefiLayer* obj); 197 EXTERN int lefiLayer_hasResistance (const lefiLayer* obj); 198 EXTERN int lefiLayer_hasResistanceArray (const lefiLayer* obj); 199 EXTERN int lefiLayer_hasCapacitance (const lefiLayer* obj); 200 EXTERN int lefiLayer_hasCapacitanceArray (const lefiLayer* obj); 201 EXTERN int lefiLayer_hasHeight (const lefiLayer* obj); 202 EXTERN int lefiLayer_hasThickness (const lefiLayer* obj); 203 EXTERN int lefiLayer_hasWireExtension (const lefiLayer* obj); 204 EXTERN int lefiLayer_hasShrinkage (const lefiLayer* obj); 205 EXTERN int lefiLayer_hasCapMultiplier (const lefiLayer* obj); 206 EXTERN int lefiLayer_hasEdgeCap (const lefiLayer* obj); 207 EXTERN int lefiLayer_hasAntennaLength (const lefiLayer* obj); 208 EXTERN int lefiLayer_hasAntennaArea (const lefiLayer* obj); 209 EXTERN int lefiLayer_hasCurrentDensityPoint (const lefiLayer* obj); 210 EXTERN int lefiLayer_hasCurrentDensityArray (const lefiLayer* obj); 211 EXTERN int lefiLayer_hasAccurrentDensity (const lefiLayer* obj); 212 EXTERN int lefiLayer_hasDccurrentDensity (const lefiLayer* obj); 213 214 EXTERN int lefiLayer_numProps (const lefiLayer* obj); 215 EXTERN const char* lefiLayer_propName (const lefiLayer* obj, int index); 216 EXTERN const char* lefiLayer_propValue (const lefiLayer* obj, int index); 217 EXTERN double lefiLayer_propNumber (const lefiLayer* obj, int index); 218 EXTERN const char lefiLayer_propType (const lefiLayer* obj, int index); 219 EXTERN int lefiLayer_propIsNumber (const lefiLayer* obj, int index); 220 EXTERN int lefiLayer_propIsString (const lefiLayer* obj, int index); 221 222 EXTERN int lefiLayer_numSpacing (const lefiLayer* obj); 223 224 EXTERN char* lefiLayer_name (const lefiLayer* obj); 225 EXTERN const char* lefiLayer_type (const lefiLayer* obj); 226 EXTERN const char* lefiLayer_layerType (const lefiLayer* obj); 227 EXTERN double lefiLayer_pitch (const lefiLayer* obj); 228 EXTERN int lefiLayer_mask (const lefiLayer* obj); 229 EXTERN double lefiLayer_pitchX (const lefiLayer* obj); 230 EXTERN double lefiLayer_pitchY (const lefiLayer* obj); 231 EXTERN double lefiLayer_offset (const lefiLayer* obj); 232 EXTERN double lefiLayer_offsetX (const lefiLayer* obj); 233 EXTERN double lefiLayer_offsetY (const lefiLayer* obj); 234 EXTERN double lefiLayer_width (const lefiLayer* obj); 235 EXTERN double lefiLayer_area (const lefiLayer* obj); 236 EXTERN double lefiLayer_diagPitch (const lefiLayer* obj); 237 EXTERN double lefiLayer_diagPitchX (const lefiLayer* obj); 238 EXTERN double lefiLayer_diagPitchY (const lefiLayer* obj); 239 EXTERN double lefiLayer_diagWidth (const lefiLayer* obj); 240 EXTERN double lefiLayer_diagSpacing (const lefiLayer* obj); 241 EXTERN double lefiLayer_spacing (const lefiLayer* obj, int index); 242 EXTERN char* lefiLayer_spacingName (const lefiLayer* obj, int index); 243 EXTERN int lefiLayer_spacingAdjacentCuts (const lefiLayer* obj, int index); 244 EXTERN double lefiLayer_spacingAdjacentWithin (const lefiLayer* obj, int index); 245 EXTERN double lefiLayer_spacingArea (const lefiLayer* obj, int index); 246 EXTERN double lefiLayer_spacingRangeMin (const lefiLayer* obj, int index); 247 EXTERN double lefiLayer_spacingRangeMax (const lefiLayer* obj, int index); 248 EXTERN double lefiLayer_spacingRangeInfluence (const lefiLayer* obj, int index); 249 EXTERN double lefiLayer_spacingRangeInfluenceMin (const lefiLayer* obj, int index); 250 EXTERN double lefiLayer_spacingRangeInfluenceMax (const lefiLayer* obj, int index); 251 EXTERN double lefiLayer_spacingRangeRangeMin (const lefiLayer* obj, int index); 252 EXTERN double lefiLayer_spacingRangeRangeMax (const lefiLayer* obj, int index); 253 EXTERN double lefiLayer_spacingLengthThreshold (const lefiLayer* obj, int index); 254 EXTERN double lefiLayer_spacingLengthThresholdRangeMin (const lefiLayer* obj, int index); 255 EXTERN double lefiLayer_spacingLengthThresholdRangeMax (const lefiLayer* obj, int index); 256 257 /* 5.7 Spacing endofline */ 258 EXTERN double lefiLayer_spacingEolWidth (const lefiLayer* obj, int index); 259 EXTERN double lefiLayer_spacingEolWithin (const lefiLayer* obj, int index); 260 EXTERN double lefiLayer_spacingParSpace (const lefiLayer* obj, int index); 261 EXTERN double lefiLayer_spacingParWithin (const lefiLayer* obj, int index); 262 263 /* 5.7 Spacing Notch */ 264 EXTERN double lefiLayer_spacingNotchLength (const lefiLayer* obj, int index); 265 EXTERN double lefiLayer_spacingEndOfNotchWidth (const lefiLayer* obj, int index); 266 EXTERN double lefiLayer_spacingEndOfNotchSpacing (const lefiLayer* obj, int index); 267 EXTERN double lefiLayer_spacingEndOfNotchLength (const lefiLayer* obj, int index); 268 269 /* 5.5 Minimum cut rules */ 270 EXTERN int lefiLayer_numMinimumcut (const lefiLayer* obj); 271 EXTERN int lefiLayer_minimumcut (const lefiLayer* obj, int index); 272 EXTERN double lefiLayer_minimumcutWidth (const lefiLayer* obj, int index); 273 EXTERN int lefiLayer_hasMinimumcutWithin (const lefiLayer* obj, int index); 274 EXTERN double lefiLayer_minimumcutWithin (const lefiLayer* obj, int index); 275 EXTERN int lefiLayer_hasMinimumcutConnection (const lefiLayer* obj, int index); 276 EXTERN const char* lefiLayer_minimumcutConnection (const lefiLayer* obj, int index); 277 EXTERN int lefiLayer_hasMinimumcutNumCuts (const lefiLayer* obj, int index); 278 EXTERN double lefiLayer_minimumcutLength (const lefiLayer* obj, int index); 279 EXTERN double lefiLayer_minimumcutDistance (const lefiLayer* obj, int index); 280 281 EXTERN const char* lefiLayer_direction (const lefiLayer* obj); 282 EXTERN double lefiLayer_resistance (const lefiLayer* obj); 283 EXTERN double lefiLayer_capacitance (const lefiLayer* obj); 284 EXTERN double lefiLayer_height (const lefiLayer* obj); 285 EXTERN double lefiLayer_wireExtension (const lefiLayer* obj); 286 EXTERN double lefiLayer_thickness (const lefiLayer* obj); 287 EXTERN double lefiLayer_shrinkage (const lefiLayer* obj); 288 EXTERN double lefiLayer_capMultiplier (const lefiLayer* obj); 289 EXTERN double lefiLayer_edgeCap (const lefiLayer* obj); 290 EXTERN double lefiLayer_antennaLength (const lefiLayer* obj); 291 EXTERN double lefiLayer_antennaArea (const lefiLayer* obj); 292 EXTERN double lefiLayer_currentDensityPoint (const lefiLayer* obj); 293 EXTERN void lefiLayer_currentDensityArray (const lefiLayer* obj, int* numPoints, double** widths, double** current); 294 EXTERN void lefiLayer_capacitanceArray (const lefiLayer* obj, int* numPoints, double** widths, double** resValues); 295 EXTERN void lefiLayer_resistanceArray (const lefiLayer* obj, int* numPoints, double** widths, double** capValues); 296 297 EXTERN int lefiLayer_numAccurrentDensity (const lefiLayer* obj); 298 EXTERN const lefiLayerDensity* lefiLayer_accurrent (const lefiLayer* obj, int index); 299 EXTERN int lefiLayer_numDccurrentDensity (const lefiLayer* obj); 300 EXTERN const lefiLayerDensity* lefiLayer_dccurrent (const lefiLayer* obj, int index); 301 302 /* 3/23/2000 - Wanda da Rosa. The following are for 5.4 Antenna. */ 303 /* Only 5.4 or 5.3 are allowed in a lef file, but not both */ 304 305 /* 5.5 */ 306 EXTERN int lefiLayer_numAntennaModel (const lefiLayer* obj); 307 EXTERN const lefiAntennaModel* lefiLayer_antennaModel (const lefiLayer* obj, int index); 308 309 /* The following is 8/21/01 5.4 enhancements */ 310 311 EXTERN int lefiLayer_hasSlotWireWidth (const lefiLayer* obj); 312 EXTERN int lefiLayer_hasSlotWireLength (const lefiLayer* obj); 313 EXTERN int lefiLayer_hasSlotWidth (const lefiLayer* obj); 314 EXTERN int lefiLayer_hasSlotLength (const lefiLayer* obj); 315 EXTERN int lefiLayer_hasMaxAdjacentSlotSpacing (const lefiLayer* obj); 316 EXTERN int lefiLayer_hasMaxCoaxialSlotSpacing (const lefiLayer* obj); 317 EXTERN int lefiLayer_hasMaxEdgeSlotSpacing (const lefiLayer* obj); 318 EXTERN int lefiLayer_hasSplitWireWidth (const lefiLayer* obj); 319 EXTERN int lefiLayer_hasMinimumDensity (const lefiLayer* obj); 320 EXTERN int lefiLayer_hasMaximumDensity (const lefiLayer* obj); 321 EXTERN int lefiLayer_hasDensityCheckWindow (const lefiLayer* obj); 322 EXTERN int lefiLayer_hasDensityCheckStep (const lefiLayer* obj); 323 EXTERN int lefiLayer_hasFillActiveSpacing (const lefiLayer* obj); 324 EXTERN int lefiLayer_hasMaxwidth (const lefiLayer* obj); 325 EXTERN int lefiLayer_hasMinwidth (const lefiLayer* obj); 326 EXTERN int lefiLayer_hasMinstep (const lefiLayer* obj); 327 EXTERN int lefiLayer_hasProtrusion (const lefiLayer* obj); 328 329 EXTERN double lefiLayer_slotWireWidth (const lefiLayer* obj); 330 EXTERN double lefiLayer_slotWireLength (const lefiLayer* obj); 331 EXTERN double lefiLayer_slotWidth (const lefiLayer* obj); 332 EXTERN double lefiLayer_slotLength (const lefiLayer* obj); 333 EXTERN double lefiLayer_maxAdjacentSlotSpacing (const lefiLayer* obj); 334 EXTERN double lefiLayer_maxCoaxialSlotSpacing (const lefiLayer* obj); 335 EXTERN double lefiLayer_maxEdgeSlotSpacing (const lefiLayer* obj); 336 EXTERN double lefiLayer_splitWireWidth (const lefiLayer* obj); 337 EXTERN double lefiLayer_minimumDensity (const lefiLayer* obj); 338 EXTERN double lefiLayer_maximumDensity (const lefiLayer* obj); 339 EXTERN double lefiLayer_densityCheckWindowLength (const lefiLayer* obj); 340 EXTERN double lefiLayer_densityCheckWindowWidth (const lefiLayer* obj); 341 EXTERN double lefiLayer_densityCheckStep (const lefiLayer* obj); 342 EXTERN double lefiLayer_fillActiveSpacing (const lefiLayer* obj); 343 EXTERN double lefiLayer_maxwidth (const lefiLayer* obj); 344 EXTERN double lefiLayer_minwidth (const lefiLayer* obj); 345 EXTERN double lefiLayer_protrusionWidth1 (const lefiLayer* obj); 346 EXTERN double lefiLayer_protrusionLength (const lefiLayer* obj); 347 EXTERN double lefiLayer_protrusionWidth2 (const lefiLayer* obj); 348 349 EXTERN int lefiLayer_numMinstep (const lefiLayer* obj); 350 EXTERN double lefiLayer_minstep (const lefiLayer* obj, int index); 351 EXTERN int lefiLayer_hasMinstepType (const lefiLayer* obj, int index); 352 EXTERN char* lefiLayer_minstepType (const lefiLayer* obj, int index); 353 EXTERN int lefiLayer_hasMinstepLengthsum (const lefiLayer* obj, int index); 354 EXTERN double lefiLayer_minstepLengthsum (const lefiLayer* obj, int index); 355 EXTERN int lefiLayer_hasMinstepMaxedges (const lefiLayer* obj, int index); 356 EXTERN int lefiLayer_minstepMaxedges (const lefiLayer* obj, int index); 357 EXTERN int lefiLayer_hasMinstepMinAdjLength (const lefiLayer* obj, int index); 358 EXTERN double lefiLayer_minstepMinAdjLength (const lefiLayer* obj, int index); 359 EXTERN int lefiLayer_hasMinstepMinBetLength (const lefiLayer* obj, int index); 360 EXTERN double lefiLayer_minstepMinBetLength (const lefiLayer* obj, int index); 361 EXTERN int lefiLayer_hasMinstepXSameCorners (const lefiLayer* obj, int index); 362 363 /* 5.5 MINENCLOSEDAREA */ 364 EXTERN int lefiLayer_numMinenclosedarea (const lefiLayer* obj); 365 EXTERN double lefiLayer_minenclosedarea (const lefiLayer* obj, int index); 366 EXTERN int lefiLayer_hasMinenclosedareaWidth (const lefiLayer* obj, int index); 367 EXTERN double lefiLayer_minenclosedareaWidth (const lefiLayer* obj, int index); 368 369 /* 5.5 SPACINGTABLE FOR LAYER ROUTING */ 370 371 /* 5.6 ENCLOSURE, PREFERENCLOSURE, RESISTANCEPERCUT & DIAGMINEDGELENGTH */ 372 EXTERN int lefiLayer_numEnclosure (const lefiLayer* obj); 373 EXTERN int lefiLayer_hasEnclosureRule (const lefiLayer* obj, int index); 374 EXTERN double lefiLayer_enclosureOverhang1 (const lefiLayer* obj, int index); 375 EXTERN double lefiLayer_enclosureOverhang2 (const lefiLayer* obj, int index); 376 EXTERN int lefiLayer_hasEnclosureWidth (const lefiLayer* obj, int index); 377 EXTERN double lefiLayer_enclosureMinWidth (const lefiLayer* obj, int index); 378 EXTERN int lefiLayer_hasEnclosureExceptExtraCut (const lefiLayer* obj, int index); 379 EXTERN double lefiLayer_enclosureExceptExtraCut (const lefiLayer* obj, int index); 380 EXTERN int lefiLayer_hasEnclosureMinLength (const lefiLayer* obj, int index); 381 EXTERN double lefiLayer_enclosureMinLength (const lefiLayer* obj, int index); 382 EXTERN int lefiLayer_numPreferEnclosure (const lefiLayer* obj); 383 EXTERN int lefiLayer_hasPreferEnclosureRule (const lefiLayer* obj, int index); 384 EXTERN double lefiLayer_preferEnclosureOverhang1 (const lefiLayer* obj, int index); 385 EXTERN double lefiLayer_preferEnclosureOverhang2 (const lefiLayer* obj, int index); 386 EXTERN int lefiLayer_hasPreferEnclosureWidth (const lefiLayer* obj, int index); 387 EXTERN double lefiLayer_preferEnclosureMinWidth (const lefiLayer* obj, int index); 388 EXTERN int lefiLayer_hasResistancePerCut (const lefiLayer* obj); 389 EXTERN double lefiLayer_resistancePerCut (const lefiLayer* obj); 390 EXTERN int lefiLayer_hasDiagMinEdgeLength (const lefiLayer* obj); 391 EXTERN double lefiLayer_diagMinEdgeLength (const lefiLayer* obj); 392 EXTERN int lefiLayer_numMinSize (const lefiLayer* obj); 393 EXTERN double lefiLayer_minSizeWidth (const lefiLayer* obj, int index); 394 EXTERN double lefiLayer_minSizeLength (const lefiLayer* obj, int index); 395 396 /* 5.7 */ 397 EXTERN int lefiLayer_hasMaxFloatingArea (const lefiLayer* obj); 398 EXTERN double lefiLayer_maxFloatingArea (const lefiLayer* obj); 399 EXTERN int lefiLayer_hasArraySpacing (const lefiLayer* obj); 400 EXTERN int lefiLayer_hasLongArray (const lefiLayer* obj); 401 EXTERN int lefiLayer_hasViaWidth (const lefiLayer* obj); 402 EXTERN double lefiLayer_viaWidth (const lefiLayer* obj); 403 EXTERN double lefiLayer_cutSpacing (const lefiLayer* obj); 404 EXTERN int lefiLayer_numArrayCuts (const lefiLayer* obj); 405 EXTERN int lefiLayer_arrayCuts (const lefiLayer* obj, int index); 406 EXTERN double lefiLayer_arraySpacing (const lefiLayer* obj, int index); 407 EXTERN int lefiLayer_hasSpacingTableOrtho (const lefiLayer* obj); 408 EXTERN const lefiOrthogonal* lefiLayer_orthogonal (const lefiLayer* obj); 409 410 EXTERN double lefiLayer_lef58WidthTableOrtho (const lefiLayer* obj, int idx); 411 EXTERN int lefiLayer_lef58WidthTableOrthoValues (const lefiLayer* obj); 412 EXTERN double lefiLayer_lef58WidthTableWrongDir (const lefiLayer* obj, int idx); 413 EXTERN int lefiLayer_lef58WidthTableWrongDirValues (const lefiLayer* obj); 414 415 EXTERN int lefiLayer_need58PropsProcessing (const lefiLayer* obj); 416 417 /* Debug print */ 418 EXTERN void lefiLayer_print (const lefiLayer* obj, FILE* f); 419 420 /* 5.5 */ 421 422 /* Q: quotedstring */ 423 424 /* 3/23/2000 - Wanda da Rosa. The following is for 5.4 ANTENNA. */ 425 /* Either 5.4 or 5.3 are allowed, not both */ 426 427 /* 5.5 AntennaModel */ 428 429 /* 8/29/2001 - Wanda da Rosa. The following is for 5.4 enhancements. */ 430 431 /* 5.5 SPACINGTABLE */ 432 433 /* 5.6 */ 434 435 /* 5.7 */ 436 437 #endif 438