;================================================================================ ; Robert Johnstone ; Simon Fraser University ; ; Copyright 2000,2002 Robert W. Johnstone ;-------------------------------------------------------------------------------- ; 2002/09/03 ; - modified code to add the "#" character ; 2002/06/14 ; - modified code generating "=" character ; - added escape sequences for new line and backspace ; 2002/02/18 ; - added "=" character unless( boundp( 'admLibraryName ) warn( "Setting the destination library to default value of ADM" ) admLibraryName = "ADM" ) pcDefinePCell( list( ddGetObj(admLibraryName) "label" "layout" ) ; end of list for first argument ( ( height 20.0 ) ( width 10.0 ) ( weight 2.0 ) ( text "label" ) ( layer "POLY0" ) ;( layer "metal3" ) ) ; end of parameter list prog( ; declare variables ( pcTechFile p_minWidth p_minSpacing x y chr d d2 escape ) ; load tech file rules pcTechFile = techGetTechFile( pcCellView ) p_minWidth = techGetSpacingRule( pcTechFile "minWidth" layer ) unless( p_minWidth warn( strcat("minWidth rule for " layer " not set") ) ) p_minSpacing = techGetSpacingRule( pcTechFile "minSpacing" layer ) unless( p_minSpacing warn( strcat("minSpacing rule for " layer " not set") ) ) ; check parameters weight = if( (weight") then dbCreatePath( pcCellView layer list( x+d:y-d x+width*0.5:y-height*0.5 x+d:y-height+d ) weight ) x = x + width*0.5 + d ) if( (chr=="#") then dbCreatePath( pcCellView layer list( x+weight*1.5:y-height*0.5+weight*2.5 x+weight*1.5:y-height*0.5-weight*2.5 ) weight ) dbCreatePath( pcCellView layer list( x+weight*3.5:y-height*0.5+weight*2.5 x+weight*3.5:y-height*0.5-weight*2.5 ) weight ) dbCreatePath( pcCellView layer list( x:y-height*0.5+weight*1.5 x+weight*5:y-height*0.5+weight*1.5 ) weight ) dbCreatePath( pcCellView layer list( x:y-height*0.5-weight*1.5 x+weight*5:y-height*0.5-weight*1.5 ) weight ) x = x + weight * 5 ) if( (chr=="\n") then x = 0 y = y + height + weight ) if( (chr=="\\") then escape = t ) ; add intercharacter spacing x = x + weight*1.5 ) ; if( escape then ... else ... ) ) ; set default instance name prefix dbReplaceProp( pcCellView "instNamePrefix" "string" "label" ) ; set version string dbReplaceProp( pcCellView "version" "string" "1.2.2" ) ; body SKILL code returns value t return(t) ) ; end of body-of-SKILL-code prog ) ; ; end of pcDefinePCell