;================================================================================ ; Robert Johnstone ; Simon Fraser University ; ; Last Modified: 2000/11/16 ; ; Copyright 2000 Robert W. Johnstone ;-------------------------------------------------------------------------------- unless( boundp( 'admLibraryName ) warn( "Setting the destination library to default value of ADM" ) admLibraryName = "ADM" ) pcDefinePCell( list( ddGetObj(admLibraryName) "vertical_support_2" "layout" ) ; end of list for first argument ( ( height 130.0 ) ( width 150.0 ) ( slit_width1 2.0 ) ( slit_width2 2.1 ) ( slit_height1 10.0 ) ( slit_height2 10.0 ) ( include_poly0 "boolean" nil ) ) ; end of parameter list prog( ; declare variables ( pcTechFile rodObj p0p1_enclosure p_minSpacing p_nomSpacing pd_enclosure p_maxWidth h_nomWidth d_nomWidth d_maxSpacing poly hole height2 height3 count_x count_y w x y tmp ) ; set layers poly = "POLY2" hole = "HOLE2" ; load tech file rules pcTechFile = techGetTechFile( pcCellView ) p0p1_enclosure = techGetOrderedSpacingRule( pcTechFile "minEnclosure" "POLY0" poly ) unless( p0p1_enclosure warn(strcat("minEnclosure rule for POLY0->" poly " not set")) ) p_minSpacing = techGetSpacingRule( pcTechFile "minSpacing" poly ) unless( p_minSpacing warn(strcat("minSpacing rule for " poly " not set")) ) p_nomSpacing = techGetSpacingRule( pcTechFile "nomWidth" poly ) unless( p_nomSpacing warn(strcat("nomWidth rule for " poly " not set")) ) pd_enclosure = techGetOrderedSpacingRule( pcTechFile "minEnclosure" poly "DIMPLE" ) unless( pd_enclosure warn(strcat("minEnclosure rule for " poly "->DIMPLE not set")) ) p_maxWidth = techGetSpacingRule( pcTechFile "maxWidth" poly ) unless( p_maxWidth warn(strcat("maxWidth rule for " poly " not set")) ) h_nomWidth = techGetSpacingRule( pcTechFile "nomWidth" hole ) unless( h_nomWidth warn(strcat("nomWidth rule for " hole " not set")) ) d_nomWidth = techGetSpacingRule( pcTechFile "nomWidth" "DIMPLE" ) unless( d_nomWidth warn("nomWidth rule for DIMPLE not set") ) d_maxSpacing = techGetSpacingRule( pcTechFile "maxSpacing" "DIMPLE" ) unless( d_maxSpacing warn("maxSpacing rule for DIMPLE not set") ) unless( d_maxSpacing>=p_maxWidth warn(strcat("maxSpacing rule for DIMPLE is less than " poly " maxWidth")) ) ; check parameters height = if( (height0 && lp20 && lp1paramVal + 2*SPCInfo->increment ) ) rodCreateHandle( ?name "height_handle" ?rodObj rodObj ?type "point" ?value 0:height ) rodAssignHandleToParameter( ?parameter "height" ?rodObj rodObj ?handleName list( "height_handle" ) ?displayName "height" ?stretchDir "y" ) ; Create the instNamePrefix property dbReplaceProp( pcCellView "instNamePrefix" "string" "vertical_support" ) ; set version string dbReplaceProp( pcCellView "version" "string" "1.6.1" ) ; body SKILL code returns value t return(t) ) ; end of body-of-SKILL-code prog ) ; ; end of pcDefinePCell