;================================================================================ ; Robert Johnstone ; Simon Fraser University ; ; Copyright 2000 Robert W. Johnstone ;-------------------------------------------------------------------------------- ; 2002/06/03 ; - modified code because interface to dbCreateRoundRect changed ; 2000/09/01 ; - created unless( boundp( 'admLibraryName ) warn( "Setting the destination library to default value of ADM" ) admLibraryName = "ADM" ) pcDefinePCell( list( ddGetObj(admLibraryName) "grid_of_rect" "layout" ) ; end of list for first argument ( ( layer "HOLE1" ) ( width 9.0 ) ( height 9.0 ) ( chamfer 0.0 ) ( rect_size 0.0 ) ( maxSpacing 30.0 ) ( columns 2 ) ( rows 2 ) ) ; end of parameter list prog( ( pcTechFile minWidth x y ) ; load tech file rules pcTechFile = techGetTechFile( pcCellView ) minWidth = techGetSpacingRule( pcTechFile "minWidth" layer ) unless( minWidth warn( strcat("minWidth rule for " layer " not set")) ) ; check parameters chamfer = if( (chamfer<0) 0 chamfer ) rect_size = if( (rect_sizerect_size-minWidth) (rect_size-minWidth)*0.5 chamfer ) width = if( (width0) then columns = ceiling( width / maxSpacing ) + 1 rows = ceiling( height / maxSpacing ) + 1 ) ; main loop for( lp_x 0 (columns-1) if( (columns<=1) x = -rect_size*0.5 x = -width*0.5 + ( width - rect_size ) * lp_x / (columns-1) ) for( lp_y 0 (rows-1) if( (rows<=1) y = -rect_size*0.5 y = -height*0.5 + ( height - rect_size ) * lp_y / (rows-1) ) dbCreateRoundRect( pcCellView layer list( x:y x+rect_size:y+rect_size ) chamfer ) ) ) ; Create the instNamePrefix property dbReplaceProp( pcCellView "instNamePrefix" "string" "grid_of_rect" ) ; set version string dbReplaceProp( pcCellView "version" "string" "1.0.1" ) ; body SKILL code returns value t return(t) ) ; end of body-of-SKILL-code prog ) ; ; end of pcDefinePCell