blob: 47610709af4c67e9336b0c1f60644f28df26621d [file] [log] [blame]
#include "custom.h"
void prboard(void)
{
int xcenter , ycenter ;
int j , cell , site , terminal , xpos , ypos ;
CELLBOXPTR cellptr ;
TILEBOXPTR tileptr ;
TERMBOXPTR termptr ;
FILE *fp , *fopen() ;
char filename[1024] ;
sprintf( filename, "%s.brd" , cktName ) ;
if( (fp = fopen ( filename , "w")) == (FILE *) NULL ) {
fprintf(fpo,"can't open %s\n", filename ) ;
exit(0);
}
for( cell = 1 ; cell <= numcells + numpads ; cell++ ) {
cellptr = cellarray[ cell ] ;
tileptr = cellptr->config[ cellptr->orient ] ;
termptr = tileptr->termptr ;
xcenter = cellptr->xcenter ;
ycenter = cellptr->ycenter ;
fprintf(fp,"\n\n\n\nBOUNDING BOX OF CELL:%6d is ", cell );
fprintf(fp,"LEFT:%6d BOTTOM:%6d RIGHT:%6d TOP:%6d\n",
tileptr->left + xcenter , tileptr->bottom + ycenter ,
tileptr->right + xcenter , tileptr->top + ycenter ) ;
fprintf(fp,"\nTHESE ARE THE TILES COMPRISING THIS CELL\n");
for( tileptr = tileptr->nexttile ; tileptr != TILENULL ;
tileptr = tileptr->nexttile ) {
fprintf(fp,"LEFT:%6d BOTTOM:%6d" ,
tileptr->left + xcenter,tileptr->bottom + ycenter);
fprintf(fp," RIGHT:%6d TOP:%6d\n\n" ,
tileptr->right + xcenter, tileptr->top + ycenter );
}
fprintf(fp,"THESE ARE THE TERMINALS FOR THIS CELL\n");
for( ; termptr != TERMNULL ; termptr = termptr->nextterm ){
fprintf(fp,"TERMINAL:%s XPOS:%6d YPOS:%6d\n\n" ,
pinnames[termptr->terminal] ,
termptr->xpos + xcenter ,
termptr->ypos + ycenter ) ;
}
if( cellptr->softflag == 1 ) {
for( j = 1 ; j <= cellptr->numUnComTerms ; j++ ) {
terminal = cellptr->unComTerms[ j ].terminal ;
site = cellptr-> unComTerms[ j ].site ;
xpos = cellptr->config[ cellptr->orient ]->
siteLocArray[ site ].xpos ;
ypos = cellptr->config[ cellptr->orient ]->
siteLocArray[ site ].ypos ;
fprintf(fp,"TERMINAL:%s XPOS:%6d YPOS:%6d\n" ,
pinnames[terminal] , xpos + xcenter ,
ypos + ycenter ) ;
fprintf(fp,"ACTUALS XPOS:%6d YPOS:%6d\n\n",
cellptr->unComTerms[ j ].finalx + xcenter ,
cellptr->unComTerms[ j ].finaly + ycenter ) ;
fprintf(fp," SITE:%6d\n\n", site ) ;
}
}
}
fclose( fp ) ;
return ;
}