;================================================================================ ; Robert Johnstone ; Simon Fraser University ; ; Last Modified: 2000/10/07 ; ; Copyright 2000 Robert W. Johnstone ;-------------------------------------------------------------------------------- unless( boundp( 'admLibraryName ) warn( "Setting the destination library to default value of ADM" ) admLibraryName = "ADM" ) pcDefinePCell( list( ddGetObj(admLibraryName) "cantilevers_2" "layout" ) ; end of list for first argument ( ( length_min 20.0 ) ( length_max 200.0 ) ( length_step 20.0 ) ( width 0.0 ) ( anchor 0.0 ) ( include_poly0 t ) ) ; end of parameter list prog( let( pcTechFile player alayer ) ; initialize layers player = "POLY2" alayer = "ANCHOR2" ; load tech file rules pcTechFile = techGetTechFile( pcCellView ) p0p_enclosure = techGetOrderedSpacingRule( pcTechFile "minEnclosure" "POLY0" player ) if( (p0p_enclosure==nil) then warn("minEnclosure rule for POLY0->" + player + " not set.") ) p_nomSpacing = techGetSpacingRule( pcTechFile "nomSpacing" player ) if( (p_nomSpacing==nil) then warn("nomSpacing rule for " + player + " not set") ) p_nomWidth = techGetSpacingRule( pcTechFile "nomWidth" player ) if( (p_nomWidth==nil) then warn("nomWidth rule for " + player + " not set") ) pa_enclosure = techGetOrderedSpacingRule( pcTechFile "minEnclosure" player alayer ) if( (pa_enclosure==nil) then warn("minEnclosure rule for " + player + "->" + alayer + " not set.") ) a_nomWidth = techGetSpacingRule( pcTechFile "nomWidth" alayer ) if( (a_nomWidth==nil) then warn("nomWidth rule for " + alayer + " not set") ) ; check parameters if( (length_step<=0) then warn("length_step<=0 in pcell.") return(nil) ) length_min = if( (length_min=anchor+2*pa_enclosure+p_nomSpacing) then y = y + (width2 + width)*0.5 + p_nomSpacing else y = y + width2 + p_nomSpacing ) length = length + length_step ) ; include poly0 if( (include_poly0!=nil) then dbCreateRect( pcCellView "POLY0" list( -p0p_enclosure:-width2*0.5-p0p_enclosure length_min+length_max+width2+p0p_enclosure:y_last+width2*0.5+p0p_enclosure ) ) ) ; set default instance name prefix dbReplaceProp( pcCellView "instNamePrefix" "string" "test" ) ; set version string dbReplaceProp( pcCellView "version" "string" "1.1.1" ) ; body SKILL code returns value t return(t) ) ; end of body-of-SKILL-code prog ) ; ; end of pcDefinePCell