143 int fVeryVerbose = 0;
153 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a floating point number.\n" );
162 if ( globalUtilOptind >= argc )
164 Abc_Print( -1,
"Command line switch \"-G\" should be followed by a floating point number.\n" );
167 Gain = (float)
atof(argv[globalUtilOptind]);
173 if ( globalUtilOptind >= argc )
175 Abc_Print( -1,
"Command line switch \"-M\" should be followed by a positive integer.\n" );
178 nGatesMin = atoi(argv[globalUtilOptind]);
202 if ( (pFile = fopen( pFileName,
"rb" )) == NULL )
204 fprintf( pAbc->Err,
"Cannot open input file \"%s\". \n", pFileName );
212 fprintf( pAbc->Err,
"Reading SCL library from file \"%s\" has failed. \n", pFileName );
217 fprintf( pAbc->Err,
"Library with only %d cell classes cannot be used.\n",
Abc_SclLibClassNum(pLib) );
223 if ( fDump && pAbc->pLibScl )
231 fprintf( pAbc->Err,
"usage: read_lib [-SG float] [-M num] [-dvwh] <file>\n" );
232 fprintf( pAbc->Err,
"\t reads Liberty library from file\n" );
233 fprintf( pAbc->Err,
"\t-S float : the slew parameter used to generate the library [default = %.2f]\n", Slew );
234 fprintf( pAbc->Err,
"\t-G float : the gain parameter used to generate the library [default = %.2f]\n", Gain );
235 fprintf( pAbc->Err,
"\t-M num : skip gate classes whose size is less than this [default = %d]\n", nGatesMin );
236 fprintf( pAbc->Err,
"\t-d : toggle dumping the parsed library into file \"*_temp.lib\" [default = %s]\n", fDump?
"yes":
"no" );
237 fprintf( pAbc->Err,
"\t-v : toggle writing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
238 fprintf( pAbc->Err,
"\t-v : toggle writing information about skipped gates [default = %s]\n", fVeryVerbose?
"yes":
"no" );
239 fprintf( pAbc->Err,
"\t-h : prints the command summary\n" );
240 fprintf( pAbc->Err,
"\t<file> : the name of a file to read\n" );
274 if ( pAbc->pLibScl == NULL )
276 fprintf( pAbc->Err,
"There is no Liberty library available.\n" );
281 if ( (pFile = fopen( pFileName,
"wb" )) == NULL )
283 fprintf( pAbc->Err,
"Cannot open output file \"%s\". \n", pFileName );
293 fprintf( pAbc->Err,
"usage: write_lib [-h] <file>\n" );
294 fprintf( pAbc->Err,
"\t write current Liberty library into file\n" );
295 fprintf( pAbc->Err,
"\t-h : print the help massage\n" );
296 fprintf( pAbc->Err,
"\t<file> : the name of the file to write\n" );
326 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a floating point number.\n" );
335 if ( globalUtilOptind >= argc )
337 Abc_Print( -1,
"Command line switch \"-G\" should be followed by a floating point number.\n" );
340 Gain = (float)
atof(argv[globalUtilOptind]);
357 if ( pAbc->pLibScl == NULL )
359 fprintf( pAbc->Err,
"There is no Liberty library available.\n" );
368 fprintf( pAbc->Err,
"usage: print_lib [-SG float] [-ish]\n" );
369 fprintf( pAbc->Err,
"\t prints statistics of Liberty library\n" );
370 fprintf( pAbc->Err,
"\t-S float : the slew parameter used to generate the library [default = %.2f]\n", Slew );
371 fprintf( pAbc->Err,
"\t-G float : the gain parameter used to generate the library [default = %.2f]\n", Gain );
372 fprintf( pAbc->Err,
"\t-i : toggle printing invs/bufs only [default = %s]\n", fInvOnly?
"yes":
"no" );
373 fprintf( pAbc->Err,
"\t-s : toggle printing in short format [default = %s]\n", fShort?
"yes":
"no" );
374 fprintf( pAbc->Err,
"\t-h : print the help massage\n" );
401 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a floating point number.\n" );
410 if ( globalUtilOptind >= argc )
412 Abc_Print( -1,
"Command line switch \"-B\" should be followed by a floating point number.\n" );
415 B = (float)
atof(argv[globalUtilOptind]);
429 if ( pAbc->pLibScl == NULL )
431 fprintf( pAbc->Err,
"There is no Liberty library available.\n" );
439 fprintf( pAbc->Err,
"usage: leak2area [-AB float] [-v]\n" );
440 fprintf( pAbc->Err,
"\t converts leakage into area: Area = A * Area + B * Leakage\n" );
441 fprintf( pAbc->Err,
"\t-A float : the multiplicative coefficient to transform area [default = %.2f]\n", A );
442 fprintf( pAbc->Err,
"\t-B float : the multiplicative coefficient to transform leakage [default = %.2f]\n", B );
443 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
444 fprintf( pAbc->Err,
"\t-h : print the help massage\n" );
487 if ( (pFile = fopen( pFileName,
"rb" )) == NULL )
489 fprintf( pAbc->Err,
"Cannot open input file \"%s\". \n", pFileName );
498 fprintf( pAbc->Err,
"Reading SCL library from file \"%s\" has failed. \n", pFileName );
510 fprintf( pAbc->Err,
"usage: read_scl [-dh] <file>\n" );
511 fprintf( pAbc->Err,
"\t reads extracted Liberty library from file\n" );
512 fprintf( pAbc->Err,
"\t-d : toggle dumping the parsed library into file \"*_temp.lib\" [default = %s]\n", fDump?
"yes":
"no" );
513 fprintf( pAbc->Err,
"\t-h : prints the command summary\n" );
514 fprintf( pAbc->Err,
"\t<file> : the name of a file to read\n" );
548 if ( pAbc->pLibScl == NULL )
550 fprintf( pAbc->Err,
"There is no Liberty library available.\n" );
555 if ( (pFile = fopen( pFileName,
"wb" )) == NULL )
557 fprintf( pAbc->Err,
"Cannot open output file \"%s\". \n", pFileName );
567 fprintf( pAbc->Err,
"usage: write_scl [-h] <file>\n" );
568 fprintf( pAbc->Err,
"\t write extracted Liberty library into file\n" );
569 fprintf( pAbc->Err,
"\t-h : print the help massage\n" );
570 fprintf( pAbc->Err,
"\t<file> : the name of the file to write\n" );
587 char * pFileName = NULL;
600 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a floating point number.\n" );
609 if ( globalUtilOptind >= argc )
611 Abc_Print( -1,
"Command line switch \"-G\" should be followed by a floating point number.\n" );
614 Gain = (float)
atof(argv[globalUtilOptind]);
620 if ( globalUtilOptind >= argc )
622 Abc_Print( -1,
"Command line switch \"-M\" should be followed by a positive integer.\n" );
625 nGatesMin = atoi(argv[globalUtilOptind]);
639 if ( pAbc->pLibScl == NULL )
641 fprintf( pAbc->Err,
"There is no Liberty library available.\n" );
650 fprintf( pAbc->Err,
"usage: dump_genlib [-SG float] [-M num] [-vh] <file>\n" );
651 fprintf( pAbc->Err,
"\t writes GENLIB file for SCL library\n" );
652 fprintf( pAbc->Err,
"\t-S float : the slew parameter used to generate the library [default = %.2f]\n", Slew );
653 fprintf( pAbc->Err,
"\t-G float : the gain parameter used to generate the library [default = %.2f]\n", Gain );
654 fprintf( pAbc->Err,
"\t-M num : skip gate classes whose size is less than this [default = %d]\n", nGatesMin );
655 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
656 fprintf( pAbc->Err,
"\t-h : print the command usage\n");
657 fprintf( pAbc->Err,
"\t<file> : optional GENLIB file name\n");
689 fprintf( pAbc->Err,
"There is no current network.\n" );
694 fprintf( pAbc->Err,
"The current network is not mapped.\n" );
697 if ( pAbc->pLibScl == NULL )
699 fprintf( pAbc->Err,
"There is no Liberty library available.\n" );
708 fprintf( pAbc->Err,
"usage: print_gs [-h]\n" );
709 fprintf( pAbc->Err,
"\t prints gate sizes in the current mapping\n" );
710 fprintf( pAbc->Err,
"\t-h : print the help massage\n" );
729 int fUseWireLoads = 1;
742 Abc_Print( -1,
"Command line switch \"-X\" should be followed by a positive integer.\n" );
747 if ( nTreeCRatio < 0 )
771 fprintf( pAbc->Err,
"There is no current network.\n" );
776 fprintf( pAbc->Err,
"The current network is not mapped.\n" );
781 fprintf( pAbc->Err,
"The current network is not in a topo order (run \"topo\").\n" );
784 if ( pAbc->pLibScl == NULL )
786 fprintf( pAbc->Err,
"There is no Liberty library available.\n" );
794 fprintf( pAbc->Err,
"usage: stime [-X num] [-capdth]\n" );
795 fprintf( pAbc->Err,
"\t performs STA using Liberty library\n" );
796 fprintf( pAbc->Err,
"\t-X : min Cout/Cave ratio for tree estimations [default = %d]\n", nTreeCRatio );
797 fprintf( pAbc->Err,
"\t-c : toggle using wire-loads if specified [default = %s]\n", fUseWireLoads?
"yes":
"no" );
798 fprintf( pAbc->Err,
"\t-a : display timing information for all nodes [default = %s]\n", fShowAll?
"yes":
"no" );
799 fprintf( pAbc->Err,
"\t-p : display timing information for critical path [default = %s]\n", fPrintPath?
"yes":
"no" );
800 fprintf( pAbc->Err,
"\t-d : toggle dumping statistics into a file [default = %s]\n", fDumpStats?
"yes":
"no" );
801 fprintf( pAbc->Err,
"\t-h : print the help massage\n" );
843 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
849 if ( pNtkRes == NULL )
851 Abc_Print( -1,
"The command has failed.\n" );
859 fprintf( pAbc->Err,
"usage: topo [-vh]\n" );
860 fprintf( pAbc->Err,
"\t rearranges nodes to be in a topological order\n" );
861 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
862 fprintf( pAbc->Err,
"\t-h : print the command usage\n");
880 int c, fRemInv = 0, fVerbose = 0;
901 fprintf( pAbc->Err,
"There is no current network.\n" );
906 fprintf( pAbc->Err,
"The current network is not a logic network.\n" );
913 if ( pNtkRes == NULL )
915 Abc_Print( -1,
"The command has failed.\n" );
922 fprintf( pAbc->Err,
"usage: unbuffer [-ivh]\n" );
923 fprintf( pAbc->Err,
"\t collapses buffer/inverter trees\n" );
924 fprintf( pAbc->Err,
"\t-i : toggle removing interters [default = %s]\n", fRemInv?
"yes":
"no" );
925 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
926 fprintf( pAbc->Err,
"\t-h : print the command usage\n");
964 Abc_Print( -1,
"Command line switch \"-G\" should be followed by a positive integer.\n" );
973 if ( globalUtilOptind >= argc )
975 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a positive integer.\n" );
978 pPars->
Slew = atoi(argv[globalUtilOptind]);
980 if ( pPars->
Slew < 0 )
984 if ( globalUtilOptind >= argc )
986 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a positive integer.\n" );
989 pPars->
nDegree = atoi(argv[globalUtilOptind]);
1026 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
1031 Abc_Print( -1,
"Fanin phase information is not avaiable.\n" );
1036 Abc_Print( -1,
"Library delay info is not available.\n" );
1041 if ( pNtkRes == NULL )
1043 Abc_Print( -1,
"The command has failed.\n" );
1051 fprintf( pAbc->Err,
"usage: buffer [-GSN num] [-sbpcvwh]\n" );
1052 fprintf( pAbc->Err,
"\t performs buffering and sizing and mapped network\n" );
1053 fprintf( pAbc->Err,
"\t-G <num> : target gain percentage [default = %d]\n", pPars->
GainRatio );
1054 fprintf( pAbc->Err,
"\t-S <num> : target slew in pisoseconds [default = %d]\n", pPars->
Slew );
1055 fprintf( pAbc->Err,
"\t-N <num> : the maximum fanout count [default = %d]\n", pPars->
nDegree );
1056 fprintf( pAbc->Err,
"\t-s : toggle performing only sizing [default = %s]\n", pPars->
fSizeOnly?
"yes":
"no" );
1057 fprintf( pAbc->Err,
"\t-b : toggle using buffers instead of inverters [default = %s]\n", pPars->
fAddBufs?
"yes":
"no" );
1058 fprintf( pAbc->Err,
"\t-p : toggle buffering primary inputs [default = %s]\n", pPars->
fBufPis?
"yes":
"no" );
1059 fprintf( pAbc->Err,
"\t-c : toggle using wire-loads if specified [default = %s]\n", pPars->
fUseWireLoads?
"yes":
"no" );
1060 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
1061 fprintf( pAbc->Err,
"\t-w : toggle printing more verbose information [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
1062 fprintf( pAbc->Err,
"\t-h : print the command usage\n");
1081 int FanMin, FanMax, FanMaxR, fAddInvs, fUseInvs, fBufPis, fSkipDup;
1100 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a positive integer.\n" );
1109 if ( globalUtilOptind >= argc )
1111 Abc_Print( -1,
"Command line switch \"-M\" should be followed by a positive integer.\n" );
1114 FanMax = atoi(argv[globalUtilOptind]);
1120 if ( globalUtilOptind >= argc )
1122 Abc_Print( -1,
"Command line switch \"-R\" should be followed by a positive integer.\n" );
1125 FanMaxR = atoi(argv[globalUtilOptind]);
1162 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
1165 if ( fAddInvs && pNtk->
vPhases == NULL )
1167 Abc_Print( -1,
"Fanin phase information is not avaiable.\n" );
1172 Abc_Print( -1,
"Library delay info is not available.\n" );
1179 else if ( fOldAlgo )
1182 pNtkRes =
Abc_SclBufPerform( pNtk, FanMin, FanMax, fBufPis, fSkipDup, fVerbose );
1183 if ( pNtkRes == NULL )
1185 Abc_Print( -1,
"The command has failed.\n" );
1193 fprintf( pAbc->Err,
"usage: _buffer [-NMR num] [-aixpdvh]\n" );
1194 fprintf( pAbc->Err,
"\t performs buffering of the mapped network\n" );
1195 fprintf( pAbc->Err,
"\t-N <num> : the min fanout considered by the algorithm [default = %d]\n", FanMin );
1196 fprintf( pAbc->Err,
"\t-M <num> : the max allowed fanout count of node/buffer [default = %d]\n", FanMax );
1197 fprintf( pAbc->Err,
"\t-R <num> : the max allowed fanout count of root node [default = %d]\n", FanMaxR );
1198 fprintf( pAbc->Err,
"\t-a : toggle using old algorithm [default = %s]\n", fOldAlgo?
"yes":
"no" );
1199 fprintf( pAbc->Err,
"\t-i : toggle adding interters instead of buffering [default = %s]\n", fAddInvs?
"yes":
"no" );
1200 fprintf( pAbc->Err,
"\t-x : toggle using interters instead of buffers [default = %s]\n", fUseInvs?
"yes":
"no" );
1201 fprintf( pAbc->Err,
"\t-p : toggle buffering primary inputs [default = %s]\n", fBufPis?
"yes":
"no" );
1202 fprintf( pAbc->Err,
"\t-d : toggle disabling gate duplication [default = %s]\n", fSkipDup?
"yes":
"no" );
1203 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
1204 fprintf( pAbc->Err,
"\t-h : print the command usage\n");
1222 int c, fVerbose = 0;
1240 fprintf( pAbc->Err,
"There is no current network.\n" );
1245 fprintf( pAbc->Err,
"The current network is not mapped.\n" );
1250 fprintf( pAbc->Err,
"The current network is not in a topo order (run \"topo\").\n" );
1253 if ( pAbc->pLibScl == NULL )
1255 fprintf( pAbc->Err,
"There is no Liberty library available.\n" );
1263 fprintf( pAbc->Err,
"usage: minsize [-vh]\n" );
1264 fprintf( pAbc->Err,
"\t downsizes all gates to their minimum size\n" );
1265 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
1266 fprintf( pAbc->Err,
"\t-h : print the command usage\n");
1284 int c, fVerbose = 0;
1302 fprintf( pAbc->Err,
"There is no current network.\n" );
1307 fprintf( pAbc->Err,
"The current network is not mapped.\n" );
1312 fprintf( pAbc->Err,
"The current network is not in a topo order (run \"topo\").\n" );
1315 if ( pAbc->pLibScl == NULL )
1317 fprintf( pAbc->Err,
"There is no Liberty library available.\n" );
1325 fprintf( pAbc->Err,
"usage: maxsize [-vh]\n" );
1326 fprintf( pAbc->Err,
"\t upsizes all gates to their maximum size\n" );
1327 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
1328 fprintf( pAbc->Err,
"\t-h : print the command usage\n");
1365 while ( ( c =
Extra_UtilGetopt( argc, argv,
"IJWRNDGTXBcsdvwh" ) ) != EOF )
1372 Abc_Print( -1,
"Command line switch \"-I\" should be followed by a positive integer.\n" );
1381 if ( globalUtilOptind >= argc )
1383 Abc_Print( -1,
"Command line switch \"-J\" should be followed by a positive integer.\n" );
1392 if ( globalUtilOptind >= argc )
1394 Abc_Print( -1,
"Command line switch \"-W\" should be followed by a positive integer.\n" );
1397 pPars->
Window = atoi(argv[globalUtilOptind]);
1403 if ( globalUtilOptind >= argc )
1405 Abc_Print( -1,
"Command line switch \"-R\" should be followed by a positive integer.\n" );
1408 pPars->
Ratio = atoi(argv[globalUtilOptind]);
1410 if ( pPars->
Ratio < 0 )
1414 if ( globalUtilOptind >= argc )
1416 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a positive integer.\n" );
1419 pPars->
Notches = atoi(argv[globalUtilOptind]);
1425 if ( globalUtilOptind >= argc )
1427 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a positive integer.\n" );
1430 pPars->
DelayUser = atoi(argv[globalUtilOptind]);
1436 if ( globalUtilOptind >= argc )
1438 Abc_Print( -1,
"Command line switch \"-G\" should be followed by a positive integer.\n" );
1441 pPars->
DelayGap = atoi(argv[globalUtilOptind]);
1445 if ( globalUtilOptind >= argc )
1447 Abc_Print( -1,
"Command line switch \"-T\" should be followed by a positive integer.\n" );
1450 pPars->
TimeOut = atoi(argv[globalUtilOptind]);
1456 if ( globalUtilOptind >= argc )
1458 Abc_Print( -1,
"Command line switch \"-X\" should be followed by a positive integer.\n" );
1461 pPars->
BuffTreeEst = atoi(argv[globalUtilOptind]);
1467 if ( globalUtilOptind >= argc )
1469 Abc_Print( -1,
"Command line switch \"-B\" should be followed by a positive integer.\n" );
1472 pPars->
BypassFreq = atoi(argv[globalUtilOptind]);
1501 fprintf( pAbc->Err,
"There is no current network.\n" );
1506 fprintf( pAbc->Err,
"The current network is not mapped.\n" );
1511 fprintf( pAbc->Err,
"The current network is not in a topo order (run \"topo\").\n" );
1516 Abc_Print( -1,
"Library delay info is not available.\n" );
1524 fprintf( pAbc->Err,
"usage: upsize [-IJWRNDGTXB num] [-csdvwh]\n" );
1525 fprintf( pAbc->Err,
"\t selectively increases gate sizes on the critical path\n" );
1526 fprintf( pAbc->Err,
"\t-I <num> : the number of upsizing iterations to perform [default = %d]\n", pPars->
nIters );
1527 fprintf( pAbc->Err,
"\t-J <num> : the number of iterations without improvement to stop [default = %d]\n", pPars->
nIterNoChange );
1528 fprintf( pAbc->Err,
"\t-W <num> : delay window (in percent) of near-critical COs [default = %d]\n", pPars->
Window );
1529 fprintf( pAbc->Err,
"\t-R <num> : ratio of critical nodes (in percent) to update [default = %d]\n", pPars->
Ratio );
1530 fprintf( pAbc->Err,
"\t-N <num> : limit on discrete upsizing steps at a node [default = %d]\n", pPars->
Notches );
1531 fprintf( pAbc->Err,
"\t-D <num> : delay target set by the user, in picoseconds [default = %d]\n", pPars->
DelayUser );
1532 fprintf( pAbc->Err,
"\t-G <num> : delay gap during updating, in picoseconds [default = %d]\n", pPars->
DelayGap );
1533 fprintf( pAbc->Err,
"\t-T <num> : approximate timeout in seconds [default = %d]\n", pPars->
TimeOut );
1534 fprintf( pAbc->Err,
"\t-X <num> : ratio for buffer tree estimation [default = %d]\n", pPars->
BuffTreeEst );
1535 fprintf( pAbc->Err,
"\t-B <num> : frequency of bypass transforms [default = %d]\n", pPars->
BypassFreq );
1536 fprintf( pAbc->Err,
"\t-c : toggle using wire-loads if specified [default = %s]\n", pPars->
fUseWireLoads?
"yes":
"no" );
1537 fprintf( pAbc->Err,
"\t-s : toggle using slack based on departure times [default = %s]\n", pPars->
fUseDept?
"yes":
"no" );
1538 fprintf( pAbc->Err,
"\t-d : toggle dumping statistics into a file [default = %s]\n", pPars->
fDumpStats?
"yes":
"no" );
1539 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
1540 fprintf( pAbc->Err,
"\t-w : toggle printing more verbose information [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
1541 fprintf( pAbc->Err,
"\t-h : print the command usage\n");
1582 Abc_Print( -1,
"Command line switch \"-I\" should be followed by a positive integer.\n" );
1591 if ( globalUtilOptind >= argc )
1593 Abc_Print( -1,
"Command line switch \"-J\" should be followed by a positive integer.\n" );
1602 if ( globalUtilOptind >= argc )
1604 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a positive integer.\n" );
1607 pPars->
Notches = atoi(argv[globalUtilOptind]);
1613 if ( globalUtilOptind >= argc )
1615 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a positive integer.\n" );
1618 pPars->
DelayUser = atoi(argv[globalUtilOptind]);
1624 if ( globalUtilOptind >= argc )
1626 Abc_Print( -1,
"Command line switch \"-G\" should be followed by a positive integer.\n" );
1629 pPars->
DelayGap = atoi(argv[globalUtilOptind]);
1633 if ( globalUtilOptind >= argc )
1635 Abc_Print( -1,
"Command line switch \"-T\" should be followed by a positive integer.\n" );
1638 pPars->
TimeOut = atoi(argv[globalUtilOptind]);
1644 if ( globalUtilOptind >= argc )
1646 Abc_Print( -1,
"Command line switch \"-X\" should be followed by a positive integer.\n" );
1649 pPars->
BuffTreeEst = atoi(argv[globalUtilOptind]);
1678 fprintf( pAbc->Err,
"There is no current network.\n" );
1683 fprintf( pAbc->Err,
"The current network is not mapped.\n" );
1688 fprintf( pAbc->Err,
"The current network is not in a topo order (run \"topo\").\n" );
1693 Abc_Print( -1,
"Library delay info is not available.\n" );
1701 fprintf( pAbc->Err,
"usage: dnsize [-IJNDGTX num] [-csdvwh]\n" );
1702 fprintf( pAbc->Err,
"\t selectively decreases gate sizes while maintaining delay\n" );
1703 fprintf( pAbc->Err,
"\t-I <num> : the number of upsizing iterations to perform [default = %d]\n", pPars->
nIters );
1704 fprintf( pAbc->Err,
"\t-J <num> : the number of iterations without improvement to stop [default = %d]\n", pPars->
nIterNoChange );
1705 fprintf( pAbc->Err,
"\t-N <num> : limit on discrete upsizing steps at a node [default = %d]\n", pPars->
Notches );
1706 fprintf( pAbc->Err,
"\t-D <num> : delay target set by the user, in picoseconds [default = %d]\n", pPars->
DelayUser );
1707 fprintf( pAbc->Err,
"\t-G <num> : delay gap during updating, in picoseconds [default = %d]\n", pPars->
DelayGap );
1708 fprintf( pAbc->Err,
"\t-T <num> : approximate timeout in seconds [default = %d]\n", pPars->
TimeOut );
1709 fprintf( pAbc->Err,
"\t-X <num> : ratio for buffer tree estimation [default = %d]\n", pPars->
BuffTreeEst );
1710 fprintf( pAbc->Err,
"\t-c : toggle using wire-loads if specified [default = %s]\n", pPars->
fUseWireLoads?
"yes":
"no" );
1711 fprintf( pAbc->Err,
"\t-s : toggle using slack based on departure times [default = %s]\n", pPars->
fUseDept?
"yes":
"no" );
1712 fprintf( pAbc->Err,
"\t-d : toggle dumping statistics into a file [default = %s]\n", pPars->
fDumpStats?
"yes":
"no" );
1713 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
1714 fprintf( pAbc->Err,
"\t-w : toggle printing more verbose information [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
1715 fprintf( pAbc->Err,
"\t-h : print the command usage\n");
1733 int c, fVerbose = 0;
1751 fprintf( pAbc->Err,
"There is no current network.\n" );
1756 fprintf( pAbc->Err,
"The current network is not mapped.\n" );
1761 fprintf( pAbc->Err,
"The current network is not in a topo order (run \"topo\").\n" );
1766 Abc_Print( -1,
"Library delay info is not available.\n" );
1774 fprintf( pAbc->Err,
"usage: print_buf [-vh]\n" );
1775 fprintf( pAbc->Err,
"\t prints buffers trees of the current design\n" );
1776 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
1777 fprintf( pAbc->Err,
"\t-h : print the command usage\n");
1797 int c, fVerbose = 0;
1818 if ( (pFile = fopen( pFileName,
"rb" )) == NULL )
1820 fprintf( pAbc->Err,
"Cannot open input file \"%s\". \n", pFileName );
1828 fprintf( pAbc->Err,
"usage: read_constr [-vh] <file>\n" );
1829 fprintf( pAbc->Err,
"\t read file with timing constraints for standard-cell designs\n" );
1830 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
1831 fprintf( pAbc->Err,
"\t-h : prints the command summary\n" );
1832 fprintf( pAbc->Err,
"\t<file> : the name of a file to read\n" );
1849 int c, fVerbose = 0;
1869 fprintf( pAbc->Err,
"usage: print_constr [-vh] <file>\n" );
1870 fprintf( pAbc->Err,
"\t prints current timing constraints\n" );
1871 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
1872 fprintf( pAbc->Err,
"\t-h : prints the command summary\n" );
1873 fprintf( pAbc->Err,
"\t<file> : the name of a file to read\n" );
1890 int c, fVerbose = 0;
1910 fprintf( pAbc->Err,
"usage: reset_constr [-vh] <file>\n" );
1911 fprintf( pAbc->Err,
"\t removes current timing constraints\n" );
1912 fprintf( pAbc->Err,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
1913 fprintf( pAbc->Err,
"\t-h : prints the command summary\n" );
1914 fprintf( pAbc->Err,
"\t<file> : the name of a file to read\n" );
ABC_DLL float Abc_FrameReadMaxLoad()
void Abc_SclPrintBuffers(SC_Lib *pLib, Abc_Ntk_t *pNtk, int fVerbose)
void Abc_SclMinsizePerform(SC_Lib *pLib, Abc_Ntk_t *p, int fUseMax, int fVerbose)
static int Scl_CommandPrintBuf(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_FrameReplaceCurrentNetwork(Abc_Frame_t *p, Abc_Ntk_t *pNet)
static int Abc_NtkIsLogic(Abc_Ntk_t *pNtk)
static int Scl_CommandPrintConstr(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL char * Abc_FrameReadDrivingCell()
SC_Lib * Abc_SclReadFromFile(char *pFileName)
static int Scl_CommandReadConstr(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_SclCheckNtk(Abc_Ntk_t *p, int fVerbose)
static int Scl_CommandStime(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_SclHasDelayInfo(void *pScl)
void Scl_End(Abc_Frame_t *pAbc)
void Abc_SclReadTimingConstr(Abc_Frame_t *pAbc, char *pFileName, int fVerbose)
void Abc_SclUpsizePerform(SC_Lib *pLib, Abc_Ntk_t *pNtk, SC_SizePars *pPars)
void Scl_Init(Abc_Frame_t *pAbc)
SC_Lib * Abc_SclReadLiberty(char *pFileName, int fVerbose, int fVeryVerbose)
Abc_Ntk_t * Abc_SclUnBufferPhase(Abc_Ntk_t *pNtk, int fVerbose)
static int Scl_CommandPrintGS(Abc_Frame_t *pAbc, int argc, char **argv)
static int Scl_CommandPrintLib(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_NtkHasMapping(Abc_Ntk_t *pNtk)
static int Scl_CommandReadScl(Abc_Frame_t *pAbc, int argc, char **argv)
static int Scl_CommandLeak2Area(Abc_Frame_t *pAbc, int argc, char **argv)
void Cmd_CommandAdd(Abc_Frame_t *pAbc, const char *sGroup, const char *sName, Cmd_CommandFuncType pFunc, int fChanges)
void Abc_SclPrintGateSizes(SC_Lib *pLib, Abc_Ntk_t *p)
static ABC_NAMESPACE_IMPL_START int Scl_CommandReadLib(Abc_Frame_t *pAbc, int argc, char **argv)
DECLARATIONS ///.
static int Scl_CommandTopo(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_FrameSetMaxLoad(float Load)
Abc_Ntk_t * Abc_SclBufferPhase(Abc_Ntk_t *pNtk, int fVerbose)
void Abc_SclLoad(SC_Lib *pLib, SC_Lib **ppScl)
FUNCTION DEFINITIONS ///.
Abc_Ntk_t * Abc_SclBufferingPerform(Abc_Ntk_t *pNtk, SC_Lib *pLib, SC_BusPars *pPars)
typedefABC_NAMESPACE_HEADER_START struct Abc_Frame_t_ Abc_Frame_t
INCLUDES ///.
static int Scl_CommandUpsize(Abc_Frame_t *pAbc, int argc, char **argv)
static int Scl_CommandDumpGen(Abc_Frame_t *pAbc, int argc, char **argv)
static int Scl_CommandResetConstr(Abc_Frame_t *pAbc, int argc, char **argv)
static int Scl_CommandBuffer(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_SclUnBufferPerform(Abc_Ntk_t *pNtk, int fVerbose)
void Abc_SclWriteLiberty(char *pFileName, SC_Lib *p)
static int Scl_CommandDnsize(Abc_Frame_t *pAbc, int argc, char **argv)
#define ABC_NAMESPACE_IMPL_END
static int Scl_CommandUnBuffer(Abc_Frame_t *pAbc, int argc, char **argv)
static int Scl_CommandMaxsize(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_SclTimePerform(SC_Lib *pLib, Abc_Ntk_t *pNtk, int nTreeCRatio, int fUseWireLoads, int fShowAll, int fPrintPath, int fDumpStats)
static int Scl_CommandWriteLib(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_SclPrintCells(SC_Lib *p, float Slew, float Gain, int fInvOnly, int fShort)
static void Abc_Print(int level, const char *format,...)
int Abc_SclLibClassNum(SC_Lib *pLib)
void Abc_SclWriteScl(char *pFileName, SC_Lib *p)
ABC_DLL Abc_Ntk_t * Abc_NtkDupDfs(Abc_Ntk_t *pNtk)
static int Scl_CommandBufferOld(Abc_Frame_t *pAbc, int argc, char **argv)
#define ABC_NAMESPACE_IMPL_START
void Abc_SclInstallGenlib(void *pScl, float Slew, float Gain, int nGatesMin)
ABC_DLL Abc_Ntk_t * Abc_FrameReadNtk(Abc_Frame_t *p)
Abc_Ntk_t * Abc_SclBufPerform(Abc_Ntk_t *pNtk, int FanMin, int FanMax, int fBufPis, int fSkipDup, int fVerbose)
static int Scl_CommandWriteScl(Abc_Frame_t *pAbc, int argc, char **argv)
float Abc_SclComputeAverageSlew(SC_Lib *p)
ABC_DLL void Abc_FrameSetDrivingCell(char *pName)
static int Scl_CommandMinsize(Abc_Frame_t *pAbc, int argc, char **argv)
static void Abc_SclLibFree(SC_Lib *p)
Abc_Ntk_t * Abc_SclPerformBuffering(Abc_Ntk_t *p, int DegreeR, int Degree, int fUseInvs, int fVerbose)
void Abc_SclDumpGenlib(char *pFileName, SC_Lib *p, float Slew, float Gain, int nGatesMin)
void Abc_SclDnsizePerform(SC_Lib *pLib, Abc_Ntk_t *pNtk, SC_SizePars *pPars)
void Abc_SclConvertLeakageIntoArea(SC_Lib *p, float A, float B)