500 pAbc->vCexVec = NULL;
520 pAbc->vCexVec = *pvCexVec;
539 if ( pAbc->vPoEquivs )
541 pAbc->vPoEquivs = *pvPoEquivs;
558 if ( pAbc->vStatuses )
560 pAbc->vStatuses = *pvStatuses;
580 if ( vCexes == NULL )
620 Abc_Print( -1,
"Abc_FrameUpdateGia(): Tranformation has failed.\n" );
624 Abc_Print( 0,
"The current GIA has no primary outputs. Some commands may not work correctly.\n" );
625 if ( pNew == pAbc->pGia )
630 pNew->
vNamesIn = pAbc->pGia->vNamesIn;
631 pAbc->pGia->vNamesIn = NULL;
636 pAbc->pGia->vNamesOut = NULL;
641 pAbc->pGia2 = pAbc->pGia;
1227 Abc_Print( -1,
"Cannot print LUT delay for a non-logic network.\n" );
1230 Abc_NtkPrintStats( pNtk, fFactor, fSaveBest, fDumpResult, fUseLutLib, fPrintMuxes, fPower, fGlitch, fSkipBuf );
1233 pAbc->TimeTotal += pAbc->TimeCommand;
1234 Abc_Print( 1,
"elapse: %3.2f seconds, total: %3.2f seconds\n", pAbc->TimeCommand, pAbc->TimeTotal );
1235 pAbc->TimeCommand = 0.0;
1240 Abc_Print( -2,
"usage: print_stats [-fbdltmpgsh]\n" );
1241 Abc_Print( -2,
"\t prints the network statistics\n" );
1242 Abc_Print( -2,
"\t-f : toggles printing the literal count in the factored forms [default = %s]\n", fFactor?
"yes":
"no" );
1243 Abc_Print( -2,
"\t-b : toggles saving the best logic network in \"best.blif\" [default = %s]\n", fSaveBest?
"yes":
"no" );
1244 Abc_Print( -2,
"\t-d : toggles dumping statistics about the network into file [default = %s]\n", fDumpResult?
"yes":
"no" );
1245 Abc_Print( -2,
"\t-l : toggles printing delay of LUT mapping using LUT library [default = %s]\n", fSaveBest?
"yes":
"no" );
1246 Abc_Print( -2,
"\t-t : toggles printing runtime statistics [default = %s]\n", fPrintTime?
"yes":
"no" );
1247 Abc_Print( -2,
"\t-m : toggles printing MUX statistics [default = %s]\n", fPrintMuxes?
"yes":
"no" );
1248 Abc_Print( -2,
"\t-p : toggles printing power dissipation due to switching [default = %s]\n", fPower?
"yes":
"no" );
1249 Abc_Print( -2,
"\t-g : toggles printing percentage of increased power due to glitching [default = %s]\n", fGlitch?
"yes":
"no" );
1250 Abc_Print( -2,
"\t-s : toggles not counting single-output nodes as nodes [default = %s]\n", fSkipBuf?
"yes":
"no" );
1251 Abc_Print( -2,
"\t-h : print the command usage\n");
1302 if ( pNtk->
pExdc == NULL )
1304 Abc_Print( -1,
"Network has no EXDC.\n" );
1319 Abc_Print( 1,
"EXDC network statistics: " );
1321 if ( Percentage > 0.05 && Percentage < 99.95 )
1323 else if ( Percentage > 0.000005 && Percentage < 99.999995 )
1330 Abc_Print( 1,
"EXDC network statistics: \n" );
1335 Abc_Print( -2,
"usage: print_exdc [-dh]\n" );
1336 Abc_Print( -2,
"\t prints the EXDC network statistics\n" );
1337 Abc_Print( -2,
"\t-d : toggles printing don't-care percentage [default = %s]\n", fPrintDc?
"yes":
"no" );
1338 Abc_Print( -2,
"\t-h : print the command usage\n");
1357 int c, fPrintFlops = 1;
1383 Abc_Print( -1,
"Wrong number of auguments.\n" );
1390 if ( pNode == NULL )
1392 Abc_Print( -1,
"Cannot find node \"%s\".\n", argv[globalUtilOptind] );
1403 Abc_Print( -2,
"usage: print_io [-fh] <node>\n" );
1404 Abc_Print( -2,
"\t prints the PIs/POs/flops or fanins/fanouts of a node\n" );
1405 Abc_Print( -2,
"\t-f : toggles printing flops [default = %s]\n", fPrintFlops?
"yes":
"no" );
1406 Abc_Print( -2,
"\t-h : print the command usage\n");
1407 Abc_Print( -2,
"\tnode : the node to print fanins/fanouts\n");
1458 Abc_Print( -2,
"usage: print_latch [-sh]\n" );
1459 Abc_Print( -2,
"\t prints information about latches\n" );
1460 Abc_Print( -2,
"\t-s : toggles printing SCCs of registers [default = %s]\n", fPrintSccs?
"yes":
"no" );
1461 Abc_Print( -2,
"\t-h : print the command usage\n");
1516 Abc_Print( -2,
"usage: print_fanio [-imvh]\n" );
1517 Abc_Print( -2,
"\t prints the statistics about fanins/fanouts of all nodes\n" );
1518 Abc_Print( -2,
"\t-i : toggles considering fanouts of primary inputs only [default = %s]\n", fUsePis?
"yes":
"no" );
1519 Abc_Print( -2,
"\t-m : toggles printing MFFC sizes instead of fanouts [default = %s]\n", fMffc?
"yes":
"no" );
1520 Abc_Print( -2,
"\t-v : toggles verbose way of printing the stats [default = %s]\n", fVerbose?
"yes":
"no" );
1521 Abc_Print( -2,
"\t-h : print the command usage\n");
1566 Abc_Print( -2,
"usage: print_mffc [-h]\n" );
1567 Abc_Print( -2,
"\t prints the MFFC of each node in the network\n" );
1568 Abc_Print( -2,
"\t-h : print the command usage\n");
1615 Abc_Print( -1,
"Printing factored forms can be done for SOP networks.\n" );
1621 Abc_Print( -1,
"Wrong number of auguments.\n" );
1628 if ( pNode == NULL )
1630 Abc_Print( -1,
"Cannot find node \"%s\".\n", argv[globalUtilOptind] );
1641 Abc_Print( -2,
"usage: print_factor [-nh] <node>\n" );
1642 Abc_Print( -2,
"\t prints the factored forms of nodes\n" );
1643 Abc_Print( -2,
"\t-n : toggles real/dummy fanin names [default = %s]\n", fUseRealNames?
"real":
"dummy" );
1644 Abc_Print( -2,
"\t-h : print the command usage\n");
1645 Abc_Print( -2,
"\tnode : (optional) one node to consider\n");
1702 Abc_Print( -1,
"This command works only for AIGs (run \"strash\").\n" );
1708 Abc_Print( -1,
"Wrong number of auguments.\n" );
1715 if ( pNode == NULL )
1717 Abc_Print( -1,
"Cannot find node \"%s\".\n", argv[globalUtilOptind] );
1728 Abc_Print( -2,
"usage: print_level [-npvh] <node>\n" );
1729 Abc_Print( -2,
"\t prints information about node level and cone size\n" );
1730 Abc_Print( -2,
"\t-n : toggles printing nodes by levels [default = %s]\n", fListNodes?
"yes":
"no" );
1731 Abc_Print( -2,
"\t-p : toggles printing level profile [default = %s]\n", fProfile?
"yes":
"no" );
1732 Abc_Print( -2,
"\t-v : enable verbose output [default = %s].\n", fVerbose?
"yes":
"no" );
1733 Abc_Print( -2,
"\t-h : print the command usage\n");
1734 Abc_Print( -2,
"\tnode : (optional) one node to consider\n");
1800 Abc_Print( -1,
"This command works only for combinational networks (run \"comb\").\n" );
1805 Abc_Print( -1,
"This command works only for AIGs (run \"strash\").\n" );
1814 Abc_Print( -2,
"usage: print_supp [-svwh]\n" );
1815 Abc_Print( -2,
"\t prints the supports of the CO nodes\n" );
1816 Abc_Print( -2,
"\t-s : toggle printing structural support only [default = %s].\n", fStruct?
"yes":
"no" );
1817 Abc_Print( -2,
"\t-v : enable verbose output [default = %s].\n", fVerbose?
"yes":
"no" );
1818 Abc_Print( -2,
"\t-w : enable printing CI/CO dependency matrix [default = %s].\n", fVeryVerbose?
"yes":
"no" );
1819 Abc_Print( -2,
"\t-h : print the command usage\n");
1879 Abc_Print( -1,
"This command works only for combinational networks (run \"comb\").\n" );
1893 Abc_Print( -2,
"usage: print_symm [-bnrvh]\n" );
1894 Abc_Print( -2,
"\t computes symmetries of the PO functions\n" );
1895 Abc_Print( -2,
"\t-b : toggle BDD-based or SAT-based computations [default = %s].\n", fUseBdds?
"BDD":
"SAT" );
1896 Abc_Print( -2,
"\t-n : enable naive BDD-based computation [default = %s].\n", fNaive?
"yes":
"no" );
1897 Abc_Print( -2,
"\t-r : enable dynamic BDD variable reordering [default = %s].\n", fReorder?
"yes":
"no" );
1898 Abc_Print( -2,
"\t-v : enable verbose output [default = %s].\n", fVerbose?
"yes":
"no" );
1899 Abc_Print( -2,
"\t-h : print the command usage\n");
1954 Abc_Print( -1,
"This command works only for AIGs (run \"strash\").\n" );
1961 Abc_Print( -2,
"usage: print_unate [-bnvh]\n" );
1962 Abc_Print( -2,
"\t computes unate variables of the PO functions\n" );
1963 Abc_Print( -2,
"\t-b : toggle BDD-based or SAT-based computations [default = %s].\n", fUseBdds?
"BDD":
"SAT" );
1964 Abc_Print( -2,
"\t-n : toggle naive BDD-based computation [default = %s].\n", fUseNaive?
"yes":
"no" );
1965 Abc_Print( -2,
"\t-v : enable verbose output [default = %s].\n", fVerbose?
"yes":
"no" );
1966 Abc_Print( -2,
"\t-h : print the command usage\n");
2002 Abc_Print( -1,
"Command line switch \"-O\" should be followed by an integer.\n" );
2029 Abc_Print( -1,
"This command works only for AIGs (run \"strash\").\n" );
2038 Abc_Print( -2,
"usage: print_auto [-O <num>] [-nvh]\n" );
2039 Abc_Print( -2,
"\t computes autosymmetries of the PO functions\n" );
2040 Abc_Print( -2,
"\t-O <num> : (optional) the 0-based number of the output [default = all]\n");
2041 Abc_Print( -2,
"\t-n : enable naive BDD-based computation [default = %s].\n", fNaive?
"yes":
"no" );
2042 Abc_Print( -2,
"\t-v : enable verbose output [default = %s].\n", fVerbose?
"yes":
"no" );
2043 Abc_Print( -2,
"\t-h : print the command usage\n");
2096 Abc_Print( -1,
"Visualization of Karnaugh maps works for logic networks.\n" );
2101 Abc_Print( -1,
"Wrong number of auguments.\n" );
2109 Abc_Print( -1,
"The driver \"%s\" of the first PO is not an internal node.\n",
Abc_ObjName(pNode) );
2116 if ( pNode == NULL )
2118 Abc_Print( -1,
"Cannot find node \"%s\".\n", argv[globalUtilOptind] );
2127 Abc_Print( -2,
"usage: print_kmap [-nh] <node>\n" );
2128 Abc_Print( -2,
"\t shows the truth table of the node\n" );
2129 Abc_Print( -2,
"\t-n : toggles real/dummy fanin names [default = %s]\n", fUseRealNames?
"real":
"dummy" );
2130 Abc_Print( -2,
"\t-h : print the command usage\n");
2131 Abc_Print( -2,
"\t<node>: the node to consider (default = the driver of the first PO)\n");
2178 Abc_Print( -1,
"Printing gates does not work for AIGs and sequential AIGs.\n" );
2186 Abc_Print( -2,
"usage: print_gates [-lh]\n" );
2187 Abc_Print( -2,
"\t prints statistics about gates used in the network\n" );
2188 Abc_Print( -2,
"\t-l : used library gate names (if mapped) [default = %s]\n", fUseLibrary?
"yes":
"no" );
2189 Abc_Print( -2,
"\t-h : print the command usage\n");
2238 Abc_Print( -2,
"usage: print_sharing [-h]\n" );
2239 Abc_Print( -2,
"\t prints the number of shared nodes in the TFI cones of the COs\n" );
2241 Abc_Print( -2,
"\t-h : print the command usage\n");
2290 Abc_Print( -2,
"usage: print_xcut [-h]\n" );
2291 Abc_Print( -2,
"\t prints the size of the cross cut of the current network\n" );
2293 Abc_Print( -2,
"\t-h : print the command usage\n");
2317 extern void Kit_DsdTest(
unsigned * pTruth,
int nVars );
2334 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
2339 if ( nCofLevel < 0 )
2366 Abc_Print( -1,
"Currently works only for logic networks.\n" );
2377 Abc_Print( -1,
"The fanin of the first PO node does not have a logic function.\n" );
2382 Abc_Print( -1,
"Currently works only for up to 16 inputs.\n" );
2400 else if ( fCofactor )
2409 Abc_Print( -2,
"usage: print_dsd [-pcdh] [-N <num>]\n" );
2410 Abc_Print( -2,
"\t print DSD formula for a single-output function with less than 16 variables\n" );
2411 Abc_Print( -2,
"\t-p : toggle printing profile [default = %s]\n", fProfile?
"yes":
"no" );
2412 Abc_Print( -2,
"\t-c : toggle recursive cofactoring [default = %s]\n", fCofactor?
"yes":
"no" );
2413 Abc_Print( -2,
"\t-d : toggle printing decompositions [default = %s]\n", fPrintDec?
"yes":
"no" );
2414 Abc_Print( -2,
"\t-N <num> : the number of levels to cofactor [default = %d]\n", nCofLevel );
2415 Abc_Print( -2,
"\t-h : print the command usage\n");
2459 Abc_Print( -1,
"The network is combinational.\n" );
2466 Abc_Print( -2,
"usage: print_cone [-h]\n" );
2467 Abc_Print( -2,
"\t prints cones of influence info for each primary output\n" );
2469 Abc_Print( -2,
"\t-h : print the command usage\n");
2516 Abc_Print( -1,
"The network is should be structurally hashed.\n" );
2523 Abc_Print( -2,
"usage: print_miter [-h]\n" );
2524 Abc_Print( -2,
"\t prints the status of the miter\n" );
2525 Abc_Print( -2,
"\t-h : print the command usage\n");
2558 Abc_Print( 1,
"Status = %d Frames = %d ", pAbc->Status, pAbc->nFrames );
2559 if ( pAbc->pCex == NULL && pAbc->vCexVec == NULL )
2565 if ( pAbc->vCexVec )
2573 if ( pTemp == (
void *)(ABC_PTRINT_T)1 )
2580 printf(
"%4d : ", ++nCexes );
2585 printf(
"In total, %d (out of %d) outputs are \"sat\" but CEXes are not recorded.\n", Counter,
Vec_PtrSize(pAbc->vCexVec) );
2588 if ( pAbc->vStatuses )
2592 printf(
"Status array contains %d SAT, %d UNSAT, and %d UNDEC entries (out of %d).",
2600 printf(
"%d=%d ", i, Entry );
2607 Abc_Print( -2,
"usage: print_status [-sh]\n" );
2608 Abc_Print( -2,
"\t prints verification status\n" );
2609 Abc_Print( -2,
"\t-s : toggle using short print-out [default = %s]\n", fShort?
"yes":
"no" );
2610 Abc_Print( -2,
"\t-h : print the command usage\n");
2628 Abc_Obj_t * pObjIn = NULL, * pObjOut = NULL;
2649 Abc_Print( -1,
"Delay trace works only for network mapped into standard cells.\n" );
2654 Abc_Print( -1,
"Wrong number of auguments.\n" );
2665 if ( pObjOut == NULL )
2667 Abc_Print( 1,
"Cannot find combinational output \"%s\".\n", argv[globalUtilOptind] );
2679 if ( pObjIn == NULL )
2689 Abc_Print( -2,
"usage: print_delay [-h] <CO_name> <CI_name>\n" );
2690 Abc_Print( -2,
"\t prints one critical path of the mapped network\n" );
2691 Abc_Print( -2,
"\t-h : print the command usage\n");
2692 Abc_Print( -2,
"\t<CO_name> : (optional) the sink of the critical path (primary output or flop input)\n");
2693 Abc_Print( -2,
"\t<CI_name> : (optional) the source of the critical path (primary input or flop output)\n");
2694 Abc_Print( -2,
"\t (if CO and/or CI are not given, uses the most critical ones)\n");
2756 Abc_NtkShow( pNtk, fGateNames, fSeq, fUseReverse );
2760 Abc_Print( -2,
"usage: show [-srgfh]\n" );
2761 Abc_Print( -2,
" visualizes the network structure using DOT and GSVIEW\n" );
2763 Abc_Print( -2,
" \"dot.exe\" and \"gsview32.exe\" should be set in the paths\n" );
2764 Abc_Print( -2,
" (\"gsview32.exe\" may be in \"C:\\Program Files\\Ghostgum\\gsview\\\")\n" );
2766 Abc_Print( -2,
"\t-s : toggles visualization of sequential networks [default = %s].\n", fSeq?
"yes":
"no" );
2767 Abc_Print( -2,
"\t-r : toggles ordering nodes in reverse order [default = %s].\n", fUseReverse?
"yes":
"no" );
2768 Abc_Print( -2,
"\t-g : toggles printing gate names for mapped network [default = %s].\n", fGateNames?
"yes":
"no" );
2769 Abc_Print( -2,
"\t-f : toggles visualizing flop dependency graph [default = %s].\n", fFlopDep?
"yes":
"no" );
2770 Abc_Print( -2,
"\t-h : print the command usage\n");
2813 Abc_Print( -1,
"Visualizing BDDs can only be done for logic BDD networks (run \"bdd\").\n" );
2819 Abc_Print( -1,
"Wrong number of auguments.\n" );
2827 Abc_Print( -1,
"The driver \"%s\" of the first PO is not an internal node.\n",
Abc_ObjName(pNode) );
2834 if ( pNode == NULL )
2836 Abc_Print( -1,
"Cannot find node \"%s\".\n", argv[globalUtilOptind] );
2844 Abc_Print( -2,
"usage: show_bdd [-h] <node>\n" );
2845 Abc_Print( -2,
" visualizes the BDD of a node using DOT and GSVIEW\n" );
2847 Abc_Print( -2,
" \"dot.exe\" and \"gsview32.exe\" should be set in the paths\n" );
2848 Abc_Print( -2,
" (\"gsview32.exe\" may be in \"C:\\Program Files\\Ghostgum\\gsview\\\")\n" );
2850 Abc_Print( -2,
"\t<node>: the node to consider [default = the driver of the first PO]\n");
2851 Abc_Print( -2,
"\t-h : print the command usage\n");
2886 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
2891 if ( nNodeSizeMax < 0 )
2895 if ( globalUtilOptind >= argc )
2897 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
2900 nConeSizeMax = atoi(argv[globalUtilOptind]);
2902 if ( nConeSizeMax < 0 )
2920 Abc_Print( -1,
"Visualizing cuts only works for AIGs (run \"strash\").\n" );
2925 Abc_Print( -1,
"Wrong number of auguments.\n" );
2930 if ( pNode == NULL )
2932 Abc_Print( -1,
"Cannot find node \"%s\".\n", argv[globalUtilOptind] );
2939 Abc_Print( -2,
"usage: show_cut [-N <num>] [-C <num>] [-h] <node>\n" );
2940 Abc_Print( -2,
" visualizes the cut of a node using DOT and GSVIEW\n" );
2942 Abc_Print( -2,
" \"dot.exe\" and \"gsview32.exe\" should be set in the paths\n" );
2943 Abc_Print( -2,
" (\"gsview32.exe\" may be in \"C:\\Program Files\\Ghostgum\\gsview\\\")\n" );
2945 Abc_Print( -2,
"\t-N <num> : the max size of the cut to be computed [default = %d]\n", nNodeSizeMax );
2946 Abc_Print( -2,
"\t-C <num> : the max support of the containing cone [default = %d]\n", nConeSizeMax );
2947 Abc_Print( -2,
"\t<node> : the node to consider\n");
2948 Abc_Print( -2,
"\t-h : print the command usage\n");
2987 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
2992 if ( fBddSizeMax < 0 )
3019 Abc_Print( -1,
"Can only collapse a logic network or an AIG.\n" );
3025 pNtkRes =
Abc_NtkCollapse( pNtk, fBddSizeMax, fDualRail, fReorder, fVerbose );
3029 pNtkRes =
Abc_NtkCollapse( pNtk, fBddSizeMax, fDualRail, fReorder, fVerbose );
3032 if ( pNtkRes == NULL )
3034 Abc_Print( -1,
"Collapsing has failed.\n" );
3042 Abc_Print( -2,
"usage: collapse [-B <num>] [-rdvh]\n" );
3043 Abc_Print( -2,
"\t collapses the network by constructing global BDDs\n" );
3044 Abc_Print( -2,
"\t-B <num>: limit on live BDD nodes during collapsing [default = %d]\n", fBddSizeMax );
3045 Abc_Print( -2,
"\t-r : toggles dynamic variable reordering [default = %s]\n", fReorder?
"yes":
"no" );
3046 Abc_Print( -2,
"\t-d : toggles dual-rail collapsing mode [default = %s]\n", fDualRail?
"yes":
"no" );
3047 Abc_Print( -2,
"\t-v : print verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
3048 Abc_Print( -2,
"\t-h : print the command usage\n");
3110 pNtkRes =
Abc_NtkStrash( pNtk, fAllNodes, fCleanup, fRecord );
3111 if ( pNtkRes == NULL )
3113 Abc_Print( -1,
"Strashing has failed.\n" );
3124 Abc_Print( -2,
"usage: strash [-acrih]\n" );
3125 Abc_Print( -2,
"\t transforms combinational logic into an AIG\n" );
3126 Abc_Print( -2,
"\t-a : toggles between using all nodes and DFS nodes [default = %s]\n", fAllNodes?
"all":
"DFS" );
3127 Abc_Print( -2,
"\t-c : toggles cleanup to remove the dagling AIG nodes [default = %s]\n", fCleanup?
"all":
"DFS" );
3128 Abc_Print( -2,
"\t-r : toggles using the record of AIG subgraphs [default = %s]\n", fRecord?
"yes":
"no" );
3129 Abc_Print( -2,
"\t-i : toggles complementing the POs of the AIG [default = %s]\n", fComplOuts?
"yes":
"no" );
3130 Abc_Print( -2,
"\t-h : print the command usage\n");
3147 Abc_Ntk_t * pNtk, * pNtkRes, * pNtkTemp;
3200 pNtkRes =
Abc_NtkBalance( pNtk, fDuplicate, fSelective, fUpdateLevel );
3205 if ( pNtkTemp == NULL )
3207 Abc_Print( -1,
"Strashing before balancing has failed.\n" );
3213 pNtkRes =
Abc_NtkBalance( pNtkTemp, fDuplicate, fSelective, fUpdateLevel );
3218 if ( pNtkRes == NULL )
3220 Abc_Print( -1,
"Balancing has failed.\n" );
3228 Abc_Print( -2,
"usage: balance [-ldsxvh]\n" );
3229 Abc_Print( -2,
"\t transforms the current network into a well-balanced AIG\n" );
3230 Abc_Print( -2,
"\t-l : toggle minimizing the number of levels [default = %s]\n", fUpdateLevel?
"yes":
"no" );
3231 Abc_Print( -2,
"\t-d : toggle duplication of logic [default = %s]\n", fDuplicate?
"yes":
"no" );
3232 Abc_Print( -2,
"\t-s : toggle duplication on the critical paths [default = %s]\n", fSelective?
"yes":
"no" );
3233 Abc_Print( -2,
"\t-x : toggle balancing multi-input EXORs [default = %s]\n", fExor?
"yes":
"no" );
3234 Abc_Print( -2,
"\t-v : print verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
3235 Abc_Print( -2,
"\t-h : print the command usage\n");
3284 Abc_Print( -1,
"Does not work for a logic network.\n" );
3290 if ( pNtkRes == NULL )
3292 Abc_Print( -1,
"MUX restructuring has failed.\n" );
3300 Abc_Print( -2,
"usage: mux_struct [-vh]\n" );
3301 Abc_Print( -2,
"\t performs MUX restructuring of the current network\n" );
3302 Abc_Print( -2,
"\t-v : print verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
3303 Abc_Print( -2,
"\t-h : print the command usage\n");
3321 int nThresh, nFaninMax, c;
3345 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
3354 if ( globalUtilOptind >= argc )
3356 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
3359 nFaninMax = atoi(argv[globalUtilOptind]);
3361 if ( nFaninMax < 0 )
3390 Abc_Print( -1,
"Cannot renode a network that is not an AIG (run \"strash\").\n" );
3395 pNtkRes =
Abc_NtkMulti( pNtk, nThresh, nFaninMax, fCnf, fMulti, fSimple, fFactor );
3396 if ( pNtkRes == NULL )
3398 Abc_Print( -1,
"Renoding has failed.\n" );
3406 Abc_Print( -2,
"usage: multi [-TF <num>] [-msfch]\n" );
3407 Abc_Print( -2,
"\t transforms an AIG into a logic network by creating larger nodes\n" );
3408 Abc_Print( -2,
"\t-F <num>: the maximum fanin size after renoding [default = %d]\n", nFaninMax );
3409 Abc_Print( -2,
"\t-T <num>: the threshold for AIG node duplication [default = %d]\n", nThresh );
3410 Abc_Print( -2,
"\t (an AIG node is the root of a new node after renoding\n" );
3411 Abc_Print( -2,
"\t if this leads to duplication of no more than %d AIG nodes,\n", nThresh );
3412 Abc_Print( -2,
"\t that is, if [(numFanouts(Node)-1) * size(MFFC(Node))] <= %d)\n", nThresh );
3413 Abc_Print( -2,
"\t-m : creates multi-input AND graph [default = %s]\n", fMulti?
"yes":
"no" );
3414 Abc_Print( -2,
"\t-s : creates a simple AIG (no renoding) [default = %s]\n", fSimple?
"yes":
"no" );
3415 Abc_Print( -2,
"\t-f : creates a factor-cut network [default = %s]\n", fFactor?
"yes":
"no" );
3416 Abc_Print( -2,
"\t-c : performs renoding to derive the CNF [default = %s]\n", fCnf?
"yes":
"no" );
3417 Abc_Print( -2,
"\t-h : print the command usage\n");
3435 int nLutSize, nCutsMax, c;
3436 int nFlowIters, nAreaIters;
3443 extern Abc_Ntk_t *
Abc_NtkRenode(
Abc_Ntk_t * pNtk,
int nLutSize,
int nCutsMax,
int nFlowIters,
int nAreaIters,
int fArea,
int fUseBdds,
int fUseSops,
int fUseCnfs,
int fUseMv,
int fVerbose );
3466 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
3475 if ( globalUtilOptind >= argc )
3477 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
3480 nCutsMax = atoi(argv[globalUtilOptind]);
3486 if ( globalUtilOptind >= argc )
3488 Abc_Print( -1,
"Command line switch \"-F\" should be followed by a positive integer.\n" );
3491 nFlowIters = atoi(argv[globalUtilOptind]);
3493 if ( nFlowIters < 0 )
3497 if ( globalUtilOptind >= argc )
3499 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a positive integer.\n" );
3502 nAreaIters = atoi(argv[globalUtilOptind]);
3504 if ( nAreaIters < 0 )
3532 if ( fUseBdds + fUseSops + fUseCnfs + fUseMv > 1 )
3534 Abc_Print( -1,
"Cannot optimize two parameters at the same time.\n" );
3540 Abc_Print( -1,
"Incorrect LUT size (%d).\n", nLutSize );
3544 if ( nCutsMax < 1 || nCutsMax >= (1<<12) )
3546 Abc_Print( -1,
"Incorrect number of cuts.\n" );
3557 Abc_Print( -1,
"Cannot renode a network that is not an AIG (run \"strash\").\n" );
3562 pNtkRes =
Abc_NtkRenode( pNtk, nLutSize, nCutsMax, nFlowIters, nAreaIters, fArea, fUseBdds, fUseSops, fUseCnfs, fUseMv, fVerbose );
3563 if ( pNtkRes == NULL )
3565 Abc_Print( -1,
"Renoding has failed.\n" );
3573 Abc_Print( -2,
"usage: renode [-KCFA <num>] [-sbciav]\n" );
3574 Abc_Print( -2,
"\t transforms the AIG into a logic network with larger nodes\n" );
3575 Abc_Print( -2,
"\t while minimizing the number of FF literals of the node SOPs\n" );
3576 Abc_Print( -2,
"\t-K <num>: the max cut size for renoding (2 < num < %d) [default = %d]\n", IF_MAX_FUNC_LUTSIZE+1, nLutSize );
3577 Abc_Print( -2,
"\t-C <num>: the max number of cuts used at a node (0 < num < 2^12) [default = %d]\n", nCutsMax );
3578 Abc_Print( -2,
"\t-F <num>: the number of area flow recovery iterations (num >= 0) [default = %d]\n", nFlowIters );
3579 Abc_Print( -2,
"\t-A <num>: the number of exact area recovery iterations (num >= 0) [default = %d]\n", nAreaIters );
3580 Abc_Print( -2,
"\t-s : toggles minimizing SOP cubes instead of FF lits [default = %s]\n", fUseSops?
"yes":
"no" );
3581 Abc_Print( -2,
"\t-b : toggles minimizing BDD nodes instead of FF lits [default = %s]\n", fUseBdds?
"yes":
"no" );
3582 Abc_Print( -2,
"\t-c : toggles minimizing CNF clauses instead of FF lits [default = %s]\n", fUseCnfs?
"yes":
"no" );
3583 Abc_Print( -2,
"\t-i : toggles minimizing MV-SOP instead of FF lits [default = %s]\n", fUseMv?
"yes":
"no" );
3584 Abc_Print( -2,
"\t-a : toggles area-oriented mapping [default = %s]\n", fArea?
"yes":
"no" );
3585 Abc_Print( -2,
"\t-v : print verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
3586 Abc_Print( -2,
"\t-h : print the command usage\n");
3645 if ( !fCleanupPos && !fCleanupPos )
3647 Abc_Print( -1,
"Cleanup for PIs and POs is not enabled.\n" );
3658 if ( pNtkRes == NULL )
3660 Abc_Print( -1,
"Cleanup has failed.\n" );
3668 Abc_Print( -2,
"usage: cleanup [-iovh]\n" );
3669 Abc_Print( -2,
"\t for logic networks, removes dangling combinatinal logic\n" );
3670 Abc_Print( -2,
"\t for AIGs, removes PIs w/o fanout and POs driven by const-0\n" );
3671 Abc_Print( -2,
"\t-i : toggles removing PIs without fanout [default = %s]\n", fCleanupPis?
"yes":
"no" );
3672 Abc_Print( -2,
"\t-o : toggles removing POs with const-0 drivers [default = %s]\n", fCleanupPos?
"yes":
"no" );
3673 Abc_Print( -2,
"\t-v : print verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
3674 Abc_Print( -2,
"\t-h : print the command usage\n");
3722 Abc_Print( -1,
"The classical (SIS-like) sweep can only be performed on a logic network.\n" );
3733 Abc_Print( -2,
"usage: sweep [-svh]\n" );
3734 Abc_Print( -2,
"\t removes dangling nodes; propagates constant, buffers, inverters\n" );
3735 Abc_Print( -2,
"\t-s : toggle sweeping buffers/inverters only [default = %s]\n", fSingle?
"yes":
"no" );
3736 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
3737 Abc_Print( -2,
"\t-h : print the command usage\n");
3758 int c, fNewAlgo = 1;
3769 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
3774 if ( p->nSingleMax < 0 )
3778 if ( globalUtilOptind >= argc )
3780 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
3783 p->nPairsMax = atoi(argv[globalUtilOptind]);
3785 if ( p->nPairsMax < 0 )
3789 if ( globalUtilOptind >= argc )
3791 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
3794 p->nNodesExt = atoi(argv[globalUtilOptind]);
3796 if ( p->nNodesExt < 0 )
3800 if ( globalUtilOptind >= argc )
3802 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
3805 p->WeightMin = atoi(argv[globalUtilOptind]);
3807 if ( p->WeightMin < 0 )
3811 if ( globalUtilOptind >= argc )
3813 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
3816 p->LitCountMax = atoi(argv[globalUtilOptind]);
3818 if ( p->LitCountMax < 0 )
3840 p->fVeryVerbose ^= 1;
3856 Abc_Print( -1,
"The network does not have internal nodes.\n" );
3861 Abc_Print( -1,
"Fast extract can only be applied to a logic network (run \"renode\" or \"if\").\n" );
3866 Abc_Print( -1,
"Fast extract can only be applied to a logic network with SOP local functions (run \"bdd; sop\").\n" );
3872 Abc_NtkFxPerform( pNtk, p->nNodesExt, p->LitCountMax, p->fVerbose, p->fVeryVerbose );
3879 Abc_Print( -2,
"usage: fx [-SDNWM <num>] [-sdzcnvwh]\n");
3880 Abc_Print( -2,
"\t performs unate fast extract on the current network\n");
3881 Abc_Print( -2,
"\t-S <num> : max number of single-cube divisors to consider [default = %d]\n", p->nSingleMax );
3882 Abc_Print( -2,
"\t-D <num> : max number of double-cube divisors to consider [default = %d]\n", p->nPairsMax );
3883 Abc_Print( -2,
"\t-N <num> : max number of divisors to extract during this run [default = %d]\n", p->nNodesExt );
3884 Abc_Print( -2,
"\t-W <num> : lower bound on the weight of divisors to extract [default = %d]\n", p->WeightMin );
3885 Abc_Print( -2,
"\t-M <num> : upper bound on literal count of divisors to extract [default = %d]\n", p->LitCountMax );
3886 Abc_Print( -2,
"\t-s : use only single-cube divisors [default = %s]\n", p->fOnlyS?
"yes":
"no" );
3887 Abc_Print( -2,
"\t-d : use only double-cube divisors [default = %s]\n", p->fOnlyD?
"yes":
"no" );
3888 Abc_Print( -2,
"\t-z : use zero-weight divisors [default = %s]\n", p->fUse0?
"yes":
"no" );
3889 Abc_Print( -2,
"\t-c : use complement in the binary case [default = %s]\n", p->fUseCompl?
"yes":
"no" );
3890 Abc_Print( -2,
"\t-n : use new implementation of fast extract [default = %s]\n", fNewAlgo?
"yes":
"no" );
3891 Abc_Print( -2,
"\t-v : print verbose information [default = %s]\n", p->fVerbose?
"yes":
"no" );
3892 Abc_Print( -2,
"\t-w : print additional information [default = %s]\n", p->fVeryVerbose?
"yes":
"no" );
3893 Abc_Print( -2,
"\t-h : print the command usage\n");
3939 Abc_Print( -1,
"Command line switch \"-V\" should be followed by an integer that is -1 or larger.\n" );
3944 if ( ElimValue < -1 )
3948 if ( globalUtilOptind >= argc )
3950 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a positive integer.\n" );
3953 nMaxSize = atoi(argv[globalUtilOptind]);
3955 if ( nMaxSize <= 0 )
3959 if ( globalUtilOptind >= argc )
3961 Abc_Print( -1,
"Command line switch \"-I\" should be followed by a positive integer.\n" );
3964 nIterMax = atoi(argv[globalUtilOptind]);
3966 if ( nIterMax <= 0 )
3997 Abc_Print( -1,
"The network does not have internal nodes.\n" );
4003 Abc_Print( -1,
"This command can only be applied to a logic network (run \"renode\" or \"if\").\n" );
4016 Abc_Print( -2,
"usage: eliminate [-VNI <num>] [-grsvh]\n");
4017 Abc_Print( -2,
"\t traditional \"eliminate -1\", which collapses the node into its fanout\n");
4018 Abc_Print( -2,
"\t if the node's variable appears in the fanout's factored form only once\n");
4019 Abc_Print( -2,
"\t-V <num> : the \"value\" parameter used by \"eliminate\" in SIS [default = %d]\n", ElimValue );
4020 Abc_Print( -2,
"\t-N <num> : the maximum node support after collapsing [default = %d]\n", nMaxSize );
4021 Abc_Print( -2,
"\t-I <num> : the maximum number of iterations [default = %d]\n", nIterMax );
4022 Abc_Print( -2,
"\t-g : toggle using greedy eliminate (without \"value\") [default = %s]\n", fGreedy?
"yes":
"no" );
4023 Abc_Print( -2,
"\t-r : use the reverse topological order [default = %s]\n", fReverse?
"yes":
"no" );
4024 Abc_Print( -2,
"\t-s : toggle eliminating similar nodes [default = %s]\n", fSpecial?
"yes":
"no" );
4025 Abc_Print( -2,
"\t-v : print verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
4026 Abc_Print( -2,
"\t-h : print the command usage\n");
4044 int fGlobal, fRecursive, fVerbose, fPrint, fShort, c;
4104 if ( pNtkRes == NULL )
4106 Abc_Print( -1,
"Global DSD has failed.\n" );
4112 else if ( fRecursive )
4116 Abc_Print( -1,
"This command is only applicable to logic BDD networks.\n" );
4120 Abc_Print( 1,
"Performing recursive DSD and MUX decomposition of local functions.\n" );
4122 Abc_Print( -1,
"Recursive DSD has failed.\n" );
4128 Abc_Print( -1,
"This command is only applicable to logic BDD networks (run \"bdd\").\n" );
4132 Abc_Print( 1,
"Performing simple non-recursive DSD of local functions.\n" );
4134 Abc_Print( -1,
"Simple DSD of local functions has failed.\n" );
4139 Abc_Print( -2,
"usage: dsd [-grvpsh]\n" );
4140 Abc_Print( -2,
"\t decomposes the network using disjoint-support decomposition\n" );
4141 Abc_Print( -2,
"\t-g : toggle DSD of global and local functions [default = %s]\n", fGlobal?
"global":
"local" );
4142 Abc_Print( -2,
"\t-r : toggle recursive DSD/MUX and simple DSD [default = %s]\n", fRecursive?
"recursive DSD/MUX":
"simple DSD" );
4143 Abc_Print( -2,
"\t-v : prints DSD statistics and runtime [default = %s]\n", fVerbose?
"yes":
"no" );
4144 Abc_Print( -2,
"\t-p : prints DSD structure to the standard output [default = %s]\n", fPrint?
"yes":
"no" );
4145 Abc_Print( -2,
"\t-s : use short PI names when printing DSD structure [default = %s]\n", fShort?
"yes":
"no" );
4146 Abc_Print( -2,
"\t-h : print the command usage\n");
4165 int nPerc, fVerbose, c;
4177 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
4182 if ( nPerc < 1 || nPerc > 100 )
4203 Abc_Print( -1,
"This command is only applicable to logic BDD networks (run \"bdd\").\n" );
4208 Abc_Print( -1,
"The number of primary inputs is more than 16.\n" );
4212 if ( pNtkNew == NULL )
4214 Abc_Print( -1,
"Command has failed.\n" );
4222 Abc_Print( -2,
"usage: sparsify [-N num] [-vh]\n" );
4223 Abc_Print( -2,
"\t creates incompletely-specified function\n" );
4224 Abc_Print( -2,
"\t-N <num> : the percentage of on-set and off-set minterms (1 <= num <= 100) [default = %d]\n", nPerc );
4225 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
4226 Abc_Print( -2,
"\t-h : print the command usage\n");
4250 pPars->nLutsMax = 4;
4251 pPars->nLutsOver = 3;
4252 pPars->nVarsShared = 0;
4253 pPars->nGrowthLevel = 0;
4255 pPars->fZeroCost = 0;
4257 pPars->fOldAlgo = 0;
4258 pPars->fVerbose = 0;
4259 pPars->fVeryVerbose = 0;
4268 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
4273 if ( pPars->nLutsMax < 2 || pPars->nLutsMax > 8 )
4277 if ( globalUtilOptind >= argc )
4279 Abc_Print( -1,
"Command line switch \"-Q\" should be followed by an integer.\n" );
4282 pPars->nLutsOver = atoi(argv[globalUtilOptind]);
4284 if ( pPars->nLutsOver < 0 || pPars->nLutsOver > 8 )
4288 if ( globalUtilOptind >= argc )
4290 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
4293 pPars->nVarsShared = atoi(argv[globalUtilOptind]);
4295 if ( pPars->nVarsShared < 0 || pPars->nVarsShared > 4 )
4299 if ( globalUtilOptind >= argc )
4301 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
4304 pPars->nGrowthLevel = atoi(argv[globalUtilOptind]);
4306 if ( pPars->nGrowthLevel < 0 || pPars->nGrowthLevel >
ABC_INFINITY )
4313 pPars->fZeroCost ^= 1;
4319 pPars->fOldAlgo ^= 1;
4322 pPars->fVerbose ^= 1;
4325 pPars->fVeryVerbose ^= 1;
4341 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
4344 if ( pPars->nVarsShared < 0 || pPars->nVarsShared > 3 )
4346 Abc_Print( -1,
"The number of shared variables (%d) is not in the range 0 <= S <= 3.\n", pPars->nVarsShared );
4353 Abc_Print( -1,
"Resynthesis has failed.\n" );
4359 Abc_Print( -2,
"usage: lutpack [-NQSL <num>] [-szfovwh]\n" );
4360 Abc_Print( -2,
"\t performs \"rewriting\" for LUT network;\n" );
4361 Abc_Print( -2,
"\t determines LUT size as the max fanin count of a node;\n" );
4362 Abc_Print( -2,
"\t if the network is not LUT-mapped, packs it into 6-LUTs\n" );
4363 Abc_Print( -2,
"\t (there is another command for resynthesis after LUT mapping, \"imfs\")\n" );
4364 Abc_Print( -2,
"\t-N <num> : the max number of LUTs in the structure (2 <= num) [default = %d]\n", pPars->nLutsMax );
4365 Abc_Print( -2,
"\t-Q <num> : the max number of LUTs not in MFFC (0 <= num) [default = %d]\n", pPars->nLutsOver );
4366 Abc_Print( -2,
"\t-S <num> : the max number of LUT inputs shared (0 <= num <= 3) [default = %d]\n", pPars->nVarsShared );
4367 Abc_Print( -2,
"\t-L <num> : max level increase after resynthesis (0 <= num) [default = %d]\n", pPars->nGrowthLevel );
4368 Abc_Print( -2,
"\t-s : toggle iteration till saturation [default = %s]\n", pPars->fSatur?
"yes":
"no" );
4369 Abc_Print( -2,
"\t-z : toggle zero-cost replacements [default = %s]\n", pPars->fZeroCost?
"yes":
"no" );
4370 Abc_Print( -2,
"\t-f : toggle using only first node and first cut [default = %s]\n", pPars->fFirst?
"yes":
"no" );
4371 Abc_Print( -2,
"\t-o : toggle using old implementation [default = %s]\n", pPars->fOldAlgo?
"yes":
"no" );
4372 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
4373 Abc_Print( -2,
"\t-w : toggle detailed printout of decomposed functions [default = %s]\n", pPars->fVeryVerbose?
"yes":
"no" );
4374 Abc_Print( -2,
"\t-h : print the command usage\n");
4409 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
4431 if ( pNtkRes == NULL )
4433 Abc_Print( -1,
"The command has failed.\n" );
4441 Abc_Print( -2,
"usage: lutmin [-K <num>] [-vh]\n" );
4442 Abc_Print( -2,
"\t perform FPGA mapping while minimizing the LUT count\n" );
4443 Abc_Print( -2,
"\t as described in the paper T. Sasao and A. Mishchenko:\n" );
4444 Abc_Print( -2,
"\t \"On the number of LUTs to implement logic functions\".\n" );
4445 Abc_Print( -2,
"\t-K <num> : the LUT size to use for the mapping (2 <= num) [default = %d]\n", nLutSize );
4446 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
4447 Abc_Print( -2,
"\t-h : print the command usage\n");
4464 int Abc_CommandImfs(
Abc_Frame_t * pAbc,
int argc,
char ** argv )
4471 pPars->nWindow = 62;
4473 pPars->nSimWords = 4;
4474 pPars->nGrowthLevel = 0;
4476 pPars->fVerbose = 0;
4477 pPars->fVeryVerbose = 0;
4486 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
4491 if ( pPars->nWindow < 1 || pPars->nWindow > 99 )
4497 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
4502 if ( pPars->nSimWords < 1 || pPars->nSimWords > 256 )
4508 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
4513 if ( pPars->nCands < 0 || pPars->nCands >
ABC_INFINITY )
4519 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
4524 if ( pPars->nGrowthLevel < 0 || pPars->nGrowthLevel >
ABC_INFINITY )
4531 pPars->fVerbose ^= 1;
4534 pPars->fVeryVerbose ^= 1;
4550 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
4557 Abc_Print( -1,
"Resynthesis has failed.\n" );
4563 Abc_Print( -2,
"usage: imfs [-W <NM>] [-LCS <num>] [-avwh]\n" );
4564 Abc_Print( -2,
"\t performs resubstitution-based resynthesis with interpolation\n" );
4565 Abc_Print( -2,
"\t (there is another command for resynthesis after LUT mapping, \"lutpack\")\n" );
4566 Abc_Print( -2,
"\t-W <NM> : fanin/fanout levels (NxM) of the window (00 <= NM <= 99) [default = %d%d]\n", pPars->nWindow/10, pPars->nWindow%10 );
4567 Abc_Print( -2,
"\t-C <num> : the max number of resub candidates (1 <= n) [default = %d]\n", pPars->nCands );
4568 Abc_Print( -2,
"\t-S <num> : the number of simulation words (1 <= n <= 256) [default = %d]\n", pPars->nSimWords );
4569 Abc_Print( -2,
"\t-L <num> : the max increase in node level after resynthesis (0 <= num) [default = %d]\n", pPars->nGrowthLevel );
4570 Abc_Print( -2,
"\t-a : toggle optimization for area only [default = %s]\n", pPars->fArea?
"yes":
"no" );
4571 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
4572 Abc_Print( -2,
"\t-w : toggle printout subgraph statistics [default = %s]\n", pPars->fVeryVerbose?
"yes":
"no" );
4573 Abc_Print( -2,
"\t-h : print the command usage\n");
4598 while ( ( c =
Extra_UtilGetopt( argc, argv,
"WFDMLCdraestpgvwh" ) ) != EOF )
4605 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
4610 if ( pPars->nWinTfoLevs < 0 )
4614 if ( globalUtilOptind >= argc )
4616 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
4619 pPars->nFanoutsMax = atoi(argv[globalUtilOptind]);
4621 if ( pPars->nFanoutsMax < 0 )
4625 if ( globalUtilOptind >= argc )
4627 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
4630 pPars->nDepthMax = atoi(argv[globalUtilOptind]);
4632 if ( pPars->nDepthMax < 0 )
4636 if ( globalUtilOptind >= argc )
4638 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
4641 pPars->nWinMax = atoi(argv[globalUtilOptind]);
4643 if ( pPars->nWinMax < 0 )
4647 if ( globalUtilOptind >= argc )
4649 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
4652 pPars->nGrowthLevel = atoi(argv[globalUtilOptind]);
4654 if ( pPars->nGrowthLevel < 0 || pPars->nGrowthLevel >
ABC_INFINITY )
4658 if ( globalUtilOptind >= argc )
4660 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
4663 pPars->nBTLimit = atoi(argv[globalUtilOptind]);
4665 if ( pPars->nBTLimit < 0 )
4669 pPars->fRrOnly ^= 1;
4678 pPars->fMoreEffort ^= 1;
4681 pPars->fSwapEdge ^= 1;
4684 pPars->fOneHotness ^= 1;
4690 pPars->fGiaSat ^= 1;
4693 pPars->fVerbose ^= 1;
4696 pPars->fVeryVerbose ^= 1;
4712 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
4719 Abc_Print( -1,
"Resynthesis has failed.\n" );
4725 Abc_Print( -2,
"usage: mfs [-WFDMLC <num>] [-draestpgvh]\n" );
4726 Abc_Print( -2,
"\t performs don't-care-based optimization of logic networks\n" );
4727 Abc_Print( -2,
"\t-W <num> : the number of levels in the TFO cone (0 <= num) [default = %d]\n", pPars->nWinTfoLevs );
4728 Abc_Print( -2,
"\t-F <num> : the max number of fanouts to skip (1 <= num) [default = %d]\n", pPars->nFanoutsMax );
4729 Abc_Print( -2,
"\t-D <num> : the max depth nodes to try (0 = no limit) [default = %d]\n", pPars->nDepthMax );
4730 Abc_Print( -2,
"\t-M <num> : the max node count of windows to consider (0 = no limit) [default = %d]\n", pPars->nWinMax );
4731 Abc_Print( -2,
"\t-L <num> : the max increase in node level after resynthesis (0 <= num) [default = %d]\n", pPars->nGrowthLevel );
4732 Abc_Print( -2,
"\t-C <num> : the max number of conflicts in one SAT run (0 = no limit) [default = %d]\n", pPars->nBTLimit );
4733 Abc_Print( -2,
"\t-d : toggle performing redundancy removal [default = %s]\n", pPars->fRrOnly?
"yes":
"no" );
4734 Abc_Print( -2,
"\t-r : toggle resubstitution and dc-minimization [default = %s]\n", pPars->fResub?
"resub":
"dc-min" );
4735 Abc_Print( -2,
"\t-a : toggle minimizing area or area+edges [default = %s]\n", pPars->fArea?
"area":
"area+edges" );
4736 Abc_Print( -2,
"\t-e : toggle high-effort resubstitution [default = %s]\n", pPars->fMoreEffort?
"yes":
"no" );
4737 Abc_Print( -2,
"\t-s : toggle evaluation of edge swapping [default = %s]\n", pPars->fSwapEdge?
"yes":
"no" );
4738 Abc_Print( -2,
"\t-t : toggle using artificial one-hotness conditions [default = %s]\n", pPars->fOneHotness?
"yes":
"no" );
4739 Abc_Print( -2,
"\t-p : toggle power-aware optimization [default = %s]\n", pPars->fPower?
"yes":
"no" );
4740 Abc_Print( -2,
"\t-g : toggle using new SAT solver [default = %s]\n", pPars->fGiaSat?
"yes":
"no" );
4741 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
4742 Abc_Print( -2,
"\t-w : toggle printing detailed stats for each node [default = %s]\n", pPars->fVeryVerbose?
"yes":
"no" );
4743 Abc_Print( -2,
"\t-h : print the command usage\n");
4764 int c, fIndDCs = 0, fUseAllFfs = 0, nFramesAdd = 0;
4768 while ( ( c =
Extra_UtilGetopt( argc, argv,
"WFDMLCZNIdaeijvwh" ) ) != EOF )
4775 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
4784 if ( globalUtilOptind >= argc )
4786 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
4789 pPars->
nFanoutMax = atoi(argv[globalUtilOptind]);
4795 if ( globalUtilOptind >= argc )
4797 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
4800 pPars->
nDepthMax = atoi(argv[globalUtilOptind]);
4806 if ( globalUtilOptind >= argc )
4808 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
4811 pPars->
nWinSizeMax = atoi(argv[globalUtilOptind]);
4817 if ( globalUtilOptind >= argc )
4819 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
4828 if ( globalUtilOptind >= argc )
4830 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
4833 pPars->
nBTLimit = atoi(argv[globalUtilOptind]);
4839 if ( globalUtilOptind >= argc )
4841 Abc_Print( -1,
"Command line switch \"-Z\" should be followed by an integer.\n" );
4844 pPars->
nFirstFixed = atoi(argv[globalUtilOptind]);
4850 if ( globalUtilOptind >= argc )
4852 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
4855 pPars->
nNodesMax = atoi(argv[globalUtilOptind]);
4861 if ( globalUtilOptind >= argc )
4863 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
4866 nFramesAdd = atoi(argv[globalUtilOptind]);
4868 if ( nFramesAdd < 0 )
4905 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
4912 pAbc->nIndFrames = 1;
4917 if ( pAbc->nIndFrames <= 0 )
4919 Abc_Print( -1,
"The number of k-inductive frames is not specified.\n" );
4922 if ( pAbc->vIndFlops == NULL )
4924 Abc_Print( -1,
"The set of k-inductive flops is not specified.\n" );
4929 Abc_Print( -1,
"The saved flop count (%d) does not match that of the current network (%d).\n",
4936 Abc_Print( -1,
"Resynthesis has failed.\n" );
4941 pAbc->nIndFrames = 0;
4950 Abc_Print( -1,
"Resynthesis has failed.\n" );
4957 Abc_Print( -2,
"usage: mfs2 [-WFDMLCZNI <num>] [-daeijvwh]\n" );
4958 Abc_Print( -2,
"\t performs don't-care-based optimization of logic networks\n" );
4959 Abc_Print( -2,
"\t-W <num> : the number of levels in the TFO cone (0 <= num) [default = %d]\n", pPars->
nTfoLevMax );
4960 Abc_Print( -2,
"\t-F <num> : the max number of fanouts to skip (1 <= num) [default = %d]\n", pPars->
nFanoutMax );
4961 Abc_Print( -2,
"\t-D <num> : the max depth nodes to try (0 = no limit) [default = %d]\n", pPars->
nDepthMax );
4962 Abc_Print( -2,
"\t-M <num> : the max node count of windows to consider (0 = no limit) [default = %d]\n", pPars->
nWinSizeMax );
4963 Abc_Print( -2,
"\t-L <num> : the max increase in node level after resynthesis (0 <= num) [default = %d]\n", pPars->
nGrowthLevel );
4964 Abc_Print( -2,
"\t-C <num> : the max number of conflicts in one SAT run (0 = no limit) [default = %d]\n", pPars->
nBTLimit );
4965 Abc_Print( -2,
"\t-Z <num> : treat the first <num> logic nodes as fixed (0 = none) [default = %d]\n", pPars->
nFirstFixed );
4966 Abc_Print( -2,
"\t-N <num> : the max number of nodes to try (0 = all) [default = %d]\n", pPars->
nNodesMax );
4967 Abc_Print( -2,
"\t-d : toggle performing redundancy removal [default = %s]\n", pPars->
fRrOnly?
"yes":
"no" );
4968 Abc_Print( -2,
"\t-a : toggle minimizing area or area+edges [default = %s]\n", pPars->
fArea?
"area":
"area+edges" );
4969 Abc_Print( -2,
"\t-e : toggle high-effort resubstitution [default = %s]\n", pPars->
fMoreEffort?
"yes":
"no" );
4970 Abc_Print( -2,
"\t-i : toggle using inductive don't-cares [default = %s]\n", fIndDCs?
"yes":
"no" );
4971 Abc_Print( -2,
"\t-j : toggle using all flops when \"-i\" is enabled [default = %s]\n", fUseAllFfs?
"yes":
"no" );
4972 Abc_Print( -2,
"\t-I : the number of additional frames inserted [default = %d]\n", nFramesAdd );
4973 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
4974 Abc_Print( -2,
"\t-w : toggle printing detailed stats for each node [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
4975 Abc_Print( -2,
"\t-h : print the command usage\n");
5027 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
5036 Abc_Print( -2,
"usage: trace [-lvh]\n" );
5037 Abc_Print( -2,
"\t performs delay trace of LUT-mapped network\n" );
5038 Abc_Print( -2,
"\t-l : toggle using unit- or LUT-library-delay model [default = %s]\n", fUseLutLib?
"lib":
"unit" );
5039 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
5040 Abc_Print( -2,
"\t-h : print the command usage\n");
5081 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
5086 if ( Percentage < 1 || Percentage > 100 )
5090 if ( globalUtilOptind >= argc )
5092 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
5095 Degree = atoi(argv[globalUtilOptind]);
5097 if ( Degree < 1 || Degree > 5 )
5123 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
5128 pNtkRes =
Abc_NtkSpeedup( pNtk, fUseLutLib, Percentage, Degree, fVerbose, fVeryVerbose );
5129 if ( pNtkRes == NULL )
5131 Abc_Print( -1,
"The command has failed.\n" );
5139 Abc_Print( -2,
"usage: speedup [-PN <num>] [-lvwh]\n" );
5140 Abc_Print( -2,
"\t transforms LUT-mapped network into an AIG with choices;\n" );
5141 Abc_Print( -2,
"\t the choices are added to speedup the next round of mapping\n" );
5142 Abc_Print( -2,
"\t-P <num> : delay delta defining critical path for library model [default = %d%%]\n", Percentage );
5143 Abc_Print( -2,
"\t-N <num> : the max critical path degree for resynthesis (0 < num < 6) [default = %d]\n", Degree );
5144 Abc_Print( -2,
"\t-l : toggle using unit- or LUT-library-delay model [default = %s]\n", fUseLutLib?
"lib" :
"unit" );
5145 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
5146 Abc_Print( -2,
"\t-w : toggle printing detailed stats for each node [default = %s]\n", fVeryVerbose?
"yes":
"no" );
5147 Abc_Print( -2,
"\t-h : print the command usage\n");
5188 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
5193 if ( Percentage < 1 || Percentage > 100 )
5197 if ( globalUtilOptind >= argc )
5199 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
5202 Degree = atoi(argv[globalUtilOptind]);
5204 if ( Degree < 1 || Degree > 5 )
5230 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
5235 pNtkRes =
Abc_NtkPowerdown( pNtk, fUseLutLib, Percentage, Degree, fVerbose, fVeryVerbose );
5236 if ( pNtkRes == NULL )
5238 Abc_Print( -1,
"The command has failed.\n" );
5246 Abc_Print( -2,
"usage: powerdown [-PN <num>] [-vwh]\n" );
5247 Abc_Print( -2,
"\t transforms LUT-mapped network into an AIG with choices;\n" );
5248 Abc_Print( -2,
"\t the choices are added to power down the next round of mapping\n" );
5249 Abc_Print( -2,
"\t-P <num> : switching propability delta defining power critical edges [default = %d%%]\n", Percentage );
5250 Abc_Print( -2,
"\t (e.g. 5% means hot wires switch with probability: 0.45 <= p <= 0.50 (max)\n" );
5251 Abc_Print( -2,
"\t-N <num> : the max critical path degree for resynthesis (0 < num < 6) [default = %d]\n", Degree );
5253 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
5254 Abc_Print( -2,
"\t-w : toggle printing detailed stats for each node [default = %s]\n", fVeryVerbose?
"yes":
"no" );
5255 Abc_Print( -2,
"\t-h : print the command usage\n");
5292 Abc_Print( -1,
"Command line switch \"-I\" should be followed by a positive integer.\n" );
5323 Abc_Print( -1,
"This command can only be applied to a logic network.\n" );
5328 pNtkRes =
Abc_NtkAddBuffs( pNtk, fDirect, fReverse, nImprove, fVerbose );
5329 if ( pNtkRes == NULL )
5331 Abc_Print( -1,
"The command has failed.\n" );
5339 Abc_Print( -2,
"usage: addbuffs [-I num] [-drvh]\n" );
5340 Abc_Print( -2,
"\t adds buffers to create balanced CI/CO paths\n" );
5341 Abc_Print( -2,
"\t-I <num> : the number of refinement iterations [default = %d]\n", nImprove );
5342 Abc_Print( -2,
"\t-d : toggle using only CI-to-CO levelized order [default = %s]\n", fDirect?
"yes":
"no" );
5343 Abc_Print( -2,
"\t-r : toggle using only CO-to-C1 levelized order [default = %s]\n", fReverse?
"yes":
"no" );
5344 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
5345 Abc_Print( -2,
"\t-h : print the command usage\n");
5361 int Abc_CommandMerge(
Abc_Frame_t * pAbc,
int argc,
char ** argv )
5387 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
5398 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
5409 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
5420 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
5431 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
5459 Abc_Print( -1,
"Abc_CommandMerge(): There is no mapped network to merge LUTs.\n" );
5468 Abc_Print( -2,
"usage: merge [-NSDLF <num>] [-scwvh]\n" );
5469 Abc_Print( -2,
"\t creates pairs of topologically-related LUTs\n" );
5470 Abc_Print( -2,
"\t-N <num> : the max LUT size for merging (1 < num) [default = %d]\n", pPars->
nMaxLutSize );
5471 Abc_Print( -2,
"\t-S <num> : the max total support size after merging (1 < num) [default = %d]\n", pPars->
nMaxSuppSize );
5472 Abc_Print( -2,
"\t-D <num> : the max distance in terms of LUTs (0 < num) [default = %d]\n", pPars->
nMaxDistance );
5473 Abc_Print( -2,
"\t-L <num> : the max difference in levels (0 <= num) [default = %d]\n", pPars->
nMaxLevelDiff );
5474 Abc_Print( -2,
"\t-F <num> : the max number of fanouts to stop traversal (0 < num) [default = %d]\n", pPars->
nMaxFanout );
5475 Abc_Print( -2,
"\t-s : toggle the use of nodes without support overlap [default = %s]\n", pPars->
fUseDiffSupp?
"yes" :
"no" );
5476 Abc_Print( -2,
"\t-c : toggle the use of TFI/TFO nodes as candidates [default = %s]\n", pPars->
fUseTfiTfo?
"yes" :
"no" );
5477 Abc_Print( -2,
"\t-w : toggle printing detailed stats for each node [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
5478 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
5479 Abc_Print( -2,
"\t-h : print the command usage\n");
5499 extern int Abc_DecTest(
char * pFileName,
int DecType,
int nVarNum,
int fVerbose );
5513 Abc_Print( -1,
"Command line switch \"-A\" should be followed by an integer.\n" );
5522 if ( globalUtilOptind >= argc )
5524 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
5527 nVarNum = atoi(argv[globalUtilOptind]);
5543 Abc_Print( 1,
"Input file is not given.\n" );
5546 if ( nVarNum >= 0 && nVarNum < 6 )
5548 Abc_Print( 1,
"The number of variables cannot be less than 6.\n" );
5554 Abc_DecTest( pFileName, DecType, nVarNum, fVerbose );
5558 Abc_Print( -2,
"usage: testdec [-AN <num>] [-vh] <file>\n" );
5559 Abc_Print( -2,
"\t testbench for Boolean decomposition algorithms\n" );
5560 Abc_Print( -2,
"\t-A <num> : decomposition algorithm [default = %d]\n", DecType );
5561 Abc_Print( -2,
"\t 0: none (reading and writing the file)\n" );
5562 Abc_Print( -2,
"\t 1: algebraic factoring applied to ISOP\n" );
5563 Abc_Print( -2,
"\t 2: bi-decomposition with cofactoring\n" );
5564 Abc_Print( -2,
"\t 3: disjoint-support decomposition with cofactoring\n" );
5565 Abc_Print( -2,
"\t 4: updated disjoint-support decomposition with cofactoring\n" );
5566 Abc_Print( -2,
"\t 5: enumerating decomposable variable sets\n" );
5567 Abc_Print( -2,
"\t-N <num> : the number of support variables (binary files only) [default = unused]\n" );
5568 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
5569 Abc_Print( -2,
"\t-h : print the command usage\n");
5570 Abc_Print( -2,
"\t<file> : a text file with truth tables in hexadecimal, listed one per line,\n");
5571 Abc_Print( -2,
"\t or a binary file with an array of truth tables (in this case,\n");
5572 Abc_Print( -2,
"\t -N <num> is required to determine how many functions are stored)\n");
5589 extern int Abc_NpnTest(
char * pFileName,
int NpnType,
int nVarNum,
int fDumpRes,
int fBinary,
int fVerbose );
5605 Abc_Print( -1,
"Command line switch \"-A\" should be followed by an integer.\n" );
5614 if ( globalUtilOptind >= argc )
5616 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
5619 nVarNum = atoi(argv[globalUtilOptind]);
5641 Abc_Print( 1,
"Input file is not given.\n" );
5644 if ( nVarNum >= 0 && nVarNum < 6 )
5646 Abc_Print( 1,
"The number of variables cannot be less than 6.\n" );
5652 Abc_NpnTest( pFileName, NpnType, nVarNum, fDumpRes, fBinary, fVerbose );
5656 Abc_Print( -2,
"usage: testnpn [-AN <num>] [-dbvh] <file>\n" );
5657 Abc_Print( -2,
"\t testbench for computing (semi-)canonical forms\n" );
5658 Abc_Print( -2,
"\t of completely-specified Boolean functions up to 16 varibles\n" );
5659 Abc_Print( -2,
"\t-A <num> : semi-caninical form computation algorithm [default = %d]\n", NpnType );
5660 Abc_Print( -2,
"\t 0: uniqifying truth tables\n" );
5661 Abc_Print( -2,
"\t 1: exact NPN canonical form by brute-force enumeration\n" );
5662 Abc_Print( -2,
"\t 2: semi-canonical form by counting 1s in cofactors\n" );
5663 Abc_Print( -2,
"\t 3: Jake's hybrid semi-canonical form (fast)\n" );
5664 Abc_Print( -2,
"\t 4: Jake's hybrid semi-canonical form (high-effort)\n" );
5665 Abc_Print( -2,
"\t 5: new fast hybrid semi-canonical form\n" );
5666 Abc_Print( -2,
"\t 6: new phase canonical form\n" );
5667 Abc_Print( -2,
"\t-N <num> : the number of support variables (binary files only) [default = unused]\n" );
5668 Abc_Print( -2,
"\t-d : toggle dumping resulting functions into a file [default = %s]\n", fDumpRes?
"yes":
"no" );
5669 Abc_Print( -2,
"\t-b : toggle dumping in binary format [default = %s]\n", fBinary?
"yes":
"no" );
5670 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
5671 Abc_Print( -2,
"\t-h : print the command usage\n");
5672 Abc_Print( -2,
"\t<file> : a text file with truth tables in hexadecimal, listed one per line,\n");
5673 Abc_Print( -2,
"\t or a binary file with an array of truth tables (in this case,\n");
5674 Abc_Print( -2,
"\t -N <num> is required to determine how many functions are stored)\n");
5690 extern int Abc_RpoTest(
char * pFileName,
int nVarNum,
int nThreshold,
int fVerbose);
5695 int nThreshold = -1;
5701 Abc_Print(-1,
"Command line switch \"-N\" should be followed by an integer.\n");
5710 if (globalUtilOptind >= argc) {
5711 Abc_Print(-1,
"Command line switch \"-T\" should be followed by an integer.\n");
5714 nThreshold = atoi(argv[globalUtilOptind]);
5730 Abc_Print(1,
"Input file is not given.\n");
5736 Abc_RpoTest( pFileName, nVarNum, nThreshold, fVerbose );
5740 Abc_Print(-2,
"usage: testrpo [-NT <num>] [-vh] <file>\n");
5741 Abc_Print(-2,
"\t RPO algorithm developed and implemented by Mayler G. A. Martins,\n");
5742 Abc_Print(-2,
"\t Vinicius Callegaro, Renato P. Ribas and Andre' I. Reis\n");
5743 Abc_Print(-2,
"\t at Federal University of Rio Grande do Sul, Porto Alegre, Brazil\n");
5744 Abc_Print(-2,
"\t-N <num> : the number of support variables (binary files only) [default = unused]\n");
5745 Abc_Print(-2,
"\t-T <num> : the number of recursions accepted before abort [default = INFINITE]\n");
5746 Abc_Print(-2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose ?
"yes" :
"no");
5747 Abc_Print(-2,
"\t-h : print the command usage\n");
5748 Abc_Print(-2,
"\t<file> : a text file with truth tables in hexadecimal, listed one per line,\n");
5749 Abc_Print(-2,
"\t or a binary file with an array of truth tables (in this case,\n");
5750 Abc_Print(-2,
"\t -N <num> is required to determine how many functions are stored)\n");
5828 Abc_Print( -1,
"This command can only be applied to an AIG (run \"strash\").\n" );
5833 Abc_Print( -1,
"AIG resynthesis cannot be applied to AIGs with choice nodes.\n" );
5838 if ( !
Abc_NtkRewrite( pNtk, fUpdateLevel, fUseZeros, fVerbose, fVeryVerbose, fPlaceEnable ) )
5840 Abc_Print( -1,
"Rewriting has failed.\n" );
5846 Abc_Print( -2,
"usage: rewrite [-lzvwh]\n" );
5847 Abc_Print( -2,
"\t performs technology-independent rewriting of the AIG\n" );
5848 Abc_Print( -2,
"\t-l : toggle preserving the number of levels [default = %s]\n", fUpdateLevel?
"yes":
"no" );
5849 Abc_Print( -2,
"\t-z : toggle using zero-cost replacements [default = %s]\n", fUseZeros?
"yes":
"no" );
5850 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
5851 Abc_Print( -2,
"\t-w : toggle printout subgraph statistics [default = %s]\n", fVeryVerbose?
"yes":
"no" );
5853 Abc_Print( -2,
"\t-h : print the command usage\n");
5878 extern int Abc_NtkRefactor(
Abc_Ntk_t * pNtk,
int nNodeSizeMax,
int nConeSizeMax,
int fUpdateLevel,
int fUseZeros,
int fUseDcs,
int fVerbose );
5895 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
5900 if ( nNodeSizeMax < 0 )
5904 if ( globalUtilOptind >= argc )
5906 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
5909 nConeSizeMax = atoi(argv[globalUtilOptind]);
5911 if ( nConeSizeMax < 0 )
5940 Abc_Print( -1,
"This command can only be applied to an AIG (run \"strash\").\n" );
5945 Abc_Print( -1,
"AIG resynthesis cannot be applied to AIGs with choice nodes.\n" );
5949 if ( fUseDcs && nNodeSizeMax >= nConeSizeMax )
5951 Abc_Print( -1,
"For don't-care to work, containing cone should be larger than collapsed node.\n" );
5956 if ( !
Abc_NtkRefactor( pNtk, nNodeSizeMax, nConeSizeMax, fUpdateLevel, fUseZeros, fUseDcs, fVerbose ) )
5958 Abc_Print( -1,
"Refactoring has failed.\n" );
5964 Abc_Print( -2,
"usage: refactor [-NC <num>] [-lzdvh]\n" );
5965 Abc_Print( -2,
"\t performs technology-independent refactoring of the AIG\n" );
5966 Abc_Print( -2,
"\t-N <num> : the max support of the collapsed node [default = %d]\n", nNodeSizeMax );
5967 Abc_Print( -2,
"\t-C <num> : the max support of the containing cone [default = %d]\n", nConeSizeMax );
5968 Abc_Print( -2,
"\t-l : toggle preserving the number of levels [default = %s]\n", fUpdateLevel?
"yes":
"no" );
5969 Abc_Print( -2,
"\t-z : toggle using zero-cost replacements [default = %s]\n", fUseZeros?
"yes":
"no" );
5970 Abc_Print( -2,
"\t-d : toggle using don't-cares [default = %s]\n", fUseDcs?
"yes":
"no" );
5971 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
5972 Abc_Print( -2,
"\t-h : print the command usage\n");
6010 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
6041 Abc_Print( -1,
"Can only compute the cuts for %d <= K <= %d.\n", 4, CUT_SIZE_MAX );
6046 Abc_Print( -1,
"This command can only be applied to an AIG (run \"strash\").\n" );
6051 Abc_Print( -1,
"AIG resynthesis cannot be applied to AIGs with choice nodes.\n" );
6058 Abc_Print( -1,
"Refactoring has failed.\n" );
6064 Abc_Print( -2,
"usage: restructure [-K <num>] [-lzvh]\n" );
6065 Abc_Print( -2,
"\t performs technology-independent restructuring of the AIG\n" );
6066 Abc_Print( -2,
"\t-K <num> : the max cut size (%d <= num <= %d) [default = %d]\n",
CUT_SIZE_MIN, CUT_SIZE_MAX, nCutsMax );
6067 Abc_Print( -2,
"\t-l : toggle preserving the number of levels [default = %s]\n", fUpdateLevel?
"yes":
"no" );
6068 Abc_Print( -2,
"\t-z : toggle using zero-cost replacements [default = %s]\n", fUseZeros?
"yes":
"no" );
6069 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
6070 Abc_Print( -2,
"\t-h : print the command usage\n");
6089 int RS_CUT_MAX = 16;
6098 extern int Abc_NtkResubstitute(
Abc_Ntk_t * pNtk,
int nCutsMax,
int nNodesMax,
int nLevelsOdc,
int fUpdateLevel,
int fVerbose,
int fVeryVerbose );
6116 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
6125 if ( globalUtilOptind >= argc )
6127 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
6130 nNodesMax = atoi(argv[globalUtilOptind]);
6132 if ( nNodesMax < 0 )
6136 if ( globalUtilOptind >= argc )
6138 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
6141 nLevelsOdc = atoi(argv[globalUtilOptind]);
6143 if ( nLevelsOdc < 0 )
6170 if ( nCutsMax < RS_CUT_MIN || nCutsMax > RS_CUT_MAX )
6172 Abc_Print( -1,
"Can only compute cuts for %d <= K <= %d.\n", RS_CUT_MIN, RS_CUT_MAX );
6175 if ( nNodesMax < 0 || nNodesMax > 3 )
6177 Abc_Print( -1,
"Can only resubstitute at most 3 nodes.\n" );
6182 Abc_Print( -1,
"This command can only be applied to an AIG (run \"strash\").\n" );
6187 Abc_Print( -1,
"AIG resynthesis cannot be applied to AIGs with choice nodes.\n" );
6192 if ( !
Abc_NtkResubstitute( pNtk, nCutsMax, nNodesMax, nLevelsOdc, fUpdateLevel, fVerbose, fVeryVerbose ) )
6194 Abc_Print( -1,
"Refactoring has failed.\n" );
6200 Abc_Print( -2,
"usage: resub [-KN <num>] [-lzvwh]\n" );
6201 Abc_Print( -2,
"\t performs technology-independent restructuring of the AIG\n" );
6202 Abc_Print( -2,
"\t-K <num> : the max cut size (%d <= num <= %d) [default = %d]\n", RS_CUT_MIN, RS_CUT_MAX, nCutsMax );
6203 Abc_Print( -2,
"\t-N <num> : the max number of nodes to add (0 <= num <= 3) [default = %d]\n", nNodesMax );
6204 Abc_Print( -2,
"\t-F <num> : the number of fanout levels for ODC computation [default = %d]\n", nLevelsOdc );
6205 Abc_Print( -2,
"\t-l : toggle preserving the number of levels [default = %s]\n", fUpdateLevel?
"yes":
"no" );
6206 Abc_Print( -2,
"\t-z : toggle using zero-cost replacements [default = %s]\n", fUseZeros?
"yes":
"no" );
6207 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
6208 Abc_Print( -2,
"\t-w : toggle verbose printout of ODC computation [default = %s]\n", fVeryVerbose?
"yes":
"no" );
6209 Abc_Print( -2,
"\t-h : print the command usage\n");
6232 extern int Abc_NtkRR(
Abc_Ntk_t * pNtk,
int nFaninLevels,
int nFanoutLevels,
int fUseFanouts,
int fVerbose );
6247 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
6254 nFaninLevels = Window / 10;
6255 nFanoutLevels = Window % 10;
6277 Abc_Print( -1,
"This command can only be applied to an AIG (run \"strash\").\n" );
6282 Abc_Print( -1,
"AIG resynthesis cannot be applied to AIGs with choice nodes.\n" );
6287 if ( !
Abc_NtkRR( pNtk, nFaninLevels, nFanoutLevels, fUseFanouts, fVerbose ) )
6289 Abc_Print( -1,
"Redundancy removal has failed.\n" );
6295 Abc_Print( -2,
"usage: rr [-W NM] [-fvh]\n" );
6296 Abc_Print( -2,
"\t removes combinational redundancies in the current network\n" );
6297 Abc_Print( -2,
"\t-W NM : window size: TFI (N) and TFO (M) logic levels [default = %d%d]\n", nFaninLevels, nFanoutLevels );
6298 Abc_Print( -2,
"\t-f : toggle RR w.r.t. fanouts [default = %s]\n", fUseFanouts?
"yes":
"no" );
6299 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
6300 Abc_Print( -2,
"\t-h : print the command usage\n");
6336 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
6365 Abc_Print( -1,
"Can only collapse a logic network or an AIG.\n" );
6378 if ( pNtkRes == NULL )
6380 Abc_Print( -1,
"Cascade synthesis has failed.\n" );
6388 Abc_Print( -2,
"usage: cascade [-K <num>] [-cvh]\n" );
6389 Abc_Print( -2,
"\t performs LUT cascade synthesis for the current network\n" );
6390 Abc_Print( -2,
"\t-K <num> : the number of LUT inputs [default = %d]\n", nLutSize );
6391 Abc_Print( -2,
"\t-c : check equivalence after synthesis [default = %s]\n", fCheck?
"yes":
"no" );
6392 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
6393 Abc_Print( -2,
"\t-h : print the command usage\n");
6395 Abc_Print( -2,
" A lookup-table cascade is a programmable architecture developed by\n");
6396 Abc_Print( -2,
" Professor Tsutomu Sasao (sasao@cse.kyutech.ac.jp) at Kyushu Institute\n");
6397 Abc_Print( -2,
" of Technology. This work received Takeda Techno-Entrepreneurship Award:\n");
6398 Abc_Print( -2,
" http://www.lsi-cad.com/sasao/photo/takeda.html\n");
6417 int c, nMultiSize, fAnd, fVerbose;
6432 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
6437 if ( nMultiSize < 0 )
6459 Abc_Print( -1,
"Can only collapse a logic network or an AIG.\n" );
6464 if ( pNtkRes == NULL )
6466 Abc_Print( -1,
"Cascade synthesis has failed.\n" );
6474 Abc_Print( -2,
"usage: extract [-K <num>] [-avh]\n" );
6475 Abc_Print( -2,
"\t extracts shared logic from multi-input gates\n" );
6476 Abc_Print( -2,
"\t-K <num> : the minimum gate size to consider for extraction [default = %d]\n", nMultiSize );
6477 Abc_Print( -2,
"\t-a : toggle multi-input XOR vs multi-input AND [default = %s]\n", fAnd?
"AND":
"XOR" );
6478 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
6479 Abc_Print( -2,
"\t-h : print the command usage\n");
6496 extern void Abc_SuppTest(
int nOnes,
int nVars,
int fUseSimple,
int fCheck,
int fVerbose );
6512 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
6521 if ( globalUtilOptind >= argc )
6523 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
6526 nVars = atoi(argv[globalUtilOptind]);
6552 Abc_SuppTest( nOnes, nVars, fUseSimple, fCheck, fVerbose );
6556 Abc_Print( -2,
"usage: varmin [-MN <num>] [-ocvh]\n" );
6557 Abc_Print( -2,
"\t performs support minimization\n" );
6558 Abc_Print( -2,
"\t-M <num> : the number of ones in the combination [default = %d]\n", nOnes );
6559 Abc_Print( -2,
"\t-N <num> : the number of variables in the problem [default = %d]\n", nVars );
6560 Abc_Print( -2,
"\t-o : toggle computing reduced difference matrix [default = %s]\n", fUseSimple?
"yes":
"no" );
6561 Abc_Print( -2,
"\t-c : toggle verifying the final result [default = %s]\n", fCheck?
"yes":
"no" );
6562 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
6563 Abc_Print( -2,
"\t-h : print the command usage\n");
6606 Abc_Print( -1,
"This command is only applicable to strashed networks.\n" );
6612 if ( pNtkRes == NULL )
6614 Abc_Print( -1,
"Converting to a logic network has failed.\n" );
6623 Abc_Print( -2,
"\t transforms an AIG into a logic network with SOPs\n" );
6624 Abc_Print( -2,
"\t-h : print the command usage\n");
6659 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
6664 if ( nLatchesToAdd < 0 )
6668 fRemoveLatches ^= 1;
6684 Abc_Print( -1,
"The network is already combinational.\n" );
6689 Abc_Print( -1,
"The network is already combinational.\n" );
6695 if ( nLatchesToAdd )
6704 Abc_Print( -2,
"usage: comb [-L <num>] [-lh]\n" );
6705 Abc_Print( -2,
"\t converts comb network into seq, and vice versa\n" );
6706 Abc_Print( -2,
"\t-L <num> : number of latches to add to comb network (0 = do not add) [default = %d]\n", nLatchesToAdd );
6707 Abc_Print( -2,
"\t-l : toggle converting latches to PIs/POs or removing them [default = %s]\n", fRemoveLatches?
"remove":
"convert" );
6708 Abc_Print( -2,
"\t-h : print the command usage\n");
6726 Abc_Ntk_t * pNtk, * pNtk1, * pNtk2, * pNtkRes;
6727 int fDelete1, fDelete2;
6757 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
6762 if ( nPartSize < 0 )
6789 Abc_Print( -1,
"Abc_CommandMiter(): The number of outputs should be even.\n" );
6795 Abc_Print( 1,
"The miter (current network) is transformed by XORing POs pair-wise.\n" );
6801 if ( !
Abc_NtkPrepareTwoNtks( stdout, pNtk, pArgvNew, nArgcNew, &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
6820 pNtkRes =
Abc_NtkMiter( pNtk1, pNtk2, fComb, nPartSize, fImplic, fMulti );
6825 if ( pNtkRes == NULL )
6827 Abc_Print( -1,
"Miter computation has failed.\n" );
6835 if ( nPartSize == 0 )
6836 strcpy( Buffer,
"unused" );
6838 sprintf(Buffer,
"%d", nPartSize );
6839 Abc_Print( -2,
"usage: miter [-P <num>] [-cimtnh] <file1> <file2>\n" );
6840 Abc_Print( -2,
"\t computes the miter of the two circuits\n" );
6841 Abc_Print( -2,
"\t-P <num> : output partition size [default = %s]\n", Buffer );
6842 Abc_Print( -2,
"\t-c : toggles deriving combinational miter (latches as POs) [default = %s]\n", fComb?
"yes":
"no" );
6843 Abc_Print( -2,
"\t-i : toggles deriving implication miter (file1 => file2) [default = %s]\n", fImplic?
"yes":
"no" );
6844 Abc_Print( -2,
"\t-m : toggles creating multi-output miter [default = %s]\n", fMulti?
"yes":
"no" );
6845 Abc_Print( -2,
"\t-t : toggle XORing pair-wise POs of the miter [default = %s]\n", fTrans?
"yes":
"no" );
6846 Abc_Print( -2,
"\t-n : toggle ignoring names when matching CIs/COs [default = %s]\n", fIgnoreNames?
"yes":
"no" );
6847 Abc_Print( -2,
"\t-h : print the command usage\n");
6848 Abc_Print( -2,
"\tfile1 : (optional) the file with the first network\n");
6849 Abc_Print( -2,
"\tfile2 : (optional) the file with the second network\n");
6850 Abc_Print( -2,
"\t if no files are given, uses the current network and its spec\n");
6851 Abc_Print( -2,
"\t if one file is given, uses the current network and the file\n");
6869 int c, fDual, fVerbose;
6899 Abc_Print( -1,
"The network is not strashed.\n" );
6907 Abc_Print( -1,
"The number of POs should be even.\n" );
6912 Abc_Print( -1,
"Demitering has failed.\n" );
6937 Abc_Print( -1,
"Demitering has failed.\n" );
6945 Abc_Print( -2,
"usage: demiter [-dvh]\n" );
6946 Abc_Print( -2,
"\t splits sequential miter into two circuits\n" );
6947 Abc_Print( -2,
"\t-d : expects a dual-output miter (without XORs) [default = %s]\n", fDual?
"yes":
"no" );
6948 Abc_Print( -2,
"\t-v : toggles outputting verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
6949 Abc_Print( -2,
"\t-h : print the command usage\n");
7000 Abc_Print( -1,
"The network is not strashed.\n" );
7014 Abc_Print( 1,
"The output(s) cannot be structurally decomposed.\n" );
7027 Abc_Print( -1,
"ORing the POs has failed.\n" );
7032 pAbc->pCex->iPo = 0;
7039 Abc_Print( -2,
"usage: orpos [-rxh]\n" );
7040 Abc_Print( -2,
"\t creates single-output miter by ORing the POs of the current network\n" );
7041 Abc_Print( -2,
"\t-r : performs the reverse transform (OR decomposition) [default = %s]\n", fReverse?
"yes":
"no" );
7042 Abc_Print( -2,
"\t-x : toggles combining the PO using XOR [default = %s]\n", fXor?
"yes":
"no" );
7043 Abc_Print( -2,
"\t-h : print the command usage\n");
7086 Abc_Print( -1,
"The network is not strashed.\n" );
7092 Abc_Print( -1,
"The network already has one PO.\n" );
7098 Abc_Print( -1,
"The miter has latches. ORing is not performed.\n" );
7105 Abc_Print( -1,
"ANDing the POs has failed.\n" );
7113 Abc_Print( -2,
"usage: andpos [-h]\n" );
7114 Abc_Print( -2,
"\t creates single-output miter by ANDing the POs of the current network\n" );
7116 Abc_Print( -2,
"\t-h : print the command usage\n");
7134 int c, iOutput = -1;
7148 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
7175 Abc_Print( -1,
"The network is not strashed.\n" );
7180 Abc_Print( -1,
"The output index is not specified.\n" );
7185 Abc_Print( -1,
"The output index is larger than the allowed POs.\n" );
7197 Abc_Print( -2,
"usage: zeropo [-N <num>] [-soh]\n" );
7198 Abc_Print( -2,
"\t replaces the PO driver by constant 0\n" );
7199 Abc_Print( -2,
"\t-N <num> : the zero-based index of the PO to replace [default = %d]\n", iOutput );
7200 Abc_Print( -2,
"\t-s : performs comb sweep after removimg a PO [default = %s]\n", !fSkipSweep?
"yes":
"no" );
7201 Abc_Print( -2,
"\t-o : toggles using const 1 instead of const 0 [default = %s]\n", fUseConst1?
"yes":
"no" );
7202 Abc_Print( -2,
"\t-h : print the command usage\n");
7220 int c, iOutput = -1;
7232 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
7253 Abc_Print( -1,
"The network is not strashed.\n" );
7258 Abc_Print( -1,
"The output index is not specified.\n" );
7263 Abc_Print( -1,
"The output index is larger than the allowed POs.\n" );
7274 Abc_Print( -2,
"usage: swappos [-N <num>] [-h]\n" );
7275 Abc_Print( -2,
"\t swap the 0-th PO with the <num>-th PO\n" );
7276 Abc_Print( -2,
"\t-N <num> : the zero-based index of the PO to swap [default = %d]\n", iOutput );
7277 Abc_Print( -2,
"\t-h : print the command usage\n");
7295 int c, iOutput = -1;
7296 int fRemoveConst0 = 1;
7308 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
7332 Abc_Print( -1,
"The network is not strashed.\n" );
7337 Abc_Print( -1,
"The output index is not specified.\n" );
7342 Abc_Print( -1,
"The output index is larger than the allowed POs.\n" );
7354 Abc_Print( -2,
"usage: removepo [-N <num>] [-zh]\n" );
7355 Abc_Print( -2,
"\t remove PO with number <num> if it is const0\n" );
7356 Abc_Print( -2,
"\t-N <num> : the zero-based index of the PO to remove [default = %d]\n", iOutput );
7357 Abc_Print( -2,
"\t-z : toggle removing const1 instead of const0 [default = %s]\n", fRemoveConst0?
"const0":
"const1" );
7358 Abc_Print( -2,
"\t-h : print the command usage\n");
7378 int c, fVerbose = 0;
7402 Abc_Print( -1,
"This command works only for AIGs (run \"strash\").\n" );
7405 if ( pAbc->vCexVec == NULL )
7407 Abc_Print( -1,
"CEX array is not defined. Run \"bmc3 -az\", \"sim3 -az\", or \"pdr -az\".\n" );
7419 if ( pNtkRes == NULL )
7421 Abc_Print( -1,
"Removing SAT outputs has failed.\n" );
7429 Abc_Print( -2,
"usage: dropsat [-sh]\n" );
7430 Abc_Print( -2,
"\t replaces satisfiable POs by constant 0 and cleans up the AIG\n" );
7431 Abc_Print( -2,
"\t-s : toggles skipping sequential sweep [default = %s]\n", fNoSweep?
"yes":
"no" );
7432 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
7433 Abc_Print( -2,
"\t-h : print the command usage\n");
7484 Abc_Print( -2,
"\t if the network has no PIs, add one dummy PI\n" );
7485 Abc_Print( -2,
"\t-h : print the command usage\n");
7525 Abc_Print( -1,
"The network to append is not given.\n" );
7531 Abc_Print( -1,
"The base network should be strashed for the appending to work.\n" );
7538 if ( pNtk2 == NULL )
7545 Abc_Print( -1,
"The second network has latches. Appending does not work for such networks.\n" );
7553 Abc_Print( -1,
"Appending the networks failed.\n" );
7564 Abc_Print( -2,
"usage: append [-h] <file>\n" );
7565 Abc_Print( -2,
"\t appends a combinational network on top of the current network\n" );
7567 Abc_Print( -2,
"\t-h : print the command usage\n");
7568 Abc_Print( -2,
"\t<file> : file name with the second network\n");
7610 Abc_Print( -1,
"The network to append is not given.\n" );
7616 Abc_Print( -1,
"The base network should be in the logic form.\n" );
7623 Abc_Print( -1,
"The current network has latches. This command does not work for such networks.\n" );
7630 if ( pNtk2 == NULL )
7637 Abc_Print( -1,
"The second network has latches. This command does not work for such networks.\n" );
7656 Abc_Print( -2,
"usage: putontop [-h] <file>\n" );
7657 Abc_Print( -2,
"\t connects PIs of network in <file> to POs of current network\n" );
7658 Abc_Print( -2,
"\t-h : print the command usage\n");
7659 Abc_Print( -2,
"\t<file> : file name with the second network\n");
7676 Abc_Ntk_t * pNtk, * pNtkTemp, * pNtkRes;
7695 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
7726 pNtkRes =
Abc_NtkFrames( pNtkTemp, nFrames, fInitial, fVerbose );
7730 pNtkRes =
Abc_NtkFrames( pNtk, nFrames, fInitial, fVerbose );
7731 if ( pNtkRes == NULL )
7733 Abc_Print( -1,
"Unrolling the network has failed.\n" );
7741 Abc_Print( -2,
"usage: frames [-F <num>] [-ivh]\n" );
7742 Abc_Print( -2,
"\t unrolls the network for a number of time frames\n" );
7743 Abc_Print( -2,
"\t-F <num> : the number of frames to unroll [default = %d]\n", nFrames );
7744 Abc_Print( -2,
"\t-i : toggles initializing the first frame [default = %s]\n", fInitial?
"yes":
"no" );
7745 Abc_Print( -2,
"\t-v : toggles outputting verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
7746 Abc_Print( -2,
"\t-h : print the command usage\n");
7763 Abc_Ntk_t * pNtk, * pNtkTemp, * pNtkRes;
7786 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
7795 if ( globalUtilOptind >= argc )
7797 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
7800 nFrames = atoi(argv[globalUtilOptind]);
7823 if ( nPrefix > nFrames )
7825 Abc_Print( -1,
"Prefix (%d) cannot be more than the number of frames (%d).\n", nPrefix, nFrames );
7833 pNtkRes =
Abc_NtkDarFrames( pNtkTemp, nPrefix, nFrames, fInitial, fVerbose );
7838 if ( pNtkRes == NULL )
7840 Abc_Print( -1,
"Unrolling the network has failed.\n" );
7848 Abc_Print( -2,
"usage: dframes [-NF <num>] [-ivh]\n" );
7849 Abc_Print( -2,
"\t unrolls the network with simplification\n" );
7850 Abc_Print( -2,
"\t-N num : the number of frames to use as prefix [default = %d]\n", nPrefix );
7851 Abc_Print( -2,
"\t-F num : the number of frames to unroll [default = %d]\n", nFrames );
7852 Abc_Print( -2,
"\t-i : toggles initializing the first frame [default = %s]\n", fInitial?
"yes":
"no" );
7853 Abc_Print( -2,
"\t-v : toggles outputting verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
7854 Abc_Print( -2,
"\t-h : print the command usage\n");
7900 Abc_Print( -1,
"Converting to SOP is possible only for logic networks.\n" );
7905 Abc_Print( -1,
"Converting to SOP has failed.\n" );
7912 Abc_Print( -2,
"\t converts node functions to SOP\n" );
7913 Abc_Print( -2,
"\t-d : toggles using both phases or only positive [default = %s]\n", fDirect?
"direct":
"both" );
7914 Abc_Print( -2,
"\t-h : print the command usage\n");
7957 Abc_Print( -1,
"Converting to BDD is possible only for logic networks.\n" );
7962 Abc_Print( -1,
"The logic network is already in the BDD form.\n" );
7967 Abc_Print( -1,
"Converting to BDD has failed.\n" );
7974 Abc_Print( -2,
"\t converts node functions to BDD\n" );
7975 Abc_Print( -2,
"\t-r : toggles enabling dynamic variable reordering [default = %s]\n", fReorder?
"yes":
"no" );
7976 Abc_Print( -2,
"\t-h : print the command usage\n");
8015 Abc_Print( -1,
"Converting to AIG is possible only for logic networks.\n" );
8020 Abc_Print( -1,
"The logic network is already in the AIG form.\n" );
8025 Abc_Print( -1,
"Converting to AIG has failed.\n" );
8032 Abc_Print( -2,
"\t converts node functions to AIG\n" );
8033 Abc_Print( -2,
"\t-h : print the command usage\n");
8081 Abc_Print( -1,
"Variable reordering is possible when node functions are BDDs (run \"bdd\").\n" );
8088 Abc_Print( -2,
"usage: reorder [-vh]\n" );
8089 Abc_Print( -2,
"\t reorders local functions of the nodes using sifting\n" );
8090 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
8091 Abc_Print( -2,
"\t-h : print the command usage\n");
8139 Abc_Print( -1,
"Bi-decomposition only works when node functions are AIGs (run \"aig\").\n" );
8146 Abc_Print( -2,
"usage: bidec [-vh]\n" );
8147 Abc_Print( -2,
"\t applies bi-decomposition to local functions of the nodes\n" );
8148 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
8149 Abc_Print( -2,
"\t-h : print the command usage\n");
8212 pFile = fopen( pFileName,
"r" );
8213 if ( pFile == NULL )
8215 Abc_Print( -1,
"Cannot open file \"%s\" with the BDD variable order.\n", pFileName );
8227 Abc_Print( -2,
"usage: order [-rvh] <file>\n" );
8228 Abc_Print( -2,
"\t computes a good static CI variable order\n" );
8229 Abc_Print( -2,
"\t-r : toggle reverse ordering [default = %s]\n", fReverse?
"yes":
"no" );
8230 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
8231 Abc_Print( -2,
"\t-h : print the command usage\n");
8232 Abc_Print( -2,
"\t<file> : (optional) file with the given variable order\n" );
8274 Abc_Print( -1,
"Only a BDD logic network can be converted to MUXes.\n" );
8280 if ( pNtkRes == NULL )
8282 Abc_Print( -1,
"Converting to MUXes has failed.\n" );
8291 Abc_Print( -2,
"\t converts the current network into a network derived by\n" );
8292 Abc_Print( -2,
"\t replacing all nodes by DAGs isomorphic to the local BDDs\n" );
8293 Abc_Print( -2,
"\t-h : print the command usage\n");
8336 Abc_Print( -1,
"Only a SOP logic network can be transformed into cubes.\n" );
8342 if ( pNtkRes == NULL )
8344 Abc_Print( -1,
"Converting to cubes has failed.\n" );
8353 Abc_Print( -2,
"\t converts the current network into a network derived by creating\n" );
8354 Abc_Print( -2,
"\t a separate node for each product and sum in the local SOPs\n" );
8355 Abc_Print( -2,
"\t-h : print the command usage\n");
8374 int c, fVerbose = 0, nCubesMax = 100;
8385 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
8390 if ( nCubesMax < 0 )
8411 Abc_Print( -1,
"Only a SOP logic network can be transformed into cubes.\n" );
8417 if ( pNtkRes == NULL )
8419 Abc_Print( -1,
"Converting to cubes has failed.\n" );
8427 Abc_Print( -2,
"usage: splitsop [-N num] [-vh]\n" );
8428 Abc_Print( -2,
"\t splits nodes whose SOP size is larger than the given one\n" );
8429 Abc_Print( -2,
"\t-N num : the maximum number of cubes after splitting [default = %d]\n", nCubesMax );
8430 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
8431 Abc_Print( -2,
"\t-h : print the command usage\n");
8479 Abc_Print( -1,
"The current network has no latches.\n" );
8484 Abc_Print( -1,
"Extracting sequential don't-cares works only for AIGs (run \"strash\").\n" );
8489 Abc_Print( -1,
"Extracting sequential don't-cares has failed.\n" );
8495 Abc_Print( -2,
"usage: ext_seq_dcs [-vh]\n" );
8496 Abc_Print( -2,
"\t create EXDC network using unreachable states\n" );
8497 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
8498 Abc_Print( -2,
"\t-h : print the command usage\n");
8518 char * pLogFileName = NULL;
8532 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
8541 if ( globalUtilOptind >= argc )
8543 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
8546 pPars->
nBddMax = atoi(argv[globalUtilOptind]);
8552 if ( globalUtilOptind >= argc )
8554 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
8557 pPars->
nIterMax = atoi(argv[globalUtilOptind]);
8563 if ( globalUtilOptind >= argc )
8565 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a file name.\n" );
8599 Abc_Print( -1,
"The current network has no latches.\n" );
8604 Abc_Print( -1,
"Reachability analysis works only for AIGs (run \"strash\").\n" );
8608 pAbc->nFrames = pPars->
iFrame;
8615 Abc_Print( -2,
"usage: reach [-TBF num] [-L file] [-proyvh]\n" );
8616 Abc_Print( -2,
"\t verifies sequential miter using BDD-based reachability\n" );
8617 Abc_Print( -2,
"\t-T num : approximate time limit in seconds (0=infinite) [default = %d]\n", pPars->
TimeLimit );
8618 Abc_Print( -2,
"\t-B num : max number of nodes in the intermediate BDDs [default = %d]\n", pPars->
nBddMax );
8619 Abc_Print( -2,
"\t-F num : max number of reachability iterations [default = %d]\n", pPars->
nIterMax );
8620 Abc_Print( -2,
"\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName :
"no logging" );
8621 Abc_Print( -2,
"\t-p : enable partitioned image computation [default = %s]\n", pPars->
fPartition?
"yes":
"no" );
8622 Abc_Print( -2,
"\t-r : enable dynamic BDD variable reordering [default = %s]\n", pPars->
fReorder?
"yes":
"no" );
8623 Abc_Print( -2,
"\t-o : toggles BDD variable reordering during image computation [default = %s]\n", pPars->
fReorderImage?
"yes":
"no" );
8624 Abc_Print( -2,
"\t-y : skip checking property outputs [default = %s]\n", pPars->
fSkipOutCheck?
"yes":
"no" );
8625 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
8626 Abc_Print( -2,
"\t-h : print the command usage\n");
8669 Abc_Print( -1,
"Command line switch \"-O\" should be followed by an integer.\n" );
8678 if ( globalUtilOptind >= argc )
8680 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
8683 nRange = atoi(argv[globalUtilOptind]);
8712 Abc_Print( -1,
"Currently can only be applied to the logic network or an AIG.\n" );
8718 Abc_Print( -1,
"Wrong number of auguments.\n" );
8726 if ( pNode == NULL )
8728 Abc_Print( -1,
"Cannot find node \"%s\".\n", argv[globalUtilOptind] );
8740 Abc_Print( -1,
"The node is not specified.\n" );
8745 Abc_Print( -1,
"The 0-based output number (%d) is larger than the number of outputs (%d).\n", Output,
Abc_NtkCoNum(pNtk) );
8751 else if ( fUseMffc )
8761 if ( pNtkRes == NULL )
8763 Abc_Print( -1,
"Writing the logic cone of one node has failed.\n" );
8771 Abc_Print( -2,
"usage: cone [-OR num] [-amsh] <name>\n" );
8772 Abc_Print( -2,
"\t replaces the current network by one logic cone\n" );
8773 Abc_Print( -2,
"\t-a : toggle keeping all CIs or structral support only [default = %s]\n", fUseAllCis?
"all":
"structural" );
8774 Abc_Print( -2,
"\t-m : toggle keeping only MFFC or complete TFI cone [default = %s]\n", fUseMffc?
"MFFC":
"TFI cone" );
8775 Abc_Print( -2,
"\t-s : toggle comb or sequential cone (works with \"-O num\") [default = %s]\n", fSeq?
"seq":
"comb" );
8776 Abc_Print( -2,
"\t-h : print the command usage\n");
8777 Abc_Print( -2,
"\t-O num : (optional) the 0-based number of the CO to extract\n");
8778 Abc_Print( -2,
"\t-R num : (optional) the number of outputs to extract\n");
8779 Abc_Print( -2,
"\tname : (optional) the name of the node to extract\n");
8822 Abc_Print( -1,
"Currently can only be applied to a logic network.\n" );
8828 Abc_Print( -1,
"Wrong number of auguments.\n" );
8833 if ( pNode == NULL )
8835 Abc_Print( -1,
"Cannot find node \"%s\".\n", argv[globalUtilOptind] );
8841 if ( pNtkRes == NULL )
8843 Abc_Print( -1,
"Splitting one node has failed.\n" );
8851 Abc_Print( -2,
"usage: node [-h] <name>\n" );
8852 Abc_Print( -2,
"\t replaces the current network by the network composed of one node\n" );
8853 Abc_Print( -2,
"\t-h : print the command usage\n");
8854 Abc_Print( -2,
"\tname : the node name\n");
8887 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
8910 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
8916 Abc_Print( -1,
"Currently can only works for combinational circuits.\n" );
8921 Abc_Print( -1,
"Currently expects a single-output miter.\n" );
8926 if ( pNtkRes == NULL )
8928 Abc_Print( -1,
"The command has failed.\n" );
8936 Abc_Print( -2,
"usage: topmost [-N num] [-h]\n" );
8937 Abc_Print( -2,
"\t replaces the current network by several of its topmost levels\n" );
8938 Abc_Print( -2,
"\t-N num : max number of levels [default = %d]\n", nLevels );
8939 Abc_Print( -2,
"\t-h : print the command usage\n");
8940 Abc_Print( -2,
"\tname : the node name\n");
8983 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
8989 Abc_Print( -1,
"Currently can only works for combinational circuits.\n" );
8994 Abc_Print( -1,
"Currently expects a single-output miter.\n" );
8999 Abc_Print( -1,
"The PO driver is complemented. AND-decomposition is impossible.\n" );
9004 Abc_Print( -1,
"The PO driver is not a node. AND-decomposition is impossible.\n" );
9008 if ( pNtkRes == NULL )
9010 Abc_Print( -1,
"The command has failed.\n" );
9018 Abc_Print( -2,
"usage: topand [-h]\n" );
9019 Abc_Print( -2,
"\t performs AND-decomposition of single-output combinational miter\n" );
9020 Abc_Print( -2,
"\t-h : print the command usage\n");
9021 Abc_Print( -2,
"\tname : the node name\n");
9061 Abc_Print( -1,
"Trimming works only for AIGs (run \"strash\").\n" );
9086 Abc_Print( -2,
"\t removes POs fed by constants and PIs w/o fanout\n" );
9087 Abc_Print( -2,
"\t-h : print the command usage\n");
9129 Abc_Print( -2,
"usage: short_names [-h]\n" );
9130 Abc_Print( -2,
"\t replaces PI/PO/latch names by short char strings\n" );
9131 Abc_Print( -2,
"\t-h : print the command usage\n");
9169 Abc_Print( -1,
"The network to take names from is not given.\n" );
9176 if ( pNtk2 == NULL )
9205 Abc_Print( -2,
"usage: move_names [-h] <file>\n" );
9206 Abc_Print( -2,
"\t moves PI/PO/latch names from the other network\n" );
9207 Abc_Print( -2,
"\t-h : print the command usage\n");
9208 Abc_Print( -2,
"\t<file> : file with network that has required names\n");
9247 if ( pNtk->
pExdc == NULL )
9249 Abc_Print( -1,
"The network has no EXDC.\n" );
9262 Abc_Print( -2,
"usage: exdc_free [-h]\n" );
9263 Abc_Print( -2,
"\t frees the EXDC network of the current network\n" );
9264 Abc_Print( -2,
"\t-h : print the command usage\n");
9303 if ( pNtk->
pExdc == NULL )
9305 Abc_Print( -1,
"The network has no EXDC.\n" );
9315 Abc_Print( -2,
"usage: exdc_get [-h]\n" );
9316 Abc_Print( -2,
"\t replaces the current network by the EXDC of the current network\n" );
9317 Abc_Print( -2,
"\t-h : print the command usage\n");
9366 if ( (pFile = fopen( FileName,
"r" )) == NULL )
9368 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
9370 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
9378 if ( pNtkNew == NULL )
9380 Abc_Print( -1,
"Reading network from file has failed.\n" );
9391 pNtkRes->
pExdc = pNtkNew;
9398 Abc_Print( -2,
"usage: exdc_set [-h] <file>\n" );
9399 Abc_Print( -2,
"\t sets the network from file as EXDC for the current network\n" );
9400 Abc_Print( -2,
"\t-h : print the command usage\n");
9401 Abc_Print( -2,
"\t<file> : file with the new EXDC network\n");
9450 if ( (pFile = fopen( FileName,
"r" )) == NULL )
9452 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
9454 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
9462 if ( pNtkNew == NULL )
9464 Abc_Print( -1,
"Reading network from file has failed.\n" );
9482 Abc_Print( -2,
"usage: care_set [-h] <file>\n" );
9483 Abc_Print( -2,
"\t sets the network from file as a care for the current network\n" );
9484 Abc_Print( -2,
"\t-h : print the command usage\n");
9485 Abc_Print( -2,
"\t<file> : file with the new care network\n");
9530 while ( ( c =
Extra_UtilGetopt( argc, argv,
"KMtfdxyglzamjvosh" ) ) != EOF )
9537 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
9546 if ( globalUtilOptind >= argc )
9548 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
9551 pParams->
nKeepMax = atoi(argv[globalUtilOptind]);
9563 pParams->
fDrop ^= 1;
9569 pParams->
fTree ^= 1;
9612 Abc_Print( -1,
"Cut computation is available only for AIGs (run \"strash\").\n" );
9622 Abc_Print( -1,
"Cannot compute both DAG cuts and tree cuts at the same time.\n" );
9647 Abc_Print( -2,
"usage: cut [-K num] [-M num] [-tfdcovamjsvh]\n" );
9648 Abc_Print( -2,
"\t computes k-feasible cuts for the AIG\n" );
9650 Abc_Print( -2,
"\t-M num : max number of cuts stored at a node [default = %d]\n", pParams->
nKeepMax );
9651 Abc_Print( -2,
"\t-t : toggle truth table computation [default = %s]\n", pParams->
fTruth?
"yes":
"no" );
9652 Abc_Print( -2,
"\t-f : toggle filtering of duplicated/dominated [default = %s]\n", pParams->
fFilter?
"yes":
"no" );
9653 Abc_Print( -2,
"\t-d : toggle dropping when fanouts are done [default = %s]\n", pParams->
fDrop?
"yes":
"no" );
9654 Abc_Print( -2,
"\t-x : toggle computing only DAG cuts [default = %s]\n", pParams->
fDag?
"yes":
"no" );
9655 Abc_Print( -2,
"\t-y : toggle computing only tree cuts [default = %s]\n", pParams->
fTree?
"yes":
"no" );
9656 Abc_Print( -2,
"\t-g : toggle computing only global cuts [default = %s]\n", pParams->
fGlobal?
"yes":
"no" );
9657 Abc_Print( -2,
"\t-l : toggle computing only local cuts [default = %s]\n", pParams->
fLocal?
"yes":
"no" );
9658 Abc_Print( -2,
"\t-z : toggle fancy computations [default = %s]\n", pParams->
fFancy?
"yes":
"no" );
9659 Abc_Print( -2,
"\t-a : toggle recording cut functions [default = %s]\n", pParams->
fRecordAig?
"yes":
"no" );
9660 Abc_Print( -2,
"\t-m : toggle delay-oriented FPGA mapping [default = %s]\n", pParams->
fMap?
"yes":
"no" );
9661 Abc_Print( -2,
"\t-j : toggle removing fanouts due to XOR/MUX [default = %s]\n", pParams->
fAdjust?
"yes":
"no" );
9662 Abc_Print( -2,
"\t-s : toggle creating library of 6-var functions [default = %s]\n", pParams->
fNpnSave?
"yes":
"no" );
9663 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pParams->
fVerbose?
"yes":
"no" );
9664 Abc_Print( -2,
"\t-h : print the command usage\n");
9703 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
9712 if ( globalUtilOptind >= argc )
9714 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
9717 pParams->
nKeepMax = atoi(argv[globalUtilOptind]);
9758 Abc_Print( -2,
"usage: scut [-K num] [-M num] [-tvh]\n" );
9759 Abc_Print( -2,
"\t computes k-feasible cuts for the sequential AIG\n" );
9761 Abc_Print( -2,
"\t-M num : max number of cuts stored at a node [default = %d]\n", pParams->
nKeepMax );
9762 Abc_Print( -2,
"\t-t : toggle truth table computation [default = %s]\n", pParams->
fTruth?
"yes":
"no" );
9763 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pParams->
fVerbose?
"yes":
"no" );
9764 Abc_Print( -2,
"\t-h : print the command usage\n");
9786 if ( argc == 2 && !
strcmp(argv[1],
"-h") )
9788 Abc_Print( -2,
"The espresso command is currently disabled.\n" );
9792 Abc_Print( -1,
"This command is currently disabled.\n" );
9818 Abc_Print( -1,
"SOP minimization is possible for logic networks (run \"renode\").\n" );
9825 Abc_Print( -2,
"usage: espresso [-vh]\n" );
9826 Abc_Print( -2,
"\t minimizes SOPs of the local functions using Espresso\n" );
9827 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
9828 Abc_Print( -2,
"\t-h : print the command usage\n");
9860 extern void Abc_GenAdder(
char * pFileName,
int nVars );
9862 extern void Abc_GenMesh(
char * pFileName,
int nVars );
9863 extern void Abc_GenMulti(
char * pFileName,
int nVars );
9864 extern void Abc_GenFpga(
char * pFileName,
int nLutSize,
int nLuts,
int nVars );
9886 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
9895 if ( globalUtilOptind >= argc )
9897 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
9900 nLutSize = atoi(argv[globalUtilOptind]);
9906 if ( globalUtilOptind >= argc )
9908 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
9911 nLuts = atoi(argv[globalUtilOptind]);
9953 Abc_Print( -1,
"The number of variables should be a positive integer.\n" );
9976 Abc_Print( -1,
"Type of circuit is not specified.\n" );
9980 sprintf(Command,
"read %s", FileName );
9985 Abc_Print( -2,
"usage: gen [-NKL num] [-asemftrvh] <file>\n" );
9986 Abc_Print( -2,
"\t generates simple circuits\n" );
9987 Abc_Print( -2,
"\t-N num : the number of variables [default = %d]\n", nVars );
9988 Abc_Print( -2,
"\t-K num : the LUT size (to be used with switch -f) [default = %d]\n", nLutSize );
9989 Abc_Print( -2,
"\t-L num : the LUT count (to be used with switch -f) [default = %d]\n", nLuts );
9990 Abc_Print( -2,
"\t-a : generate ripple-carry adder [default = %s]\n", fAdder?
"yes":
"no" );
9991 Abc_Print( -2,
"\t-s : generate a sorter [default = %s]\n", fSorter?
"yes":
"no" );
9992 Abc_Print( -2,
"\t-e : generate a mesh [default = %s]\n", fMesh?
"yes":
"no" );
9993 Abc_Print( -2,
"\t-m : generate a multiplier [default = %s]\n", fMulti?
"yes":
"no" );
9994 Abc_Print( -2,
"\t-f : generate a LUT FPGA structure [default = %s]\n", fFpga?
"yes":
"no" );
9995 Abc_Print( -2,
"\t-t : generate one-hotness conditions [default = %s]\n", fOneHot?
"yes":
"no" );
9996 Abc_Print( -2,
"\t-r : generate random single-output function [default = %s]\n", fRandom?
"yes":
"no" );
9997 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
9998 Abc_Print( -2,
"\t-h : print the command usage\n");
9999 Abc_Print( -2,
"\t<file> : output file name\n");
10016 extern void Abc_GenFsm(
char * pFileName,
int nIns,
int nOuts,
int nStates,
int nLines,
int ProbI,
int ProbO );
10017 int c, nIns, nOuts, nStates, nLines, ProbI, ProbO, fVerbose;
10035 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
10039 globalUtilOptind++;
10044 if ( globalUtilOptind >= argc )
10046 Abc_Print( -1,
"Command line switch \"-O\" should be followed by an integer.\n" );
10049 nOuts = atoi(argv[globalUtilOptind]);
10050 globalUtilOptind++;
10055 if ( globalUtilOptind >= argc )
10057 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
10060 nStates = atoi(argv[globalUtilOptind]);
10061 globalUtilOptind++;
10066 if ( globalUtilOptind >= argc )
10068 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
10071 nLines = atoi(argv[globalUtilOptind]);
10072 globalUtilOptind++;
10077 if ( globalUtilOptind >= argc )
10079 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
10082 ProbI = atoi(argv[globalUtilOptind]);
10083 globalUtilOptind++;
10088 if ( globalUtilOptind >= argc )
10090 Abc_Print( -1,
"Command line switch \"-Q\" should be followed by an integer.\n" );
10093 ProbO = atoi(argv[globalUtilOptind]);
10094 globalUtilOptind++;
10112 if ( nIns < 1 || nStates < 1 || nLines < 1 || ProbI < 1 || ProbO < 1 )
10114 Abc_Print( -1,
"The number of inputs. states, lines, and probablity should be positive integers.\n" );
10119 Abc_GenFsm( FileName, nIns, nOuts, nStates, nLines, ProbI, ProbO );
10123 Abc_Print( -2,
"usage: genfsm [-IOSLPQ num] [-vh] <file>\n" );
10124 Abc_Print( -2,
"\t generates random FSM in KISS format\n" );
10125 Abc_Print( -2,
"\t-I num : the number of input variables [default = %d]\n", nIns );
10126 Abc_Print( -2,
"\t-O num : the number of output variables [default = %d]\n", nOuts );
10127 Abc_Print( -2,
"\t-S num : the number of state variables [default = %d]\n", nStates );
10128 Abc_Print( -2,
"\t-L num : the number of lines (product terms) [default = %d]\n", nLines );
10129 Abc_Print( -2,
"\t-P num : percentage propability of a variable present in the input cube [default = %d]\n", ProbI );
10130 Abc_Print( -2,
"\t-Q num : percentage propability of a variable present in the output cube [default = %d]\n", ProbO );
10131 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
10132 Abc_Print( -2,
"\t-h : print the command usage\n");
10133 Abc_Print( -2,
"\t<file> : output file name\n");
10173 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
10177 globalUtilOptind++;
10178 if ( nFaninMax < 0 )
10199 if ( pNtk == NULL )
10207 Abc_Print( -1,
"Only works for strashed networks.\n" );
10213 if ( pNtkRes == NULL )
10215 Abc_Print( -1,
"Command has failed.\n" );
10223 Abc_Print( -2,
"usage: cover [-N num] [-sxvh]\n" );
10224 Abc_Print( -2,
"\t decomposition into a network of SOP/ESOP PLAs\n" );
10225 Abc_Print( -2,
"\t-N num : maximum number of inputs [default = %d]\n", nFaninMax );
10226 Abc_Print( -2,
"\t-s : toggle the use of SOPs [default = %s]\n", fUseSop?
"yes":
"no" );
10227 Abc_Print( -2,
"\t-x : toggle the use of ESOPs [default = %s]\n", fUseEsop?
"yes":
"no" );
10229 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
10230 Abc_Print( -2,
"\t-h : print the command usage\n");
10247 Abc_Ntk_t * pNtk, * pNtk1, * pNtk2, * pNtkRes = NULL;
10250 int c, fDelete1, fDelete2;
10279 if ( !
Abc_NtkPrepareTwoNtks( stdout, pNtk, pArgvNew, nArgcNew, &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
10281 if ( nArgcNew == 0 )
10285 Abc_Print( -1,
"Deriving new circuit structure for the current network.\n" );
10291 Abc_Print( -1,
"Computation of interplants as a relation only works for single-output functions.\n" );
10292 Abc_Print( -1,
"Use command \"cone\" to extract one output cone from the multi-output network.\n" );
10295 pNtkRes =
Abc_NtkInter( pNtk1, pNtk2, fRelation, fVerbose );
10299 if ( pNtkRes == NULL )
10301 Abc_Print( -1,
"Command has failed.\n" );
10308 Abc_Print( -2,
"usage: inter [-rvh] <onset.blif> <offset.blif>\n" );
10309 Abc_Print( -2,
"\t derives interpolant of two networks representing onset and offset;\n" );
10310 Abc_Print( -2,
"\t-r : toggle computing interpolant as a relation [default = %s]\n", fRelation?
"yes":
"no" );
10311 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
10312 Abc_Print( -2,
"\t-h : print the command usage\n");
10316 Abc_Print( -2,
"\t The networks given on the command line should have the same CIs/COs.\n" );
10317 Abc_Print( -2,
"\t If only one network is given on the command line, this network\n" );
10318 Abc_Print( -2,
"\t is assumed to be the offset, while the current network is the onset.\n" );
10319 Abc_Print( -2,
"\t If no network is given on the command line, the current network is\n" );
10320 Abc_Print( -2,
"\t assumed to be the onset and its complement is taken to be the offset.\n" );
10321 Abc_Print( -2,
"\t The resulting interpolant is stored as the current network.\n" );
10322 Abc_Print( -2,
"\t To verify that the interpolant agrees with the onset and the offset,\n" );
10323 Abc_Print( -2,
"\t save it in file \"inter.blif\" and run the following:\n" );
10324 Abc_Print( -2,
"\t (a) \"miter -i <onset.blif> <inter.blif>; iprove\"\n" );
10325 Abc_Print( -2,
"\t (b) \"miter -i <inter.blif> <offset_inv.blif>; iprove\"\n" );
10326 Abc_Print( -2,
"\t where <offset_inv.blif> is the network derived by complementing the\n" );
10327 Abc_Print( -2,
"\t outputs of <offset.blif>: \"r <offset.blif>; st -i; w <offset_inv.blif>\"\n" );
10362 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
10366 globalUtilOptind++;
10379 if ( pNtk == NULL )
10387 Abc_Print( -1,
"Only works for logic SOP networks.\n" );
10392 if ( pNtkRes == NULL )
10394 Abc_Print( -1,
"Command has failed.\n" );
10401 Abc_Print( -2,
"usage: double [-vh]\n" );
10402 Abc_Print( -2,
"\t puts together two parallel copies of the current network\n" );
10404 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
10405 Abc_Print( -2,
"\t-h : print the command usage\n");
10422 extern void Abc_NtkConvertBb2Wb(
char * pFileNameIn,
char * pFileNameOut,
int fSeq,
int fVerbose );
10446 Abc_Print( -1,
"Expecting two files names on the command line.\n" );
10453 Abc_Print( -2,
"usage: bb2wb [-svh] <file_in> <file_out>\n" );
10454 Abc_Print( -2,
"\t replaces black boxes by white boxes with AND functions\n" );
10455 Abc_Print( -2,
"\t (file names should have standard extensions, e.g. \"blif\")\n" );
10456 Abc_Print( -2,
"\t-s : toggle using sequential white boxes [default = %s]\n", fSeq?
"yes":
"no" );
10457 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
10458 Abc_Print( -2,
"\t-h : print the command usage\n");
10459 Abc_Print( -2,
"\t<file_in> : input file with design containing black boxes\n");
10460 Abc_Print( -2,
"\t<file_out> : output file with design containing white boxes\n");
10492 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
10496 globalUtilOptind++;
10497 if ( nLits < 1 || nLits > 2 )
10499 Abc_Print( 1,
"Currently, command \"outdec\" works for 1-lit and 2-lit primes only.\n" );
10512 if ( pNtk == NULL )
10519 Abc_Print( -1,
"Only works for strashed networks.\n" );
10523 if ( pNtkRes == NULL )
10525 Abc_Print( -1,
"Command has failed.\n" );
10532 Abc_Print( -2,
"usage: outdec [-Lvh]\n" );
10533 Abc_Print( -2,
"\t performs prime decomposition of the first output\n" );
10534 Abc_Print( -2,
"\t-L num : the number of literals in the primes [default = %d]\n", nLits );
10535 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
10536 Abc_Print( -2,
"\t-h : print the command usage\n");
10556 int c, nLimit = 30;
10568 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
10572 globalUtilOptind++;
10583 if ( pNtk == NULL )
10590 Abc_Print( -1,
"Only works for logic networks.\n" );
10595 Abc_Print( -1,
"The fanout limit should be more than 1.\n" );
10599 if ( pNtkRes == NULL )
10601 Abc_Print( -1,
"Command has failed.\n" );
10608 Abc_Print( -2,
"usage: nodedup [-Nvh]\n" );
10609 Abc_Print( -2,
"\t duplicates internal nodes with high fanout\n" );
10610 Abc_Print( -2,
"\t-N num : the number of fanouts to start duplication [default = %d]\n", nLimit );
10611 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
10612 Abc_Print( -2,
"\t-h : print the command usage\n");
10656 int fVeryVerbose = 0;
10666 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
10670 globalUtilOptind++;
10675 if ( globalUtilOptind >= argc )
10677 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
10680 nLeafMax = atoi(argv[globalUtilOptind]);
10681 globalUtilOptind++;
10682 if ( nLeafMax < 0 )
10686 if ( globalUtilOptind >= argc )
10688 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
10691 nDivMax = atoi(argv[globalUtilOptind]);
10692 globalUtilOptind++;
10697 if ( globalUtilOptind >= argc )
10699 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
10702 nDecMax = atoi(argv[globalUtilOptind]);
10703 globalUtilOptind++;
10708 if ( globalUtilOptind >= argc )
10710 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
10713 nNumOnes = atoi(argv[globalUtilOptind]);
10714 globalUtilOptind++;
10715 if ( nNumOnes < 0 )
10856 Abc_Print( -2,
"usage: test [-CKDNM] [-aovwh] <file_name>\n" );
10857 Abc_Print( -2,
"\t testbench for new procedures\n" );
10858 Abc_Print( -2,
"\t-C num : the max number of cuts [default = %d]\n", nCutMax );
10859 Abc_Print( -2,
"\t-K num : the max number of leaves [default = %d]\n", nLeafMax );
10860 Abc_Print( -2,
"\t-D num : the max number of divisors [default = %d]\n", nDivMax );
10861 Abc_Print( -2,
"\t-N num : the max number of node inputs [default = %d]\n", nDecMax );
10862 Abc_Print( -2,
"\t-M num : the max number of ones in the vector [default = %d]\n", nNumOnes );
10863 Abc_Print( -2,
"\t-a : toggle using new algorithm [default = %s]\n", fNewAlgo?
"yes":
"no" );
10864 Abc_Print( -2,
"\t-o : toggle using new ordering [default = %s]\n", fNewOrder?
"yes":
"no" );
10865 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
10866 Abc_Print( -2,
"\t-w : toggle printing very verbose information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
10867 Abc_Print( -2,
"\t-h : print the command usage\n");
10885 int c, iVar, fUniv, fVerbose, RetValue;
10901 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
10905 globalUtilOptind++;
10921 if ( pNtk == NULL )
10928 Abc_Print( -1,
"This command cannot be applied to an AIG with choice nodes.\n" );
10941 Abc_Print( -1,
"Command has failed.\n" );
10949 Abc_Print( -2,
"usage: qvar [-I num] [-uvh]\n" );
10950 Abc_Print( -2,
"\t quantifies one variable using the AIG\n" );
10951 Abc_Print( -2,
"\t-I num : the zero-based index of a variable to quantify [default = %d]\n", iVar );
10952 Abc_Print( -2,
"\t-u : toggle universal quantification [default = %s]\n", fUniv?
"yes":
"no" );
10953 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
10954 Abc_Print( -2,
"\t-h : print the command usage\n");
10972 int c, iVar, fInputs, fVerbose;
10988 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
10992 globalUtilOptind++;
11008 if ( pNtk == NULL )
11015 Abc_Print( -1,
"This command cannot be applied to an AIG with choice nodes.\n" );
11020 Abc_Print( -1,
"This command works only for sequential circuits.\n" );
11034 if ( pNtkRes == NULL )
11036 Abc_Print( -1,
"Command has failed.\n" );
11044 Abc_Print( -2,
"usage: qrel [-qvh]\n" );
11045 Abc_Print( -2,
"\t computes transition relation of the sequential network\n" );
11047 Abc_Print( -2,
"\t-q : perform quantification of inputs [default = %s]\n", fInputs?
"yes":
"no" );
11048 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
11049 Abc_Print( -2,
"\t-h : print the command usage\n");
11067 int c, nIters, fVerbose;
11082 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
11086 globalUtilOptind++;
11099 if ( pNtk == NULL )
11106 Abc_Print( -1,
"This command cannot be applied to an AIG with choice nodes.\n" );
11111 Abc_Print( -1,
"This command works only for combinational transition relations.\n" );
11116 Abc_Print( -1,
"This command works only for strashed networks.\n" );
11121 Abc_Print( -1,
"The transition relation should have one output.\n" );
11126 Abc_Print( -1,
"The transition relation should have an even number of inputs.\n" );
11131 if ( pNtkRes == NULL )
11133 Abc_Print( -1,
"Command has failed.\n" );
11141 Abc_Print( -2,
"usage: qreach [-I num] [-vh]\n" );
11142 Abc_Print( -2,
"\t computes unreachable states using AIG-based quantification\n" );
11143 Abc_Print( -2,
"\t assumes that the current network is a transition relation\n" );
11144 Abc_Print( -2,
"\t assumes that the initial state is composed of all zeros\n" );
11145 Abc_Print( -2,
"\t-I num : the number of image computations to perform [default = %d]\n", nIters );
11146 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
11147 Abc_Print( -2,
"\t-h : print the command usage\n");
11166 int c, nConfLim, fVerbose;
11180 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
11184 globalUtilOptind++;
11185 if ( nConfLim < 0 )
11197 if ( pNtk == NULL )
11204 Abc_Print( -1,
"This command cannot be applied to an AIG with choice nodes.\n" );
11209 Abc_Print( -1,
"This command works only for combinational transition relations.\n" );
11214 Abc_Print( -1,
"This command works only for strashed networks.\n" );
11219 Abc_Print( -1,
"The network should have at least two outputs.\n" );
11228 Abc_Print( -2,
"usage: senseinput [-C num] [-vh]\n" );
11229 Abc_Print( -2,
"\t computes sensitivity of POs to PIs under constraint\n" );
11230 Abc_Print( -2,
"\t constraint should be represented as the last PO\n" );
11231 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", nConfLim );
11232 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
11233 Abc_Print( -2,
"\t-h : print the command usage\n");
11251 Abc_Ntk_t * pNtk, * pNtkRes, * pNtkTemp;
11268 if ( pNtk == NULL )
11281 if ( pNtkRes == NULL )
11283 Abc_Print( -1,
"Command has failed.\n" );
11291 Abc_Print( -2,
"usage: istrash [-h]\n" );
11292 Abc_Print( -2,
"\t perform sequential structural hashing\n" );
11293 Abc_Print( -2,
"\t-h : print the command usage\n");
11324 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
11328 globalUtilOptind++;
11338 if ( pNtk == NULL )
11345 Abc_Print( -1,
"This command works only for strashed networks.\n" );
11353 Abc_Print( -2,
"usage: icut [-K num] [-h]\n" );
11354 Abc_Print( -2,
"\t computes sequential cuts of the given size\n" );
11355 Abc_Print( -2,
"\t-K num : the number of cut inputs (2 <= num <= 6) [default = %d]\n", nInputs );
11356 Abc_Print( -2,
"\t-h : print the command usage\n");
11374 int c, fUpdateLevel, fUseZeroCost, fVerbose;
11402 if ( pNtk == NULL )
11409 Abc_Print( -1,
"This command works only for strashed networks.\n" );
11414 if ( pNtkRes == NULL )
11416 Abc_Print( -1,
"Command has failed.\n" );
11424 Abc_Print( -2,
"usage: irw [-lzvh]\n" );
11425 Abc_Print( -2,
"\t perform combinational AIG rewriting\n" );
11426 Abc_Print( -2,
"\t-l : toggle preserving the number of levels [default = %s]\n", fUpdateLevel?
"yes":
"no" );
11427 Abc_Print( -2,
"\t-z : toggle using zero-cost replacements [default = %s]\n", fUseZeroCost?
"yes":
"no" );
11428 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
11429 Abc_Print( -2,
"\t-h : print the command usage\n");
11463 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
11467 globalUtilOptind++;
11468 if ( pPars->nCutsMax < 0 )
11472 if ( globalUtilOptind >= argc )
11474 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
11477 pPars->nSubgMax = atoi(argv[globalUtilOptind]);
11478 globalUtilOptind++;
11479 if ( pPars->nSubgMax < 0 )
11483 pPars->fFanout ^= 1;
11486 pPars->fUpdateLevel ^= 1;
11489 pPars->fUseZeros ^= 1;
11492 pPars->fRecycle ^= 1;
11495 pPars->fVerbose ^= 1;
11498 pPars->fVeryVerbose ^= 1;
11506 if ( pNtk == NULL )
11513 Abc_Print( -1,
"This command works only for strashed networks.\n" );
11517 if ( pNtkRes == NULL )
11519 Abc_Print( -1,
"Command has failed.\n" );
11527 Abc_Print( -2,
"usage: drw [-C num] [-N num] [-lfzrvwh]\n" );
11528 Abc_Print( -2,
"\t performs combinational AIG rewriting\n" );
11529 Abc_Print( -2,
"\t-C num : the max number of cuts at a node [default = %d]\n", pPars->nCutsMax );
11530 Abc_Print( -2,
"\t-N num : the max number of subgraphs tried [default = %d]\n", pPars->nSubgMax );
11531 Abc_Print( -2,
"\t-l : toggle preserving the number of levels [default = %s]\n", pPars->fUpdateLevel?
"yes":
"no" );
11532 Abc_Print( -2,
"\t-f : toggle representing fanouts [default = %s]\n", pPars->fFanout?
"yes":
"no" );
11533 Abc_Print( -2,
"\t-z : toggle using zero-cost replacements [default = %s]\n", pPars->fUseZeros?
"yes":
"no" );
11534 Abc_Print( -2,
"\t-r : toggle using cut recycling [default = %s]\n", pPars->fRecycle?
"yes":
"no" );
11535 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
11536 Abc_Print( -2,
"\t-w : toggle very verbose printout [default = %s]\n", pPars->fVeryVerbose?
"yes":
"no" );
11537 Abc_Print( -2,
"\t-h : print the command usage\n");
11571 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
11575 globalUtilOptind++;
11580 if ( globalUtilOptind >= argc )
11582 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
11585 pPars->
nLeafMax = atoi(argv[globalUtilOptind]);
11586 globalUtilOptind++;
11591 if ( globalUtilOptind >= argc )
11593 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
11596 pPars->
nCutsMax = atoi(argv[globalUtilOptind]);
11597 globalUtilOptind++;
11622 if ( pNtk == NULL )
11629 Abc_Print( -1,
"This command works only for strashed networks.\n" );
11634 Abc_Print( -1,
"This command only works for cut sizes 4 <= K <= 15.\n" );
11638 if ( pNtkRes == NULL )
11640 Abc_Print( -1,
"Command has failed.\n" );
11648 Abc_Print( -2,
"usage: drf [-M num] [-K num] [-C num] [-elzvwh]\n" );
11649 Abc_Print( -2,
"\t performs combinational AIG refactoring\n" );
11650 Abc_Print( -2,
"\t-M num : the min MFFC size to attempt refactoring [default = %d]\n", pPars->
nMffcMin );
11651 Abc_Print( -2,
"\t-K num : the max number of cuts leaves [default = %d]\n", pPars->
nLeafMax );
11652 Abc_Print( -2,
"\t-C num : the max number of cuts to try at a node [default = %d]\n", pPars->
nCutsMax );
11653 Abc_Print( -2,
"\t-e : toggle extending tbe cut below MFFC [default = %s]\n", pPars->
fExtend?
"yes":
"no" );
11654 Abc_Print( -2,
"\t-l : toggle preserving the number of levels [default = %s]\n", pPars->
fUpdateLevel?
"yes":
"no" );
11655 Abc_Print( -2,
"\t-z : toggle using zero-cost replacements [default = %s]\n", pPars->
fUseZeros?
"yes":
"no" );
11656 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
11657 Abc_Print( -2,
"\t-w : toggle very verbose printout [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
11658 Abc_Print( -2,
"\t-h : print the command usage\n");
11676 int fBalance, fVerbose, fUpdateLevel, fFanout, fPower, c;
11713 if ( pNtk == NULL )
11720 Abc_Print( -1,
"This command works only for strashed networks.\n" );
11723 pNtkRes =
Abc_NtkDC2( pNtk, fBalance, fUpdateLevel, fFanout, fPower, fVerbose );
11724 if ( pNtkRes == NULL )
11726 Abc_Print( -1,
"Command has failed.\n" );
11734 Abc_Print( -2,
"usage: dc2 [-blfpvh]\n" );
11735 Abc_Print( -2,
"\t performs combinational AIG optimization\n" );
11736 Abc_Print( -2,
"\t-b : toggle internal balancing [default = %s]\n", fBalance?
"yes":
"no" );
11737 Abc_Print( -2,
"\t-l : toggle updating level [default = %s]\n", fUpdateLevel?
"yes":
"no" );
11738 Abc_Print( -2,
"\t-f : toggle representing fanouts [default = %s]\n", fFanout?
"yes":
"no" );
11739 Abc_Print( -2,
"\t-p : toggle power-aware rewriting [default = %s]\n", fPower?
"yes":
"no" );
11740 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
11741 Abc_Print( -2,
"\t-h : print the command usage\n");
11760 int fBalance, fVerbose, fUpdateLevel, fConstruct, c;
11761 int nConfMax, nLevelMax;
11781 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
11785 globalUtilOptind++;
11786 if ( nConfMax < 0 )
11790 if ( globalUtilOptind >= argc )
11792 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
11795 nLevelMax = atoi(argv[globalUtilOptind]);
11796 globalUtilOptind++;
11797 if ( nLevelMax < 0 )
11818 if ( pNtk == NULL )
11825 Abc_Print( -1,
"This command works only for strashed networks.\n" );
11828 pNtkRes =
Abc_NtkDChoice( pNtk, fBalance, fUpdateLevel, fConstruct, nConfMax, nLevelMax, fVerbose );
11829 if ( pNtkRes == NULL )
11831 Abc_Print( -1,
"Command has failed.\n" );
11839 Abc_Print( -2,
"usage: dchoice [-C num] [-L num] [-blcvh]\n" );
11840 Abc_Print( -2,
"\t performs partitioned choicing using new AIG package\n" );
11841 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", nConfMax );
11842 Abc_Print( -2,
"\t-L num : the max level of nodes to consider (0 = not used) [default = %d]\n", nLevelMax );
11843 Abc_Print( -2,
"\t-b : toggle internal balancing [default = %s]\n", fBalance?
"yes":
"no" );
11844 Abc_Print( -2,
"\t-l : toggle updating level [default = %s]\n", fUpdateLevel?
"yes":
"no" );
11845 Abc_Print( -2,
"\t-c : toggle constructive computation of choices [default = %s]\n", fConstruct?
"yes":
"no" );
11846 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
11847 Abc_Print( -2,
"\t-h : print the command usage\n");
11880 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
11884 globalUtilOptind++;
11885 if ( pPars->nWords < 0 )
11889 if ( globalUtilOptind >= argc )
11891 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
11894 pPars->nBTLimit = atoi(argv[globalUtilOptind]);
11895 globalUtilOptind++;
11896 if ( pPars->nBTLimit < 0 )
11900 if ( globalUtilOptind >= argc )
11902 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
11905 pPars->nSatVarMax = atoi(argv[globalUtilOptind]);
11906 globalUtilOptind++;
11907 if ( pPars->nSatVarMax < 0 )
11911 pPars->fSynthesis ^= 1;
11914 pPars->fPower ^= 1;
11917 pPars->fSimulateTfo ^= 1;
11920 pPars->fUseGia ^= 1;
11923 pPars->fUseCSat ^= 1;
11926 pPars->fLightSynth ^= 1;
11929 pPars->fSkipRedSupp ^= 1;
11932 pPars->fVerbose ^= 1;
11940 if ( pNtk == NULL )
11947 Abc_Print( -1,
"This command works only for strashed networks.\n" );
11951 if ( pNtkRes == NULL )
11953 Abc_Print( -1,
"Command has failed.\n" );
11961 Abc_Print( -2,
"usage: dch [-WCS num] [-sptgcfrvh]\n" );
11962 Abc_Print( -2,
"\t computes structural choices using a new approach\n" );
11963 Abc_Print( -2,
"\t-W num : the max number of simulation words [default = %d]\n", pPars->nWords );
11964 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->nBTLimit );
11965 Abc_Print( -2,
"\t-S num : the max number of SAT variables [default = %d]\n", pPars->nSatVarMax );
11966 Abc_Print( -2,
"\t-s : toggle synthesizing three snapshots [default = %s]\n", pPars->fSynthesis?
"yes":
"no" );
11967 Abc_Print( -2,
"\t-p : toggle power-aware rewriting [default = %s]\n", pPars->fPower?
"yes":
"no" );
11968 Abc_Print( -2,
"\t-t : toggle simulation of the TFO classes [default = %s]\n", pPars->fSimulateTfo?
"yes":
"no" );
11969 Abc_Print( -2,
"\t-g : toggle using GIA to prove equivalences [default = %s]\n", pPars->fUseGia?
"yes":
"no" );
11970 Abc_Print( -2,
"\t-c : toggle using circuit-based SAT vs. MiniSat [default = %s]\n", pPars->fUseCSat?
"yes":
"no" );
11971 Abc_Print( -2,
"\t-f : toggle using faster logic synthesis [default = %s]\n", pPars->fLightSynth?
"yes":
"no" );
11972 Abc_Print( -2,
"\t-r : toggle skipping choices with redundant support [default = %s]\n", pPars->fSkipRedSupp?
"yes":
"no" );
11973 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
11974 Abc_Print( -2,
"\t-h : print the command usage\n");
11992 int fBalance, fVerbose, c;
12017 if ( pNtk == NULL )
12024 Abc_Print( -1,
"This command works only for strashed networks.\n" );
12028 if ( pNtkRes == NULL )
12030 Abc_Print( -1,
"Command has failed.\n" );
12038 Abc_Print( -2,
"usage: drwsat [-bvh]\n" );
12039 Abc_Print( -2,
"\t performs combinational AIG optimization for SAT\n" );
12040 Abc_Print( -2,
"\t-b : toggle internal balancing [default = %s]\n", fBalance?
"yes":
"no" );
12041 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
12042 Abc_Print( -2,
"\t-h : print the command usage\n");
12060 int c, fUpdateLevel, fUseZeroCost, fVerbose;
12088 if ( pNtk == NULL )
12095 Abc_Print( -1,
"This command works only for strashed networks.\n" );
12100 if ( pNtkRes == NULL )
12102 Abc_Print( -1,
"Command has failed.\n" );
12110 Abc_Print( -2,
"usage: irws [-zvh]\n" );
12111 Abc_Print( -2,
"\t perform sequential AIG rewriting\n" );
12113 Abc_Print( -2,
"\t-z : toggle using zero-cost replacements [default = %s]\n", fUseZeroCost?
"yes":
"no" );
12114 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
12115 Abc_Print( -2,
"\t-h : print the command usage\n");
12133 int c, fUpdateLevel, fVerbose;
12157 if ( pNtk == NULL )
12164 Abc_Print( -1,
"This command works only for strashed networks.\n" );
12169 if ( pNtkRes == NULL )
12171 Abc_Print( -1,
"Command has failed.\n" );
12179 Abc_Print( -2,
"usage: iresyn [-lvh]\n" );
12180 Abc_Print( -2,
"\t performs combinational resynthesis\n" );
12181 Abc_Print( -2,
"\t-l : toggle preserving the number of levels [default = %s]\n", fUpdateLevel?
"yes":
"no" );
12182 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
12183 Abc_Print( -2,
"\t-h : print the command usage\n");
12201 int c, fUpdateLevel, fVerbose;
12208 nConfLimit = 100000;
12219 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
12223 globalUtilOptind++;
12224 if ( nConfLimit < 0 )
12239 if ( pNtk == NULL )
12246 Abc_Print( -1,
"This command works only for strashed networks.\n" );
12251 if ( pNtkRes == NULL )
12253 Abc_Print( -1,
"Command has failed.\n" );
12261 Abc_Print( -2,
"usage: isat [-C num] [-vh]\n" );
12262 Abc_Print( -2,
"\t tries to prove the miter constant 0\n" );
12263 Abc_Print( -2,
"\t-C num : limit on the number of conflicts [default = %d]\n", nConfLimit );
12265 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
12266 Abc_Print( -2,
"\t-h : print the command usage\n");
12284 int c, fProve, fVerbose, fDoSparse;
12308 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
12312 globalUtilOptind++;
12313 if ( nPartSize < 0 )
12317 if ( globalUtilOptind >= argc )
12319 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
12322 nConfLimit = atoi(argv[globalUtilOptind]);
12323 globalUtilOptind++;
12324 if ( nConfLimit < 0 )
12328 if ( globalUtilOptind >= argc )
12330 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
12333 nLevelMax = atoi(argv[globalUtilOptind]);
12334 globalUtilOptind++;
12335 if ( nLevelMax < 0 )
12353 if ( pNtk == NULL )
12360 Abc_Print( -1,
"This command works only for strashed networks.\n" );
12364 if ( nPartSize > 0 )
12367 pNtkRes =
Abc_NtkIvyFraig( pNtk, nConfLimit, fDoSparse, fProve, 0, fVerbose );
12368 if ( pNtkRes == NULL )
12370 Abc_Print( -1,
"Command has failed.\n" );
12378 Abc_Print( -2,
"usage: ifraig [-P num] [-C num] [-L num] [-spvh]\n" );
12379 Abc_Print( -2,
"\t performs fraiging using a new method\n" );
12380 Abc_Print( -2,
"\t-P num : partition size (0 = partitioning is not used) [default = %d]\n", nPartSize );
12381 Abc_Print( -2,
"\t-C num : limit on the number of conflicts [default = %d]\n", nConfLimit );
12382 Abc_Print( -2,
"\t-L num : limit on node level to fraig (0 = fraig all nodes) [default = %d]\n", nLevelMax );
12383 Abc_Print( -2,
"\t-s : toggle considering sparse functions [default = %s]\n", fDoSparse?
"yes":
"no" );
12384 Abc_Print( -2,
"\t-p : toggle proving the miter outputs [default = %s]\n", fProve?
"yes":
"no" );
12385 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
12386 Abc_Print( -2,
"\t-h : print the command usage\n");
12404 int c, nConfLimit, fDoSparse, fProve, fSpeculate, fChoicing, fVerbose;
12424 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
12428 globalUtilOptind++;
12429 if ( nConfLimit < 0 )
12453 if ( pNtk == NULL )
12460 Abc_Print( -1,
"This command works only for strashed networks.\n" );
12464 pNtkRes =
Abc_NtkDarFraig( pNtk, nConfLimit, fDoSparse, fProve, 0, fSpeculate, fChoicing, fVerbose );
12465 if ( pNtkRes == NULL )
12467 Abc_Print( -1,
"Command has failed.\n" );
12475 Abc_Print( -2,
"usage: dfraig [-C num] [-sprcvh]\n" );
12476 Abc_Print( -2,
"\t performs fraiging using a new method\n" );
12477 Abc_Print( -2,
"\t-C num : limit on the number of conflicts [default = %d]\n", nConfLimit );
12478 Abc_Print( -2,
"\t-s : toggle considering sparse functions [default = %s]\n", fDoSparse?
"yes":
"no" );
12479 Abc_Print( -2,
"\t-p : toggle proving the miter outputs [default = %s]\n", fProve?
"yes":
"no" );
12480 Abc_Print( -2,
"\t-r : toggle speculative reduction [default = %s]\n", fSpeculate?
"yes":
"no" );
12481 Abc_Print( -2,
"\t-c : toggle accumulation of choices [default = %s]\n", fChoicing?
"yes":
"no" );
12482 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
12483 Abc_Print( -2,
"\t-h : print the command usage\n");
12501 int c, nCutsMax, nLeafMax, fVerbose;
12518 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
12522 globalUtilOptind++;
12523 if ( nCutsMax < 0 )
12527 if ( globalUtilOptind >= argc )
12529 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
12532 nLeafMax = atoi(argv[globalUtilOptind]);
12533 globalUtilOptind++;
12534 if ( nLeafMax < 0 )
12546 if ( pNtk == NULL )
12552 if ( nCutsMax < 2 )
12554 Abc_Print( -1,
"The number of cuts cannot be less than 2.\n" );
12558 if ( nLeafMax < 3 || nLeafMax > 16 )
12560 Abc_Print( -1,
"The number of leaves is infeasible.\n" );
12565 Abc_Print( -1,
"This command works only for strashed networks.\n" );
12569 pNtkRes =
Abc_NtkCSweep( pNtk, nCutsMax, nLeafMax, fVerbose );
12570 if ( pNtkRes == NULL )
12572 Abc_Print( -1,
"Command has failed.\n" );
12580 Abc_Print( -2,
"usage: csweep [-C num] [-K num] [-vh]\n" );
12581 Abc_Print( -2,
"\t performs cut sweeping using a new method\n" );
12582 Abc_Print( -2,
"\t-C num : limit on the number of cuts (C >= 2) [default = %d]\n", nCutsMax );
12583 Abc_Print( -2,
"\t-K num : limit on the cut size (3 <= K <= 16) [default = %d]\n", nLeafMax );
12584 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", fVerbose?
"yes":
"no" );
12585 Abc_Print( -2,
"\t-h : print the command usage\n");
12604 int c, RetValue, iOut = -1;
12622 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
12626 globalUtilOptind++;
12631 if ( globalUtilOptind >= argc )
12633 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
12637 globalUtilOptind++;
12642 if ( globalUtilOptind >= argc )
12644 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
12648 globalUtilOptind++;
12653 if ( globalUtilOptind >= argc )
12655 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
12659 globalUtilOptind++;
12664 if ( globalUtilOptind >= argc )
12666 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
12670 globalUtilOptind++;
12675 if ( globalUtilOptind >= argc )
12677 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
12681 globalUtilOptind++;
12703 if ( pNtk == NULL )
12711 Abc_Print( -1,
"The network has registers. Use \"dprove\".\n" );
12725 if ( RetValue == 0 )
12731 if ( pSimInfo[i] == 1 )
12737 Abc_Print( 1,
"ERROR in Abc_NtkMiterProve(): Generated counter-example is invalid.\n" );
12740 pAbc->Status = RetValue;
12741 if ( RetValue == -1 )
12743 else if ( RetValue == 0 )
12744 Abc_Print( 1,
"SATISFIABLE (output = %d) ", iOut );
12761 Abc_Print( -2,
"usage: iprove [-NCFGLI num] [-rfbvh]\n" );
12762 Abc_Print( -2,
"\t performs CEC using a new method\n" );
12763 Abc_Print( -2,
"\t-N num : max number of iterations [default = %d]\n", pParams->
nItersMax );
12768 Abc_Print( -2,
"\t-I num : max number of clause inspections in all SAT calls [default = %d]\n", (
int)pParams->
nTotalInspectLimit );
12769 Abc_Print( -2,
"\t-r : toggle the use of rewriting [default = %s]\n", pParams->
fUseRewriting?
"yes":
"no" );
12770 Abc_Print( -2,
"\t-f : toggle the use of FRAIGing [default = %s]\n", pParams->
fUseFraiging?
"yes":
"no" );
12771 Abc_Print( -2,
"\t-b : toggle the use of BDDs [default = %s]\n", pParams->
fUseBdds?
"yes":
"no" );
12772 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", pParams->
fVerbose?
"yes":
"no" );
12773 Abc_Print( -2,
"\t-h : print the command usage\n");
12918 extern void Abc_NtkQbf(
Abc_Ntk_t * pNtk,
int nPars,
int nIters,
int fDumpCnf,
int fVerbose );
12932 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
12936 globalUtilOptind++;
12941 if ( globalUtilOptind >= argc )
12943 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
12946 nIters = atoi(argv[globalUtilOptind]);
12947 globalUtilOptind++;
12963 if ( pNtk == NULL )
12970 Abc_Print( -1,
"Works only for combinational networks.\n" );
12975 Abc_Print( -1,
"The miter should have one primary output.\n" );
12980 Abc_Print( -1,
"The number of parameter variables is invalid (should be > 0 and < PI num).\n" );
12984 Abc_NtkQbf( pNtk, nPars, nIters, fDumpCnf, fVerbose );
12988 Abc_NtkQbf( pNtk, nPars, nIters, fDumpCnf, fVerbose );
12994 Abc_Print( -2,
"usage: qbf [-PI num] [-dvh]\n" );
12995 Abc_Print( -2,
"\t solves QBF problem EpVxM(p,x)\n" );
12996 Abc_Print( -2,
"\t-P num : number of parameters p (should be the first PIs) [default = %d]\n", nPars );
12997 Abc_Print( -2,
"\t-I num : quit after the given iteration even if unsolved [default = %d]\n", nIters );
12998 Abc_Print( -2,
"\t-d : toggle dumping QDIMACS file instead of solving [default = %s]\n", fDumpCnf?
"yes":
"no" );
12999 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
13000 Abc_Print( -2,
"\t-h : print the command usage\n");
13038 Abc_Print( -2,
"usage: npnload <filename>\n" );
13039 Abc_Print( -2,
"\t loads previously saved 6-input function library from file\n" );
13040 Abc_Print( -2,
"\t-h : print the command usage\n");
13078 Abc_Print( -2,
"usage: npnsave <filename>\n" );
13079 Abc_Print( -2,
"\t saves current 6-input function library into file\n" );
13080 Abc_Print( -2,
"\t-h : print the command usage\n");
13101 int c, fAndSpace = 1, fAbsNetlist = 0;
13121 Abc_Print( -1,
"The bridge mode is not available.\n" );
13126 if ( pAbc->pGia == NULL )
13128 Abc_Print( -1,
"There is no AIG in the &-space.\n" );
13137 if ( pAbc->pNtkCur == NULL )
13139 Abc_Print( -1,
"There is no network in the main-space.\n" );
13144 Abc_Print( -1,
"The main-space network is not an AIG.\n" );
13156 Abc_Print( -2,
"usage: send_aig -a\n" );
13157 Abc_Print( -2,
"\t sends current AIG to the bridge\n" );
13158 Abc_Print( -2,
"\t-a : toggle sending AIG from &-space [default = %s]\n", fAndSpace?
"yes":
"no" );
13159 Abc_Print( -2,
"\t-b : toggle sending netlist tagged as \"abstraction\". [default = %s]\n", fAbsNetlist?
"yes":
"no" );
13160 Abc_Print( -2,
"\t-h : print the command usage\n");
13192 Abc_Print( -1,
"The bridge mode is not available.\n" );
13195 if ( pAbc->Status == 0 && pAbc->pCex == NULL )
13197 Abc_Print( -1,
"Status is \"sat\", but current CEX is not available.\n" );
13204 Abc_Print( -2,
"usage: send_status\n" );
13205 Abc_Print( -2,
"\t sends current status to the bridge\n" );
13206 Abc_Print( -2,
"\t-h : print the command usage\n");
13239 if ( pNtk == NULL )
13244 if ( pAbc->pNtkBackup )
13250 Abc_Print( -2,
"usage: backup [-h]\n" );
13251 Abc_Print( -2,
"\t backs up the current network\n" );
13252 Abc_Print( -2,
"\t-h : print the command usage\n");
13271 if ( pAbc->pNtkBackup == NULL )
13273 Abc_Print( -1,
"There is no backup network.\n" );
13277 pAbc->nFrames = -1;
13282 Abc_Print( -2,
"usage: restore [-h]\n" );
13283 Abc_Print( -2,
"\t restores the current network\n" );
13284 Abc_Print( -2,
"\t-h : print the command usage\n");
13301 #ifdef USE_MINISAT22
13302 extern int MainSat(
int argc,
char** argv);
13305 printf(
"This command is currently disabled.\n" );
13311 #ifdef USE_MINISAT22
13312 extern int MainSimp(
int argc,
char** argv);
13315 printf(
"This command is currently disabled.\n" );
13340 int fPartition = 0;
13348 pParams->nPatsRand = 2048;
13349 pParams->nPatsDyna = 2048;
13350 pParams->nBTLimit = 100;
13351 pParams->fFuncRed = 1;
13352 pParams->fFeedBack = 1;
13353 pParams->fDist1Pats = 1;
13354 pParams->fDoSparse = 1;
13355 pParams->fChoicing = 0;
13356 pParams->fTryProve = 0;
13357 pParams->fVerbose = 0;
13358 pParams->fVerboseP = 0;
13367 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
13371 globalUtilOptind++;
13372 if ( pParams->nPatsRand < 0 )
13376 if ( globalUtilOptind >= argc )
13378 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
13381 pParams->nPatsDyna = atoi(argv[globalUtilOptind]);
13382 globalUtilOptind++;
13383 if ( pParams->nPatsDyna < 0 )
13387 if ( globalUtilOptind >= argc )
13389 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
13392 pParams->nBTLimit = atoi(argv[globalUtilOptind]);
13393 globalUtilOptind++;
13394 if ( pParams->nBTLimit < 0 )
13399 pParams->fFuncRed ^= 1;
13402 pParams->fDoSparse ^= 1;
13405 pParams->fChoicing ^= 1;
13408 pParams->fTryProve ^= 1;
13411 pParams->fVerbose ^= 1;
13429 if ( pNtk == NULL )
13436 Abc_Print( -1,
"Can only fraig a logic network or an AIG.\n" );
13441 pParams->fVerboseP = pParams->fTryProve;
13459 pNtkRes =
Abc_NtkFraig( pNtk, &Params, fAllNodes, fExdc );
13463 pNtkRes =
Abc_NtkFraig( pNtk, &Params, fAllNodes, fExdc );
13467 if ( pNtkRes == NULL )
13469 Abc_Print( -1,
"Fraiging has failed.\n" );
13473 if ( pParams->fTryProve )
13481 sprintf(Buffer,
"%d", pParams->nBTLimit );
13482 Abc_Print( -2,
"usage: fraig [-R num] [-D num] [-C num] [-rscpvtah]\n" );
13483 Abc_Print( -2,
"\t transforms a logic network into a functionally reduced AIG\n" );
13484 Abc_Print( -2,
"\t (known bugs: takes an UNSAT miter and returns a SAT one)\n");
13485 Abc_Print( -2,
"\t (there are newer fraiging commands, \"ifraig\" and \"dfraig\")\n" );
13486 Abc_Print( -2,
"\t-R num : number of random patterns (127 < num < 32769) [default = %d]\n", pParams->nPatsRand );
13487 Abc_Print( -2,
"\t-D num : number of systematic patterns (127 < num < 32769) [default = %d]\n", pParams->nPatsDyna );
13488 Abc_Print( -2,
"\t-C num : number of backtracks for one SAT problem [default = %s]\n", pParams->nBTLimit==-1?
"infinity" : Buffer );
13489 Abc_Print( -2,
"\t-r : toggle functional reduction [default = %s]\n", pParams->fFuncRed?
"yes":
"no" );
13490 Abc_Print( -2,
"\t-s : toggle considering sparse functions [default = %s]\n", pParams->fDoSparse?
"yes":
"no" );
13491 Abc_Print( -2,
"\t-c : toggle accumulation of choices [default = %s]\n", pParams->fChoicing?
"yes":
"no" );
13492 Abc_Print( -2,
"\t-p : toggle proving the miter outputs [default = %s]\n", pParams->fTryProve?
"yes":
"no" );
13493 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", pParams->fVerbose?
"yes":
"no" );
13494 Abc_Print( -2,
"\t-e : toggle functional sweeping using EXDC [default = %s]\n", fExdc?
"yes":
"no" );
13495 Abc_Print( -2,
"\t-a : toggle between all nodes and DFS nodes [default = %s]\n", fAllNodes?
"all":
"dfs" );
13496 Abc_Print( -2,
"\t-t : toggle using partitioned representation [default = %s]\n", fPartition?
"yes":
"no" );
13497 Abc_Print( -2,
"\t-h : print the command usage\n");
13536 if ( pNtk == NULL )
13544 if ( pNtkRes == NULL )
13546 Abc_Print( -1,
"Fraiging in the trust mode has failed.\n" );
13554 Abc_Print( -2,
"usage: fraig_trust [-h]\n" );
13555 Abc_Print( -2,
"\t transforms the current network into an AIG assuming it is FRAIG with choices\n" );
13557 Abc_Print( -2,
"\t-h : print the command usage\n");
13595 if ( pNtk == NULL )
13604 Abc_Print( -1,
"Fraig storing has failed.\n" );
13610 Abc_Print( -2,
"usage: fraig_store [-h]\n" );
13611 Abc_Print( -2,
"\t saves the current network in the AIG database\n" );
13613 Abc_Print( -2,
"\t-h : print the command usage\n");
13652 if ( pNtk == NULL )
13660 if ( pNtkRes == NULL )
13662 Abc_Print( -1,
"Fraig restoring has failed.\n" );
13670 Abc_Print( -2,
"usage: fraig_restore [-h]\n" );
13671 Abc_Print( -2,
"\t makes the current network by fraiging the AIG database\n" );
13673 Abc_Print( -2,
"\t-h : print the command usage\n");
13713 Abc_Print( -2,
"usage: fraig_clean [-h]\n" );
13714 Abc_Print( -2,
"\t cleans the internal FRAIG storage\n" );
13716 Abc_Print( -2,
"\t-h : print the command usage\n");
13769 if ( pNtk == NULL )
13776 Abc_Print( -1,
"Cannot sweep AIGs (use \"fraig\").\n" );
13781 Abc_Print( -1,
"Transform the current network into a logic network.\n" );
13787 Abc_Print( -1,
"Sweeping has failed.\n" );
13793 Abc_Print( -2,
"usage: fraig_sweep [-evwh]\n" );
13794 Abc_Print( -2,
"\t performs technology-dependent sweep\n" );
13795 Abc_Print( -2,
"\t-e : toggle functional sweeping using EXDC [default = %s]\n", fExdc?
"yes":
"no" );
13796 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
13797 Abc_Print( -2,
"\t-w : prints equivalence class information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
13798 Abc_Print( -2,
"\t-h : print the command usage\n");
13833 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
13837 globalUtilOptind++;
13850 if ( pNtk == NULL )
13857 Abc_Print( -1,
"This command works only for logic networks.\n" );
13864 Abc_Print( -1,
"The current network has no spec.\n" );
13877 Abc_Print( -2,
"usage: dress [-C num] [-vh] <file>\n" );
13878 Abc_Print( -2,
"\t transfers internal node names from file to the current network\n" );
13879 Abc_Print( -2,
"\t<file> : network with names (if not given, the current network spec is used)\n" );
13880 Abc_Print( -2,
"\t-C num : the maximum number of conflicts at each node [default = %d]\n", nConfs );
13881 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
13882 Abc_Print( -2,
"\t-h : print the command usage\n");
13899 char * FileName, * pTemp;
13916 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
13920 globalUtilOptind++;
13925 if ( globalUtilOptind >= argc )
13927 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
13930 nCuts = atoi(argv[globalUtilOptind]);
13931 globalUtilOptind++;
13947 if ( !(nVars >= 3 && nVars <= 16) )
13949 Abc_Print( -1,
"The range of allowed values is 3 <= K <= 16.\n" );
13954 Abc_Print( -1,
"The AIG subgraph recording is already started.\n" );
13959 if ( nArgcNew != 1 )
13960 Abc_Print( 1,
"File name is not given on the command line. Starting a new record.\n" );
13964 FileName = pArgvNew[0];
13966 for ( pTemp = FileName; *pTemp; pTemp++ )
13967 if ( *pTemp ==
'>' )
13969 if ( (pFile = fopen( FileName,
"r" )) == NULL )
13971 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
13973 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
13979 if ( pGia == NULL )
13981 Abc_Print( -1,
"Reading AIGER has failed.\n" );
13989 Abc_Print( -2,
"usage: rec_start3 [-K num] [-C num] [-fvh] <file>\n" );
13990 Abc_Print( -2,
"\t starts recording AIG subgraphs (should be called for\n" );
13991 Abc_Print( -2,
"\t an empty network or after reading in a previous record)\n" );
13992 Abc_Print( -2,
"\t-K num : the largest number of inputs [default = %d]\n", nVars );
13993 Abc_Print( -2,
"\t-C num : the max number of cuts used at a node (0 < num < 2^12) [default = %d]\n", nCuts );
13994 Abc_Print( -2,
"\t-f : toggles recording functions without AIG subgraphs [default = %s]\n", fFuncOnly?
"yes":
"no" );
13995 Abc_Print( -2,
"\t-v : toggles additional verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
13996 Abc_Print( -2,
"\t-h : print the command usage\n");
13997 Abc_Print( -2,
"\t<file> : AIGER file with the library\n");
14029 Abc_Print( -1,
"This command works only after calling \"rec_start3\".\n" );
14036 Abc_Print( -2,
"usage: rec_stop3 [-h]\n" );
14037 Abc_Print( -2,
"\t cleans the internal storage for AIG subgraphs\n" );
14038 Abc_Print( -2,
"\t-h : print the command usage\n");
14056 int c, fPrintLib = 0;
14073 Abc_Print( -1,
"This command works for AIGs only after calling \"rec_start2\".\n" );
14080 Abc_Print( -2,
"usage: rec_ps3 [-h]\n" );
14081 Abc_Print( -2,
"\t prints statistics about the recorded AIG subgraphs\n" );
14082 Abc_Print( -2,
"\t-h : print the command usage\n");
14120 Abc_Print( -1,
"This command works for AIGs.\n" );
14125 Abc_Print( -1,
"This command works for AIGs after calling \"rec_start2\".\n" );
14132 Abc_Print( -2,
"usage: rec_add3 [-h]\n" );
14133 Abc_Print( -2,
"\t adds subgraphs from the current network to the set\n" );
14134 Abc_Print( -2,
"\t-h : print the command usage\n");
14180 Abc_Print( -1,
"The AIG subgraph recording is not started.\n" );
14186 if ( nArgcNew != 1 )
14188 Abc_Print( -1,
"File name is not given on the command line.\n" );
14192 FileName = pArgvNew[0];
14195 else if ( fBinary )
14202 Abc_Print( 0,
"Library AIG is not available.\n" );
14207 Abc_Print( 0,
"No structure in the library.\n" );
14215 Abc_Print( -2,
"usage: rec_dump3 [-abh] <file>\n" );
14216 Abc_Print( -2,
"\t-h : print the command usage\n");
14217 Abc_Print( -2,
"\t-a : toggles dumping TTs into an ASCII file [default = %s]\n", fAscii?
"yes":
"no" );
14218 Abc_Print( -2,
"\t-b : toggles dumping TTs into a binary file [default = %s]\n", fBinary?
"yes":
"no" );
14219 Abc_Print( -2,
"\t<file> : AIGER file to write the library\n");
14237 char * FileName, * pTemp;
14257 Abc_Print( -1,
"This command works for AIGs only after calling \"rec_start3\".\n" );
14262 if ( nArgcNew != 1 )
14264 Abc_Print( -1,
"File name is not given on the command line.\n" );
14270 FileName = pArgvNew[0];
14272 for ( pTemp = FileName; *pTemp; pTemp++ )
14273 if ( *pTemp ==
'>' )
14275 if ( (pFile = fopen( FileName,
"r" )) == NULL )
14277 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
14279 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
14285 if ( pGia == NULL )
14287 Abc_Print( -1,
"Reading AIGER has failed.\n" );
14296 Abc_Print( -2,
"usage: rec_merge3 [-h] <file>\n" );
14297 Abc_Print( -2,
"\t merge libraries\n" );
14298 Abc_Print( -2,
"\t-h : print the command usage\n");
14299 Abc_Print( -2,
"\t<file> : AIGER file with the library\n");
14319 double DelayTarget;
14332 extern Abc_Ntk_t *
Abc_NtkMap(
Abc_Ntk_t * pNtk,
double DelayTarget,
double AreaMulti,
double DelayMulti,
float LogFan,
float Slew,
float Gain,
int nGatesMin,
int fRecovery,
int fSwitching,
int fVerbose );
14353 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
14357 globalUtilOptind++;
14358 if ( DelayTarget <= 0.0 )
14362 if ( globalUtilOptind >= argc )
14364 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a floating point number.\n" );
14367 AreaMulti = (float)
atof(argv[globalUtilOptind]);
14368 globalUtilOptind++;
14371 if ( globalUtilOptind >= argc )
14373 Abc_Print( -1,
"Command line switch \"-B\" should be followed by a floating point number.\n" );
14376 DelayMulti = (float)
atof(argv[globalUtilOptind]);
14377 globalUtilOptind++;
14380 if ( globalUtilOptind >= argc )
14382 Abc_Print( -1,
"Command line switch \"-F\" should be followed by a floating point number.\n" );
14385 LogFan = (float)
atof(argv[globalUtilOptind]);
14386 globalUtilOptind++;
14387 if ( LogFan < 0.0 )
14391 if ( globalUtilOptind >= argc )
14393 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a floating point number.\n" );
14396 Slew = (float)
atof(argv[globalUtilOptind]);
14397 globalUtilOptind++;
14402 if ( globalUtilOptind >= argc )
14404 Abc_Print( -1,
"Command line switch \"-G\" should be followed by a floating point number.\n" );
14407 Gain = (float)
atof(argv[globalUtilOptind]);
14408 globalUtilOptind++;
14413 if ( globalUtilOptind >= argc )
14415 Abc_Print( -1,
"Command line switch \"-M\" should be followed by a positive integer.\n" );
14418 nGatesMin = atoi(argv[globalUtilOptind]);
14419 globalUtilOptind++;
14420 if ( nGatesMin < 0 )
14445 if ( pNtk == NULL )
14457 if ( pNtk == NULL )
14459 Abc_Print( -1,
"Strashing before mapping has failed.\n" );
14464 if ( pNtk == NULL )
14466 Abc_Print( -1,
"Balancing before mapping has failed.\n" );
14469 Abc_Print( 0,
"The network was strashed and balanced before mapping.\n" );
14471 pNtkRes =
Abc_NtkMap( pNtk, DelayTarget, AreaMulti, DelayMulti, LogFan, Slew, Gain, nGatesMin, fRecovery, fSwitching, fVerbose );
14472 if ( pNtkRes == NULL )
14475 Abc_Print( -1,
"Mapping has failed.\n" );
14483 pNtkRes =
Abc_NtkMap( pNtk, DelayTarget, AreaMulti, DelayMulti, LogFan, Slew, Gain, nGatesMin, fRecovery, fSwitching, fVerbose );
14484 if ( pNtkRes == NULL )
14486 Abc_Print( -1,
"Mapping has failed.\n" );
14506 if ( DelayTarget == -1 )
14507 sprintf(Buffer,
"not used" );
14509 sprintf(Buffer,
"%.3f", DelayTarget );
14510 Abc_Print( -2,
"usage: map [-DABFSG float] [-M num] [-arspvh]\n" );
14511 Abc_Print( -2,
"\t performs standard cell mapping of the current network\n" );
14512 Abc_Print( -2,
"\t-D float : sets the global required times [default = %s]\n", Buffer );
14513 Abc_Print( -2,
"\t-A float : \"area multiplier\" to bias gate selection [default = %.2f]\n", AreaMulti );
14514 Abc_Print( -2,
"\t-B float : \"delay multiplier\" to bias gate selection [default = %.2f]\n", DelayMulti );
14515 Abc_Print( -2,
"\t-F float : the logarithmic fanout delay parameter [default = %.2f]\n", LogFan );
14516 Abc_Print( -2,
"\t-S float : the slew parameter used to generate the library [default = %.2f]\n", Slew );
14517 Abc_Print( -2,
"\t-G float : the gain parameter used to generate the library [default = %.2f]\n", Gain );
14518 Abc_Print( -2,
"\t-M num : skip gate classes whose size is less than this [default = %d]\n", nGatesMin );
14519 Abc_Print( -2,
"\t-a : toggles area-only mapping [default = %s]\n", fAreaOnly?
"yes":
"no" );
14520 Abc_Print( -2,
"\t-r : toggles area recovery [default = %s]\n", fRecovery?
"yes":
"no" );
14521 Abc_Print( -2,
"\t-s : toggles sweep after mapping [default = %s]\n", fSweep?
"yes":
"no" );
14522 Abc_Print( -2,
"\t-p : optimizes power by minimizing switching [default = %s]\n", fSwitching?
"yes":
"no" );
14523 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
14524 Abc_Print( -2,
"\t-h : print the command usage\n");
14560 Abc_Print( -1,
"Command line switch \"-F\" should be followed by a floating point number.\n" );
14564 globalUtilOptind++;
14569 if ( globalUtilOptind >= argc )
14571 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a floating point number.\n" );
14574 pPars->
nIterArea = atoi(argv[globalUtilOptind]);
14575 globalUtilOptind++;
14580 if ( globalUtilOptind >= argc )
14582 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a floating point number.\n" );
14585 pPars->
nCutsMax = atoi(argv[globalUtilOptind]);
14586 globalUtilOptind++;
14591 if ( globalUtilOptind >= argc )
14593 Abc_Print( -1,
"Command line switch \"-E\" should be followed by a floating point number.\n" );
14596 pPars->
fEpsilon = (float)
atof(argv[globalUtilOptind]);
14597 globalUtilOptind++;
14602 if ( globalUtilOptind >= argc )
14604 Abc_Print( -1,
"Command line switch \"-Q\" should be followed by a floating point number.\n" );
14607 pPars->
fADratio = (float)
atof(argv[globalUtilOptind]);
14608 globalUtilOptind++;
14634 if ( pNtk == NULL )
14643 if ( pNtk == NULL )
14645 Abc_Print( -1,
"Strashing before mapping has failed.\n" );
14650 if ( pNtk == NULL )
14652 Abc_Print( -1,
"Balancing before mapping has failed.\n" );
14655 Abc_Print( 0,
"The network was strashed and balanced before mapping.\n" );
14658 if ( pNtkRes == NULL )
14661 Abc_Print( -1,
"Mapping has failed.\n" );
14670 if ( pNtkRes == NULL )
14672 Abc_Print( -1,
"Mapping has failed.\n" );
14691 Abc_Print( -2,
"usage: amap [-FAC <num>] [-EQ <float>] [-mxisvh]\n" );
14692 Abc_Print( -2,
"\t performs standard cell mapping of the current network\n" );
14693 Abc_Print( -2,
"\t-F num : the number of iterations of area flow [default = %d]\n", pPars->
nIterFlow );
14694 Abc_Print( -2,
"\t-A num : the number of iterations of exact area [default = %d]\n", pPars->
nIterArea );
14695 Abc_Print( -2,
"\t-C num : the maximum number of cuts at a node [default = %d]\n", pPars->
nCutsMax );
14696 Abc_Print( -2,
"\t-E float : sets epsilon used for tie-breaking [default = %f]\n", pPars->
fEpsilon );
14697 Abc_Print( -2,
"\t-Q float : area/delay preference ratio [default = %.2f (area-only)] \n", pPars->
fADratio );
14698 Abc_Print( -2,
"\t-m : toggles using MUX matching [default = %s]\n", pPars->
fUseMuxes?
"yes":
"no" );
14699 Abc_Print( -2,
"\t-x : toggles using XOR matching [default = %s]\n", pPars->
fUseXors?
"yes":
"no" );
14700 Abc_Print( -2,
"\t-i : toggles assuming inverters are free [default = %s]\n", pPars->
fFreeInvs?
"yes":
"no" );
14701 Abc_Print( -2,
"\t-s : toggles sweep after mapping [default = %s]\n", fSweep?
"yes":
"no" );
14702 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
14703 Abc_Print( -2,
"\t-h : print the command usage\n");
14736 if ( pNtk == NULL )
14743 Abc_Print( -1,
"Cannot unmap the network that is not mapped.\n" );
14750 Abc_Print( -1,
"Unmapping has failed.\n" );
14756 Abc_Print( -2,
"usage: unmap [-h]\n" );
14757 Abc_Print( -2,
"\t replaces the library gates by the logic nodes represented using SOPs\n" );
14758 Abc_Print( -2,
"\t-h : print the command usage\n");
14790 if ( pNtk == NULL )
14798 Abc_Print( -1,
"Can only attach gates if the nodes have SOP representations.\n" );
14805 Abc_Print( -1,
"Attaching gates has failed.\n" );
14811 Abc_Print( -2,
"usage: attach [-h]\n" );
14812 Abc_Print( -2,
"\t replaces the SOP functions by the gates from the library\n" );
14813 Abc_Print( -2,
"\t-h : print the command usage\n");
14849 if ( pNtk == NULL )
14857 Abc_Print( -1,
"Superchoicing works only for the AIG representation (run \"strash\").\n" );
14863 if ( pNtkRes == NULL )
14865 Abc_Print( -1,
"Superchoicing has failed.\n" );
14873 Abc_Print( -2,
"usage: superc [-h]\n" );
14874 Abc_Print( -2,
"\t performs superchoicing\n" );
14875 Abc_Print( -2,
"\t (accumulate: \"r file.blif; rsup; b; sc; f -ac; wb file_sc.blif\")\n" );
14876 Abc_Print( -2,
"\t (map without supergate library: \"r file_sc.blif; ft; map\")\n" );
14877 Abc_Print( -2,
"\t-h : print the command usage\n");
14914 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
14918 globalUtilOptind++;
14919 if ( nLutSize < 0 )
14923 if ( globalUtilOptind >= argc )
14925 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a positive integer.\n" );
14928 nCutSizeMax = atoi(argv[globalUtilOptind]);
14929 globalUtilOptind++;
14930 if ( nCutSizeMax < 0 )
14943 if ( pNtk == NULL )
14951 Abc_Print( -1,
"Superchoicing works only for the AIG representation (run \"strash\").\n" );
14962 Abc_Print( -1,
"Superchoicing has failed.\n" );
14970 Abc_Print( -2,
"usage: supercl [-K num] [-N num] [-vh]\n" );
14971 Abc_Print( -2,
"\t performs superchoicing for K-LUTs\n" );
14972 Abc_Print( -2,
"\t (accumulate: \"r file.blif; b; scl; f -ac; wb file_sc.blif\")\n" );
14973 Abc_Print( -2,
"\t (FPGA map: \"r file_sc.blif; ft; read_lut lutlibK; fpga\")\n" );
14974 Abc_Print( -2,
"\t-K num : the number of LUT inputs [default = %d]\n", nLutSize );
14975 Abc_Print( -2,
"\t-N num : the max size of the cut [default = %d]\n", nCutSizeMax );
14976 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
14977 Abc_Print( -2,
"\t-h : print the command usage\n");
14993 int Abc_CommandFpga(
Abc_Frame_t * pAbc,
int argc,
char ** argv )
15038 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
15042 globalUtilOptind++;
15043 if ( DelayTarget <= 0.0 )
15047 if ( globalUtilOptind >= argc )
15049 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
15052 nLutSize = atoi(argv[globalUtilOptind]);
15053 globalUtilOptind++;
15054 if ( nLutSize < 0 )
15062 if ( pNtk == NULL )
15069 if ( nLutSize >= 3 && nLutSize <= 10 )
15082 if ( pNtk == NULL )
15084 Abc_Print( -1,
"Strashing before FPGA mapping has failed.\n" );
15089 if ( pNtk == NULL )
15091 Abc_Print( -1,
"Balancing before FPGA mapping has failed.\n" );
15094 Abc_Print( 1,
"The network was strashed and balanced before FPGA mapping.\n" );
15096 pNtkRes =
Abc_NtkFpga( pNtk, DelayTarget, fRecovery, fSwitching, fLatchPaths, fVerbose );
15097 if ( pNtkRes == NULL )
15100 Abc_Print( -1,
"FPGA mapping has failed.\n" );
15108 pNtkRes =
Abc_NtkFpga( pNtk, DelayTarget, fRecovery, fSwitching, fLatchPaths, fVerbose );
15109 if ( pNtkRes == NULL )
15111 Abc_Print( -1,
"FPGA mapping has failed.\n" );
15120 if ( DelayTarget == -1 )
15121 sprintf(Buffer,
"best possible" );
15123 sprintf(Buffer,
"%.2f", DelayTarget );
15124 if ( nLutSize == -1 )
15125 sprintf(LutSize,
"library" );
15127 sprintf(LutSize,
"%d", nLutSize );
15128 Abc_Print( -2,
"usage: fpga [-D float] [-K num] [-aplvh]\n" );
15129 Abc_Print( -2,
"\t performs FPGA mapping of the current network\n" );
15130 Abc_Print( -2,
"\t-a : toggles area recovery [default = %s]\n", fRecovery?
"yes":
"no" );
15131 Abc_Print( -2,
"\t-p : optimizes power by minimizing switching activity [default = %s]\n", fSwitching?
"yes":
"no" );
15132 Abc_Print( -2,
"\t-l : optimizes latch paths for delay, other paths for area [default = %s]\n", fLatchPaths?
"yes":
"no" );
15133 Abc_Print( -2,
"\t-D float : sets the required time for the mapping [default = %s]\n", Buffer );
15134 Abc_Print( -2,
"\t-K num : the number of LUT inputs (2 < num < 11) [default = %s]%s\n", LutSize, (nLutSize == -1 ?
" (type \"print_lut\")" :
"") );
15135 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
15136 Abc_Print( -2,
"\t-h : prints the command usage\n");
15151 int Abc_CommandFpgaFast(
Abc_Frame_t * pAbc,
int argc,
char ** argv )
15183 if ( globalUtilOptind >= argc )
15185 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
15188 DelayTarget = (float)
atof(argv[globalUtilOptind]);
15189 globalUtilOptind++;
15190 if ( DelayTarget <= 0.0 )
15194 if ( globalUtilOptind >= argc )
15196 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
15199 nLutSize = atoi(argv[globalUtilOptind]);
15200 globalUtilOptind++;
15201 if ( nLutSize < 0 )
15209 if ( pNtk == NULL )
15219 if ( pNtk == NULL )
15221 Abc_Print( -1,
"Strashing before FPGA mapping has failed.\n" );
15226 if ( pNtk == NULL )
15228 Abc_Print( -1,
"Balancing before FPGA mapping has failed.\n" );
15231 Abc_Print( 1,
"The network was strashed and balanced before FPGA mapping.\n" );
15234 if ( pNtkRes == NULL )
15237 Abc_Print( -1,
"FPGA mapping has failed.\n" );
15246 if ( pNtkRes == NULL )
15248 Abc_Print( -1,
"FPGA mapping has failed.\n" );
15257 if ( DelayTarget == -1 )
15258 sprintf(Buffer,
"not used" );
15260 sprintf(Buffer,
"%.2f", DelayTarget );
15261 Abc_Print( -2,
"usage: ffpga [-K num] [-avh]\n" );
15262 Abc_Print( -2,
"\t performs fast FPGA mapping of the current network\n" );
15263 Abc_Print( -2,
"\t-a : toggles area recovery [default = %s]\n", fRecovery?
"yes":
"no" );
15265 Abc_Print( -2,
"\t-K num : the number of LUT inputs (2 < num < 32) [default = %d]\n", nLutSize );
15266 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
15267 Abc_Print( -2,
"\t-h : prints the command usage\n");
15286 char Buffer[100], LutSize[100];
15294 while ( ( c =
Extra_UtilGetopt( argc, argv,
"KCFAGRNTDEWSqaflepmrsdbgxyojiktncvh" ) ) != EOF )
15299 if ( globalUtilOptind >= argc )
15301 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
15304 pPars->
nLutSize = atoi(argv[globalUtilOptind]);
15305 globalUtilOptind++;
15312 if ( globalUtilOptind >= argc )
15314 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a positive integer.\n" );
15317 pPars->
nCutsMax = atoi(argv[globalUtilOptind]);
15318 globalUtilOptind++;
15323 if ( globalUtilOptind >= argc )
15325 Abc_Print( -1,
"Command line switch \"-F\" should be followed by a positive integer.\n" );
15328 pPars->
nFlowIters = atoi(argv[globalUtilOptind]);
15329 globalUtilOptind++;
15334 if ( globalUtilOptind >= argc )
15336 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a positive integer.\n" );
15339 pPars->
nAreaIters = atoi(argv[globalUtilOptind]);
15340 globalUtilOptind++;
15345 if ( globalUtilOptind >= argc )
15347 Abc_Print( -1,
"Command line switch \"-G\" should be followed by a positive integer no less than 3.\n" );
15350 pPars->
nGateSize = atoi(argv[globalUtilOptind]);
15351 globalUtilOptind++;
15356 if ( globalUtilOptind >= argc )
15358 Abc_Print( 1,
"Command line switch \"-R\" should be followed by a floating point number.\n" );
15361 pPars->
nRelaxRatio = atoi(argv[globalUtilOptind]);
15362 globalUtilOptind++;
15367 if ( globalUtilOptind >= argc )
15369 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a positive integer no less than 3.\n" );
15373 globalUtilOptind++;
15378 if ( globalUtilOptind >= argc )
15380 Abc_Print( -1,
"Command line switch \"-T\" should be followed by a positive integer 0,1,or 2.\n" );
15383 pPars->
nStructType = atoi(argv[globalUtilOptind]);
15384 globalUtilOptind++;
15389 if ( globalUtilOptind >= argc )
15391 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
15395 globalUtilOptind++;
15400 if ( globalUtilOptind >= argc )
15402 Abc_Print( -1,
"Command line switch \"-E\" should be followed by a floating point number.\n" );
15405 pPars->
Epsilon = (float)
atof(argv[globalUtilOptind]);
15406 globalUtilOptind++;
15411 if ( globalUtilOptind >= argc )
15413 Abc_Print( -1,
"Command line switch \"-W\" should be followed by a floating point number.\n" );
15417 globalUtilOptind++;
15422 if ( globalUtilOptind >= argc )
15424 Abc_Print( -1,
"Command line switch \"-S\" should be followed by string.\n" );
15428 globalUtilOptind++;
15431 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a 2- or 3-char string (e.g. \"44\" or \"555\").\n" );
15506 if ( pNtk == NULL )
15513 if ( pPars->
pLutLib == NULL )
15515 Abc_Print( -1,
"The LUT library is not given.\n" );
15529 Abc_Print( -1,
"Incorrect number of cuts.\n" );
15545 Abc_Print( -1,
"This feature only works for {4,5,6}-LUTs.\n" );
15553 Abc_Print( -1,
"Only one additional check can be performed at the same time.\n" );
15560 Abc_Print( -1,
"This feature only works for {6,7}-LUTs.\n" );
15570 Abc_Print( -1,
"This feature only works for odd-sized LUTs.\n" );
15578 if ( pDsdMan == NULL )
15580 Abc_Print( -1,
"DSD manager is not available.\n" );
15590 Abc_Print( -1,
"DSD manager is not matched with any particular cell.\n" );
15601 Abc_Print( -1,
"Incompatible options (-S and -x).\n" );
15606 Abc_Print( -1,
"This feature only works for [6;16]-LUTs.\n" );
15661 printf(
"DSD only works for LUT structures XY.\n" );
15666 printf(
"DSD manager has incompatible number of variables.\n" );
15671 printf(
"DSD manager has different LUT size.\n" );
15678 printf(
"Size of required DSD manager (%d) exceeds the precompiled limit (%d) (change parameter DAU_MAX_VAR).\n", LutSize,
DAU_MAX_VAR );
15689 printf(
"LMS manager is not running (use \"rec_start3\").\n" );
15714 if ( pNtk == NULL )
15716 Abc_Print( -1,
"Strashing before FPGA mapping has failed.\n" );
15721 if ( pNtk == NULL )
15723 Abc_Print( -1,
"Balancing before FPGA mapping has failed.\n" );
15727 Abc_Print( 1,
"The network was strashed and balanced before FPGA mapping.\n" );
15730 if ( pNtkRes == NULL )
15733 Abc_Print( -1,
"FPGA mapping has failed.\n" );
15742 if ( pNtkRes == NULL )
15744 Abc_Print( -1,
"FPGA mapping has failed.\n" );
15754 sprintf(Buffer,
"best possible" );
15758 sprintf(LutSize,
"library" );
15761 Abc_Print( -2,
"usage: if [-KCFAGRNT num] [-DEW float] [-S str] [-qarlepmsdbgxyojiktncvh]\n" );
15762 Abc_Print( -2,
"\t performs FPGA technology mapping of the network\n" );
15763 Abc_Print( -2,
"\t-K num : the number of LUT inputs (2 < num < %d) [default = %s]\n",
IF_MAX_LUTSIZE+1, LutSize );
15764 Abc_Print( -2,
"\t-C num : the max number of priority cuts (0 < num < 2^12) [default = %d]\n", pPars->
nCutsMax );
15765 Abc_Print( -2,
"\t-F num : the number of area flow recovery iterations (num >= 0) [default = %d]\n", pPars->
nFlowIters );
15766 Abc_Print( -2,
"\t-A num : the number of exact area recovery iterations (num >= 0) [default = %d]\n", pPars->
nAreaIters );
15767 Abc_Print( -2,
"\t-G num : the max AND/OR gate size for mapping (0 = unused) [default = %d]\n", pPars->
nGateSize );
15768 Abc_Print( -2,
"\t-R num : the delay relaxation ratio (num >= 0) [default = %d]\n", pPars->
nRelaxRatio );
15769 Abc_Print( -2,
"\t-N num : the max size of non-decomposable nodes [default = unused]\n", pPars->
nNonDecLimit );
15770 Abc_Print( -2,
"\t-T num : the type of LUT structures [default = any]\n", pPars->
nStructType );
15771 Abc_Print( -2,
"\t-D float : sets the delay constraint for the mapping [default = %s]\n", Buffer );
15772 Abc_Print( -2,
"\t-E float : sets epsilon used for tie-breaking [default = %f]\n", pPars->
Epsilon );
15773 Abc_Print( -2,
"\t-W float : sets wire delay between adjects LUTs [default = %f]\n", pPars->
WireDelay );
15775 Abc_Print( -2,
"\t-q : toggles preprocessing using several starting points [default = %s]\n", pPars->
fPreprocess?
"yes":
"no" );
15776 Abc_Print( -2,
"\t-a : toggles area-oriented mapping [default = %s]\n", pPars->
fArea?
"yes":
"no" );
15777 Abc_Print( -2,
"\t-r : enables expansion/reduction of the best cuts [default = %s]\n", pPars->
fExpRed?
"yes":
"no" );
15778 Abc_Print( -2,
"\t-l : optimizes latch paths for delay, other paths for area [default = %s]\n", pPars->
fLatchPaths?
"yes":
"no" );
15779 Abc_Print( -2,
"\t-e : uses edge-based cut selection heuristics [default = %s]\n", pPars->
fEdge?
"yes":
"no" );
15780 Abc_Print( -2,
"\t-p : uses power-aware cut selection heuristics [default = %s]\n", pPars->
fPower?
"yes":
"no" );
15781 Abc_Print( -2,
"\t-m : enables cut minimization by removing vacuous variables [default = %s]\n", pPars->
fCutMin?
"yes":
"no" );
15782 Abc_Print( -2,
"\t-s : toggles delay-oriented mapping used with -S <NN> [default = %s]\n", pPars->
fDelayOptLut?
"yes":
"no" );
15783 Abc_Print( -2,
"\t-d : toggles deriving local AIGs using bi-decomposition [default = %s]\n", pPars->
fBidec?
"yes":
"no" );
15784 Abc_Print( -2,
"\t-b : toggles the use of one special feature [default = %s]\n", pPars->
fUseBat?
"yes":
"no" );
15785 Abc_Print( -2,
"\t-g : toggles delay optimization by SOP balancing [default = %s]\n", pPars->
fDelayOpt?
"yes":
"no" );
15786 Abc_Print( -2,
"\t-x : toggles delay optimization by DSD balancing [default = %s]\n", pPars->
fDsdBalance?
"yes":
"no" );
15787 Abc_Print( -2,
"\t-y : toggles delay optimization with recorded library [default = %s]\n", pPars->
fUserRecLib?
"yes":
"no" );
15788 Abc_Print( -2,
"\t-o : toggles using buffers to decouple combinational outputs [default = %s]\n", pPars->
fUseBuffs?
"yes":
"no" );
15789 Abc_Print( -2,
"\t-j : toggles enabling additional check [default = %s]\n", pPars->
fEnableCheck07?
"yes":
"no" );
15790 Abc_Print( -2,
"\t-i : toggles using cofactoring variables [default = %s]\n", pPars->
fUseCofVars?
"yes":
"no" );
15791 Abc_Print( -2,
"\t-k : toggles matching based on precomputed DSD manager [default = %s]\n", pPars->
fUseDsdTune?
"yes":
"no" );
15792 Abc_Print( -2,
"\t-t : toggles optimizing average rather than maximum level [default = %s]\n", pPars->
fDoAverage?
"yes":
"no" );
15793 Abc_Print( -2,
"\t-n : toggles computing DSDs of the cut functions [default = %s]\n", pPars->
fUseDsd?
"yes":
"no" );
15794 Abc_Print( -2,
"\t-c : toggles computing truth tables in a new way [default = %s]\n", pPars->
fUseTtPerm?
"yes":
"no" );
15795 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
15796 Abc_Print( -2,
"\t-h : prints the command usage\n");
15832 if ( globalUtilOptind >= argc )
15834 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
15838 globalUtilOptind++;
15843 if ( globalUtilOptind >= argc )
15845 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a floating point number.\n" );
15848 pPars->
nDegree = atoi(argv[globalUtilOptind]);
15849 globalUtilOptind++;
15869 if ( pNtk == NULL )
15876 Abc_Print( -1,
"Need mapped network.\n" );
15879 if ( pPars->
pLutLib == NULL )
15881 Abc_Print( -1,
"LUT library is not given.\n" );
15901 printf(
" Wire delay (%.2f) exceeds pin+wire delay (%.2f) for pin %d in the LUT library.\n", pPars->
DelayWire, pPars->
pLutDelays[c], c );
15912 Abc_Print( -2,
"usage: ifif [-DNcvwh]\n" );
15913 Abc_Print( -2,
"\t technology mapper into N-node K-LUT structures\n" );
15914 Abc_Print( -2,
"\t (takes a LUT network and maps it into a delay-optimal network\n" );
15915 Abc_Print( -2,
"\t of N-node K-LUT structures using the current LUT library)\n" );
15916 Abc_Print( -2,
"\t-D float : wire delay (should be less than the LUT delay) [default = %.2f]\n", pPars->
DelayWire );
15917 Abc_Print( -2,
"\t-N num : degree of the LUT structure [default = %d]\n", pPars->
nDegree );
15918 Abc_Print( -2,
"\t-c : toggles using LUT cascade vs LUT cluster [default = %s]\n", pPars->
fCascade?
"cascade":
"cluster" );
15919 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
15920 Abc_Print( -2,
"\t-w : toggles very verbose output [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
15921 Abc_Print( -2,
"\t-h : print the command usage\n");
15941 int c, fSecond = 0;
15958 if ( nArgcNew != 1 )
15960 Abc_Print( -1,
"File name is not given on the command line.\n" );
15964 FileName = (nArgcNew == 1) ? pArgvNew[0] : NULL;
15969 Abc_Print( -1,
"The DSD manager is not started.\n" );
15978 Abc_Print( -1,
"The DSD manager is not started.\n" );
15986 Abc_Print( -2,
"usage: dsd_save [-bh] <file>\n" );
15987 Abc_Print( -2,
"\t saves DSD manager into a file\n");
15988 Abc_Print( -2,
"\t-b : toggles processing second manager [default = %s]\n", fSecond?
"yes":
"no" );
15989 Abc_Print( -2,
"\t-h : print the command usage\n");
15990 Abc_Print( -2,
"\t<file> : (optional) file name to write\n");
16007 char * FileName, * pTemp;
16009 int c, nArgcNew, fSecond = 0;
16028 if ( nArgcNew != 1 )
16030 Abc_Print( -1,
"File name is not given on the command line.\n" );
16034 FileName = pArgvNew[0];
16036 for ( pTemp = FileName; *pTemp; pTemp++ )
16037 if ( *pTemp ==
'>' )
16039 if ( (pFile = fopen( FileName,
"r" )) == NULL )
16041 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
16043 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
16052 if ( pDsdMan == NULL )
16060 if ( pDsdMan == NULL )
16067 Abc_Print( -2,
"usage: dsd_load [-bh] <file>\n" );
16068 Abc_Print( -2,
"\t loads DSD manager from file\n");
16069 Abc_Print( -2,
"\t-b : toggles processing second manager [default = %s]\n", fSecond?
"yes":
"no" );
16070 Abc_Print( -2,
"\t-h : print the command usage\n");
16071 Abc_Print( -2,
"\t<file> : file name to read\n");
16088 int c, fSecond = 0;
16107 Abc_Print( -1,
"The DSD manager is not started.\n" );
16116 Abc_Print( -1,
"The DSD manager is not started.\n" );
16124 Abc_Print( -2,
"usage: dsd_free [-bh]\n" );
16125 Abc_Print( -2,
"\t deletes DSD manager\n" );
16126 Abc_Print( -2,
"\t-b : toggles processing second manager [default = %s]\n", fSecond?
"yes":
"no" );
16127 Abc_Print( -2,
"\t-h : print the command usage\n");
16144 int c, Number = 0, Support = 0, fOccurs = 0, fTtDump = 0, fSecond = 0, fVerbose = 0;
16151 if ( globalUtilOptind >= argc )
16153 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a floating point number.\n" );
16156 Number = atoi(argv[globalUtilOptind]);
16157 globalUtilOptind++;
16162 if ( globalUtilOptind >= argc )
16164 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a floating point number.\n" );
16167 Support = atoi(argv[globalUtilOptind]);
16168 globalUtilOptind++;
16194 Abc_Print( -1,
"The DSD manager is not started.\n" );
16203 Abc_Print( -1,
"The DSD manager is not started.\n" );
16211 Abc_Print( -2,
"usage: dsd_ps [-NS num] [-obvh]\n" );
16212 Abc_Print( -2,
"\t prints statistics of the DSD manager\n" );
16213 Abc_Print( -2,
"\t-N num : show structures whose ID divides by N [default = %d]\n", Number );
16214 Abc_Print( -2,
"\t-S num : show structures whose support size is S [default = %d]\n", Support );
16215 Abc_Print( -2,
"\t-o : toggles printing occurence distribution [default = %s]\n", fOccurs?
"yes":
"no" );
16216 Abc_Print( -2,
"\t-t : toggles dumping truth tables [default = %s]\n", fTtDump?
"yes":
"no" );
16217 Abc_Print( -2,
"\t-b : toggles processing second manager [default = %s]\n", fSecond?
"yes":
"no" );
16218 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
16219 Abc_Print( -2,
"\t-h : print the command usage\n");
16236 char * pStruct = NULL;
16237 int c, fVerbose = 0, fFast = 0, fAdd = 0, fSpec = 0, LutSize = 0, nConfls = 10000, nProcs = 1;
16245 if ( globalUtilOptind >= argc )
16247 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a floating point number.\n" );
16250 LutSize = atoi(argv[globalUtilOptind]);
16251 globalUtilOptind++;
16252 if ( LutSize < 4 || LutSize > 6 )
16256 if ( globalUtilOptind >= argc )
16258 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a floating point number.\n" );
16261 nConfls = atoi(argv[globalUtilOptind]);
16262 globalUtilOptind++;
16265 if ( globalUtilOptind >= argc )
16267 Abc_Print( -1,
"Command line switch \"-P\" should be followed by a floating point number.\n" );
16270 nProcs = atoi(argv[globalUtilOptind]);
16271 globalUtilOptind++;
16274 if ( globalUtilOptind >= argc )
16276 Abc_Print( -1,
"Command line switch \"-S\" should be followed by string.\n" );
16280 globalUtilOptind++;
16302 Abc_Print( -1,
"The DSD manager is not started.\n" );
16308 if ( pStructCur &&
strcmp(pStructCur, pStruct) )
16310 Abc_Print( -1,
"DSD manager matched with cell %s should be cleaned by \"dsd_filter -m\" before matching with cell %s.\n", pStructCur, pStruct );
16316 If_DsdManTune( pDsdMan, LutSize, fFast, fAdd, fSpec, fVerbose );
16320 Abc_Print( -2,
"usage: dsd_match [-KCP num] [-fasvh] [-S str]\n" );
16321 Abc_Print( -2,
"\t matches DSD structures with the given cell\n" );
16322 Abc_Print( -2,
"\t-K num : LUT size used for tuning [default = %d]\n", LutSize );
16323 Abc_Print( -2,
"\t-C num : the maximum number of conflicts [default = %d]\n", nConfls );
16324 Abc_Print( -2,
"\t-P num : the maximum number of processes [default = %d]\n", nProcs );
16325 Abc_Print( -2,
"\t-f : toggles using fast check [default = %s]\n", fFast?
"yes":
"no" );
16326 Abc_Print( -2,
"\t-a : toggles adding tuning to the current one [default = %s]\n", fAdd?
"yes":
"no" );
16327 Abc_Print( -2,
"\t-s : toggles using specialized check [default = %s]\n", fSpec?
"yes":
"no" );
16328 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
16329 Abc_Print( -2,
"\t-S str : string representing programmable cell [default = %s]\n", pStruct ? pStruct :
"not used" );
16330 Abc_Print( -2,
"\t-h : print the command usage\n");
16347 char * FileName, * pTemp;
16365 Abc_Print( -1,
"The DSD manager is not started.\n" );
16370 if ( nArgcNew != 1 )
16372 Abc_Print( -1,
"File name is not given on the command line.\n" );
16376 FileName = pArgvNew[0];
16378 for ( pTemp = FileName; *pTemp; pTemp++ )
16379 if ( *pTemp ==
'>' )
16381 if ( (pFile = fopen( FileName,
"r" )) == NULL )
16383 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
16385 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
16391 if ( pDsdMan == NULL )
16398 Abc_Print( -2,
"usage: dsd_merge [-h] <file>\n" );
16399 Abc_Print( -2,
"\t merges DSD manager from file with the current one\n");
16400 Abc_Print( -2,
"\t-h : print the command usage\n");
16401 Abc_Print( -2,
"\t<file> : file name to read\n");
16420 int c, nLimit = 0, nLutSize = -1, fCleanOccur = 0, fCleanMarks = 0, fInvMarks = 0, fUnate = 0, fThresh = 0, fVerbose = 0;
16427 if ( globalUtilOptind >= argc )
16429 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a floating point number.\n" );
16432 nLimit = atoi(argv[globalUtilOptind]);
16433 globalUtilOptind++;
16436 if ( globalUtilOptind >= argc )
16438 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a floating point number.\n" );
16441 nLutSize = atoi(argv[globalUtilOptind]);
16442 globalUtilOptind++;
16468 if ( pDsd == NULL )
16470 Abc_Print( -1,
"The DSD manager is not started.\n" );
16475 if ( nLutSize >= 0 )
16490 Abc_Print( -2,
"usage: dsd_filter [-LK num] [-omiutvh]\n" );
16491 Abc_Print( -2,
"\t filtering structured and modifying parameters of DSD manager\n" );
16492 Abc_Print( -2,
"\t-L num : remove structures with fewer occurrences that this [default = %d]\n", nLimit );
16493 Abc_Print( -2,
"\t-K num : new LUT size to set for the DSD manager [default = %d]\n", nLutSize );
16494 Abc_Print( -2,
"\t-o : toggles cleaning occurrence counters [default = %s]\n", fCleanOccur?
"yes":
"no" );
16495 Abc_Print( -2,
"\t-m : toggles cleaning matching marks [default = %s]\n", fCleanMarks?
"yes":
"no" );
16496 Abc_Print( -2,
"\t-i : toggles inverting matching marks [default = %s]\n", fInvMarks?
"yes":
"no" );
16497 Abc_Print( -2,
"\t-u : toggles marking unate functions [default = %s]\n", fUnate?
"yes":
"no" );
16498 Abc_Print( -2,
"\t-t : toggles marking threshold functions [default = %s]\n", fThresh?
"yes":
"no" );
16499 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
16500 Abc_Print( -2,
"\t-h : print the command usage\n");
16521 char * pInitStr = NULL;
16536 if ( globalUtilOptind >= argc )
16538 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a file name.\n" );
16542 globalUtilOptind++;
16569 if ( pNtk == NULL )
16577 Abc_Print( -1,
"The current network is combinational.\n" );
16581 if ( pInitStr != NULL )
16589 if ( pInitStr[i] ==
'0' )
16591 else if ( pInitStr[i] ==
'1' )
16608 else if ( fRandom )
16610 srand( time(NULL) );
16617 else if ( fDontCare )
16622 else if ( fUseCexCs || fUseCexNs )
16627 if ( fUseCexCs && fUseCexNs )
16629 Abc_Print( -1,
"The two options (-c and -n) are incompatible.\n" );
16634 Abc_Print( -1,
"The current network should be an AIG.\n" );
16637 if ( pAbc->pCex == NULL )
16639 Abc_Print( -1,
"The current CEX is not available.\n" );
16654 Abc_Print( -1,
"The initial states remain unchanged.\n" );
16658 Abc_Print( -2,
"usage: init [-zordcnh] [-S <init_string>]\n" );
16659 Abc_Print( -2,
"\t resets initial states of all latches\n" );
16660 Abc_Print( -2,
"\t-z : set zeros initial states [default = %s]\n", fZeros?
"yes":
"no" );
16661 Abc_Print( -2,
"\t-o : set ones initial states [default = %s]\n", fOnes?
"yes":
"no" );
16662 Abc_Print( -2,
"\t-d : set don't-care initial states [default = %s]\n", fDontCare?
"yes":
"no" );
16663 Abc_Print( -2,
"\t-r : set random initial states [default = %s]\n", fRandom?
"yes":
"no" );
16664 Abc_Print( -2,
"\t-c : set failure current state from the CEX (and run \"zero\") [default = %s]\n", fUseCexCs?
"yes":
"no" );
16665 Abc_Print( -2,
"\t-n : set next state after failure from the CEX (and run \"zero\") [default = %s]\n", fUseCexNs?
"yes":
"no" );
16666 Abc_Print( -2,
"\t-h : print the command usage\n");
16667 Abc_Print( -2,
"\t-S str : (optional) initial state [default = unused]\n" );
16700 if ( pNtk == NULL )
16708 Abc_Print( -1,
"The current network is combinational.\n" );
16714 Abc_Print( -1,
"This command works only for AIGs.\n" );
16720 if ( pNtkRes == NULL )
16722 Abc_Print( -1,
"Converting to sequential AIG has failed.\n" );
16731 Abc_Print( -2,
"\t converts latches to have const-0 initial value\n" );
16732 Abc_Print( -2,
"\t-h : print the command usage\n");
16750 int c, fUseCex = 0;
16767 if ( pNtk == NULL )
16777 int k, nFlopsX = 0;
16778 if ( pAbc->pCex == NULL )
16780 Abc_Print( -1,
"Current CEX is not available.\n" );
16786 nFlopsX += (
int)(pInit[k] ==
'x');
16788 if (
Abc_NtkPiNum(pNtk) + nFlopsX != pAbc->pCex->nPis )
16790 Abc_Print( -1,
"The number of PIs (%d) plus X-valued flops (%d) in the original network does not match the number of PIs in the current CEX (%d).\n",
16796 assert( pAbc->pCex->nRegs == Abc_NtkLatchNum(pAbc->pNtkCur) );
16804 Abc_Print( -1,
"The current network is combinational.\n" );
16810 Abc_Print( -1,
"This command works only for logic networks.\n" );
16819 Abc_Print( -2,
"usage: undc [-ch]\n" );
16820 Abc_Print( -2,
"\t converts latches with DC init values into free PIs\n" );
16821 Abc_Print( -2,
"\t-c : toggles transforming CEX after \"logic;undc;st;zero\" [default = %s]\n", fUseCex?
"yes":
"no" );
16822 Abc_Print( -2,
"\t-h : print the command usage\n");
16856 if ( pNtk == NULL )
16863 Abc_Print( -1,
"The current network is combinational.\n" );
16868 Abc_Print( -1,
"This command works only for logic networks.\n" );
16873 if ( pNtkRes == NULL )
16875 Abc_Print( -1,
"Converting to one-hot encoding has failed.\n" );
16883 Abc_Print( -2,
"usage: onehot [-h]\n" );
16884 Abc_Print( -2,
"\t converts natural encoding into one-hot encoding\n" );
16885 Abc_Print( -2,
"\t-h : print the command usage\n");
16914 if ( globalUtilOptind >= argc )
16916 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a positive integer.\n" );
16919 nLatches = atoi(argv[globalUtilOptind]);
16920 globalUtilOptind++;
16921 if ( nLatches < 0 )
16931 if ( pNtk == NULL )
16939 Abc_Print( -1,
"The current network is combinational.\n" );
16948 Abc_Print( -2,
"usage: pipe [-L num] [-h]\n" );
16949 Abc_Print( -2,
"\t inserts the given number of latches at each PI for pipelining\n" );
16950 Abc_Print( -2,
"\t-L num : the number of latches to insert [default = %d]\n", nLatches );
16951 Abc_Print( -2,
"\t-h : print the command usage\n");
16985 if ( pNtk == NULL )
16993 Abc_Print( -1,
"The network has no latches.\n" );
16999 Abc_Print( -1,
"Conversion to sequential AIG works only for combinational AIGs (run \"strash\").\n" );
17006 if ( pNtkRes == NULL )
17008 Abc_Print( -1,
"Converting to sequential AIG has failed.\n" );
17017 Abc_Print( -2,
"\t converts AIG into sequential AIG\n" );
17018 Abc_Print( -2,
"\t-h : print the command usage\n");
17057 if ( pNtk == NULL )
17076 if ( pNtkRes == NULL )
17078 Abc_Print( -1,
"Converting sequential AIG into an SOP logic network has failed.\n" );
17086 Abc_Print( -2,
"usage: unseq [-sh]\n" );
17087 Abc_Print( -2,
"\t converts sequential AIG into an SOP logic network\n" );
17088 Abc_Print( -2,
"\t-s : toggle sharing latches [default = %s]\n", fShare?
"yes":
"no" );
17089 Abc_Print( -2,
"\t-h : print the command usage\n");
17130 if ( globalUtilOptind >= argc )
17132 Abc_Print( -1,
"Command line switch \"-M\" should be followed by a positive integer.\n" );
17135 Mode = atoi(argv[globalUtilOptind]);
17136 globalUtilOptind++;
17141 if ( globalUtilOptind >= argc )
17143 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a positive integer.\n" );
17146 nDelayLim = atoi(argv[globalUtilOptind]);
17147 globalUtilOptind++;
17148 if ( nDelayLim < 0 )
17170 if ( pNtk == NULL )
17176 if ( fForward && fBackward )
17178 Abc_Print( -1,
"Only one switch \"-f\" or \"-b\" can be selected at a time.\n" );
17188 if ( Mode < 0 || Mode > 6 )
17190 Abc_Print( -1,
"The mode (%d) is incorrect. Retiming is not performed.\n", Mode );
17198 Abc_Print( -1,
"Retiming with choice nodes is not implemented.\n" );
17204 Abc_NtkRetime( pNtkRes, Mode, nDelayLim, fForward, fBackward, fOneStep, fVerbose );
17213 Abc_Print( -1,
"Converting to SOPs has failed.\n" );
17219 Abc_Print( -1,
"The network is not a logic network. Retiming is not performed.\n" );
17224 Abc_NtkRetime( pNtk, Mode, nDelayLim, fForward, fBackward, fOneStep, fVerbose );
17228 Abc_Print( -2,
"usage: retime [-MD num] [-fbvh]\n" );
17229 Abc_Print( -2,
"\t retimes the current network using one of the algorithms:\n" );
17230 Abc_Print( -2,
"\t 1: most forward retiming\n" );
17231 Abc_Print( -2,
"\t 2: most backward retiming\n" );
17232 Abc_Print( -2,
"\t 3: forward and backward min-area retiming\n" );
17233 Abc_Print( -2,
"\t 4: forward and backward min-delay retiming\n" );
17234 Abc_Print( -2,
"\t 5: mode 3 followed by mode 4\n" );
17235 Abc_Print( -2,
"\t 6: Pan's optimum-delay retiming using binary search\n" );
17236 Abc_Print( -2,
"\t-M num : the retiming algorithm to use [default = %d]\n", Mode );
17237 Abc_Print( -2,
"\t-D num : the minimum delay target (0=unused) [default = %d]\n", nDelayLim );
17238 Abc_Print( -2,
"\t-f : enables forward-only retiming in modes 3,4,5 [default = %s]\n", fForward?
"yes":
"no" );
17239 Abc_Print( -2,
"\t-b : enables backward-only retiming in modes 3,4,5 [default = %s]\n", fBackward?
"yes":
"no" );
17240 Abc_Print( -2,
"\t-s : enables retiming one step only in mode 4 [default = %s]\n", fOneStep?
"yes":
"no" );
17241 Abc_Print( -2,
"\t-v : enables verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
17242 Abc_Print( -2,
"\t-h : print the command usage\n");
17283 nStepsMax = 100000;
17293 if ( globalUtilOptind >= argc )
17295 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a positive integer.\n" );
17298 nMaxIters = atoi(argv[globalUtilOptind]);
17299 globalUtilOptind++;
17300 if ( nMaxIters < 0 )
17304 if ( globalUtilOptind >= argc )
17306 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a positive integer.\n" );
17309 nStepsMax = atoi(argv[globalUtilOptind]);
17310 globalUtilOptind++;
17311 if ( nStepsMax < 0 )
17321 fBackwardOnly ^= 1;
17339 if ( pNtk == NULL )
17353 Abc_Print( -1,
"This command works only for structrally hashed networks. Run \"st\".\n" );
17360 else if ( fFastAlgo )
17365 if ( pNtkRes == NULL )
17367 Abc_Print( -1,
"Retiming has failed.\n" );
17375 Abc_Print( -2,
"usage: dretime [-NS num] [-mfbiavh]\n" );
17376 Abc_Print( -2,
"\t new implementation of min-area (or most-forward) retiming\n" );
17377 Abc_Print( -2,
"\t-m : toggle min-area retiming and most-forward retiming [default = %s]\n", fMinArea?
"min-area":
"most-fwd" );
17378 Abc_Print( -2,
"\t-f : enables forward-only retiming [default = %s]\n", fForwardOnly?
"yes":
"no" );
17379 Abc_Print( -2,
"\t-b : enables backward-only retiming [default = %s]\n", fBackwardOnly?
"yes":
"no" );
17380 Abc_Print( -2,
"\t-i : enables init state computation [default = %s]\n", fInitial?
"yes":
"no" );
17381 Abc_Print( -2,
"\t-N num : the max number of one-frame iterations to perform [default = %d]\n", nMaxIters );
17382 Abc_Print( -2,
"\t-S num : the max number of forward retiming steps to perform [default = %d]\n", nStepsMax );
17383 Abc_Print( -2,
"\t-a : enables a fast most-forward algorithm [default = %s]\n", fFastAlgo?
"yes":
"no" );
17384 Abc_Print( -2,
"\t-v : enables verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
17385 Abc_Print( -2,
"\t-h : print the command usage\n");
17407 int fComputeInit, fGuaranteeInit, fBlockConst;
17408 int fFastButConservative;
17411 if ( argc == 2 && !
strcmp(argv[1],
"-h") )
17413 Abc_Print( -2,
"The fretime command is temporarily disabled.\n" );
17417 Abc_Print( -1,
"This command is temporarily disabled.\n" );
17427 fFastButConservative = 0;
17430 fGuaranteeInit = 0;
17441 if ( globalUtilOptind >= argc )
17443 Abc_Print( -1,
"Command line switch \"-M\" should be followed by a positive integer.\n" );
17446 nMaxIters = atoi(argv[globalUtilOptind]);
17447 globalUtilOptind++;
17448 if ( nMaxIters < 0 )
17452 if ( globalUtilOptind >= argc )
17454 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a positive integer.\n" );
17457 maxDelay = atoi(argv[globalUtilOptind]);
17458 globalUtilOptind++;
17459 if ( maxDelay < 0 )
17466 fFastButConservative ^= 1;
17475 fGuaranteeInit ^= 1;
17490 if ( pNtk == NULL )
17496 if ( fForward && fBackward )
17498 Abc_Print( -1,
"Only one switch \"-f\" or \"-b\" can be selected at a time.\n" );
17502 if ( fGuaranteeInit && !fComputeInit )
17504 Abc_Print( -1,
"Initial state guarantee (-g) requires initial state computation (-i).\n" );
17516 Abc_Print( -1,
"Retiming with choice nodes is not implemented.\n" );
17526 if (pNtkRes != pNtk)
17532 Abc_Print( -2,
"usage: fretime [-M num] [-D num] [-fbvih]\n" );
17533 Abc_Print( -2,
"\t retimes the current network using flow-based algorithm\n" );
17534 Abc_Print( -2,
"\t-M num : the maximum number of iterations [default = %d]\n", nMaxIters );
17535 Abc_Print( -2,
"\t-D num : the maximum delay [default = none]\n" );
17536 Abc_Print( -2,
"\t-i : enables init state computation [default = %s]\n", fComputeInit?
"yes":
"no" );
17537 Abc_Print( -2,
"\t-k : blocks retiming over const nodes [default = %s]\n", fBlockConst?
"yes":
"no" );
17538 Abc_Print( -2,
"\t-g : guarantees init state computation [default = %s]\n", fGuaranteeInit?
"yes":
"no" );
17539 Abc_Print( -2,
"\t-c : very fast (but conserv.) delay constraints [default = %s]\n", fFastButConservative?
"yes":
"no" );
17540 Abc_Print( -2,
"\t-f : enables forward-only retiming [default = %s]\n", fForward?
"yes":
"no" );
17541 Abc_Print( -2,
"\t-b : enables backward-only retiming [default = %s]\n", fBackward?
"yes":
"no" );
17542 Abc_Print( -2,
"\t-v : enables verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
17543 Abc_Print( -2,
"\t-h : print the command usage\n");
17582 if ( pNtk == NULL )
17589 Abc_Print( -1,
"Only works for logic networks.\n" );
17594 Abc_Print( -1,
"The network is combinational.\n" );
17599 if ( pNtkRes == NULL )
17601 Abc_Print( -1,
"Sequential cleanup has failed.\n" );
17609 Abc_Print( -2,
"usage: cretime [-vh]\n" );
17610 Abc_Print( -2,
"\t performs most-forward retiming with equiv classes\n" );
17611 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
17612 Abc_Print( -2,
"\t-h : print the command usage\n");
17629 Abc_Ntk_t * pNtk, * pNtkNew, * pNtkRes;
17643 if ( globalUtilOptind >= argc )
17645 Abc_Print( -1,
"Command line switch \"-I\" should be followed by a positive integer.\n" );
17648 nMaxIters = atoi(argv[globalUtilOptind]);
17649 globalUtilOptind++;
17650 if ( nMaxIters < 0 )
17663 if ( pNtk == NULL )
17689 if ( pNtkNew == NULL )
17691 Abc_Print( -1,
"Strashing before FPGA mapping/retiming has failed.\n" );
17697 if ( pNtkNew == NULL )
17699 Abc_Print( -1,
"Balancing before FPGA mapping has failed.\n" );
17707 if ( pNtkNew == NULL )
17709 Abc_Print( -1,
"Converting into a seq AIG before FPGA mapping/retiming has failed.\n" );
17713 Abc_Print( 1,
"The network was strashed and balanced before FPGA mapping/retiming.\n" );
17719 if ( pNtkRes == NULL )
17731 Abc_Print( -2,
"usage: sfpga [-I num] [-vh]\n" );
17732 Abc_Print( -2,
"\t performs integrated sequential FPGA mapping/retiming\n" );
17733 Abc_Print( -2,
"\t-I num : max number of iterations of l-value computation [default = %d]\n", nMaxIters );
17734 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
17735 Abc_Print( -2,
"\t-h : print the command usage\n");
17752 Abc_Ntk_t * pNtk, * pNtkNew, * pNtkRes;
17766 if ( globalUtilOptind >= argc )
17768 Abc_Print( -1,
"Command line switch \"-I\" should be followed by a positive integer.\n" );
17771 nMaxIters = atoi(argv[globalUtilOptind]);
17772 globalUtilOptind++;
17773 if ( nMaxIters < 0 )
17786 if ( pNtk == NULL )
17812 if ( pNtkNew == NULL )
17814 Abc_Print( -1,
"Strashing before SC mapping/retiming has failed.\n" );
17820 if ( pNtkNew == NULL )
17822 Abc_Print( -1,
"Balancing before SC mapping/retiming has failed.\n" );
17830 if ( pNtkNew == NULL )
17832 Abc_Print( -1,
"Converting into a seq AIG before SC mapping/retiming has failed.\n" );
17836 Abc_Print( -1,
"The network was strashed and balanced before SC mapping/retiming.\n" );
17842 if ( pNtkRes == NULL )
17855 Abc_Print( -2,
"usage: smap [-I num] [-vh]\n" );
17856 Abc_Print( -2,
"\t performs integrated sequential standard-cell mapping/retiming\n" );
17857 Abc_Print( -2,
"\t-I num : max number of iterations of l-value computation [default = %d]\n", nMaxIters );
17858 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
17859 Abc_Print( -2,
"\t-h : print the command usage\n");
17903 if ( globalUtilOptind >= argc )
17905 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
17908 pPars->
nPartSize = atoi(argv[globalUtilOptind]);
17909 globalUtilOptind++;
17914 if ( globalUtilOptind >= argc )
17916 Abc_Print( -1,
"Command line switch \"-Q\" should be followed by an integer.\n" );
17919 pPars->
nOverSize = atoi(argv[globalUtilOptind]);
17920 globalUtilOptind++;
17925 if ( globalUtilOptind >= argc )
17927 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
17930 pPars->
nFramesP = atoi(argv[globalUtilOptind]);
17931 globalUtilOptind++;
17936 if ( globalUtilOptind >= argc )
17938 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
17941 pPars->
nFramesK = atoi(argv[globalUtilOptind]);
17942 globalUtilOptind++;
17947 if ( globalUtilOptind >= argc )
17949 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
17952 pPars->
nMaxImps = atoi(argv[globalUtilOptind]);
17953 globalUtilOptind++;
17958 if ( globalUtilOptind >= argc )
17960 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
17963 pPars->
nMaxLevs = atoi(argv[globalUtilOptind]);
17964 globalUtilOptind++;
17996 if ( pNtk == NULL )
18004 Abc_Print( -1,
"The network is combinational (run \"fraig\" or \"fraig_sweep\").\n" );
18010 Abc_Print( -1,
"This command works only for structrally hashed networks. Run \"st\".\n" );
18016 Abc_Print( -1,
"Currrently can only use one-hotness for simple induction (K=1).\n" );
18022 Abc_Print( -1,
"Currrently can only use one-hotness without prefix.\n" );
18028 if ( pNtkRes == NULL )
18030 Abc_Print( -1,
"Sequential sweeping has failed.\n" );
18038 Abc_Print( -2,
"usage: ssweep [-PQNFL <num>] [-lrfetvh]\n" );
18039 Abc_Print( -2,
"\t performs sequential sweep using K-step induction\n" );
18040 Abc_Print( -2,
"\t-P num : max partition size (0 = no partitioning) [default = %d]\n", pPars->
nPartSize );
18041 Abc_Print( -2,
"\t-Q num : partition overlap (0 = no overlap) [default = %d]\n", pPars->
nOverSize );
18042 Abc_Print( -2,
"\t-N num : number of time frames to use as the prefix [default = %d]\n", pPars->
nFramesP );
18043 Abc_Print( -2,
"\t-F num : number of time frames for induction (1=simple) [default = %d]\n", pPars->
nFramesK );
18044 Abc_Print( -2,
"\t-L num : max number of levels to consider (0=all) [default = %d]\n", pPars->
nMaxLevs );
18047 Abc_Print( -2,
"\t-l : toggle latch correspondence only [default = %s]\n", pPars->
fLatchCorr?
"yes":
"no" );
18048 Abc_Print( -2,
"\t-r : toggle AIG rewriting [default = %s]\n", pPars->
fRewrite?
"yes":
"no" );
18049 Abc_Print( -2,
"\t-f : toggle fraiging (combinational SAT sweeping) [default = %s]\n", pPars->
fFraiging?
"yes":
"no" );
18050 Abc_Print( -2,
"\t-e : toggle writing implications as assertions [default = %s]\n", pPars->
fWriteImps?
"yes":
"no" );
18051 Abc_Print( -2,
"\t-t : toggle using one-hotness conditions [default = %s]\n", pPars->
fUse1Hot?
"yes":
"no" );
18052 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
18053 Abc_Print( -2,
"\t-h : print the command usage\n");
18080 while ( ( c =
Extra_UtilGetopt( argc, argv,
"PQFCLSIVMNcmplkofdseqvwh" ) ) != EOF )
18085 if ( globalUtilOptind >= argc )
18087 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
18090 pPars->nPartSize = atoi(argv[globalUtilOptind]);
18091 globalUtilOptind++;
18092 if ( pPars->nPartSize < 2 )
18096 if ( globalUtilOptind >= argc )
18098 Abc_Print( -1,
"Command line switch \"-Q\" should be followed by an integer.\n" );
18101 pPars->nOverSize = atoi(argv[globalUtilOptind]);
18102 globalUtilOptind++;
18103 if ( pPars->nOverSize < 0 )
18107 if ( globalUtilOptind >= argc )
18109 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
18112 pPars->nFramesK = atoi(argv[globalUtilOptind]);
18113 globalUtilOptind++;
18114 if ( pPars->nFramesK <= 0 )
18118 if ( globalUtilOptind >= argc )
18120 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
18123 pPars->nBTLimit = atoi(argv[globalUtilOptind]);
18124 globalUtilOptind++;
18125 if ( pPars->nBTLimit <= 0 )
18129 if ( globalUtilOptind >= argc )
18131 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
18134 pPars->nMaxLevs = atoi(argv[globalUtilOptind]);
18135 globalUtilOptind++;
18136 if ( pPars->nMaxLevs <= 0 )
18140 if ( globalUtilOptind >= argc )
18142 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
18145 pPars->nFramesAddSim = atoi(argv[globalUtilOptind]);
18146 globalUtilOptind++;
18147 if ( pPars->nFramesAddSim < 0 )
18151 if ( globalUtilOptind >= argc )
18153 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
18156 pPars->nItersStop = atoi(argv[globalUtilOptind]);
18157 globalUtilOptind++;
18158 if ( pPars->nItersStop < 0 )
18162 if ( globalUtilOptind >= argc )
18164 Abc_Print( -1,
"Command line switch \"-V\" should be followed by an integer.\n" );
18167 pPars->nSatVarMax2 = atoi(argv[globalUtilOptind]);
18168 globalUtilOptind++;
18169 if ( pPars->nSatVarMax2 < 0 )
18173 if ( globalUtilOptind >= argc )
18175 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
18178 pPars->nRecycleCalls2 = atoi(argv[globalUtilOptind]);
18179 globalUtilOptind++;
18180 if ( pPars->nRecycleCalls2 < 0 )
18184 if ( globalUtilOptind >= argc )
18186 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
18189 nConstrs = atoi(argv[globalUtilOptind]);
18190 globalUtilOptind++;
18191 if ( nConstrs < 0 )
18195 pPars->fConstrs ^= 1;
18198 pPars->fMergeFull ^= 1;
18201 pPars->fPolarFlip ^= 1;
18204 pPars->fLatchCorr ^= 1;
18207 pPars->fConstCorr ^= 1;
18210 pPars->fOutputCorr ^= 1;
18213 pPars->fSemiFormal ^= 1;
18216 pPars->fDynamic ^= 1;
18219 pPars->fLocalSim ^= 1;
18222 pPars->fEquivDump ^= 1;
18225 pPars->fStopWhenGone ^= 1;
18228 pPars->fVerbose ^= 1;
18231 pPars->fFlopVerbose ^= 1;
18240 if ( pNtk == NULL )
18248 Abc_Print( -1,
"The network is combinational (run \"fraig\" or \"fraig_sweep\").\n" );
18254 Abc_Print( -1,
"This command works only for structrally hashed networks. Run \"st\".\n" );
18260 Abc_Print( 0,
"This command works only for designs with primary inputs.\n" );
18265 if ( nConstrs > 0 )
18274 Abc_Print( 0,
"Setting the number of constraints to be %d.\n", nConstrs );
18279 if ( pPars->fConstrs )
18284 Abc_Print( 0,
"Performing constraint-based scorr without constraints.\n" );
18289 if ( pNtkRes == NULL )
18291 Abc_Print( -1,
"Sequential sweeping has failed.\n" );
18299 Abc_Print( -2,
"usage: scorr [-PQFCLSIVMN <num>] [-cmplkodseqvwh]\n" );
18300 Abc_Print( -2,
"\t performs sequential sweep using K-step induction\n" );
18301 Abc_Print( -2,
"\t-P num : max partition size (0 = no partitioning) [default = %d]\n", pPars->nPartSize );
18302 Abc_Print( -2,
"\t-Q num : partition overlap (0 = no overlap) [default = %d]\n", pPars->nOverSize );
18303 Abc_Print( -2,
"\t-F num : number of time frames for induction (1=simple) [default = %d]\n", pPars->nFramesK );
18304 Abc_Print( -2,
"\t-C num : max number of conflicts at a node (0=inifinite) [default = %d]\n", pPars->nBTLimit );
18305 Abc_Print( -2,
"\t-L num : max number of levels to consider (0=all) [default = %d]\n", pPars->nMaxLevs );
18306 Abc_Print( -2,
"\t-N num : number of last POs treated as constraints (0=none) [default = %d]\n", pPars->fConstrs );
18307 Abc_Print( -2,
"\t-S num : additional simulation frames for c-examples (0=none) [default = %d]\n", pPars->nFramesAddSim );
18308 Abc_Print( -2,
"\t-I num : iteration number to stop and output SR-model (-1=none) [default = %d]\n", pPars->nItersStop );
18309 Abc_Print( -2,
"\t-V num : min var num needed to recycle the SAT solver [default = %d]\n", pPars->nSatVarMax2 );
18310 Abc_Print( -2,
"\t-M num : min call num needed to recycle the SAT solver [default = %d]\n", pPars->nRecycleCalls2 );
18311 Abc_Print( -2,
"\t-N num : set last <num> POs to be constraints (use with -c) [default = %d]\n", nConstrs );
18312 Abc_Print( -2,
"\t-c : toggle using explicit constraints [default = %s]\n", pPars->fConstrs?
"yes":
"no" );
18313 Abc_Print( -2,
"\t-m : toggle full merge if constraints are present [default = %s]\n", pPars->fMergeFull?
"yes":
"no" );
18314 Abc_Print( -2,
"\t-p : toggle aligning polarity of SAT variables [default = %s]\n", pPars->fPolarFlip?
"yes":
"no" );
18315 Abc_Print( -2,
"\t-l : toggle doing latch correspondence [default = %s]\n", pPars->fLatchCorr?
"yes":
"no" );
18316 Abc_Print( -2,
"\t-k : toggle doing constant correspondence [default = %s]\n", pPars->fConstCorr?
"yes":
"no" );
18317 Abc_Print( -2,
"\t-o : toggle doing \'PO correspondence\' [default = %s]\n", pPars->fOutputCorr?
"yes":
"no" );
18319 Abc_Print( -2,
"\t-d : toggle dynamic addition of constraints [default = %s]\n", pPars->fDynamic?
"yes":
"no" );
18320 Abc_Print( -2,
"\t-s : toggle local simulation in the cone of influence [default = %s]\n", pPars->fLocalSim?
"yes":
"no" );
18321 Abc_Print( -2,
"\t-e : toggle dumping disproved internal equivalences [default = %s]\n", pPars->fEquivDump?
"yes":
"no" );
18322 Abc_Print( -2,
"\t-q : toggle quitting when PO is not a constant candidate [default = %s]\n", pPars->fStopWhenGone?
"yes":
"no" );
18323 Abc_Print( -2,
"\t-w : toggle printout of flop equivalences [default = %s]\n", pPars->fFlopVerbose?
"yes":
"no" );
18324 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
18325 Abc_Print( -2,
"\t-h : print the command usage\n");
18369 if ( globalUtilOptind >= argc )
18371 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
18374 pPars->
nPartSize = atoi(argv[globalUtilOptind]);
18375 globalUtilOptind++;
18380 if ( globalUtilOptind >= argc )
18382 Abc_Print( -1,
"Command line switch \"-Q\" should be followed by an integer.\n" );
18385 pPars->
nOverSize = atoi(argv[globalUtilOptind]);
18386 globalUtilOptind++;
18391 if ( globalUtilOptind >= argc )
18393 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
18396 pPars->
nFramesP = atoi(argv[globalUtilOptind]);
18397 globalUtilOptind++;
18402 if ( globalUtilOptind >= argc )
18404 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
18407 pPars->
nFramesK = atoi(argv[globalUtilOptind]);
18408 globalUtilOptind++;
18413 if ( globalUtilOptind >= argc )
18415 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
18418 pPars->
nMaxImps = atoi(argv[globalUtilOptind]);
18419 globalUtilOptind++;
18424 if ( globalUtilOptind >= argc )
18426 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
18429 pPars->
nMaxLevs = atoi(argv[globalUtilOptind]);
18430 globalUtilOptind++;
18462 if ( argc == globalUtilOptind + 1 )
18466 Abc_Print( -1,
"File name should be given on the command line.\n" );
18473 Abc_Print( -2,
"usage: testssw [-PQNFL num] [-lrfetvh] <file>\n" );
18474 Abc_Print( -2,
"\t performs sequential sweep using K-step induction\n" );
18475 Abc_Print( -2,
"\t (outputs a file with a set of pairs of equivalent nodes)\n" );
18476 Abc_Print( -2,
"\t-P num : max partition size (0 = no partitioning) [default = %d]\n", pPars->
nPartSize );
18477 Abc_Print( -2,
"\t-Q num : partition overlap (0 = no overlap) [default = %d]\n", pPars->
nOverSize );
18478 Abc_Print( -2,
"\t-N num : number of time frames to use as the prefix [default = %d]\n", pPars->
nFramesP );
18479 Abc_Print( -2,
"\t-F num : number of time frames for induction (1=simple) [default = %d]\n", pPars->
nFramesK );
18480 Abc_Print( -2,
"\t-L num : max number of levels to consider (0=all) [default = %d]\n", pPars->
nMaxLevs );
18483 Abc_Print( -2,
"\t-l : toggle latch correspondence only [default = %s]\n", pPars->
fLatchCorr?
"yes":
"no" );
18484 Abc_Print( -2,
"\t-r : toggle AIG rewriting [default = %s]\n", pPars->
fRewrite?
"yes":
"no" );
18485 Abc_Print( -2,
"\t-f : toggle fraiging (combinational SAT sweeping) [default = %s]\n", pPars->
fFraiging?
"yes":
"no" );
18486 Abc_Print( -2,
"\t-e : toggle writing implications as assertions [default = %s]\n", pPars->
fWriteImps?
"yes":
"no" );
18487 Abc_Print( -2,
"\t-t : toggle using one-hotness conditions [default = %s]\n", pPars->
fUse1Hot?
"yes":
"no" );
18488 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
18489 Abc_Print( -2,
"\t-h : print the command usage\n");
18506 extern Abc_Ntk_t *
Abc_NtkTestScorr(
char * pFileNameIn,
char * pFileNameOut,
int nStepsMax,
int nBTLimit,
int fNewAlgo,
int fFlopOnly,
int fFfNdOnly,
int fVerbose );
18529 if ( globalUtilOptind >= argc )
18531 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
18534 nConfMax = atoi(argv[globalUtilOptind]);
18535 globalUtilOptind++;
18536 if ( nConfMax < 0 )
18540 if ( globalUtilOptind >= argc )
18542 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
18545 nStepsMax = atoi(argv[globalUtilOptind]);
18546 globalUtilOptind++;
18547 if ( nStepsMax < 0 )
18566 if ( argc != globalUtilOptind + 2 )
18568 Abc_Print( -1,
"Expecting two files names on the command line.\n" );
18571 if ( fFlopOnly && fFfNdOnly )
18573 Abc_Print( -1,
"These two options (-f and -s) are incompatible.\n" );
18577 pNtkRes =
Abc_NtkTestScorr( argv[globalUtilOptind], argv[globalUtilOptind+1], nStepsMax, nConfMax, fNewAlgo, fFlopOnly, fFfNdOnly, fVerbose );
18578 if ( pNtkRes == NULL )
18580 Abc_Print( -1,
"Sequential sweeping has failed.\n" );
18588 Abc_Print( -2,
"usage: testscorr [-CS num] [-nfsvh] <file_in> <file_out>\n" );
18589 Abc_Print( -2,
"\t outputs the list of sequential equivalences into a file\n" );
18590 Abc_Print( -2,
"\t (if <file_in> is in BENCH, init state file should be the same directory)\n" );
18591 Abc_Print( -2,
"\t-C num : limit on the number of conflicts [default = %d]\n", nConfMax );
18592 Abc_Print( -2,
"\t-S num : limit on refinement iterations (-1=no limit, 0=after BMC, etc) [default = %d]\n", nStepsMax );
18593 Abc_Print( -2,
"\t-n : toggle between \"scorr\" and \"&scorr\" [default = %s]\n", fNewAlgo?
"&scorr":
"scorr" );
18594 Abc_Print( -2,
"\t-f : toggle reporting only flop/flop equivs [default = %s]\n", fFlopOnly?
"yes":
"no" );
18595 Abc_Print( -2,
"\t-s : toggle reporting only flop/flop and flop/node equivs [default = %s]\n", fFfNdOnly?
"yes":
"no" );
18596 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
18597 Abc_Print( -2,
"\t-h : print the command usage\n");
18598 Abc_Print( -2,
"\t<file_in> : input file with design for sequential equivalence computation\n");
18599 Abc_Print( -2,
"\t<file_out> : output file with the list of pairs of equivalent signals\n");
18642 if ( globalUtilOptind >= argc )
18644 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
18647 nFramesP = atoi(argv[globalUtilOptind]);
18648 globalUtilOptind++;
18649 if ( nFramesP < 0 )
18653 if ( globalUtilOptind >= argc )
18655 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
18658 nConfMax = atoi(argv[globalUtilOptind]);
18659 globalUtilOptind++;
18660 if ( nConfMax < 0 )
18664 if ( globalUtilOptind >= argc )
18666 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
18669 nVarsMax = atoi(argv[globalUtilOptind]);
18670 globalUtilOptind++;
18671 if ( nVarsMax < 0 )
18687 if ( pNtk == NULL )
18695 Abc_Print( -1,
"The network is combinational (run \"fraig\" or \"fraig_sweep\").\n" );
18701 Abc_Print( -1,
"This command works only for structrally hashed networks. Run \"st\".\n" );
18710 if ( pNtkRes == NULL )
18712 Abc_Print( -1,
"Sequential sweeping has failed.\n" );
18720 Abc_Print( -2,
"usage: lcorr [-PCS num] [-nvh]\n" );
18721 Abc_Print( -2,
"\t computes latch correspondence using 1-step induction\n" );
18722 Abc_Print( -2,
"\t-P num : number of time frames to use as the prefix [default = %d]\n", nFramesP );
18723 Abc_Print( -2,
"\t-C num : limit on the number of conflicts [default = %d]\n", nConfMax );
18724 Abc_Print( -2,
"\t-S num : the max number of SAT variables [default = %d]\n", nVarsMax );
18725 Abc_Print( -2,
"\t-n : toggle using new algorithm [default = %s]\n", fNewAlgor?
"yes":
"no" );
18726 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
18727 Abc_Print( -2,
"\t-h : print the command usage\n");
18746 int fLatchConst = 1;
18747 int fLatchEqual = 1;
18748 int fSaveNames = 1;
18749 int fUseMvSweep = 0;
18750 int nFramesSymb = 1;
18751 int nFramesSatur = 512;
18753 int fVeryVerbose = 0;
18775 if ( globalUtilOptind >= argc )
18777 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
18780 nFramesSymb = atoi(argv[globalUtilOptind]);
18781 globalUtilOptind++;
18782 if ( nFramesSymb < 0 )
18786 if ( globalUtilOptind >= argc )
18788 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
18791 nFramesSatur = atoi(argv[globalUtilOptind]);
18792 globalUtilOptind++;
18793 if ( nFramesSatur < 0 )
18808 if ( pNtk == NULL )
18815 Abc_Print( -1,
"Only works for structrally hashed networks.\n" );
18820 Abc_Print( -1,
"The network is combinational.\n" );
18824 pNtkRes =
Abc_NtkDarLatchSweep( pNtk, fLatchConst, fLatchEqual, fSaveNames, fUseMvSweep, nFramesSymb, nFramesSatur, fVerbose, fVeryVerbose );
18825 if ( pNtkRes == NULL )
18827 Abc_Print( -1,
"Sequential cleanup has failed.\n" );
18835 Abc_Print( -2,
"usage: scleanup [-cenmFSvwh]\n" );
18836 Abc_Print( -2,
"\t performs sequential cleanup of the current network\n" );
18837 Abc_Print( -2,
"\t by removing nodes and latches that do not feed into POs\n" );
18838 Abc_Print( -2,
"\t-c : sweep stuck-at latches detected by ternary simulation [default = %s]\n", fLatchConst?
"yes":
"no" );
18839 Abc_Print( -2,
"\t-e : merge equal latches (same data inputs and init states) [default = %s]\n", fLatchEqual?
"yes":
"no" );
18840 Abc_Print( -2,
"\t-n : toggle preserving latch names [default = %s]\n", fSaveNames?
"yes":
"no" );
18841 Abc_Print( -2,
"\t-m : toggle using hybrid ternary/symbolic simulation [default = %s]\n", fUseMvSweep?
"yes":
"no" );
18842 Abc_Print( -2,
"\t-F num : the number of first frames simulated symbolically [default = %d]\n", nFramesSymb );
18843 Abc_Print( -2,
"\t-S num : the number of frames when symbolic saturation begins [default = %d]\n", nFramesSatur );
18844 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
18845 Abc_Print( -2,
"\t-w : toggle very verbose output [default = %s]\n", fVeryVerbose?
"yes":
"no" );
18846 Abc_Print( -2,
"\t-h : print the command usage\n");
18880 if ( globalUtilOptind >= argc )
18882 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
18885 nFrames = atoi(argv[globalUtilOptind]);
18886 globalUtilOptind++;
18902 if ( pNtk == NULL )
18910 Abc_Print( -1,
"Only works for strashed networks or logic SOP networks.\n" );
18915 Abc_Print( -1,
"The network is combinational.\n" );
18920 Abc_Print( -1,
"X-valued simulation only works for AIGs. Run \"strash\".\n" );
18932 Abc_Print( -2,
"usage: cycle [-F num] [-xvh]\n" );
18933 Abc_Print( -2,
"\t cycles sequential circuit for the given number of timeframes\n" );
18934 Abc_Print( -2,
"\t to derive a new initial state (which may be on the envelope)\n" );
18935 Abc_Print( -2,
"\t-F num : the number of frames to simulate [default = %d]\n", nFrames );
18936 Abc_Print( -2,
"\t-x : use x-valued primary inputs [default = %s]\n", fUseXval?
"yes":
"no" );
18937 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
18938 Abc_Print( -2,
"\t-h : print the command usage\n");
18973 if ( globalUtilOptind >= argc )
18975 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
18978 nFrames = atoi(argv[globalUtilOptind]);
18979 globalUtilOptind++;
18998 if ( pNtk == NULL )
19006 Abc_Print( -1,
"Only works for strashed networks.\n" );
19011 Abc_Print( -1,
"The network is combinational.\n" );
19018 Abc_Print( -2,
"usage: xsim [-F num] [-isvh]\n" );
19019 Abc_Print( -2,
"\t performs X-valued simulation of the AIG\n" );
19020 Abc_Print( -2,
"\t-F num : the number of frames to simulate [default = %d]\n", nFrames );
19021 Abc_Print( -2,
"\t-i : toggle X-valued representation of inputs [default = %s]\n", fXInputs?
"yes":
"no" );
19022 Abc_Print( -2,
"\t-s : toggle X-valued representation of state [default = %s]\n", fXState?
"yes":
"no" );
19023 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
19024 Abc_Print( -2,
"\t-h : print the command usage\n");
19052 extern int Abc_NtkDarSeqSim(
Abc_Ntk_t * pNtk,
int nFrames,
int nWords,
int TimeOut,
int fNew,
int fMiter,
int fVerbose,
char * pFileSim );
19068 if ( globalUtilOptind >= argc )
19070 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
19073 nFrames = atoi(argv[globalUtilOptind]);
19074 globalUtilOptind++;
19079 if ( globalUtilOptind >= argc )
19081 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
19084 nWords = atoi(argv[globalUtilOptind]);
19085 globalUtilOptind++;
19090 if ( globalUtilOptind >= argc )
19092 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
19095 TimeOut = atoi(argv[globalUtilOptind]);
19096 globalUtilOptind++;
19101 if ( globalUtilOptind >= argc )
19103 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a file name.\n" );
19107 globalUtilOptind++;
19124 if ( pNtk == NULL )
19131 Abc_Print( -1,
"Only works for strashed networks.\n" );
19136 Abc_Print( -1,
"Currently simulation with user-specified patterns works only for comb miters.\n" );
19140 pAbc->Status =
Abc_NtkDarSeqSim( pNtk, nFrames, nWords, TimeOut, fNew, fMiter, fVerbose, pFileSim );
19145 Abc_Print( -2,
"usage: sim [-FWT num] [-A file] [-nmvh]\n" );
19146 Abc_Print( -2,
"\t performs random simulation of the sequential miter\n" );
19147 Abc_Print( -2,
"\t-F num : the number of frames to simulate [default = %d]\n", nFrames );
19148 Abc_Print( -2,
"\t-W num : the number of words to simulate [default = %d]\n", nWords );
19149 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", TimeOut );
19150 Abc_Print( -2,
"\t-A file : text file name with user's patterns [default = random simulation]\n" );
19151 Abc_Print( -2,
"\t (patterns are listed, one per line, as sequences of 0s and 1s)\n" );
19152 Abc_Print( -2,
"\t-n : toggle new vs. old implementation [default = %s]\n", fNew?
"new":
"old" );
19153 Abc_Print( -2,
"\t-m : toggle miter vs. any circuit [default = %s]\n", fMiter?
"miter":
"circuit" );
19154 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
19155 Abc_Print( -2,
"\t-h : print the command usage\n");
19185 if ( globalUtilOptind >= argc )
19187 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
19190 pPars->
nFrames = atoi(argv[globalUtilOptind]);
19191 globalUtilOptind++;
19196 if ( globalUtilOptind >= argc )
19198 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
19201 pPars->
nWords = atoi(argv[globalUtilOptind]);
19202 globalUtilOptind++;
19203 if ( pPars->
nWords < 0 )
19207 if ( globalUtilOptind >= argc )
19209 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
19212 pPars->
nBinSize = atoi(argv[globalUtilOptind]);
19213 globalUtilOptind++;
19218 if ( globalUtilOptind >= argc )
19220 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
19223 pPars->
nRounds = atoi(argv[globalUtilOptind]);
19224 globalUtilOptind++;
19229 if ( globalUtilOptind >= argc )
19231 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
19234 pPars->
nRestart = atoi(argv[globalUtilOptind]);
19235 globalUtilOptind++;
19240 if ( globalUtilOptind >= argc )
19242 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
19245 pPars->
nRandSeed = atoi(argv[globalUtilOptind]);
19246 globalUtilOptind++;
19251 if ( globalUtilOptind >= argc )
19253 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
19256 pPars->
TimeOut = atoi(argv[globalUtilOptind]);
19257 globalUtilOptind++;
19262 if ( globalUtilOptind >= argc )
19264 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
19267 pPars->
TimeOutGap = atoi(argv[globalUtilOptind]);
19268 globalUtilOptind++;
19293 if ( pNtk == NULL )
19300 Abc_Print( -1,
"Only works for strashed networks.\n" );
19305 Abc_Print( -1,
"Only works for sequential networks.\n" );
19316 pAbc->pNtkCur->pData = NULL;
19322 if ( pNtkRes == NULL )
19324 Abc_Print( -1,
"Removing SAT outputs has failed.\n" );
19332 if ( vSeqModelVec == NULL )
19333 Abc_Print( 1,
"The array of counter-examples is not available.\n" );
19335 Abc_Print( 1,
"The array size does not match the number of outputs.\n" );
19341 if ( pNtkRes == NULL )
19343 Abc_Print( -1,
"Removing SAT outputs has failed.\n" );
19349 if ( vSeqModelVec )
19352 pAbc->nFrames = -1;
19357 Abc_Print( -2,
"usage: sim3 [-FWBRSNTG num] [-advzh]\n" );
19358 Abc_Print( -2,
"\t performs random simulation of the sequential miter\n" );
19359 Abc_Print( -2,
"\t-F num : the number of frames to simulate [default = %d]\n", pPars->
nFrames );
19360 Abc_Print( -2,
"\t-W num : the number of words to simulate [default = %d]\n", pPars->
nWords );
19361 Abc_Print( -2,
"\t-B num : the number of flops in one bin [default = %d]\n", pPars->
nBinSize );
19362 Abc_Print( -2,
"\t-R num : the number of simulation rounds [default = %d]\n", pPars->
nRounds );
19363 Abc_Print( -2,
"\t-S num : the number of rounds before a restart [default = %d]\n", pPars->
nRestart );
19364 Abc_Print( -2,
"\t-N num : random number seed (1 <= num <= 1000) [default = %d]\n", pPars->
nRandSeed );
19365 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", pPars->
TimeOut );
19366 Abc_Print( -2,
"\t-G num : approximate runtime gap in seconds since the last CEX [default = %d]\n", pPars->
TimeOutGap );
19367 Abc_Print( -2,
"\t-a : toggle solving all outputs (do not stop when one is SAT) [default = %s]\n", pPars->
fSolveAll?
"yes":
"no" );
19368 Abc_Print( -2,
"\t-d : toggle dropping (replacing by 0) SAT outputs [default = %s]\n", pPars->
fDropSatOuts?
"yes":
"no" );
19369 Abc_Print( -2,
"\t-i : toggle changing init state to a last rare state [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
19370 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
19371 Abc_Print( -2,
"\t-z : toggle suppressing report about solved outputs [default = %s]\n", pPars->
fNotVerbose?
"yes":
"no" );
19372 Abc_Print( -2,
"\t-h : print the command usage\n");
19391 int nFrames, nPref;
19412 if ( globalUtilOptind >= argc )
19414 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
19417 nFrames = atoi(argv[globalUtilOptind]);
19418 globalUtilOptind++;
19423 if ( globalUtilOptind >= argc )
19425 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
19428 nPref = atoi(argv[globalUtilOptind]);
19429 globalUtilOptind++;
19451 if ( pNtk == NULL )
19458 Abc_Print( -1,
"Only works for structrally hashed networks.\n" );
19464 if ( pAbc->pCex == NULL )
19466 Abc_Print( -1,
"Counter-example is not available.\n" );
19471 Abc_Print( -1,
"PI count of the CEX is not a multiple of PI count of the current AIG.\n" );
19483 Abc_Print( -1,
"The counter-example does not fail any of the outputs of the original AIG.\n" );
19492 Abc_Print( -1,
"The network is combinational.\n" );
19502 if ( pNtkRes == NULL )
19512 Abc_Print( -2,
"usage: phase [-FP <num>] [-ipcvh]\n" );
19513 Abc_Print( -2,
"\t performs sequential cleanup of the current network\n" );
19514 Abc_Print( -2,
"\t by removing nodes and latches that do not feed into POs\n" );
19515 Abc_Print( -2,
"\t-F num : the number of frames to abstract [default = %d]\n", nFrames );
19516 Abc_Print( -2,
"\t-P num : the number of prefix frames to skip [default = %d]\n", nPref );
19517 Abc_Print( -2,
"\t-i : toggle ignoring the initial state [default = %s]\n", fIgnore?
"yes":
"no" );
19518 Abc_Print( -2,
"\t-p : toggle printing statistics about generators [default = %s]\n", fPrint?
"yes":
"no" );
19519 Abc_Print( -2,
"\t-c : update the current CEX derived for a new AIG after \"phase\"\n" );
19520 Abc_Print( -2,
"\t to match the current AIG (the one before \"phase\") [default = %s]\n", fUpdateCex?
"yes":
"no" );
19521 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
19522 Abc_Print( -2,
"\t-h : print the command usage\n");
19539 Abc_Ntk_t * pNtkRes, * pNtk1, * pNtk2, * pNtk;
19542 int fDelete1, fDelete2;
19560 if ( globalUtilOptind >= argc )
19562 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
19565 nWords = atoi(argv[globalUtilOptind]);
19566 globalUtilOptind++;
19582 if ( nArgcNew == 0 )
19584 if ( pNtk == NULL )
19593 if ( !
Abc_NtkPrepareTwoNtks( stdout, pNtk, pArgvNew, nArgcNew, &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
19599 Abc_Print( -1,
"The network has no latches..\n" );
19608 if ( pNtkRes == NULL )
19610 Abc_Print( -1,
"Synchronization has failed.\n" );
19618 Abc_Print( -2,
"usage: synch [-W <num>] [-vh] <file1> <file2>\n" );
19619 Abc_Print( -2,
"\t derives and applies synchronization sequence\n" );
19620 Abc_Print( -2,
"\t-W num : the number of simulation words [default = %d]\n", nWords );
19621 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
19622 Abc_Print( -2,
"\t-h : print the command usage\n");
19623 Abc_Print( -2,
"\tfile1 : (optional) the file with the first design\n");
19624 Abc_Print( -2,
"\tfile2 : (optional) the file with the second design\n\n");
19625 Abc_Print( -2,
"\t If no designs are given on the command line,\n" );
19626 Abc_Print( -2,
"\t assumes the current network has no initial state,\n" );
19627 Abc_Print( -2,
"\t derives synchronization sequence and applies it.\n\n" );
19628 Abc_Print( -2,
"\t If two designs are given on the command line\n" );
19629 Abc_Print( -2,
"\t assumes both of them have no initial state,\n" );
19630 Abc_Print( -2,
"\t derives sequences for both designs, synchorinizes\n" );
19631 Abc_Print( -2,
"\t them, and creates SEC miter comparing two designs.\n\n" );
19632 Abc_Print( -2,
"\t If only one design is given on the command line,\n" );
19633 Abc_Print( -2,
"\t considers the second design to be the current network,\n" );
19634 Abc_Print( -2,
"\t and derives SEC miter for them, as described above.\n" );
19652 Abc_Ntk_t * pNtkRes, * pNtk, * pNtkCare;
19666 if ( globalUtilOptind >= argc )
19668 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
19671 pPars->nLevelMax = atoi(argv[globalUtilOptind]);
19672 globalUtilOptind++;
19673 if ( pPars->nLevelMax <= 0 )
19677 if ( globalUtilOptind >= argc )
19679 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
19682 pPars->nCandMax = atoi(argv[globalUtilOptind]);
19683 globalUtilOptind++;
19684 if ( pPars->nCandMax <= 0 )
19688 if ( globalUtilOptind >= argc )
19690 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
19693 pPars->nOdcMax = atoi(argv[globalUtilOptind]);
19694 globalUtilOptind++;
19695 if ( pPars->nOdcMax <= 0 )
19699 if ( globalUtilOptind >= argc )
19701 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
19704 pPars->nConfMax = atoi(argv[globalUtilOptind]);
19705 globalUtilOptind++;
19706 if ( pPars->nConfMax <= 0 )
19710 if ( globalUtilOptind >= argc )
19712 Abc_Print( -1,
"Command line switch \"-V\" should be followed by an integer.\n" );
19715 pPars->nVarsMin = atoi(argv[globalUtilOptind]);
19716 globalUtilOptind++;
19717 if ( pPars->nVarsMin <= 0 )
19721 if ( globalUtilOptind >= argc )
19723 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
19726 pPars->nFlopsMin = atoi(argv[globalUtilOptind]);
19727 globalUtilOptind++;
19728 if ( pPars->nFlopsMin <= 0 )
19732 pPars->fAreaOnly ^= 1;
19735 pPars->fVerbose ^= 1;
19738 pPars->fVeryVerbose ^= 1;
19746 if ( pNtk == NULL )
19752 if ( argc == globalUtilOptind + 1 )
19755 if ( pNtkCare == NULL )
19757 Abc_Print( -1,
"Reading care network has failed.\n" );
19764 else if ( argc == globalUtilOptind )
19770 Abc_Print( -1,
"Wrong number of arguments.\n" );
19773 if ( pNtkRes == NULL )
19775 Abc_Print( -1,
"Clock gating has failed.\n" );
19783 Abc_Print( -2,
"usage: clockgate [-LNDCVK <num>] [-avwh] <file>\n" );
19784 Abc_Print( -2,
"\t sequential clock gating with observability don't-cares\n" );
19785 Abc_Print( -2,
"\t-L num : max level number of a clock gate [default = %d]\n", pPars->nLevelMax );
19786 Abc_Print( -2,
"\t-N num : max number of candidates for a flop [default = %d]\n", pPars->nCandMax );
19787 Abc_Print( -2,
"\t-D num : max number of ODC levels to consider [default = %d]\n", pPars->nOdcMax );
19788 Abc_Print( -2,
"\t-C num : max number of conflicts at a node [default = %d]\n", pPars->nConfMax );
19789 Abc_Print( -2,
"\t-V num : min number of vars to recycle SAT solver [default = %d]\n", pPars->nVarsMin );
19790 Abc_Print( -2,
"\t-K num : min number of flops to recycle SAT solver [default = %d]\n", pPars->nFlopsMin );
19791 Abc_Print( -2,
"\t-a : toggle minimizing area-only [default = %s]\n", pPars->fAreaOnly?
"yes":
"no" );
19792 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
19793 Abc_Print( -2,
"\t-w : toggle even more detailed output [default = %s]\n", pPars->fVeryVerbose?
"yes":
"no" );
19794 Abc_Print( -2,
"\t-h : print the command usage\n");
19795 Abc_Print( -2,
"\tfile : (optional) constraints for primary inputs and register outputs\n");
19831 if ( globalUtilOptind >= argc )
19833 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
19836 nObjId = atoi(argv[globalUtilOptind]);
19837 globalUtilOptind++;
19842 if ( globalUtilOptind >= argc )
19844 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
19847 nDist = atoi(argv[globalUtilOptind]);
19848 globalUtilOptind++;
19861 if ( pNtk == NULL )
19868 Abc_Print( -1,
"Only works for structrally hashed networks.\n" );
19872 if ( argc != globalUtilOptind )
19874 Abc_Print( -1,
"Not enough command-line arguments.\n" );
19879 if ( pNtkRes == NULL )
19881 Abc_Print( -1,
"Extracting sequential window has failed.\n" );
19889 Abc_Print( -2,
"usage: extwin [-ND <num>] [-vh]\n" );
19890 Abc_Print( -2,
"\t extracts sequential window from the AIG\n" );
19891 Abc_Print( -2,
"\t-N num : the ID of the object to use as the center [default = %d]\n", nObjId );
19892 Abc_Print( -2,
"\t-D num : the \"radius\" of the window [default = %d]\n", nDist );
19893 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
19894 Abc_Print( -2,
"\t-h : print the command usage\n");
19911 Abc_Ntk_t * pNtkRes, * pNtk, * pNtkCare;
19930 if ( globalUtilOptind >= argc )
19932 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
19935 nObjId = atoi(argv[globalUtilOptind]);
19936 globalUtilOptind++;
19941 if ( globalUtilOptind >= argc )
19943 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
19946 nDist = atoi(argv[globalUtilOptind]);
19947 globalUtilOptind++;
19960 if ( pNtk == NULL )
19967 Abc_Print( -1,
"Only works for structrally hashed networks.\n" );
19971 if ( argc != globalUtilOptind + 1 )
19973 Abc_Print( -1,
"Not enough command-line arguments.\n" );
19977 if ( pNtkCare == NULL )
19979 Abc_Print( -1,
"Reading care network has failed.\n" );
19991 if ( pNtkRes == NULL )
19993 Abc_Print( -1,
"Inserting sequential window has failed.\n" );
20001 Abc_Print( -2,
"usage: inswin [-ND <num>] [-vh] <file>\n" );
20002 Abc_Print( -2,
"\t inserts sequential window into the AIG\n" );
20003 Abc_Print( -2,
"\t-N num : the ID of the object to use as the center [default = %d]\n", nObjId );
20004 Abc_Print( -2,
"\t-D num : the \"radius\" of the window [default = %d]\n", nDist );
20005 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
20006 Abc_Print( -2,
"\t-h : print the command usage\n");
20007 Abc_Print( -2,
"\tfile : file with the AIG to be inserted\n");
20026 Abc_Ntk_t * pNtk = pAbc->pNtkCur, * pNtkRes = NULL;
20027 char * pFlopPermFile = NULL;
20039 if ( globalUtilOptind >= argc )
20041 Abc_Print( -1,
"Command line switch \"-F\" should be followed by a file name.\n" );
20045 globalUtilOptind++;
20066 if ( pNtk == NULL )
20073 Abc_Print( -1,
"To permute nodes, the network should be structurally hashed.\n" );
20080 if ( pNtkRes == NULL )
20082 Abc_Print( -1,
"Command \"permute\" has failed.\n" );
20085 Abc_NtkPermute( pNtkRes, fInputs, fOutputs, fFlops, pFlopPermFile );
20090 Abc_Print( -2,
"usage: permute [-iofnh] [-F filename]\n" );
20091 Abc_Print( -2,
"\t performs random permutation of inputs/outputs/flops\n" );
20092 Abc_Print( -2,
"\t-i : toggle permuting primary inputs [default = %s]\n", fInputs?
"yes":
"no" );
20093 Abc_Print( -2,
"\t-o : toggle permuting primary outputs [default = %s]\n", fOutputs?
"yes":
"no" );
20094 Abc_Print( -2,
"\t-f : toggle permuting flip-flops [default = %s]\n", fFlops?
"yes":
"no" );
20095 Abc_Print( -2,
"\t-n : toggle deriving new topological ordering of nodes [default = %s]\n", fNodes?
"yes":
"no" );
20096 Abc_Print( -2,
"\t-h : print the command usage\n");
20097 Abc_Print( -2,
"\t-F <filename> : (optional) file with the flop permutation\n" );
20114 Abc_Ntk_t * pNtk = pAbc->pNtkCur, * pNtkRes = NULL;
20128 if ( pNtk == NULL )
20134 if ( pNtkRes == NULL )
20136 Abc_Print( -1,
"Command \"unpermute\" has failed.\n" );
20144 Abc_Print( -2,
"usage: unpermute [-h]\n" );
20145 Abc_Print( -2,
"\t restores inputs/outputs/flops before the last permutation\n" );
20146 Abc_Print( -2,
"\t-h : print the command usage\n");
20165 int c, fZddAlgo = 0, fVerbose = 0;
20191 Abc_Print( -2,
"usage: cubeenum [-vh]\n" );
20192 Abc_Print( -2,
"\t enumerates reachable states of 2x2x2 cube\n" );
20193 Abc_Print( -2,
"\t (http://en.wikipedia.org/wiki/Pocket_Cube)\n" );
20194 Abc_Print( -2,
"\t-z : toggle using ZDD-based algorithm [default = %s]\n", fZddAlgo?
"yes":
"no" );
20195 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
20196 Abc_Print( -2,
"\t-h : print the command usage\n");
20217 int fDelete1, fDelete2;
20241 nConfLimit = 10000;
20251 if ( globalUtilOptind >= argc )
20253 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
20256 nSeconds = atoi(argv[globalUtilOptind]);
20257 globalUtilOptind++;
20258 if ( nSeconds < 0 )
20262 if ( globalUtilOptind >= argc )
20264 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
20267 nConfLimit = atoi(argv[globalUtilOptind]);
20268 globalUtilOptind++;
20269 if ( nConfLimit < 0 )
20273 if ( globalUtilOptind >= argc )
20275 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
20278 nInsLimit = atoi(argv[globalUtilOptind]);
20279 globalUtilOptind++;
20280 if ( nInsLimit < 0 )
20284 if ( globalUtilOptind >= argc )
20286 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
20289 nPartSize = atoi(argv[globalUtilOptind]);
20290 globalUtilOptind++;
20291 if ( nPartSize < 0 )
20311 if ( pNtk && pNtk->
vPhases != NULL )
20313 Abc_Print( -1,
"Cannot compare networks with phases defined.\n" );
20319 if ( !
Abc_NtkPrepareTwoNtks( stdout, pNtk, pArgvNew, nArgcNew, &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
20322 if ( fIgnoreNames )
20341 else if ( nPartSize )
20353 if ( nPartSize == 0 )
20354 strcpy( Buffer,
"unused" );
20356 sprintf(Buffer,
"%d", nPartSize );
20357 Abc_Print( -2,
"usage: cec [-T num] [-C num] [-I num] [-P num] [-psnvh] <file1> <file2>\n" );
20358 Abc_Print( -2,
"\t performs combinational equivalence checking\n" );
20359 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", nSeconds );
20360 Abc_Print( -2,
"\t-C num : limit on the number of conflicts [default = %d]\n", nConfLimit );
20361 Abc_Print( -2,
"\t-I num : limit on the number of clause inspections [default = %d]\n", nInsLimit );
20362 Abc_Print( -2,
"\t-P num : partition size for multi-output networks [default = %s]\n", Buffer );
20363 Abc_Print( -2,
"\t-p : toggle automatic partitioning [default = %s]\n", fPartition?
"yes":
"no" );
20364 Abc_Print( -2,
"\t-s : toggle \"SAT only\" and \"FRAIG + SAT\" [default = %s]\n", fSat?
"SAT only":
"FRAIG + SAT" );
20365 Abc_Print( -2,
"\t-n : toggle ignoring names when matching CIs/COs [default = %s]\n", fIgnoreNames?
"yes":
"no" );
20366 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
20367 Abc_Print( -2,
"\t-h : print the command usage\n");
20368 Abc_Print( -2,
"\tfile1 : (optional) the file with the first network\n");
20369 Abc_Print( -2,
"\tfile2 : (optional) the file with the second network\n");
20370 Abc_Print( -2,
"\t if no files are given, uses the current network and its spec\n");
20371 Abc_Print( -2,
"\t if one file is given, uses the current network and the file\n");
20390 int fDelete1, fDelete2;
20402 extern int Abc_NtkDSat(
Abc_Ntk_t * pNtk, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit,
int nLearnedStart,
int nLearnedDelta,
int nLearnedPerce,
int fAlignPol,
int fAndOuts,
int fNewSolver,
int fVerbose );
20410 nConfLimit = 10000;
20420 if ( globalUtilOptind >= argc )
20422 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
20425 nSeconds = atoi(argv[globalUtilOptind]);
20426 globalUtilOptind++;
20427 if ( nSeconds < 0 )
20431 if ( globalUtilOptind >= argc )
20433 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
20436 nConfLimit = atoi(argv[globalUtilOptind]);
20437 globalUtilOptind++;
20438 if ( nConfLimit < 0 )
20442 if ( globalUtilOptind >= argc )
20444 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
20447 nInsLimit = atoi(argv[globalUtilOptind]);
20448 globalUtilOptind++;
20449 if ( nInsLimit < 0 )
20473 if ( pNtk == NULL )
20493 if ( !
Abc_NtkPrepareTwoNtks( stdout, pNtk, pArgvNew, nArgcNew, &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
20501 Abc_Print( -1,
"Currently this command only works for networks without latches. Run \"comb\".\n" );
20506 if ( fSat && fMiter )
20507 Abc_NtkDSat( pNtk1, nConfLimit, nInsLimit, 0, 0, 0, 0, 0, 0, fVerbose );
20509 Abc_NtkDarCec( pNtk1, pNtk2, nConfLimit, fPartition, fVerbose );
20516 Abc_Print( -2,
"usage: dcec [-T num] [-C num] [-I num] [-mpsvh] <file1> <file2>\n" );
20517 Abc_Print( -2,
"\t performs combinational equivalence checking\n" );
20518 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", nSeconds );
20519 Abc_Print( -2,
"\t-C num : limit on the number of conflicts [default = %d]\n", nConfLimit );
20520 Abc_Print( -2,
"\t-I num : limit on the number of clause inspections [default = %d]\n", nInsLimit );
20521 Abc_Print( -2,
"\t-m : toggle working on two networks or a miter [default = %s]\n", fMiter?
"miter":
"two networks" );
20522 Abc_Print( -2,
"\t-p : toggle automatic partitioning [default = %s]\n", fPartition?
"yes":
"no" );
20523 Abc_Print( -2,
"\t-s : toggle \"SAT only\" (miter) or \"FRAIG + SAT\" [default = %s]\n", fSat?
"SAT only":
"FRAIG + SAT" );
20524 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
20525 Abc_Print( -2,
"\t-h : print the command usage\n");
20526 Abc_Print( -2,
"\tfile1 : (optional) the file with the first network\n");
20527 Abc_Print( -2,
"\tfile2 : (optional) the file with the second network\n");
20528 Abc_Print( -2,
"\t if no files are given, uses the current network and its spec\n");
20529 Abc_Print( -2,
"\t if one file is given, uses the current network and the file\n");
20548 int fDelete1, fDelete2;
20567 if ( globalUtilOptind >= argc )
20569 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
20572 pSecPar->
nFramesMax = atoi(argv[globalUtilOptind]);
20573 globalUtilOptind++;
20578 if ( globalUtilOptind >= argc )
20580 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
20583 pSecPar->
TimeLimit = atoi(argv[globalUtilOptind]);
20584 globalUtilOptind++;
20616 if ( !
Abc_NtkPrepareTwoNtks( stdout, pNtk, pArgvNew, nArgcNew, &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
20622 Abc_Print( -1,
"The network has no latches. Used combinational command \"cec\".\n" );
20626 if ( fIgnoreNames )
20650 Abc_Print( -2,
"usage: dsec [-F num] [-T num] [-armfnwvh] <file1> <file2>\n" );
20651 Abc_Print( -2,
"\t performs inductive sequential equivalence checking\n" );
20652 Abc_Print( -2,
"\t-F num : the limit on the depth of induction [default = %d]\n", pSecPar->
nFramesMax );
20653 Abc_Print( -2,
"\t-T num : the approximate runtime limit (in seconds) [default = %d]\n", pSecPar->
TimeLimit );
20654 Abc_Print( -2,
"\t-a : toggles the use of phase abstraction [default = %s]\n", pSecPar->
fPhaseAbstract?
"yes":
"no" );
20655 Abc_Print( -2,
"\t-r : toggles forward retiming at the beginning [default = %s]\n", pSecPar->
fRetimeFirst?
"yes":
"no" );
20656 Abc_Print( -2,
"\t-m : toggles min-register retiming [default = %s]\n", pSecPar->
fRetimeRegs?
"yes":
"no" );
20657 Abc_Print( -2,
"\t-f : toggles the internal use of fraiging [default = %s]\n", pSecPar->
fFraiging?
"yes":
"no" );
20658 Abc_Print( -2,
"\t-n : toggle ignoring names when matching PIs/POs [default = %s]\n", fIgnoreNames?
"yes":
"no" );
20659 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pSecPar->
fVerbose?
"yes":
"no" );
20660 Abc_Print( -2,
"\t-w : toggles additional verbose output [default = %s]\n", pSecPar->
fVeryVerbose?
"yes":
"no" );
20661 Abc_Print( -2,
"\t-h : print the command usage\n");
20662 Abc_Print( -2,
"\tfile1 : (optional) the file with the first network\n");
20663 Abc_Print( -2,
"\tfile2 : (optional) the file with the second network\n");
20664 Abc_Print( -2,
"\t if no files are given, uses the current network and its spec\n");
20665 Abc_Print( -2,
"\t if one file is given, uses the current network and the file\n");
20685 char * pLogFileName = NULL;
20686 int nBmcFramesMax = 20;
20687 int nBmcConfMax = 2000;
20695 while ( ( c =
Extra_UtilGetopt( argc, argv,
"cbAEFCGDVBRTLarmfijkoupwvh" ) ) != EOF )
20706 if ( globalUtilOptind >= argc )
20708 Abc_Print( -1,
"Command line switch \"-A\" should be followed by an integer.\n" );
20711 nBmcFramesMax = atoi(argv[globalUtilOptind]);
20712 globalUtilOptind++;
20713 if ( nBmcFramesMax < 0 )
20717 if ( globalUtilOptind >= argc )
20719 Abc_Print( -1,
"Command line switch \"-E\" should be followed by an integer.\n" );
20722 nBmcConfMax = atoi(argv[globalUtilOptind]);
20723 globalUtilOptind++;
20724 if ( nBmcConfMax < 0 )
20728 if ( globalUtilOptind >= argc )
20730 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
20733 pSecPar->
nFramesMax = atoi(argv[globalUtilOptind]);
20734 globalUtilOptind++;
20739 if ( globalUtilOptind >= argc )
20741 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
20744 pSecPar->
nBTLimit = atoi(argv[globalUtilOptind]);
20745 globalUtilOptind++;
20750 if ( globalUtilOptind >= argc )
20752 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
20756 globalUtilOptind++;
20761 if ( globalUtilOptind >= argc )
20763 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
20767 globalUtilOptind++;
20772 if ( globalUtilOptind >= argc )
20774 Abc_Print( -1,
"Command line switch \"-V\" should be followed by an integer.\n" );
20777 pSecPar->
nBddVarsMax = atoi(argv[globalUtilOptind]);
20778 globalUtilOptind++;
20783 if ( globalUtilOptind >= argc )
20785 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
20788 pSecPar->
nBddMax = atoi(argv[globalUtilOptind]);
20789 globalUtilOptind++;
20794 if ( globalUtilOptind >= argc )
20796 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
20799 pSecPar->
nBddIterMax = atoi(argv[globalUtilOptind]);
20800 globalUtilOptind++;
20805 if ( globalUtilOptind >= argc )
20807 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
20810 pSecPar->
nPdrTimeout = atoi(argv[globalUtilOptind]);
20811 globalUtilOptind++;
20816 if ( globalUtilOptind >= argc )
20818 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a file name.\n" );
20822 globalUtilOptind++;
20864 if ( pNtk == NULL )
20872 Abc_Print( -1,
"This command works only for structrally hashed networks. Run \"st\".\n" );
20877 pAbc->Status =
Abc_NtkDarProve( pNtk, pSecPar, nBmcFramesMax, nBmcConfMax );
20879 if ( pLogFileName )
20885 char FileName[100];
20888 if ( pNtk == NULL )
20889 Abc_Print( -1,
"Cannot read back unsolved reduced sequential miter \"%s\",\n", FileName );
20896 Abc_Print( -2,
"usage: dprove [-AEFCGDVBRT num] [-L file] [-cbarmfijoupvwh]\n" );
20897 Abc_Print( -2,
"\t performs SEC on the sequential miter\n" );
20898 Abc_Print( -2,
"\t-A num : the limit on the depth of BMC [default = %d]\n", nBmcFramesMax );
20899 Abc_Print( -2,
"\t-E num : the conflict limit during BMC [default = %d]\n", nBmcConfMax );
20900 Abc_Print( -2,
"\t-F num : the limit on the depth of induction [default = %d]\n", pSecPar->
nFramesMax );
20901 Abc_Print( -2,
"\t-C num : the conflict limit at a node during induction [default = %d]\n", pSecPar->
nBTLimit );
20902 Abc_Print( -2,
"\t-G num : the global conflict limit during induction [default = %d]\n", pSecPar->
nBTLimitGlobal );
20903 Abc_Print( -2,
"\t-D num : the conflict limit during interpolation [default = %d]\n", pSecPar->
nBTLimitInter );
20904 Abc_Print( -2,
"\t-V num : the flop count limit for BDD-based reachablity [default = %d]\n", pSecPar->
nBddVarsMax );
20905 Abc_Print( -2,
"\t-B num : the BDD size limit in BDD-based reachablity [default = %d]\n", pSecPar->
nBddMax );
20906 Abc_Print( -2,
"\t-R num : the max number of reachability iterations [default = %d]\n", pSecPar->
nBddIterMax );
20907 Abc_Print( -2,
"\t-T num : the timeout for property directed reachability [default = %d]\n", pSecPar->
nPdrTimeout );
20908 Abc_Print( -2,
"\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName :
"no logging" );
20909 Abc_Print( -2,
"\t-c : toggles using CEC before attempting SEC [default = %s]\n", pSecPar->
fTryComb?
"yes":
"no" );
20910 Abc_Print( -2,
"\t-b : toggles using BMC before attempting SEC [default = %s]\n", pSecPar->
fTryBmc?
"yes":
"no" );
20911 Abc_Print( -2,
"\t-a : toggles the use of phase abstraction [default = %s]\n", pSecPar->
fPhaseAbstract?
"yes":
"no" );
20912 Abc_Print( -2,
"\t-r : toggles forward retiming at the beginning [default = %s]\n", pSecPar->
fRetimeFirst?
"yes":
"no" );
20913 Abc_Print( -2,
"\t-m : toggles min-register retiming [default = %s]\n", pSecPar->
fRetimeRegs?
"yes":
"no" );
20914 Abc_Print( -2,
"\t-f : toggles the internal use of fraiging [default = %s]\n", pSecPar->
fFraiging?
"yes":
"no" );
20915 Abc_Print( -2,
"\t-i : toggles the use of induction [default = %s]\n", pSecPar->
fInduction?
"yes":
"no" );
20916 Abc_Print( -2,
"\t-j : toggles the use of interpolation [default = %s]\n", pSecPar->
fInterpolation?
"yes":
"no" );
20917 Abc_Print( -2,
"\t-k : toggles applying interpolation to each output [default = %s]\n", pSecPar->
fInterSeparate?
"yes":
"no" );
20918 Abc_Print( -2,
"\t-o : toggles using BDD variable reordering during image computation [default = %s]\n", pSecPar->
fReorderImage?
"yes":
"no" );
20919 Abc_Print( -2,
"\t-u : toggles reading back unsolved reduced sequential miter [default = %s]\n", pSecPar->
fReadUnsolved?
"yes":
"no" );
20920 Abc_Print( -2,
"\t-p : toggles trying property directed reachability in the end [default = %s]\n", pSecPar->
fUsePdr?
"yes":
"no" );
20921 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pSecPar->
fVerbose?
"yes":
"no" );
20922 Abc_Print( -2,
"\t-w : toggles additional verbose output [default = %s]\n", pSecPar->
fVeryVerbose?
"yes":
"no" );
20923 Abc_Print( -2,
"\t-h : print the command usage\n");
20924 Abc_Print( -2,
"\tCommand \"dprove\" can also be used for sequential synthesis (dprove -brjopu)\n");
20942 int fDelete1, fDelete2;
20945 int fMiter, nFrames, fVerbose, c;
20960 if ( globalUtilOptind >= argc )
20962 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
20965 nFrames = atoi(argv[globalUtilOptind]);
20966 globalUtilOptind++;
20984 if ( argc == globalUtilOptind + 1 )
20986 Abc_Print( -1,
"The miter cannot be given on the command line. Use \"read\".\n" );
20991 Abc_Print( -1,
"The miter should be structurally hashed. Use \"st\"\n" );
21003 if ( !
Abc_NtkPrepareTwoNtks( stdout, pNtk, pArgvNew, nArgcNew, &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
21009 Abc_Print( -1,
"The network has no latches. Used combinational command \"cec\".\n" );
21023 Abc_Print( -2,
"usage: absec [-F num] [-mv] <file1> <file2>\n" );
21024 Abc_Print( -2,
"\t performs SEC by applying CEC to several timeframes\n" );
21025 Abc_Print( -2,
"\t-F num : the total number of timeframes to use [default = %d]\n", nFrames );
21026 Abc_Print( -2,
"\t-m : toggles miter vs. two networks [default = %s]\n", fMiter?
"miter":
"two networks" );
21027 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
21028 Abc_Print( -2,
"\tfile1 : (optional) the file with the first network\n");
21029 Abc_Print( -2,
"\tfile2 : (optional) the file with the second network\n");
21030 Abc_Print( -2,
"\t if no files are given, uses the current network and its spec\n");
21031 Abc_Print( -2,
"\t if one file is given, uses the current network and the file\n");
21050 int fDelete1, fDelete2;
21061 pPars->fPartSigCorr = 1;
21062 pPars->fVerbose = 1;
21069 if ( globalUtilOptind >= argc )
21071 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
21074 pPars->nFramesK = atoi(argv[globalUtilOptind]);
21075 globalUtilOptind++;
21076 if ( pPars->nFramesK < 0 )
21080 if ( globalUtilOptind >= argc )
21082 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
21085 pPars->nIsleDist = atoi(argv[globalUtilOptind]);
21086 globalUtilOptind++;
21087 if ( pPars->nIsleDist < 0 )
21094 pPars->fPartSigCorr ^= 1;
21097 pPars->fDumpSRInit ^= 1;
21100 pPars->fVerbose ^= 1;
21112 Abc_Print( -1,
"This command works only for structrally hashed networks. Run \"st\".\n" );
21128 if ( !
Abc_NtkPrepareTwoNtks( stdout, pNtk, pArgvNew, nArgcNew, &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
21134 Abc_Print( -1,
"The network has no latches. Used combinational command \"cec\".\n" );
21145 Abc_Print( -2,
"usage: simsec [-FD num] [-mcyv] <file1> <file2>\n" );
21146 Abc_Print( -2,
"\t performs SEC using structural similarity\n" );
21147 Abc_Print( -2,
"\t-F num : the limit on the depth of induction [default = %d]\n", pPars->nFramesK );
21148 Abc_Print( -2,
"\t-D num : the distance for extending islands [default = %d]\n", pPars->nIsleDist );
21149 Abc_Print( -2,
"\t-m : toggles miter vs. two networks [default = %s]\n", fMiter?
"miter":
"two networks" );
21150 Abc_Print( -2,
"\t-c : uses partial vs. full signal correspondence [default = %s]\n", pPars->fPartSigCorr?
"partial":
"full" );
21151 Abc_Print( -2,
"\t-y : dumps speculatively reduced miter of the classes [default = %s]\n", pPars->fDumpSRInit?
"yes":
"no" );
21152 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
21153 Abc_Print( -2,
"\tfile1 : (optional) the file with the first network\n");
21154 Abc_Print( -2,
"\tfile2 : (optional) the file with the second network\n");
21155 Abc_Print( -2,
"\t if no files are given, uses the current network and its spec\n");
21156 Abc_Print( -2,
"\t if one file is given, uses the current network and the file\n");
21173 Abc_Ntk_t * pNtk, * pNtk1, * pNtk2, * pNtkRes;
21174 int fDelete1, fDelete2;
21194 if ( globalUtilOptind >= argc )
21196 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
21199 nDist = atoi(argv[globalUtilOptind]);
21200 globalUtilOptind++;
21220 Abc_Print( -1,
"This command works only for structrally hashed networks. Run \"st\".\n" );
21236 if ( !
Abc_NtkPrepareTwoNtks( stdout, pNtk, pArgvNew, nArgcNew, &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
21242 Abc_Print( -1,
"The network has no latches. Used combinational command \"cec\".\n" );
21250 if ( pNtkRes == NULL )
21252 Abc_Print( -1,
"Matching has failed.\n" );
21260 Abc_Print( -2,
"usage: match [-D num] [-mv] <file1> <file2>\n" );
21261 Abc_Print( -2,
"\t detects structural similarity using simulation\n" );
21262 Abc_Print( -2,
"\t replaces the current network by the miter of differences\n" );
21263 Abc_Print( -2,
"\t-D num : the distance for extending differences [default = %d]\n", nDist );
21264 Abc_Print( -2,
"\t-m : toggles miter vs. two networks [default = %s]\n", fMiter?
"miter":
"two networks" );
21265 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
21266 Abc_Print( -2,
"\tfile1 : (optional) the file with the first network\n");
21267 Abc_Print( -2,
"\tfile2 : (optional) the file with the second network\n");
21268 Abc_Print( -2,
"\t if no files are given, uses the current network and its spec\n");
21269 Abc_Print( -2,
"\t if one file is given, uses the current network and the file\n");
21303 if ( globalUtilOptind >= argc )
21305 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
21308 nConfLimit = atoi(argv[globalUtilOptind]);
21309 globalUtilOptind++;
21310 if ( nConfLimit < 0 )
21314 if ( globalUtilOptind >= argc )
21316 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
21319 nInsLimit = atoi(argv[globalUtilOptind]);
21320 globalUtilOptind++;
21321 if ( nInsLimit < 0 )
21334 if ( pNtk == NULL )
21341 Abc_Print( -1,
"Currently can only solve the miter for combinational circuits.\n" );
21348 RetValue =
Abc_NtkMiterSat( pNtk, (ABC_INT64_T)nConfLimit, (ABC_INT64_T)nInsLimit, fVerbose, NULL, NULL );
21354 RetValue =
Abc_NtkMiterSat( pNtk, (ABC_INT64_T)nConfLimit, (ABC_INT64_T)nInsLimit, fVerbose, NULL, NULL );
21363 if ( pSimInfo[0] != 1 )
21364 Abc_Print( 1,
"ERROR in Abc_NtkMiterSat(): Generated counter example is invalid.\n" );
21377 pAbc->Status = RetValue;
21378 if ( RetValue == -1 )
21380 else if ( RetValue == 0 )
21389 Abc_Print( -2,
"usage: sat [-C num] [-I num] [-vh]\n" );
21390 Abc_Print( -2,
"\t solves the combinational miter using SAT solver MiniSat-1.14\n" );
21391 Abc_Print( -2,
"\t derives CNF from the current network and leave it unchanged\n" );
21392 Abc_Print( -2,
"\t (there is also a newer SAT solving command \"dsat\")\n" );
21393 Abc_Print( -2,
"\t-C num : limit on the number of conflicts [default = %d]\n", nConfLimit );
21394 Abc_Print( -2,
"\t-I num : limit on the number of inspections [default = %d]\n", nInsLimit );
21395 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
21396 Abc_Print( -2,
"\t-h : print the command usage\n");
21427 extern int Abc_NtkDSat(
Abc_Ntk_t * pNtk, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit,
int nLearnedStart,
int nLearnedDelta,
int nLearnedPerce,
int fAlignPol,
int fAndOuts,
int fNewSolver,
int fVerbose );
21444 if ( globalUtilOptind >= argc )
21446 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
21449 nConfLimit = atoi(argv[globalUtilOptind]);
21450 globalUtilOptind++;
21451 if ( nConfLimit < 0 )
21455 if ( globalUtilOptind >= argc )
21457 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
21460 nInsLimit = atoi(argv[globalUtilOptind]);
21461 globalUtilOptind++;
21462 if ( nInsLimit < 0 )
21466 if ( globalUtilOptind >= argc )
21468 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
21471 nLearnedStart = atoi(argv[globalUtilOptind]);
21472 globalUtilOptind++;
21473 if ( nLearnedStart < 0 )
21477 if ( globalUtilOptind >= argc )
21479 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
21482 nLearnedDelta = atoi(argv[globalUtilOptind]);
21483 globalUtilOptind++;
21484 if ( nLearnedDelta < 0 )
21488 if ( globalUtilOptind >= argc )
21490 Abc_Print( -1,
"Command line switch \"-E\" should be followed by an integer.\n" );
21493 nLearnedPerce = atoi(argv[globalUtilOptind]);
21494 globalUtilOptind++;
21495 if ( nLearnedPerce < 0 )
21517 if ( argc == globalUtilOptind + 1 )
21522 FILE * pFile = fopen( pFileName,
"rb" );
21523 if ( pFile == NULL )
21525 printf(
"Cannot open file \"%s\" for writing.\n", pFileName );
21533 if ( pNtk == NULL )
21540 Abc_Print( -1,
"Currently can only solve the miter for combinational circuits.\n" );
21546 Abc_Print( -1,
"Currently expects a single-output miter.\n" );
21552 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
21556 RetValue =
Abc_NtkDSat( pNtk, (ABC_INT64_T)nConfLimit, (ABC_INT64_T)nInsLimit, nLearnedStart, nLearnedDelta, nLearnedPerce, fAlignPol, fAndOuts, fNewSolver, fVerbose );
21561 if ( pSimInfo[0] != 1 )
21562 Abc_Print( 1,
"ERROR in Abc_NtkMiterSat(): Generated counter example is invalid.\n" );
21566 pAbc->Status = RetValue;
21567 if ( RetValue == -1 )
21569 else if ( RetValue == 0 )
21578 Abc_Print( -2,
"usage: dsat [-CILDE num] [-panvh]\n" );
21579 Abc_Print( -2,
"\t solves the combinational miter using SAT solver MiniSat-1.14\n" );
21580 Abc_Print( -2,
"\t derives CNF from the current network and leaves it unchanged\n" );
21581 Abc_Print( -2,
"\t-C num : limit on the number of conflicts [default = %d]\n", nConfLimit );
21582 Abc_Print( -2,
"\t-I num : limit on the number of inspections [default = %d]\n", nInsLimit );
21583 Abc_Print( -2,
"\t-L num : starting value for learned clause removal [default = %d]\n", nLearnedStart );
21584 Abc_Print( -2,
"\t-D num : delta value for learned clause removal [default = %d]\n", nLearnedDelta );
21585 Abc_Print( -2,
"\t-E num : ratio percentage for learned clause removal [default = %d]\n", nLearnedPerce );
21586 Abc_Print( -2,
"\t-p : align polarity of SAT variables [default = %s]\n", fAlignPol?
"yes":
"no" );
21587 Abc_Print( -2,
"\t-a : toggle ANDing/ORing of miter outputs [default = %s]\n", fAndOuts?
"ANDing":
"ORing" );
21588 Abc_Print( -2,
"\t-n : toggle using new solver [default = %s]\n", fNewSolver?
"yes":
"no" );
21589 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
21590 Abc_Print( -2,
"\t-h : print the command usage\n");
21619 extern int Abc_NtkPartitionedSat(
Abc_Ntk_t * pNtk,
int nAlgo,
int nPartSize,
int nConfPart,
int nConfTotal,
int fAlignPol,
int fSynthesize,
int fVerbose );
21624 nConfTotal = 1000000;
21634 if ( globalUtilOptind >= argc )
21636 Abc_Print( -1,
"Command line switch \"-A\" should be followed by an integer.\n" );
21639 nAlgo = atoi(argv[globalUtilOptind]);
21640 globalUtilOptind++;
21645 if ( globalUtilOptind >= argc )
21647 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
21650 nPartSize = atoi(argv[globalUtilOptind]);
21651 globalUtilOptind++;
21652 if ( nPartSize < 0 )
21656 if ( globalUtilOptind >= argc )
21658 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
21661 nConfTotal = atoi(argv[globalUtilOptind]);
21662 globalUtilOptind++;
21663 if ( nConfTotal < 0 )
21682 if ( pNtk == NULL )
21689 Abc_Print( -1,
"Currently can only solve the miter for combinational circuits.\n" );
21694 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
21699 RetValue =
Abc_NtkPartitionedSat( pNtk, nAlgo, nPartSize, nConfPart, nConfTotal, fAlignPol, fSynthesize, fVerbose );
21706 if ( pSimInfo[0] != 1 )
21707 Abc_Print( 1,
"ERROR in Abc_NtkMiterSat(): Generated counter example is invalid.\n" );
21721 if ( RetValue == -1 )
21723 else if ( RetValue == 0 )
21732 Abc_Print( -2,
"usage: psat [-APC num] [-psvh]\n" );
21733 Abc_Print( -2,
"\t solves the combinational miter using partitioning\n" );
21734 Abc_Print( -2,
"\t (derives CNF from the current network and leave it unchanged)\n" );
21735 Abc_Print( -2,
"\t for multi-output miters, tries to prove that the AND of POs is always 0\n" );
21736 Abc_Print( -2,
"\t (if POs should be ORed instead of ANDed, use command \"orpos\")\n" );
21737 Abc_Print( -2,
"\t-A num : partitioning algorithm [default = %d]\n", nAlgo );
21738 Abc_Print( -2,
"\t 0 : no partitioning\n" );
21739 Abc_Print( -2,
"\t 1 : partitioning by level\n" );
21740 Abc_Print( -2,
"\t 2 : DFS post-order\n" );
21741 Abc_Print( -2,
"\t 3 : DFS pre-order\n" );
21742 Abc_Print( -2,
"\t 4 : bit-slicing\n" );
21743 Abc_Print( -2,
"\t partitions are ordered by level (high level first)\n" );
21744 Abc_Print( -2,
"\t-P num : limit on the partition size [default = %d]\n", nPartSize );
21745 Abc_Print( -2,
"\t-C num : limit on the number of conflicts [default = %d]\n", nConfTotal );
21746 Abc_Print( -2,
"\t-p : align polarity of SAT variables [default = %s]\n", fAlignPol?
"yes":
"no" );
21747 Abc_Print( -2,
"\t-s : apply logic synthesis to each partition [default = %s]\n", fSynthesize?
"yes":
"no" );
21748 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
21749 Abc_Print( -2,
"\t-h : print the command usage\n");
21780 if ( globalUtilOptind >= argc )
21782 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
21785 pParams->
nItersMax = atoi(argv[globalUtilOptind]);
21786 globalUtilOptind++;
21791 if ( globalUtilOptind >= argc )
21793 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
21797 globalUtilOptind++;
21802 if ( globalUtilOptind >= argc )
21804 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
21808 globalUtilOptind++;
21813 if ( globalUtilOptind >= argc )
21815 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
21819 globalUtilOptind++;
21824 if ( globalUtilOptind >= argc )
21826 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
21830 globalUtilOptind++;
21835 if ( globalUtilOptind >= argc )
21837 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
21841 globalUtilOptind++;
21864 if ( pNtk == NULL )
21871 Abc_Print( -1,
"Currently can only solve the miter for combinational circuits.\n" );
21876 Abc_Print( -1,
"Currently can only solve the miter with one output.\n" );
21889 if ( RetValue == 0 )
21892 if ( pSimInfo[0] != 1 )
21893 Abc_Print( 1,
"ERROR in Abc_NtkMiterProve(): Generated counter-example is invalid.\n" );
21896 pAbc->Status = RetValue;
21897 if ( RetValue == -1 )
21899 else if ( RetValue == 0 )
21911 Abc_Print( -2,
"usage: prove [-NCFGLI num] [-rfbvh]\n" );
21912 Abc_Print( -2,
"\t solves combinational miter by rewriting, FRAIGing, and SAT\n" );
21913 Abc_Print( -2,
"\t replaces the current network by the cone modified by rewriting\n" );
21914 Abc_Print( -2,
"\t (there is also newer CEC command \"iprove\")\n" );
21915 Abc_Print( -2,
"\t-N num : max number of iterations [default = %d]\n", pParams->
nItersMax );
21920 Abc_Print( -2,
"\t-I num : max number of clause inspections in all SAT calls [default = %d]\n", (
int)pParams->
nTotalInspectLimit );
21921 Abc_Print( -2,
"\t-r : toggle the use of rewriting [default = %s]\n", pParams->
fUseRewriting?
"yes":
"no" );
21922 Abc_Print( -2,
"\t-f : toggle the use of FRAIGing [default = %s]\n", pParams->
fUseFraiging?
"yes":
"no" );
21923 Abc_Print( -2,
"\t-b : toggle the use of BDDs [default = %s]\n", pParams->
fUseBdds?
"yes":
"no" );
21924 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", pParams->
fVerbose?
"yes":
"no" );
21925 Abc_Print( -2,
"\t-h : print the command usage\n");
21959 if ( pNtk == NULL )
21966 Abc_Print( -1,
"This command is applicable to logic networks.\n" );
21974 Abc_Print( -2,
"usage: debug [-h]\n" );
21975 Abc_Print( -2,
"\t performs automated debugging of the given procedure\n" );
21976 Abc_Print( -2,
"\t-h : print the command usage\n");
22005 char * pLogFileName = NULL;
22007 extern int Abc_NtkDarBmc(
Abc_Ntk_t * pNtk,
int nStart,
int nFrames,
int nSizeMax,
int nNodeDelta,
int nTimeOut,
int nBTLimit,
int nBTLimitAll,
int fRewrite,
int fNewAlgo,
int fOrDecomp,
int nCofFanLit,
int fVerbose,
int * piFrames );
22024 if ( globalUtilOptind >= argc )
22026 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
22029 nFrames = atoi(argv[globalUtilOptind]);
22030 globalUtilOptind++;
22035 if ( globalUtilOptind >= argc )
22037 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
22040 nSizeMax = atoi(argv[globalUtilOptind]);
22041 globalUtilOptind++;
22042 if ( nSizeMax < 0 )
22046 if ( globalUtilOptind >= argc )
22048 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
22051 nBTLimit = atoi(argv[globalUtilOptind]);
22052 globalUtilOptind++;
22053 if ( nBTLimit < 0 )
22057 if ( globalUtilOptind >= argc )
22059 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
22062 nBTLimitAll = atoi(argv[globalUtilOptind]);
22063 globalUtilOptind++;
22064 if ( nBTLimitAll < 0 )
22068 if ( globalUtilOptind >= argc )
22070 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
22073 nNodeDelta = atoi(argv[globalUtilOptind]);
22074 globalUtilOptind++;
22075 if ( nNodeDelta < 0 )
22092 if ( globalUtilOptind >= argc )
22094 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a file name.\n" );
22098 globalUtilOptind++;
22115 if ( pNtk == NULL )
22122 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
22127 Abc_Print( -1,
"Does not work for combinational networks.\n" );
22130 pAbc->Status =
Abc_NtkDarBmc( pNtk, 0, nFrames, nSizeMax, nNodeDelta, 0, nBTLimit, nBTLimitAll, fRewrite, fNewAlgo, 0, nCofFanLit, fVerbose, &iFrames );
22131 pAbc->nFrames = iFrames;
22133 if ( pLogFileName )
22138 Abc_Print( -2,
"usage: bmc [-FNC num] [-L file] [-rcvh]\n" );
22139 Abc_Print( -2,
"\t performs bounded model checking with static unrolling\n" );
22140 Abc_Print( -2,
"\t-F num : the number of time frames [default = %d]\n", nFrames );
22141 Abc_Print( -2,
"\t-N num : the max number of nodes in the frames [default = %d]\n", nSizeMax );
22142 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", nBTLimit );
22144 Abc_Print( -2,
"\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName :
"no logging" );
22145 Abc_Print( -2,
"\t-r : toggle the use of rewriting [default = %s]\n", fRewrite?
"yes":
"no" );
22147 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
22148 Abc_Print( -2,
"\t-h : print the command usage\n");
22179 char * pLogFileName = NULL;
22181 extern int Abc_NtkDarBmc(
Abc_Ntk_t * pNtk,
int nStart,
int nFrames,
int nSizeMax,
int nNodeDelta,
int nTimeOut,
int nBTLimit,
int nBTLimitAll,
int fRewrite,
int fNewAlgo,
int fOrDecomp,
int nCofFanLit,
int fVerbose,
int * piFrames );
22201 if ( globalUtilOptind >= argc )
22203 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
22206 nStart = atoi(argv[globalUtilOptind]);
22207 globalUtilOptind++;
22212 if ( globalUtilOptind >= argc )
22214 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
22217 nFrames = atoi(argv[globalUtilOptind]);
22218 globalUtilOptind++;
22223 if ( globalUtilOptind >= argc )
22225 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
22228 nSizeMax = atoi(argv[globalUtilOptind]);
22229 globalUtilOptind++;
22230 if ( nSizeMax < 0 )
22234 if ( globalUtilOptind >= argc )
22236 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
22239 nTimeOut = atoi(argv[globalUtilOptind]);
22240 globalUtilOptind++;
22241 if ( nTimeOut < 0 )
22245 if ( globalUtilOptind >= argc )
22247 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
22250 nBTLimit = atoi(argv[globalUtilOptind]);
22251 globalUtilOptind++;
22252 if ( nBTLimit < 0 )
22256 if ( globalUtilOptind >= argc )
22258 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
22261 nBTLimitAll = atoi(argv[globalUtilOptind]);
22262 globalUtilOptind++;
22263 if ( nBTLimitAll < 0 )
22267 if ( globalUtilOptind >= argc )
22269 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
22272 nNodeDelta = atoi(argv[globalUtilOptind]);
22273 globalUtilOptind++;
22274 if ( nNodeDelta < 0 )
22278 if ( globalUtilOptind >= argc )
22280 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a file name.\n" );
22284 globalUtilOptind++;
22304 if ( pNtk == NULL )
22311 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
22316 Abc_Print( -1,
"Does not work for combinational networks.\n" );
22319 pAbc->Status =
Abc_NtkDarBmc( pNtk, nStart, nFrames, nSizeMax, nNodeDelta, nTimeOut, nBTLimit, nBTLimitAll, fRewrite, fNewAlgo, fOrDecomp, 0, fVerbose, &iFrames );
22320 pAbc->nFrames = iFrames;
22322 if ( pLogFileName )
22327 Abc_Print( -2,
"usage: bmc2 [-SFTCGD num] [-L file] [-uvh]\n" );
22328 Abc_Print( -2,
"\t performs bounded model checking with dynamic unrolling\n" );
22329 Abc_Print( -2,
"\t-S num : the starting time frame [default = %d]\n", nStart );
22330 Abc_Print( -2,
"\t-F num : the max number of time frames (0 = unused) [default = %d]\n", nFrames );
22331 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", nTimeOut );
22332 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", nBTLimit );
22333 Abc_Print( -2,
"\t-G num : the max number of conflicts globally [default = %d]\n", nBTLimitAll );
22334 Abc_Print( -2,
"\t-D num : the delta in the number of nodes [default = %d]\n", nNodeDelta );
22335 Abc_Print( -2,
"\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName :
"no logging" );
22336 Abc_Print( -2,
"\t-u : toggle performing structural OR-decomposition [default = %s]\n", fOrDecomp?
"yes":
"no" );
22337 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
22338 Abc_Print( -2,
"\t-h : print the command usage\n");
22360 char * pLogFileName = NULL;
22365 while ( ( c =
Extra_UtilGetopt( argc, argv,
"SFTHGCDJIPQRLWaxdruvzh" ) ) != EOF )
22370 if ( globalUtilOptind >= argc )
22372 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
22375 pPars->
nStart = atoi(argv[globalUtilOptind]);
22376 globalUtilOptind++;
22377 if ( pPars->
nStart < 0 )
22381 if ( globalUtilOptind >= argc )
22383 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
22386 pPars->
nFramesMax = atoi(argv[globalUtilOptind]);
22387 globalUtilOptind++;
22392 if ( globalUtilOptind >= argc )
22394 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
22397 pPars->
nTimeOut = atoi(argv[globalUtilOptind]);
22398 globalUtilOptind++;
22403 if ( globalUtilOptind >= argc )
22405 Abc_Print( -1,
"Command line switch \"-H\" should be followed by an integer.\n" );
22408 pPars->
nTimeOutOne = atoi(argv[globalUtilOptind]);
22409 globalUtilOptind++;
22414 if ( globalUtilOptind >= argc )
22416 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
22419 pPars->
nTimeOutGap = atoi(argv[globalUtilOptind]);
22420 globalUtilOptind++;
22425 if ( globalUtilOptind >= argc )
22427 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
22430 pPars->
nConfLimit = atoi(argv[globalUtilOptind]);
22431 globalUtilOptind++;
22436 if ( globalUtilOptind >= argc )
22438 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
22442 globalUtilOptind++;
22447 if ( globalUtilOptind >= argc )
22449 Abc_Print( -1,
"Command line switch \"-J\" should be followed by an integer.\n" );
22452 pPars->
nFramesJump = atoi(argv[globalUtilOptind]);
22453 globalUtilOptind++;
22458 if ( globalUtilOptind >= argc )
22460 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
22464 globalUtilOptind++;
22469 if ( globalUtilOptind >= argc )
22471 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
22475 globalUtilOptind++;
22480 if ( globalUtilOptind >= argc )
22482 Abc_Print( -1,
"Command line switch \"-Q\" should be followed by an integer.\n" );
22486 globalUtilOptind++;
22491 if ( globalUtilOptind >= argc )
22493 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
22497 globalUtilOptind++;
22502 if ( globalUtilOptind >= argc )
22504 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a file name.\n" );
22508 globalUtilOptind++;
22511 if ( globalUtilOptind >= argc )
22513 Abc_Print( -1,
"Command line switch \"-W\" should be followed by a file name.\n" );
22517 globalUtilOptind++;
22543 if ( pNtk == NULL )
22550 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
22555 Abc_Print( -1,
"Does not work for combinational networks.\n" );
22560 Abc_Print( -1,
"Constraints have to be folded (use \"fold\").\n" );
22566 if ( pLogFileName )
22571 if ( vSeqModelVec == NULL )
22572 Abc_Print( 1,
"The array of counter-examples is not available.\n" );
22574 Abc_Print( 1,
"The array size does not match the number of outputs.\n" );
22580 if ( pNtkRes == NULL )
22582 Abc_Print( -1,
"Removing SAT outputs has failed.\n" );
22590 if ( vSeqModelVec )
22597 Abc_Print( -2,
"usage: bmc3 [-SFTHGCDJIPQR num] [-LW file] [-axduvzh]\n" );
22598 Abc_Print( -2,
"\t performs bounded model checking with dynamic unrolling\n" );
22599 Abc_Print( -2,
"\t-S num : the starting time frame [default = %d]\n", pPars->
nStart );
22600 Abc_Print( -2,
"\t-F num : the max number of time frames (0 = unused) [default = %d]\n", pPars->
nFramesMax );
22601 Abc_Print( -2,
"\t-T num : runtime limit, in seconds [default = %d]\n", pPars->
nTimeOut );
22602 Abc_Print( -2,
"\t-H num : runtime limit per output, in miliseconds (with \"-a\") [default = %d]\n", pPars->
nTimeOutOne );
22603 Abc_Print( -2,
"\t-G num : runtime gap since the last CEX, in seconds [default = %d]\n", pPars->
nTimeOutGap );
22604 Abc_Print( -2,
"\t-C num : max conflicts at an output [default = %d]\n", pPars->
nConfLimit );
22605 Abc_Print( -2,
"\t-D num : max conflicts after jumping (0 = infinity) [default = %d]\n", pPars->
nConfLimitJump );
22606 Abc_Print( -2,
"\t-J num : the number of timeframes to jump (0 = not used) [default = %d]\n", pPars->
nFramesJump );
22608 Abc_Print( -2,
"\t-P num : the max number of learned clauses to keep (0=unused) [default = %d]\n", pPars->
nLearnedStart );
22609 Abc_Print( -2,
"\t-Q num : delta value for learned clause removal [default = %d]\n", pPars->
nLearnedDelta );
22610 Abc_Print( -2,
"\t-R num : percentage to keep for learned clause removal [default = %d]\n", pPars->
nLearnedPerce );
22611 Abc_Print( -2,
"\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName :
"no logging" );
22613 Abc_Print( -2,
"\t-a : solve all outputs (do not stop when one is SAT) [default = %s]\n", pPars->
fSolveAll?
"yes":
"no" );
22614 Abc_Print( -2,
"\t-x : toggle storing CEXes when solving all outputs [default = %s]\n", pPars->
fStoreCex?
"yes":
"no" );
22615 Abc_Print( -2,
"\t-d : toggle dropping (replacing by 0) SAT outputs [default = %s]\n", pPars->
fDropSatOuts?
"yes":
"no" );
22616 Abc_Print( -2,
"\t-u : toggle performing structural OR-decomposition [default = %s]\n", fOrDecomp?
"yes":
"not" );
22617 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
22618 Abc_Print( -2,
"\t-z : toggle suppressing report about solved outputs [default = %s]\n", pPars->
fNotVerbose?
"yes":
"no" );
22619 Abc_Print( -2,
"\t-h : print the command usage\n");
22639 char * pLogFileName = NULL;
22645 while ( ( c =
Extra_UtilGetopt( argc, argv,
"CFTKLIrtpomcgbqkdivh" ) ) != EOF )
22650 if ( globalUtilOptind >= argc )
22652 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
22655 pPars->nBTLimit = atoi(argv[globalUtilOptind]);
22656 globalUtilOptind++;
22657 if ( pPars->nBTLimit < 0 )
22661 if ( globalUtilOptind >= argc )
22663 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
22666 pPars->nFramesMax = atoi(argv[globalUtilOptind]);
22667 globalUtilOptind++;
22668 if ( pPars->nFramesMax < 0 )
22672 if ( globalUtilOptind >= argc )
22674 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
22677 pPars->nSecLimit = atoi(argv[globalUtilOptind]);
22678 globalUtilOptind++;
22679 if ( pPars->nSecLimit < 0 )
22683 if ( globalUtilOptind >= argc )
22685 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
22688 pPars->nFramesK = atoi(argv[globalUtilOptind]);
22689 globalUtilOptind++;
22690 if ( pPars->nFramesK < 0 )
22694 if ( globalUtilOptind >= argc )
22696 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a file name.\n" );
22700 globalUtilOptind++;
22703 if ( globalUtilOptind >= argc )
22705 Abc_Print( -1,
"Command line switch \"-I\" should be followed by a file name.\n" );
22709 globalUtilOptind++;
22712 pPars->fRewrite ^= 1;
22715 pPars->fTransLoop ^= 1;
22718 pPars->fUsePudlak ^= 1;
22721 pPars->fUseOther ^= 1;
22724 pPars->fUseMiniSat ^= 1;
22727 pPars->fCheckKstep ^= 1;
22730 pPars->fUseBias ^= 1;
22733 pPars->fUseBackward ^= 1;
22736 pPars->fUseTwoFrames ^= 1;
22739 pPars->fUseSeparate ^= 1;
22742 pPars->fDropSatOuts ^= 1;
22745 pPars->fDropInvar ^= 1;
22748 pPars->fVerbose ^= 1;
22756 if ( pNtk == NULL )
22763 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
22768 Abc_Print( -1,
"Does not work for combinational networks.\n" );
22773 Abc_Print( -1,
"Cannot run interpolation with constraints. Use \"fold\".\n" );
22780 Abc_Print( 1,
"Cannot solve multiple-output miter with constraints.\n" );
22783 if ( pPars->fUseSeparate )
22788 if ( pNtkRes == NULL )
22790 Abc_Print( -1,
"Generating resulting network has failed.\n" );
22802 Abc_Print( -1,
"ORing outputs has failed.\n" );
22806 if ( pAbc->Status == 0 )
22815 pAbc->nFrames = -1;
22820 pAbc->nFrames = pPars->iFrameMax;
22823 if ( pLogFileName )
22828 Abc_Print( -2,
"usage: int [-CFTK num] [-LI file] [-irtpomcgbqkdvh]\n" );
22829 Abc_Print( -2,
"\t uses interpolation to prove the property\n" );
22830 Abc_Print( -2,
"\t-C num : the limit on conflicts for one SAT run [default = %d]\n", pPars->nBTLimit );
22831 Abc_Print( -2,
"\t-F num : the limit on number of frames to unroll [default = %d]\n", pPars->nFramesMax );
22832 Abc_Print( -2,
"\t-T num : the limit on runtime per output in seconds [default = %d]\n", pPars->nSecLimit );
22833 Abc_Print( -2,
"\t-K num : the number of steps in inductive checking [default = %d]\n", pPars->nFramesK );
22834 Abc_Print( -2,
"\t (K = 1 works in all cases; K > 1 works without -t and -b)\n" );
22835 Abc_Print( -2,
"\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName :
"no logging" );
22836 Abc_Print( -2,
"\t-I file: the file name for dumping interpolant [default = \"%s\"]\n", pPars->pFileName ? pPars->pFileName :
"invar.aig" );
22837 Abc_Print( -2,
"\t-i : toggle dumping interpolant/invariant into a file [default = %s]\n", pPars->fDropInvar?
"yes":
"no" );
22838 Abc_Print( -2,
"\t-r : toggle rewriting of the unrolled timeframes [default = %s]\n", pPars->fRewrite?
"yes":
"no" );
22839 Abc_Print( -2,
"\t-t : toggle adding transition into the initial state [default = %s]\n", pPars->fTransLoop?
"yes":
"no" );
22840 Abc_Print( -2,
"\t-p : toggle using original Pudlak's interpolation procedure [default = %s]\n", pPars->fUsePudlak?
"yes":
"no" );
22841 Abc_Print( -2,
"\t-o : toggle using optimized Pudlak's interpolation procedure [default = %s]\n", pPars->fUseOther?
"yes":
"no" );
22842 Abc_Print( -2,
"\t-m : toggle using MiniSat-1.14p (now, Windows-only) [default = %s]\n", pPars->fUseMiniSat?
"yes":
"no" );
22843 Abc_Print( -2,
"\t-c : toggle using inductive containment check [default = %s]\n", pPars->fCheckKstep?
"yes":
"no" );
22844 Abc_Print( -2,
"\t-g : toggle using bias for global variables using SAT [default = %s]\n", pPars->fUseBias?
"yes":
"no" );
22845 Abc_Print( -2,
"\t-b : toggle using backward interpolation (works with -t) [default = %s]\n", pPars->fUseBackward?
"yes":
"no" );
22846 Abc_Print( -2,
"\t-q : toggle using property in two last timeframes [default = %s]\n", pPars->fUseTwoFrames?
"yes":
"no" );
22847 Abc_Print( -2,
"\t-k : toggle solving each output separately [default = %s]\n", pPars->fUseSeparate?
"yes":
"no" );
22848 Abc_Print( -2,
"\t-d : toggle dropping (replacing by 0) SAT outputs (with -k is used) [default = %s]\n", pPars->fDropSatOuts?
"yes":
"no" );
22849 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
22850 Abc_Print( -2,
"\t-h : print the command usage\n");
22882 extern int Abc_NtkDarClau(
Abc_Ntk_t * pNtk,
int nFrames,
int nPref,
int nClauses,
int nLutSize,
int nLevels,
int nCutsMax,
int nBatches,
int fStepUp,
int fBmc,
int fRegs,
int fTarget,
int fVerbose,
int fVeryVerbose );
22903 if ( globalUtilOptind >= argc )
22905 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
22908 nFrames = atoi(argv[globalUtilOptind]);
22909 globalUtilOptind++;
22914 if ( globalUtilOptind >= argc )
22916 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
22919 nPref = atoi(argv[globalUtilOptind]);
22920 globalUtilOptind++;
22925 if ( globalUtilOptind >= argc )
22927 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
22930 nClauses = atoi(argv[globalUtilOptind]);
22931 globalUtilOptind++;
22932 if ( nClauses < 0 )
22936 if ( globalUtilOptind >= argc )
22938 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
22941 nLutSize = atoi(argv[globalUtilOptind]);
22942 globalUtilOptind++;
22943 if ( nLutSize < 0 )
22947 if ( globalUtilOptind >= argc )
22949 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
22952 nLevels = atoi(argv[globalUtilOptind]);
22953 globalUtilOptind++;
22958 if ( globalUtilOptind >= argc )
22960 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
22963 nCutsMax = atoi(argv[globalUtilOptind]);
22964 globalUtilOptind++;
22965 if ( nCutsMax < 0 )
22969 if ( globalUtilOptind >= argc )
22971 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
22974 nBatches = atoi(argv[globalUtilOptind]);
22975 globalUtilOptind++;
22976 if ( nBatches < 0 )
23003 if ( pNtk == NULL )
23010 Abc_Print( -1,
"The network is combinational.\n" );
23015 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
23018 if ( nLutSize > 12 )
23020 Abc_Print( -1,
"The cut size should be not exceed 12.\n" );
23023 Abc_NtkDarClau( pNtk, nFrames, nPref, nClauses, nLutSize, nLevels, nCutsMax, nBatches, fStepUp, fBmc, fRegs, fTarget, fVerbose, fVeryVerbose );
23026 Abc_Print( -2,
"usage: indcut [-FPCMLNB num] [-sbrtvh]\n" );
23027 Abc_Print( -2,
"\t K-step induction strengthened with cut properties\n" );
23028 Abc_Print( -2,
"\t-F num : number of time frames for induction (1=simple) [default = %d]\n", nFrames );
23029 Abc_Print( -2,
"\t-P num : number of time frames in the prefix (0=no prefix) [default = %d]\n", nPref );
23030 Abc_Print( -2,
"\t-C num : the max number of clauses to use for strengthening [default = %d]\n", nClauses );
23031 Abc_Print( -2,
"\t-M num : the cut size (2 <= M <= 12) [default = %d]\n", nLutSize );
23032 Abc_Print( -2,
"\t-L num : the max number of levels for cut computation [default = %d]\n", nLevels );
23033 Abc_Print( -2,
"\t-N num : the max number of cuts to compute at a node [default = %d]\n", nCutsMax );
23034 Abc_Print( -2,
"\t-B num : the max number of invariant batches to try [default = %d]\n", nBatches );
23035 Abc_Print( -2,
"\t-s : toggle increment cut size in each batch [default = %s]\n", fStepUp?
"yes":
"no" );
23036 Abc_Print( -2,
"\t-b : toggle enabling BMC check [default = %s]\n", fBmc?
"yes":
"no" );
23037 Abc_Print( -2,
"\t-r : toggle enabling register clauses [default = %s]\n", fRegs?
"yes":
"no" );
23038 Abc_Print( -2,
"\t-t : toggle proving target / computing don't-cares [default = %s]\n", fTarget?
"yes":
"no" );
23039 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
23041 Abc_Print( -2,
"\t-h : print the command usage\n");
23074 if ( globalUtilOptind >= argc )
23076 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
23079 nFrames = atoi(argv[globalUtilOptind]);
23080 globalUtilOptind++;
23093 if ( pNtk == NULL )
23100 Abc_Print( -1,
"The network is combinational.\n" );
23105 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
23111 if ( pNtkRes == NULL )
23113 Abc_Print( -1,
"Target enlargement has failed.\n" );
23120 Abc_Print( -2,
"usage: enlarge [-F <num>] [-vh]\n" );
23121 Abc_Print( -2,
"\t performs structural K-step target enlargement\n" );
23122 Abc_Print( -2,
"\t-F <num> : the number of timeframes to unroll (<num> > 0) [default = %d]\n", nFrames );
23123 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
23124 Abc_Print( -2,
"\t-h : print the command usage\n");
23145 int nConfMax = 100000;
23147 int fUseTransSigs = 0;
23148 int fUpdateCex = 0;
23150 int fVeryVerbose = 0;
23158 if ( globalUtilOptind >= argc )
23160 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
23163 nFrames = atoi(argv[globalUtilOptind]);
23164 globalUtilOptind++;
23169 if ( globalUtilOptind >= argc )
23171 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
23174 TimeOut = atoi(argv[globalUtilOptind]);
23175 globalUtilOptind++;
23180 if ( globalUtilOptind >= argc )
23182 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
23185 nConfMax = atoi(argv[globalUtilOptind]);
23186 globalUtilOptind++;
23187 if ( nConfMax < 0 )
23194 fUseTransSigs ^= 1;
23210 if ( pNtk == NULL )
23212 Abc_Print( -2,
"There is no current network.\n");
23217 Abc_Print( -2,
"The current network is not an AIG (run \"strash\").\n");
23222 Abc_Print( -2,
"The current network is combinational.\n");
23228 if ( pAbc->pCex == NULL )
23230 Abc_Print( -1,
"Counter-example is not available.\n" );
23235 Abc_Print( -1,
"PI count of the CEX is not a multiple of PI count of the current AIG.\n" );
23243 pNtkRes =
Abc_NtkDarTempor( pNtk, nFrames, TimeOut, nConfMax, fUseBmc, fUseTransSigs, fVerbose, fVeryVerbose );
23244 if ( pNtkRes == NULL )
23246 Abc_Print( -1,
"Temporal decomposition has failed.\n" );
23254 Abc_Print( -2,
"usage: tempor [-FTC <num>] [-bscvwh]\n" );
23255 Abc_Print( -2,
"\t performs temporal decomposition\n" );
23256 Abc_Print( -2,
"\t-F <num> : init logic timeframe count (0 = use leading length) [default = %d]\n", nFrames );
23257 Abc_Print( -2,
"\t-T <num> : runtime limit in seconds for BMC (0=unused) [default = %d]\n", TimeOut );
23258 Abc_Print( -2,
"\t-C <num> : max number of SAT conflicts in BMC (0=unused) [default = %d]\n", nConfMax );
23259 Abc_Print( -2,
"\t-b : toggle running BMC2 on the init frames [default = %s]\n", fUseBmc?
"yes":
"no" );
23260 Abc_Print( -2,
"\t-s : toggle using transient signals [default = %s]\n", fUseTransSigs?
"yes":
"no" );
23261 Abc_Print( -2,
"\t-c : update the current CEX derived for a new AIG after \"tempor\"\n" );
23262 Abc_Print( -2,
"\t to match the current AIG (the one before \"tempor\") [default = %s]\n", fUpdateCex?
"yes":
"no" );
23263 Abc_Print( -2,
"\t-v : toggle printing verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
23264 Abc_Print( -2,
"\t-w : toggle printing ternary state space [default = %s]\n", fVeryVerbose?
"yes":
"no" );
23265 Abc_Print( -2,
"\t-h : print the command usage\n");
23292 extern int Abc_NtkDarInduction(
Abc_Ntk_t * pNtk,
int nTimeOut,
int nFramesMax,
int nConfMax,
int fUnique,
int fUniqueAll,
int fGetCex,
int fVerbose,
int fVeryVerbose );
23308 if ( globalUtilOptind >= argc )
23310 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
23313 nFramesMax = atoi(argv[globalUtilOptind]);
23314 globalUtilOptind++;
23315 if ( nFramesMax < 0 )
23319 if ( globalUtilOptind >= argc )
23321 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
23324 nConfMax = atoi(argv[globalUtilOptind]);
23325 globalUtilOptind++;
23326 if ( nConfMax < 0 )
23330 if ( globalUtilOptind >= argc )
23332 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
23335 nTimeOut = atoi(argv[globalUtilOptind]);
23336 globalUtilOptind++;
23337 if ( nTimeOut < 0 )
23361 if ( pNtk == NULL )
23368 Abc_Print( -1,
"The network is combinational.\n" );
23373 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
23378 Abc_Print( -1,
"Currently this command works only for single-output miter.\n" );
23381 if ( fUnique && fUniqueAll )
23383 Abc_Print( -1,
"Only one of the options, \"-u\" or \"-a\", should be selected.\n" );
23388 pAbc->Status =
Abc_NtkDarInduction( pNtk, nTimeOut, nFramesMax, nConfMax, fUnique, fUniqueAll, fGetCex, fVerbose, fVeryVerbose );
23392 Abc_Print( 1,
"The current CEX in ABC is set to be the CEX to induction.\n" );
23396 Abc_Print( -2,
"usage: ind [-FCT num] [-uaxvwh]\n" );
23397 Abc_Print( -2,
"\t runs the inductive case of the K-step induction\n" );
23398 Abc_Print( -2,
"\t-F num : the max number of timeframes [default = %d]\n", nFramesMax );
23399 Abc_Print( -2,
"\t-C num : the max number of conflicts by SAT solver [default = %d]\n", nConfMax );
23400 Abc_Print( -2,
"\t-T num : the limit on runtime per output in seconds [default = %d]\n", nTimeOut );
23401 Abc_Print( -2,
"\t-u : toggle adding uniqueness constraints on demand [default = %s]\n", fUnique?
"yes":
"no" );
23402 Abc_Print( -2,
"\t-a : toggle adding uniqueness constraints always [default = %s]\n", fUniqueAll?
"yes":
"no" );
23403 Abc_Print( -2,
"\t-x : toggle returning CEX to induction for the top frame [default = %s]\n", fGetCex?
"yes":
"no" );
23404 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
23405 Abc_Print( -2,
"\t-w : toggle printing additional verbose information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
23406 Abc_Print( -2,
"\t-h : print the command usage\n");
23434 extern void Abc_NtkDarConstr(
Abc_Ntk_t * pNtk,
int nFrames,
int nConfs,
int nProps,
int fStruct,
int fOldAlgo,
int fVerbose );
23453 if ( globalUtilOptind >= argc )
23455 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
23458 nFrames = atoi(argv[globalUtilOptind]);
23459 globalUtilOptind++;
23464 if ( globalUtilOptind >= argc )
23466 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
23469 nConfs = atoi(argv[globalUtilOptind]);
23470 globalUtilOptind++;
23475 if ( globalUtilOptind >= argc )
23477 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
23480 nProps = atoi(argv[globalUtilOptind]);
23481 globalUtilOptind++;
23486 if ( globalUtilOptind >= argc )
23488 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
23491 nConstrs = atoi(argv[globalUtilOptind]);
23492 globalUtilOptind++;
23493 if ( nConstrs < 0 )
23517 if ( pNtk == NULL )
23524 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
23531 Abc_Print( -1,
"Constraints are not defined.\n" );
23534 Abc_Print( 1,
"Constraints are converted to be primary outputs.\n" );
23539 if ( nConstrs >= 0 )
23542 Abc_Print( 0,
"The network is combinational.\n" );
23547 Abc_Print( -1,
"The number of constraints specified (%d) should be less than POs (%d).\n", nConstrs,
Abc_NtkPoNum(pNtk) );
23550 Abc_Print( 1,
"Setting the last %d POs as constraint outputs.\n", nConstrs );
23572 Abc_Print( -1,
"The network is combinational.\n" );
23576 Abc_NtkDarConstr( pNtk, nFrames, nConfs, nProps, fStruct, fOldAlgo, fVerbose );
23579 Abc_Print( -2,
"usage: constr [-FCPN num] [-risavh]\n" );
23580 Abc_Print( -2,
"\t a toolkit for constraint manipulation\n" );
23581 Abc_Print( -2,
"\t if constraints are absent, detect them functionally\n" );
23582 Abc_Print( -2,
"\t if constraints are present, profiles them using random simulation\n" );
23583 Abc_Print( -2,
"\t-F num : the max number of timeframes to consider [default = %d]\n", nFrames );
23584 Abc_Print( -2,
"\t-C num : the max number of conflicts in SAT solving [default = %d]\n", nConfs );
23585 Abc_Print( -2,
"\t-P num : the max number of propagations in SAT solving [default = %d]\n", nProps );
23586 Abc_Print( -2,
"\t-N num : manually set the last <num> POs to be constraints [default = %d]\n", nConstrs );
23587 Abc_Print( -2,
"\t-r : manually remove the constraints [default = %s]\n", fRemove?
"yes":
"no" );
23588 Abc_Print( -2,
"\t-i : toggle inverting already defined constraints [default = %s]\n", fInvert?
"yes":
"no" );
23589 Abc_Print( -2,
"\t-s : toggle using structural detection methods [default = %s]\n", fStruct?
"yes":
"no" );
23590 Abc_Print( -2,
"\t-a : toggle fast implication detection [default = %s]\n", !fOldAlgo?
"yes":
"no" );
23591 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
23592 Abc_Print( -2,
"\t-h : print the command usage\n");
23632 if ( globalUtilOptind >= argc )
23634 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
23637 nFrames = atoi(argv[globalUtilOptind]);
23638 globalUtilOptind++;
23643 if ( globalUtilOptind >= argc )
23645 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
23648 nConfs = atoi(argv[globalUtilOptind]);
23649 globalUtilOptind++;
23654 if ( globalUtilOptind >= argc )
23656 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
23659 nProps = atoi(argv[globalUtilOptind]);
23660 globalUtilOptind++;
23679 if ( pNtk == NULL )
23686 Abc_Print( -1,
"Combinational miter has more than one PO.\n" );
23697 if ( pNew == NULL )
23699 Abc_Print( -1,
"Cannot extract constrains from the miter.\n" );
23715 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
23720 Abc_Print( -1,
"Constraints are already extracted.\n" );
23725 Abc_Print( -1,
"Functional constraint extraction works for single-output miters (use \"orpos\").\n" );
23729 pNtkRes =
Abc_NtkDarUnfold( pNtk, nFrames, nConfs, nProps, fStruct, fOldAlgo, fVerbose );
23730 if ( pNtkRes == NULL )
23732 Abc_Print( 1,
"Transformation has failed.\n" );
23739 Abc_Print( -2,
"usage: unfold [-FCP num] [-savh]\n" );
23740 Abc_Print( -2,
"\t unfold hidden constraints as separate outputs\n" );
23741 Abc_Print( -2,
"\t-F num : the max number of timeframes to consider [default = %d]\n", nFrames );
23742 Abc_Print( -2,
"\t-C num : the max number of conflicts in SAT solving [default = %d]\n", nConfs );
23743 Abc_Print( -2,
"\t-P num : the max number of constraint propagations [default = %d]\n", nProps );
23744 Abc_Print( -2,
"\t-s : toggle detecting structural constraints [default = %s]\n", fStruct?
"yes":
"no" );
23745 Abc_Print( -2,
"\t-a : toggle fast implication detection [default = %s]\n", !fOldAlgo?
"yes":
"no" );
23746 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
23747 Abc_Print( -2,
"\t-h : print the command usage\n");
23790 if ( pNtk == NULL )
23797 Abc_Print( -1,
"Currently only works for structurally hashed circuits.\n" );
23802 Abc_Print( 0,
"The network has no constraints.\n" );
23806 Abc_Print( 0,
"The network is combinational.\n" );
23809 if ( pNtkRes == NULL )
23811 Abc_Print( 1,
"Transformation has failed.\n" );
23818 Abc_Print( -2,
"usage: fold [-cvh]\n" );
23819 Abc_Print( -2,
"\t folds constraints represented as separate outputs\n" );
23820 Abc_Print( -2,
"\t-c : toggle complementing constraints while folding [default = %s]\n", fCompl?
"yes":
"no" );
23821 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
23822 Abc_Print( -2,
"\t-h : print the command usage\n");
23839 FILE * pOut, * pErr;
23841 int fDelete1, fDelete2;
23844 int p_equivalence =
FALSE;
23869 if ( !
Abc_NtkPrepareTwoNtks( pErr, pNtk, pArgvNew, nArgcNew , &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
23874 Abc_Print( -2,
"Mismatch in the number of inputs or outputs\n");
23880 bmGateWay( pNtk1, pNtk2, p_equivalence );
23887 Abc_Print( -2,
"usage: bm [-P] <file1> <file2>\n" );
23888 Abc_Print( -2,
"\t performs Boolean matching (P-equivalence & PP-equivalence)\n" );
23889 Abc_Print( -2,
"\t for equivalent circuits, I/O matches are printed in IOmatch.txt\n" );
23890 Abc_Print( -2,
"\t-P : performs P-equivalnce checking\n");
23891 Abc_Print( -2,
"\t default is PP-equivalence checking (when -P is not provided)\n" );
23892 Abc_Print( -2,
"\t-h : print the command usage\n");
23893 Abc_Print( -2,
"\tfile1 : the file with the first network\n");
23894 Abc_Print( -2,
"\tfile2 : the file with the second network\n");
23897 Abc_Print( -2,
"\t This command was contributed by Hadi Katebi from U Michigan.\n" );
23898 Abc_Print( -2,
"\t The paper describing the method: H. Katebi and I. L. Markov.\n" );
23899 Abc_Print( -2,
"\t \"Large-scale Boolean matching\". Proc. DATE 2010. \n" );
23900 Abc_Print( -2,
"\t http://www.eecs.umich.edu/~imarkov/pubs/conf/date10-match.pdf\n" );
23919 FILE * pOut, * pErr;
23921 int fDelete1, fDelete2;
23924 int c, nArgcNew, i;
23927 int fLookForSwaps,
int fFixOutputs,
int fFixInputs,
int fQuiet,
int fPrintTree);
23948 if ( !
Abc_NtkPrepareTwoNtks( pErr, pNtk, pArgvNew, nArgcNew , &pNtk1, &pNtk2, &fDelete1, &fDelete2 ) )
23954 Abc_Print( -2,
"Mismatch in the number of inputs or outputs\n");
23955 Abc_Print( -2,
"*** Networks are NOT equivalent ***\n");
23994 Abc_Print( -2,
"usage: bm2 <file1> <file2>\n" );
23995 Abc_Print( -2,
"\t performs Boolean matching (PP-equivalence)\n" );
23996 Abc_Print( -2,
"\t for equivalent circuits, permutation that maps one circuit\n" );
23997 Abc_Print( -2,
"\t to another is printed to standard output (PIs and POs of the\n" );
23998 Abc_Print( -2,
"\t first network have prefix \"N1:\", while PIs and POs of the\n" );
23999 Abc_Print( -2,
"\t second network have prefix \"N2:\")\n" );
24000 Abc_Print( -2,
"\t-h : print the command usage\n");
24001 Abc_Print( -2,
"\tfile1 : the file with the first network\n");
24002 Abc_Print( -2,
"\tfile2 : the file with the second network\n");
24005 Abc_Print( -2,
"\t This command was contributed by Hadi Katebi from U Michigan.\n" );
24006 Abc_Print( -2,
"\t The paper describing the method: H. Katebi, K. Sakallah and\n");
24008 Abc_Print( -2,
"\t \"Generalized Boolean Symmetries Through Nested Partition\n");
24009 Abc_Print( -2,
"\t Refinement\". Proc. ICCAD 2013. \n" );
24030 char * outputName = NULL;
24031 FILE * gFile = NULL;
24032 int fOutputsOneAtTime = 0;
24033 int fFixOutputs = 0;
24034 int fFixInputs = 0;
24035 int fLookForSwaps = 0;
24037 int fPrintTree = 0;
24041 int fLookForSwaps,
int fFixOutputs,
int fFixInputs,
int fQuiet,
int fPrintTree);
24049 if ( globalUtilOptind >= argc )
24051 Abc_Print( -1,
"Command line switch \"-O\" should be followed by an output name or the keyword all.\n" );
24055 if ( !
strcmp(argv[globalUtilOptind],
"all") )
24056 fOutputsOneAtTime ^= 1;
24057 globalUtilOptind++;
24060 if ( globalUtilOptind >= argc )
24062 Abc_Print( -1,
"Command line switch \"-F\" should be followed by a file name.\n" );
24065 if ( (gFile = fopen( argv[globalUtilOptind],
"w" )) == NULL )
24067 Abc_Print( -1,
"Cannot create output file \"%s\". ", argv[globalUtilOptind] );
24070 globalUtilOptind++;
24079 fLookForSwaps ^= 1;
24097 if ( pNtk == NULL )
24104 Abc_Print( -1,
"This command works only for AIGs (run \"strash\").\n" );
24111 if (fOutputsOneAtTime) {
24114 FILE * hadi = fopen(
"hadi.txt",
"w");
24117 saucyGateWay( pNtk, pNodePo, gFile, 0, fLookForSwaps, fFixOutputs, fFixInputs, fQuiet, fPrintTree );
24118 printf(
"----------------------------------------\n");
24121 }
else if (outputName != NULL) {
24126 saucyGateWay( pNtk, pNodePo, gFile, 0, fLookForSwaps, fFixOutputs, fFixInputs, fQuiet, fPrintTree );
24134 saucyGateWay( pNtk, NULL, gFile, 0, fLookForSwaps, fFixOutputs, fFixInputs, fQuiet, fPrintTree );
24136 if (gFile != NULL) fclose(gFile);
24141 Abc_Print( -2,
"usage: saucy3 [-O <name>] [-F <file>] [-iosqvh]\n\n" );
24142 Abc_Print( -2,
"\t computes functional symmetries of the netowrk\n" );
24143 Abc_Print( -2,
"\t prints symmetry generators to the standard output\n" );
24144 Abc_Print( -2,
"\t-O <name> : (optional) compute symmetries only for output given by name\n");
24145 Abc_Print( -2,
"\t only inputs in the output cone are permuted\n");
24146 Abc_Print( -2,
"\t (special case) name=all, compute symmetries for each\n" );
24147 Abc_Print( -2,
"\t output, but only one output at a time\n" );
24148 Abc_Print( -2,
"\t [default = compute symmetries by permuting all I/Os]\n" );
24149 Abc_Print( -2,
"\t-F <file> : print symmetry generators to file [default = stdout]\n");
24150 Abc_Print( -2,
"\t-i : permute just the inputs (fix the outputs) [default = no]\n");
24151 Abc_Print( -2,
"\t-o : permute just the outputs (fix the inputs) [default = no]\n");
24152 Abc_Print( -2,
"\t-s : only look for swaps of inputs [default = no]\n");
24153 Abc_Print( -2,
"\t-q : quiet (do not print symmetry generators) [default = no]\n");
24154 Abc_Print( -2,
"\t-v : verbose (print the search tree) [default = no]\n");
24155 Abc_Print( -2,
"\t-h : print the command usage\n");
24158 Abc_Print( -2,
"\t This command was contributed by Hadi Katebi from U Michigan.\n" );
24159 Abc_Print( -2,
"\t The paper describing the method: H. Katebi, K. Sakallah and\n");
24161 Abc_Print( -2,
"\t \"Generalized Boolean Symmetries Through Nested Partition\n");
24162 Abc_Print( -2,
"\t Refinement\". Proc. ICCAD 2013. \n" );
24164 Abc_Print( -2,
"\t Saucy webpage: http://vlsicad.eecs.umich.edu/BK/SAUCY/\n" );
24192 if ( globalUtilOptind >= argc )
24194 Abc_Print( -1,
"Command line switch \"-O\" should be followed by an integer.\n" );
24197 nOutputs = atoi(argv[globalUtilOptind]);
24198 globalUtilOptind++;
24199 if ( nOutputs < 0 )
24213 if ( pAbc->pCex == NULL )
24215 Abc_Print( 1,
"There is no current cex.\n");
24223 if ( pNtk == NULL )
24224 Abc_Print( 1,
"Main AIG: There is no current network.\n");
24226 Abc_Print( 1,
"Main AIG: The current network is not an AIG.\n");
24228 Abc_Print( 1,
"Main AIG: The number of PIs (%d) is different from cex (%d).\n",
Abc_NtkPiNum(pNtk), pAbc->pCex->nPis );
24232 int iPoOld = pAbc->pCex->iPo;
24234 if ( pAbc->pCex->iPo == -1 )
24235 Abc_Print( 1,
"Main AIG: The cex does not fail any outputs.\n" );
24236 else if ( iPoOld != pAbc->pCex->iPo )
24237 Abc_Print( 1,
"Main AIG: The cex refined PO %d instead of PO %d.\n", pAbc->pCex->iPo, iPoOld );
24239 Abc_Print( 1,
"Main AIG: The cex is correct.\n" );
24245 if ( pAbc->pGia == NULL )
24246 Abc_Print( 1,
"And AIG: There is no current network.\n");
24247 else if (
Gia_ManPiNum(pAbc->pGia) != pAbc->pCex->nPis )
24248 Abc_Print( 1,
"And AIG: The number of PIs (%d) is different from cex (%d).\n",
Gia_ManPiNum(pAbc->pGia), pAbc->pCex->nPis );
24251 int iPoOld = pAbc->pCex->iPo;
24253 if ( pAbc->pCex->iPo == -1 )
24254 Abc_Print( 1,
"And AIG: The cex does not fail any outputs.\n" );
24255 else if ( iPoOld != pAbc->pCex->iPo )
24256 Abc_Print( 1,
"And AIG: The cex refined PO %d instead of PO %d.\n", pAbc->pCex->iPo, iPoOld );
24258 Abc_Print( 1,
"And AIG: The cex is correct.\n" );
24264 Abc_Print( -2,
"usage: testcex [-O num] [-ah]\n" );
24265 Abc_Print( -2,
"\t tests the current cex against the current AIG or the &-AIG\n" );
24266 Abc_Print( -2,
"\t-O num : the number of real POs in the PO list [default = %d]\n", nOutputs );
24267 Abc_Print( -2,
"\t-a : toggle checking the current AIG or the &-AIG [default = %s]\n", fCheckAnd ?
"&-AIG":
"current AIG" );
24268 Abc_Print( -2,
"\t-h : print the command usage\n");
24291 while ( ( c =
Extra_UtilGetopt( argc, argv,
"MFCRTHGaxrmsipdgvwzh" ) ) != EOF )
24296 if ( globalUtilOptind >= argc )
24298 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
24301 pPars->nRecycle = atoi(argv[globalUtilOptind]);
24302 globalUtilOptind++;
24303 if ( pPars->nRecycle < 0 )
24307 if ( globalUtilOptind >= argc )
24309 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
24312 pPars->nFrameMax = atoi(argv[globalUtilOptind]);
24313 globalUtilOptind++;
24314 if ( pPars->nFrameMax < 0 )
24318 if ( globalUtilOptind >= argc )
24320 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
24323 pPars->nConfLimit = atoi(argv[globalUtilOptind]);
24324 globalUtilOptind++;
24325 if ( pPars->nConfLimit < 0 )
24329 if ( globalUtilOptind >= argc )
24331 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
24334 pPars->nRestLimit = atoi(argv[globalUtilOptind]);
24335 globalUtilOptind++;
24336 if ( pPars->nRestLimit < 0 )
24340 if ( globalUtilOptind >= argc )
24342 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
24345 pPars->nTimeOut = atoi(argv[globalUtilOptind]);
24346 globalUtilOptind++;
24347 if ( pPars->nTimeOut < 0 )
24351 if ( globalUtilOptind >= argc )
24353 Abc_Print( -1,
"Command line switch \"-H\" should be followed by an integer.\n" );
24356 pPars->nTimeOutOne = atoi(argv[globalUtilOptind]);
24357 globalUtilOptind++;
24358 if ( pPars->nTimeOutOne < 0 )
24362 if ( globalUtilOptind >= argc )
24364 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
24367 pPars->nTimeOutGap = atoi(argv[globalUtilOptind]);
24368 globalUtilOptind++;
24369 if ( pPars->nTimeOutGap < 0 )
24373 pPars->fSolveAll ^= 1;
24376 pPars->fStoreCex ^= 1;
24379 pPars->fTwoRounds ^= 1;
24382 pPars->fMonoCnf ^= 1;
24385 pPars->fShortest ^= 1;
24388 pPars->fShiftStart ^= 1;
24391 pPars->fReuseProofOblig ^= 1;
24394 pPars->fDumpInv ^= 1;
24397 pPars->fSkipGeneral ^= 1;
24400 pPars->fVerbose ^= 1;
24403 pPars->fVeryVerbose ^= 1;
24406 pPars->fNotVerbose ^= 1;
24413 if ( pNtk == NULL )
24415 Abc_Print( -2,
"There is no current network.\n");
24420 Abc_Print( -2,
"The current network is combinational.\n");
24425 Abc_Print( -2,
"The current network is not an AIG (run \"strash\").\n");
24429 pPars->fUseBridge = pAbc->fBridgeMode;
24431 pAbc->nFrames = pNtk->
vSeqModelVec ? -1 : pPars->iFrame;
24440 Abc_Print( -2,
"usage: pdr [-MFCRTHG <num>] [-axrmsipdgvwzh]\n" );
24441 Abc_Print( -2,
"\t model checking using property directed reachability (aka IC3)\n" );
24442 Abc_Print( -2,
"\t pioneered by Aaron Bradley (http://ecee.colorado.edu/~bradleya/ic3/)\n" );
24443 Abc_Print( -2,
"\t with improvements by Niklas Een (http://een.se/niklas/)\n" );
24444 Abc_Print( -2,
"\t-M num : limit on unused vars to trigger SAT solver recycling [default = %d]\n", pPars->nRecycle );
24445 Abc_Print( -2,
"\t-F num : limit on timeframes explored to stop computation [default = %d]\n", pPars->nFrameMax );
24446 Abc_Print( -2,
"\t-C num : limit on conflicts in one SAT call (0 = no limit) [default = %d]\n", pPars->nConfLimit );
24447 Abc_Print( -2,
"\t-R num : limit on proof obligations before a restart (0 = no limit) [default = %d]\n", pPars->nRestLimit );
24448 Abc_Print( -2,
"\t-T num : runtime limit, in seconds (0 = no limit) [default = %d]\n", pPars->nTimeOut );
24449 Abc_Print( -2,
"\t-H num : runtime limit per output, in miliseconds (with \"-a\") [default = %d]\n", pPars->nTimeOutOne );
24450 Abc_Print( -2,
"\t-G num : runtime gap since the last CEX (0 = no limit) [default = %d]\n", pPars->nTimeOutGap );
24451 Abc_Print( -2,
"\t-a : toggle solving all outputs even if one of them is SAT [default = %s]\n", pPars->fSolveAll?
"yes":
"no" );
24452 Abc_Print( -2,
"\t-x : toggle storing CEXes when solving all outputs [default = %s]\n", pPars->fStoreCex?
"yes":
"no" );
24453 Abc_Print( -2,
"\t-r : toggle using more effort in generalization [default = %s]\n", pPars->fTwoRounds?
"yes":
"no" );
24454 Abc_Print( -2,
"\t-m : toggle using monolythic CNF computation [default = %s]\n", pPars->fMonoCnf?
"yes":
"no" );
24455 Abc_Print( -2,
"\t-s : toggle creating only shortest counter-examples [default = %s]\n", pPars->fShortest?
"yes":
"no" );
24456 Abc_Print( -2,
"\t-i : toggle clause pushing from an intermediate timeframe [default = %s]\n", pPars->fShiftStart?
"yes":
"no" );
24457 Abc_Print( -2,
"\t-p : toggle reusing proof-obligations in the last timeframe [default = %s]\n", pPars->fReuseProofOblig?
"yes":
"no" );
24458 Abc_Print( -2,
"\t-d : toggle dumping invariant (valid if init state is all-0) [default = %s]\n", pPars->fDumpInv?
"yes":
"no" );
24459 Abc_Print( -2,
"\t-g : toggle skipping expensive generalization step [default = %s]\n", pPars->fSkipGeneral?
"yes":
"no" );
24460 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
24461 Abc_Print( -2,
"\t-w : toggle printing detailed stats default = %s]\n", pPars->fVeryVerbose?
"yes":
"no" );
24462 Abc_Print( -2,
"\t-z : toggle suppressing report about solved outputs [default = %s]\n", pPars->fNotVerbose?
"yes":
"no" );
24463 Abc_Print( -2,
"\t-h : print the command usage\n");
24482 Abc_Ntk_t * pNtk1 = NULL, * pNtk2 = NULL;
24483 Aig_Man_t * pAig1 = NULL, * pAig2 = NULL;
24498 if ( argc != globalUtilOptind + 2 && argc != globalUtilOptind )
24500 Abc_Print( 1,
"Does not seen to have two files names as arguments.\n" );
24503 if ( pAbc->pCex == NULL )
24505 Abc_Print( 1,
"There is no current counter-example.\n" );
24509 if ( argc == globalUtilOptind + 2 )
24513 if ( pNtk1 == NULL )
24516 if ( pNtk2 == NULL )
24525 else if ( argc == globalUtilOptind )
24527 if ( pAbc->pNtkCur == NULL )
24529 Abc_Print( 1,
"There is no AIG in the main-space.\n");
24532 if ( pAbc->pGia == NULL )
24534 Abc_Print( 1,
"There is no AIG in the &-space.\n");
24546 if ( pCex == NULL )
24548 Abc_Print( 1,
"Counter-example computation has failed.\n" );
24557 pAbc->nFrames = pCex->iFrame;
24562 Abc_Print( -2,
"usage: reconcile [-h] <fileOrigin> <fileReparam>\n" );
24563 Abc_Print( -2,
"\t reconciles current CEX with <fileOrigin>\n" );
24564 Abc_Print( -2,
"\t More specifically:\n" );
24565 Abc_Print( -2,
"\t (i) assumes that <fileReparam> is an AIG derived by input\n" );
24566 Abc_Print( -2,
"\t reparametrization of <fileOrigin> without seq synthesis;\n" );
24567 Abc_Print( -2,
"\t (ii) assumes that current CEX is valid for <fileReparam>;\n" );
24568 Abc_Print( -2,
"\t (iii) derives new CEX for <fileOrigin> and sets this CEX\n" );
24569 Abc_Print( -2,
"\t and <fileOrigin> to be current CEX and current network\n" );
24570 Abc_Print( -2,
"\t<fileOrigin> : file name with the original AIG\n");
24571 Abc_Print( -2,
"\t<fileReparam> : file name with the reparametrized AIG\n");
24572 Abc_Print( -2,
"\t (if both file names are not given on the command line,\n");
24573 Abc_Print( -2,
"\t original/reparam AIG has to be in the main-space/&-space)\n");
24574 Abc_Print( -2,
"\t-h : print the command usage\n");
24604 if ( pAbc->pCex == NULL )
24606 Abc_Print( -1,
"Current CEX is not available..\n" );
24614 Abc_Print( -2,
"usage: cexsave [-h]\n" );
24615 Abc_Print( -2,
"\t saves the current CEX into the internal storage\n" );
24616 Abc_Print( -2,
"\t-h : print the command usage\n");
24645 if ( pAbc->pCex2 == NULL )
24647 Abc_Print( -1,
"Saved CEX is not available.\n" );
24653 pAbc->nFrames = pAbc->pCex2->iFrame;
24658 Abc_Print( -2,
"usage: cexload [-h]\n" );
24659 Abc_Print( -2,
"\t loads the current CEX from the internal storage\n" );
24660 Abc_Print( -2,
"\t-h : print the command usage\n");
24679 int c, iFrStart = 0;
24683 int fAllFrames = 0;
24691 if ( globalUtilOptind >= argc )
24693 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
24696 iFrStart = atoi(argv[globalUtilOptind]);
24697 globalUtilOptind++;
24698 if ( iFrStart < 0 )
24702 if ( globalUtilOptind >= argc )
24704 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
24707 iFrStop = atoi(argv[globalUtilOptind]);
24708 globalUtilOptind++;
24732 if ( pAbc->pCex == NULL )
24734 Abc_Print( 1,
"There is no current cex.\n");
24737 if ( pAbc->pNtkCur == NULL )
24739 Abc_Print( 1,
"There is no AIG in the &-space.\n");
24744 Abc_Print( 1,
"Current network is not an AIG.\n");
24748 iFrStop = pAbc->pCex->iFrame;
24754 if ( pAigNew == NULL )
24756 Abc_Print( 1,
"Command has failed.\n");
24777 Abc_Print( -2,
"usage: cexcut [-FG num] [-cnmvh]\n" );
24778 Abc_Print( -2,
"\t creates logic for bad states using the current CEX\n" );
24779 Abc_Print( -2,
"\t-F num : 0-based number of the starting frame [default = %d]\n", iFrStart );
24780 Abc_Print( -2,
"\t-G num : 0-based number of the ending frame [default = %d]\n", iFrStop );
24781 Abc_Print( -2,
"\t-c : toggle outputting unate combinational circuit [default = %s]\n", fCombOnly?
"yes":
"no" );
24782 Abc_Print( -2,
"\t-n : toggle generating only one bad state [default = %s]\n", fUseOne?
"yes":
"no" );
24783 Abc_Print( -2,
"\t-m : toggle generating bad states for all frames after G [default = %s]\n", fAllFrames?
"yes":
"no" );
24784 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
24785 Abc_Print( -2,
"\t-h : print the command usage\n");
24813 if ( globalUtilOptind >= argc )
24815 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
24818 iFrStart = atoi(argv[globalUtilOptind]);
24819 globalUtilOptind++;
24820 if ( iFrStart < 0 )
24824 if ( globalUtilOptind >= argc )
24826 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
24829 iFrStop = atoi(argv[globalUtilOptind]);
24830 globalUtilOptind++;
24845 if ( pAbc->pCex == NULL )
24847 Abc_Print( 1,
"There is no current cex.\n");
24850 if ( pAbc->pCex2 == NULL )
24852 Abc_Print( 1,
"There is no saved cex.\n");
24855 if ( iFrStop - iFrStart + pAbc->pCex->iPo < pAbc->pCex->iFrame )
24857 Abc_Print( 1,
"Current CEX does not allow to shorten the saved CEX.\n");
24860 pCexNew =
Abc_CexMerge( pAbc->pCex2, pAbc->pCex, iFrStart, iFrStop );
24861 if ( pCexNew == NULL )
24863 Abc_Print( 1,
"Merging CEXes has failed.\n");
24868 pAbc->pCex2 = pCexNew;
24872 Abc_Print( -2,
"usage: cexmerge [-FG num] [-vh]\n" );
24873 Abc_Print( -2,
"\t merges the current CEX into the saved one\n" );
24874 Abc_Print( -2,
"\t and sets the resulting CEX as the saved one\n" );
24875 Abc_Print( -2,
"\t-F num : 0-based number of the starting frame [default = %d]\n", iFrStart );
24876 Abc_Print( -2,
"\t-G num : 0-based number of the ending frame [default = %d]\n", iFrStop );
24877 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
24878 Abc_Print( -2,
"\t-h : print the command usage\n");
24898 int nConfLimit = 1000;
24907 if ( globalUtilOptind >= argc )
24909 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
24912 nConfLimit = atoi(argv[globalUtilOptind]);
24913 globalUtilOptind++;
24914 if ( nConfLimit < 0 )
24918 if ( globalUtilOptind >= argc )
24920 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
24923 nRounds = atoi(argv[globalUtilOptind]);
24924 globalUtilOptind++;
24939 if ( pAbc->pCex == NULL )
24941 Abc_Print( 1,
"There is no current cex.\n");
24947 if ( pNtk == NULL )
24948 Abc_Print( 1,
"Main AIG: There is no current network.\n");
24950 Abc_Print( 1,
"Main AIG: The current network is not an AIG.\n");
24952 Abc_Print( 1,
"Main AIG: The number of PIs (%d) is different from cex (%d).\n",
Abc_NtkPiNum(pNtk), pAbc->pCex->nPis );
24962 int iPoOld = pAbc->pCex->iPo;
24965 if ( pAbc->pCex->iPo == -1 )
24967 pAbc->pCex->iPo = iPoOld;
24968 Abc_Print( -1,
"Main AIG: The cex does not fail any outputs.\n" );
24971 else if ( iPoOld != pAbc->pCex->iPo )
24972 Abc_Print( 0,
"Main AIG: The cex refined PO %d instead of PO %d.\n", pAbc->pCex->iPo, iPoOld );
24984 Abc_Print( -2,
"usage: cexmin [-CR num] [-vh]\n" );
24985 Abc_Print( -2,
"\t reduces the length of the counter-example\n" );
24986 Abc_Print( -2,
"\t-C num : the maximum number of conflicts [default = %d]\n", nConfLimit );
24987 Abc_Print( -2,
"\t-R num : the number of minimization rounds [default = %d]\n", nRounds );
24988 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
24989 Abc_Print( -2,
"\t-h : print the command usage\n");
25013 int fDualDcFfs = 0;
25016 int fCheckZero = 0;
25025 if ( globalUtilOptind >= argc )
25027 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
25030 nDualPis = atoi(argv[globalUtilOptind]);
25031 globalUtilOptind++;
25032 if ( nDualPis < 0 )
25066 if ( pNtk == NULL )
25068 Abc_Print( 1,
"Main AIG: There is no current network.\n");
25073 Abc_Print( 1,
"Main AIG: The current network is not an AIG.\n");
25082 pAigNew =
Saig_ManDupDual( pAig, vDcFlops, nDualPis, fDualFfs, fMiterFfs, fComplPo, fCheckZero, fCheckOne );
25094 Abc_Print( -2,
"usage: dualrail [-I num] [-txfczovh]\n" );
25095 Abc_Print( -2,
"\t transforms the current AIG into a dual-rail miter\n" );
25096 Abc_Print( -2,
"\t expressing the property \"at least one PO has ternary value\"\n" );
25097 Abc_Print( -2,
"\t (to compute an initialization sequence, use switches \"-tfc\")\n" );
25098 Abc_Print( -2,
"\t-I num : the number of first PIs interpreted as ternary [default = %d]\n", nDualPis );
25099 Abc_Print( -2,
"\t-t : toggle ternary flop init values for all flops [default = %s]\n", fDualFfs?
"yes":
"const0 init values" );
25100 Abc_Print( -2,
"\t-x : toggle ternary flop init values for DC-valued flops [default = %s]\n", fDualDcFfs?
"yes":
"const0 init values" );
25101 Abc_Print( -2,
"\t-f : toggle mitering flops instead of POs [default = %s]\n", fMiterFfs?
"flops":
"POs" );
25102 Abc_Print( -2,
"\t-c : toggle complementing the miter output [default = %s]\n", fComplPo?
"yes":
"no" );
25103 Abc_Print( -2,
"\t-z : toggle checking PO==0 instead of PO==X [default = %s]\n", fCheckZero?
"yes":
"no" );
25104 Abc_Print( -2,
"\t-o : toggle checking PO==1 instead of PO==X [default = %s]\n", fCheckOne?
"yes":
"no" );
25105 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
25106 Abc_Print( -2,
"\t-h : print the command usage\n");
25134 if ( globalUtilOptind >= argc )
25136 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
25139 nCycles = atoi(argv[globalUtilOptind]);
25140 globalUtilOptind++;
25157 if ( pNtk == NULL )
25159 Abc_Print( 1,
"Main AIG: There is no current network.\n");
25164 Abc_Print( 1,
"Main AIG: The current network is not an AIG.\n");
25167 if ( nCycles == 0 )
25169 Abc_Print( 1,
"The number of time frame is 0. The circuit is left unchanged.\n" );
25186 Abc_Print( -2,
"usage: blockpo [-F num] [-fvh]\n" );
25187 Abc_Print( -2,
"\t forces the miter outputs to be \"true\" in the first F frames\n" );
25188 Abc_Print( -2,
"\t-F num : the number of time frames [default = %d]\n", nCycles );
25189 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
25190 Abc_Print( -2,
"\t-h : print the command usage\n");
25210 int c, fVerbose = 0;
25229 if ( pNtk == NULL )
25231 Abc_Print( 1,
"Main AIG: There is no current network.\n");
25236 Abc_Print( 1,
"Main AIG: The current network is not an AIG.\n");
25241 Abc_Print( 1,
"Current AIG has only one PO. Transformation is not performed.\n");
25261 Abc_Print( -2,
"\t removes POs with isomorphic sequential COI\n" );
25262 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
25263 Abc_Print( -2,
"\t-h : print the command usage\n");
25295 if ( pNtk == NULL )
25302 Abc_Print( -1,
"This command is applicable to AIGs.\n" );
25316 Abc_Print( -2,
"usage: trace_start [-h]\n" );
25317 Abc_Print( -2,
"\t starts verification tracing\n" );
25318 Abc_Print( -2,
"\t-h : print the command usage\n");
25350 if ( pNtk == NULL )
25357 Abc_Print( -1,
"This command is applicable to AIGs.\n" );
25374 Abc_Print( -2,
"usage: trace_check [-h]\n" );
25375 Abc_Print( -2,
"\t checks the current network using verification trace\n" );
25376 Abc_Print( -2,
"\t-h : print the command usage\n");
25394 extern void Abc3_ReadShowHie(
char * pFileName,
int fFlat );
25398 char * FileName, * pTemp;
25402 int fSkipStrash = 0;
25423 if ( nArgcNew != 1 )
25425 Abc_Print( -1,
"There is no file name.\n" );
25430 FileName = pArgvNew[0];
25432 for ( pTemp = FileName; *pTemp; pTemp++ )
25433 if ( *pTemp ==
'>' )
25435 if ( (pFile = fopen( FileName,
"r" )) == NULL )
25437 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
25439 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
25456 Abc_Print( -2,
"usage: &r [-smvh] <file>\n" );
25457 Abc_Print( -2,
"\t reads the current AIG from the AIGER file\n" );
25458 Abc_Print( -2,
"\t-s : toggles structural hashing while reading [default = %s]\n", !fSkipStrash?
"yes":
"no" );
25459 Abc_Print( -2,
"\t-m : toggles reading MiniAIG rather than AIGER file [default = %s]\n", fUseMini?
"yes":
"no" );
25460 Abc_Print( -2,
"\t-v : toggles additional verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
25461 Abc_Print( -2,
"\t-h : print the command usage\n");
25462 Abc_Print( -2,
"\t<file> : the file name\n");
25483 char * FileName, * pTemp;
25485 int c, fVerbose = 0;
25500 if ( nArgcNew != 1 )
25502 Abc_Print( -1,
"There is no file name.\n" );
25507 FileName = pArgvNew[0];
25509 for ( pTemp = FileName; *pTemp; pTemp++ )
25510 if ( *pTemp ==
'>' )
25512 if ( (pFile = fopen( FileName,
"r" )) == NULL )
25514 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
25516 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
25527 Abc_Print( -2,
"usage: &read_blif [-vh] <file>\n" );
25528 Abc_Print( -2,
"\t a specialized reader for hierarchical BLIF files\n" );
25529 Abc_Print( -2,
"\t (for general-purpose BLIFs, please use \"read_blif\")\n" );
25530 Abc_Print( -2,
"\t-v : toggles additional verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
25531 Abc_Print( -2,
"\t-h : print the command usage\n");
25532 Abc_Print( -2,
"\t<file> : the file name\n");
25553 char * FileName, * pTemp;
25554 char * pModelName = NULL;
25556 int c, fVerbose = 0;
25563 if ( globalUtilOptind >= argc )
25565 Abc_Print( -1,
"Command line switch \"-M\" should be followed by a file name.\n" );
25569 globalUtilOptind++;
25580 if ( nArgcNew != 1 )
25582 Abc_Print( -1,
"There is no file name.\n" );
25587 FileName = pArgvNew[0];
25589 for ( pTemp = FileName; *pTemp; pTemp++ )
25590 if ( *pTemp ==
'>' )
25592 if ( (pFile = fopen( FileName,
"r" )) == NULL )
25594 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
25596 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
25607 Abc_Print( -2,
"usage: &read_cblif [-M name] [-vh] <file>\n" );
25608 Abc_Print( -2,
"\t reads CBLIF file and collapse it into an AIG\n" );
25609 Abc_Print( -2,
"\t-M name: module name to collapse [default = <root_module>]\n" );
25610 Abc_Print( -2,
"\t-v : toggles additional verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
25611 Abc_Print( -2,
"\t-h : print the command usage\n");
25612 Abc_Print( -2,
"\t<file> : the file name\n");
25631 char * FileName, ** pArgvNew;
25641 if ( globalUtilOptind >= argc )
25643 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
25646 kHot = atoi(argv[globalUtilOptind]);
25647 globalUtilOptind++;
25648 if ( kHot < 1 || kHot > 5 )
25660 if ( nArgcNew != 1 )
25662 Abc_Print( -1,
"There is no file name.\n" );
25667 FileName = pArgvNew[0];
25668 if ( (pFile = fopen( FileName,
"r" )) == NULL )
25670 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
25680 Abc_Print( -2,
"usage: &read_stg [-K <num>] [-vh] <file>\n" );
25681 Abc_Print( -2,
"\t reads STG file and generates K-hot-encoded AIG\n" );
25682 Abc_Print( -2,
"\t-K num : the K parameter for hotness of the encoding (1 <= K <= 5) [default = %d]\n", kHot );
25683 Abc_Print( -2,
"\t-v : toggles printing state codes [default = %s]\n", fVerbose?
"yes":
"no" );
25684 Abc_Print( -2,
"\t-h : print the command usage\n");
25685 Abc_Print( -2,
"\t<file> : the file name\n");
25706 char * pFileName, * pTemp;
25708 int c, fVerbose = 0;
25723 if ( nArgcNew != 1 )
25725 Abc_Print( -1,
"There is no file name.\n" );
25730 pFileName = pArgvNew[0];
25732 for ( pTemp = pFileName; *pTemp; pTemp++ )
25733 if ( *pTemp ==
'>' )
25735 if ( (pFile = fopen( pFileName,
"r" )) == NULL )
25737 Abc_Print( -1,
"Cannot open input file \"%s\". ", pFileName );
25739 Abc_Print( 1,
"Did you mean \"%s\"?", pFileName );
25746 if ( pNtk == NULL )
25748 Abc_Print( -1,
"Reading hierarchical Verilog has failed.\n" );
25757 Abc_Print( -2,
"usage: &read_ver [-vh] <file>\n" );
25758 Abc_Print( -2,
"\t a specialized reader for hierarchical Verilog files\n" );
25759 Abc_Print( -2,
"\t-v : toggles additional verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
25760 Abc_Print( -2,
"\t-h : print the command usage\n");
25761 Abc_Print( -2,
"\t<file> : the file name\n");
25785 int c, fMapped = 0, fNames = 0, fVerbose = 0;
25804 if ( pAbc->pNtkCur == NULL )
25806 Abc_Print( -1,
"There is no current network\n" );
25851 Abc_Print( -2,
"usage: &get [-mnvh] <file>\n" );
25852 Abc_Print( -2,
"\t converts the current network into GIA and moves it to the &-space\n" );
25853 Abc_Print( -2,
"\t (if the network is a sequential logic network, normalizes the flops\n" );
25854 Abc_Print( -2,
"\t to have const-0 initial values, equivalent to \"undc; st; zero\")\n" );
25855 Abc_Print( -2,
"\t-m : toggles preserving the current mapping [default = %s]\n", fMapped?
"yes":
"no" );
25856 Abc_Print( -2,
"\t-n : toggles saving CI/CO names of the AIG [default = %s]\n", fNames?
"yes":
"no" );
25857 Abc_Print( -2,
"\t-v : toggles additional verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
25858 Abc_Print( -2,
"\t-h : print the command usage\n");
25859 Abc_Print( -2,
"\t<file> : the file name\n");
25879 int c, fVerbose = 0;
25880 int fStatusClear = 1;
25899 if ( pAbc->pGia == NULL )
25937 if ( pAbc->pGia->vNamesIn )
25949 if ( pAbc->pGia->vNamesOut )
25962 if ( fStatusClear )
25967 Abc_Print( -2,
"usage: &put [-svh]\n" );
25968 Abc_Print( -2,
"\t transfer the current network into the old ABC\n" );
25969 Abc_Print( -2,
"\t-s : toggle clearning verification status [default = %s]\n", fStatusClear?
"yes":
"no" );
25970 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
25971 Abc_Print( -2,
"\t-h : print the command usage\n");
25989 int nCurLuts, nCurEdges, nCurLevels;
25991 if ( pBest == NULL ||
25996 (*pnBestLevels > nCurLevels) ||
25997 (*pnBestLevels == nCurLevels && 2*(*pnBestLuts) + *pnBestEdges > 2*nCurLuts + nCurEdges) )
25999 *pnBestLuts = nCurLuts;
26000 *pnBestEdges = nCurEdges;
26001 *pnBestLevels = nCurLevels;
26032 if ( pAbc->pGia == NULL )
26039 Abc_Print( -1,
"GIA has no mapping.\n" );
26042 if ( !
Gia_ManCompareWithBest( pAbc->pGiaBest, pAbc->pGia, &pAbc->nBestLuts, &pAbc->nBestEdges, &pAbc->nBestLevels ) )
26050 Abc_Print( -2,
"usage: &save [-h]\n" );
26051 Abc_Print( -2,
"\t compares and possibly saves AIG with mapping\n" );
26052 Abc_Print( -2,
"\t-h : print the command usage\n");
26082 if ( pAbc->pGiaBest == NULL )
26084 Abc_Print( -1,
"Abc_CommandAbc9Load(): There is no best design saved.\n" );
26092 Abc_Print( -2,
"usage: &load [-h]\n" );
26093 Abc_Print( -2,
"\t loads previously saved AIG with mapping" );
26094 Abc_Print( -2,
"\t-h : print the command usage\n");
26139 if ( nArgcNew != 1 )
26141 Abc_Print( -1,
"There is no file name.\n" );
26144 if ( pAbc->pGia == NULL )
26146 Abc_Print( -1,
"Abc_CommandAbc9Write(): There is no AIG to write.\n" );
26156 else if ( fMiniAig )
26163 Abc_Print( -2,
"usage: &w [-umvh] <file>\n" );
26164 Abc_Print( -2,
"\t writes the current AIG into the AIGER file\n" );
26165 Abc_Print( -2,
"\t-u : toggle writing canonical AIG structure [default = %s]\n", fUnique?
"yes" :
"no" );
26166 Abc_Print( -2,
"\t-m : toggle writing MiniAIG rather than AIGER [default = %s]\n", fMiniAig?
"yes" :
"no" );
26167 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
26168 Abc_Print( -2,
"\t-h : print the command usage\n");
26169 Abc_Print( -2,
"\t<file> : the file name\n");
26186 char * pFileSpec = NULL;
26198 if ( globalUtilOptind >= argc )
26200 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a file name.\n" );
26204 globalUtilOptind++;
26217 if ( nArgcNew != 1 )
26219 Abc_Print( -1,
"Expecting output file name on the command line.\n" );
26223 if ( pAbc->pNtkCur == NULL )
26225 Abc_Print( -1,
"There is no mapped file to write.\n" );
26228 if ( pFileSpec == NULL )
26230 Abc_Print( -1,
"The specification file is not given.\n" );
26234 if ( pNtkSpec == NULL )
26236 Abc_Print( -1,
"Reading hierarchical Verilog for the specification has failed.\n" );
26245 Abc_Print( -2,
"usage: &write_ver [-S <file>] [-vh] <file>\n" );
26246 Abc_Print( -2,
"\t writes hierarchical Verilog after mapping\n" );
26247 Abc_Print( -2,
"\t-S file : file name for the original hierarchical design (required)\n" );
26248 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
26249 Abc_Print( -2,
"\t-h : print the command usage\n");
26250 Abc_Print( -2,
"\t<file> : the file name\n");
26300 if ( globalUtilOptind >= argc )
26302 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a file name.\n" );
26306 globalUtilOptind++;
26319 if ( pAbc->pGiaBest == NULL )
26321 Abc_Print( -1,
"Abc_CommandAbc9Ps(): There is no AIG.\n" );
26328 if ( pAbc->pGia == NULL )
26330 Abc_Print( -1,
"Abc_CommandAbc9Ps(): There is no AIG.\n" );
26338 Abc_Print( -2,
"usage: &ps [-tpcnlmasbh] [-D file]\n" );
26339 Abc_Print( -2,
"\t prints stats of the current AIG\n" );
26340 Abc_Print( -2,
"\t-t : toggle printing BMC tents [default = %s]\n", pPars->
fTents?
"yes":
"no" );
26341 Abc_Print( -2,
"\t-p : toggle printing switching activity [default = %s]\n", pPars->
fSwitch?
"yes":
"no" );
26342 Abc_Print( -2,
"\t-c : toggle printing the size of frontier cut [default = %s]\n", pPars->
fCut?
"yes":
"no" );
26343 Abc_Print( -2,
"\t-n : toggle printing NPN classes of functions [default = %s]\n", pPars->
fNpn?
"yes":
"no" );
26344 Abc_Print( -2,
"\t-l : toggle printing LUT size profile [default = %s]\n", pPars->
fLutProf?
"yes":
"no" );
26345 Abc_Print( -2,
"\t-m : toggle printing MUX/XOR statistics [default = %s]\n", pPars->
fMuxXor?
"yes":
"no" );
26346 Abc_Print( -2,
"\t-a : toggle printing miter statistics [default = %s]\n", pPars->
fMiter?
"yes":
"no" );
26347 Abc_Print( -2,
"\t-s : skip mapping statistics even if mapped [default = %s]\n", pPars->
fSkipMap?
"yes":
"no" );
26348 Abc_Print( -2,
"\t-b : toggle printing saved AIG statistics [default = %s]\n", fBest?
"yes":
"no" );
26349 Abc_Print( -2,
"\t-D file : file name to dump statistics [default = none]\n" );
26350 Abc_Print( -2,
"\t-h : print the command usage\n");
26375 if ( globalUtilOptind >= argc )
26377 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
26380 nNodes = atoi(argv[globalUtilOptind]);
26381 globalUtilOptind++;
26391 if ( pAbc->pGia == NULL )
26393 Abc_Print( -1,
"Abc_CommandAbc9PFan(): There is no AIG.\n" );
26400 Abc_Print( -2,
"usage: &pfan [-N num] [-h]\n" );
26401 Abc_Print( -2,
"\t prints fanin/fanout statistics\n" );
26402 Abc_Print( -2,
"\t-N num : the number of high-fanout nodes to explore [default = %d]\n", nNodes );
26403 Abc_Print( -2,
"\t-h : print the command usage\n");
26436 if ( pAbc->pGia == NULL )
26438 Abc_Print( -1,
"Abc_CommandAbc9PSigs(): There is no AIG.\n" );
26443 Abc_Print( -1,
"Abc_CommandAbc9PSigs(): Works only for sequential circuits.\n" );
26450 Abc_Print( -2,
"usage: &psig [-rh]\n" );
26451 Abc_Print( -2,
"\t prints enable/set/reset statistics\n" );
26452 Abc_Print( -2,
"\t-r : toggle printing set/reset signals [default = %s]\n", fSetReset?
"yes":
"no" );
26453 Abc_Print( -2,
"\t-h : print the command usage\n");
26482 if ( pAbc->pGia == NULL )
26484 Abc_Print( -1,
"Abc_CommandAbc9Status(): There is no AIG.\n" );
26491 Abc_Print( -2,
"usage: &status [-h]\n" );
26492 Abc_Print( -2,
"\t prints status of the miter\n" );
26493 Abc_Print( -2,
"\t-h : print the command usage\n");
26523 if ( pAbc->pGia == NULL )
26525 Abc_Print( -1,
"Abc_CommandAbc9MuxProfile(): There is no AIG.\n" );
26532 Abc_Print( -2,
"usage: &mux_profile [-h]\n" );
26533 Abc_Print( -2,
"\t profile MUXes appearing in the design\n" );
26534 Abc_Print( -2,
"\t-h : print the command usage\n");
26564 if ( pAbc->pGia == NULL )
26566 Abc_Print( -1,
"Abc_CommandAbc9Show(): There is no AIG.\n" );
26571 Abc_Print( -1,
"Abc_CommandAbc9Show(): Cannot show GIA with barrier buffers.\n" );
26580 Abc_Print( -2,
"usage: &show [-h]\n" );
26581 Abc_Print( -2,
"\t shows the current AIG using GSView\n" );
26582 Abc_Print( -2,
"\t-h : print the command usage\n");
26599 int c, nRegNum = 0;
26606 if ( globalUtilOptind >= argc )
26608 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
26611 nRegNum = atoi(argv[globalUtilOptind]);
26612 globalUtilOptind++;
26622 if ( pAbc->pGia == NULL )
26624 Abc_Print( -1,
"Abc_CommandAbc9SetRegNum(): There is no AIG.\n" );
26629 Abc_Print( -1,
"Abc_CommandAbc9SetRegNum(): The number of registers should be less than the number of CIs.\n" );
26634 Abc_Print( -1,
"Abc_CommandAbc9SetRegNum(): The number of registers should be less than the number of COs.\n" );
26637 pAbc->pGia->nRegs = nRegNum;
26641 Abc_Print( -2,
"usage: &setregnum [-N num] [-h]\n" );
26642 Abc_Print( -2,
"\t manually sets the number of registers to combine the last PI/PO pairs\n" );
26643 Abc_Print( -2,
"\t-N num : set the number of registers to be the given number [default = %d]\n", nRegNum );
26644 Abc_Print( -2,
"\t-h : print the command usage\n");
26663 int fAddStrash = 0;
26672 if ( globalUtilOptind >= argc )
26674 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
26677 Limit = atoi(argv[globalUtilOptind]);
26678 globalUtilOptind++;
26697 if ( pAbc->pGia == NULL )
26699 Abc_Print( -1,
"Abc_CommandAbc9Strash(): There is no AIG.\n" );
26708 else if ( fAddMuxes )
26710 if ( pAbc->pGia->pMuxes )
26712 Abc_Print( -1,
"Abc_CommandAbc9Strash(): The AIG already has MUXes.\n" );
26717 printf(
"Generated AND/XOR/MUX graph.\n" );
26719 else if ( fCollapse && pAbc->pGia->pAigExtra )
26733 printf(
"Collapsed AIG with boxes and logic of the boxes.\n" );
26735 else if ( pAbc->pGia->pMuxes )
26739 printf(
"Generated AIG from AND/XOR/MUX graph.\n" );
26745 printf(
"Rehashed the current AIG.\n" );
26747 if ( !(fCollapse && pAbc->pGia->pAigExtra) )
26753 Abc_Print( -2,
"usage: &st [-L num] [-acmh]\n" );
26754 Abc_Print( -2,
"\t performs structural hashing\n" );
26755 Abc_Print( -2,
"\t-a : toggle additional hashing [default = %s]\n", fAddStrash?
"yes":
"no" );
26756 Abc_Print( -2,
"\t-c : toggle collapsing hierarchical AIG [default = %s]\n", fCollapse?
"yes":
"no" );
26757 Abc_Print( -2,
"\t-m : toggle converting to larger gates [default = %s]\n", fAddMuxes?
"yes":
"no" );
26758 Abc_Print( -2,
"\t-L num : create MUX when sum of refs does not exceed this limit [default = %d]\n", Limit );
26759 Abc_Print( -2,
"\t-h : print the command usage\n");
26777 int c, fVerbose = 1;
26792 if ( pAbc->pGia == NULL )
26794 Abc_Print( -1,
"Abc_CommandAbc9Topand(): There is no AIG.\n" );
26799 Abc_Print( -1,
"Abc_CommandAbc9Topand(): Can only be applied to a combinational miter.\n" );
26807 Abc_Print( -2,
"usage: &topand [-vh]\n" );
26808 Abc_Print( -2,
"\t performs AND decomposition for combinational miter\n" );
26809 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
26810 Abc_Print( -2,
"\t-h : print the command usage\n");
26828 int c, fVerbose = 1;
26843 if ( pAbc->pGia == NULL )
26845 Abc_Print( -1,
"Abc_CommandAbc9Add1Hot(): There is no AIG.\n" );
26853 Abc_Print( -2,
"usage: &add1hot [-vh]\n" );
26854 Abc_Print( -2,
"\t adds 1-hotness constraints as additional primary outputs\n" );
26855 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
26856 Abc_Print( -2,
"\t-h : print the command usage\n");
26874 int c, fVerbose = 0;
26875 int iVar = 0, nLimFan = 0;
26882 if ( globalUtilOptind >= argc )
26884 Abc_Print( -1,
"Command line switch \"-V\" should be followed by an integer.\n" );
26887 iVar = atoi(argv[globalUtilOptind]);
26888 globalUtilOptind++;
26893 if ( globalUtilOptind >= argc )
26895 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
26898 nLimFan = atoi(argv[globalUtilOptind]);
26899 globalUtilOptind++;
26912 if ( pAbc->pGia == NULL )
26914 Abc_Print( -1,
"Abc_CommandAbc9Cof(): There is no AIG.\n" );
26919 Abc_Print( -1,
"Cofactoring all variables whose fanout count is higher than %d.\n", nLimFan );
26925 Abc_Print( -1,
"Cofactoring one variable with object ID %d.\n", iVar );
26931 Abc_Print( -1,
"One of the parameters, -V <num> or -L <num>, should be set on the command line.\n" );
26937 Abc_Print( -2,
"usage: &cof [-VL num] [-vh]\n" );
26938 Abc_Print( -2,
"\t performs cofactoring w.r.t. variable(s)\n" );
26939 Abc_Print( -2,
"\t-V num : the zero-based ID of one variable to cofactor [default = %d]\n", iVar );
26940 Abc_Print( -2,
"\t-L num : cofactor vars with fanout count higher than this [default = %d]\n", nLimFan );
26941 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
26942 Abc_Print( -2,
"\t-h : print the command usage\n");
26965 int fPoFedByPi = 0;
26972 if ( globalUtilOptind >= argc )
26974 Abc_Print( -1,
"Command line switch \"-V\" should be followed by an integer.\n" );
26977 OutValue = atoi(argv[globalUtilOptind]);
26978 globalUtilOptind++;
26979 if ( OutValue < 0 )
27000 if ( pAbc->pGia == NULL )
27002 Abc_Print( -1,
"Abc_CommandAbc9Trim(): There is no AIG.\n" );
27005 pTemp =
Gia_ManDupTrimmed( pAbc->pGia, fTrimCis, fTrimCos, fDualOut, OutValue );
27016 Abc_Print( -2,
"usage: &trim [-V num] [-iocdh]\n" );
27017 Abc_Print( -2,
"\t removes PIs without fanout and PO driven by constants\n" );
27018 Abc_Print( -2,
"\t-V num : the value (0 or 1) of POs to remove [default = both]\n" );
27019 Abc_Print( -2,
"\t-i : toggle removing PIs [default = %s]\n", fTrimCis?
"yes":
"no" );
27020 Abc_Print( -2,
"\t-o : toggle removing POs [default = %s]\n", fTrimCos?
"yes":
"no" );
27021 Abc_Print( -2,
"\t-c : toggle additionally removing POs fed by PIs [default = %s]\n", fPoFedByPi?
"yes":
"no" );
27022 Abc_Print( -2,
"\t-d : toggle using dual-output miter [default = %s]\n", fDualOut?
"yes":
"no" );
27023 Abc_Print( -2,
"\t-h : print the command usage\n");
27065 if ( pAbc->pGia == NULL )
27067 Abc_Print( -1,
"Abc_CommandAbc9Dfs(): There is no AIG.\n" );
27074 Abc_Print( -1,
"AIG objects are reordered as follows: CIs, ANDs, COs.\n" );
27076 else if ( fReverse )
27080 Abc_Print( -1,
"AIG objects are reordered in the reserve DFS order.\n" );
27086 Abc_Print( -1,
"AIG objects are reordered in the DFS order.\n" );
27092 Abc_Print( -2,
"usage: &dfs [-nrvh]\n" );
27093 Abc_Print( -2,
"\t orders objects in the DFS order\n" );
27094 Abc_Print( -2,
"\t-n : toggle using normalized ordering [default = %s]\n", fNormal?
"yes":
"no" );
27095 Abc_Print( -2,
"\t-r : toggle using reverse DFS ordering [default = %s]\n", fReverse?
"yes":
"no" );
27096 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
27097 Abc_Print( -2,
"\t-h : print the command usage\n");
27115 char * pFileName = NULL;
27124 if ( globalUtilOptind >= argc )
27126 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
27129 pPars->
nIters = atoi(argv[globalUtilOptind]);
27130 globalUtilOptind++;
27131 if ( pPars->
nIters < 0 )
27135 if ( globalUtilOptind >= argc )
27137 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
27140 pPars->
nWords = atoi(argv[globalUtilOptind]);
27141 globalUtilOptind++;
27142 if ( pPars->
nWords < 0 )
27146 if ( globalUtilOptind >= argc )
27148 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
27151 pPars->
RandSeed = atoi(argv[globalUtilOptind]);
27152 globalUtilOptind++;
27157 if ( globalUtilOptind >= argc )
27159 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
27162 pPars->
TimeLimit = atoi(argv[globalUtilOptind]);
27163 globalUtilOptind++;
27168 if ( globalUtilOptind >= argc )
27170 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
27174 globalUtilOptind++;
27175 if ( pFileName == NULL )
27190 if ( pAbc->pGia == NULL )
27192 Abc_Print( -1,
"Abc_CommandAbc9Sim(): There is no AIG.\n" );
27197 Abc_Print( -1,
"The network is combinational.\n" );
27200 if ( pFileName != NULL )
27203 char pFileNameOut[1000];
27212 pAbc->nFrames = -1;
27223 Abc_Print( -2,
"usage: &sim [-FWNT num] [-mvh] -I <file>\n" );
27224 Abc_Print( -2,
"\t performs random simulation of the sequential miter\n" );
27225 Abc_Print( -2,
"\t (if candidate equivalences are defined, performs refinement)\n" );
27226 Abc_Print( -2,
"\t-F num : the number of frames to simulate [default = %d]\n", pPars->
nIters );
27227 Abc_Print( -2,
"\t-W num : the number of words to simulate [default = %d]\n", pPars->
nWords );
27228 Abc_Print( -2,
"\t-N num : random number seed (1 <= num <= 1000) [default = %d]\n", pPars->
RandSeed );
27229 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", pPars->
TimeLimit );
27230 Abc_Print( -2,
"\t-m : toggle miter vs. any circuit [default = %s]\n", pPars->
fCheckMiter?
"miter":
"circuit" );
27231 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
27232 Abc_Print( -2,
"\t-h : print the command usage\n");
27233 Abc_Print( -2,
"\t-I file: (optional) file with input patterns (one line per frame, as many as PIs)\n");
27261 if ( globalUtilOptind >= argc )
27263 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
27266 pPars->
nFrames = atoi(argv[globalUtilOptind]);
27267 globalUtilOptind++;
27272 if ( globalUtilOptind >= argc )
27274 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
27277 pPars->
nWords = atoi(argv[globalUtilOptind]);
27278 globalUtilOptind++;
27279 if ( pPars->
nWords < 0 )
27283 if ( globalUtilOptind >= argc )
27285 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
27288 pPars->
nBinSize = atoi(argv[globalUtilOptind]);
27289 globalUtilOptind++;
27294 if ( globalUtilOptind >= argc )
27296 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
27299 pPars->
nRounds = atoi(argv[globalUtilOptind]);
27300 globalUtilOptind++;
27305 if ( globalUtilOptind >= argc )
27307 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
27310 pPars->
nRestart = atoi(argv[globalUtilOptind]);
27311 globalUtilOptind++;
27316 if ( globalUtilOptind >= argc )
27318 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
27321 pPars->
nRandSeed = atoi(argv[globalUtilOptind]);
27322 globalUtilOptind++;
27327 if ( globalUtilOptind >= argc )
27329 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
27332 pPars->
TimeOut = atoi(argv[globalUtilOptind]);
27333 globalUtilOptind++;
27338 if ( globalUtilOptind >= argc )
27340 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
27343 pPars->
TimeOutGap = atoi(argv[globalUtilOptind]);
27344 globalUtilOptind++;
27360 if ( pAbc->pGia == NULL )
27362 Abc_Print( -1,
"Abc_CommandAbc9Sim3(): There is no AIG.\n" );
27367 Abc_Print( -1,
"Abc_CommandAbc9Sim3(): This command works only for sequential AIGs.\n" );
27375 Abc_Print( -2,
"usage: &sim3 [-FWBRNT num] [-gvh]\n" );
27376 Abc_Print( -2,
"\t performs random simulation of the sequential miter\n" );
27377 Abc_Print( -2,
"\t-F num : the number of frames to simulate [default = %d]\n", pPars->
nFrames );
27378 Abc_Print( -2,
"\t-W num : the number of words to simulate [default = %d]\n", pPars->
nWords );
27379 Abc_Print( -2,
"\t-B num : the number of flops in one bin [default = %d]\n", pPars->
nBinSize );
27380 Abc_Print( -2,
"\t-R num : the number of simulation rounds [default = %d]\n", pPars->
nRounds );
27381 Abc_Print( -2,
"\t-S num : the number of rounds before a restart [default = %d]\n", pPars->
nRestart );
27382 Abc_Print( -2,
"\t-N num : random number seed (1 <= num <= 1000) [default = %d]\n", pPars->
nRandSeed );
27383 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", pPars->
TimeOut );
27384 Abc_Print( -2,
"\t-g : toggle heuristic flop grouping [default = %s]\n", pPars->
fUseFfGrouping?
"yes":
"no" );
27385 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
27386 Abc_Print( -2,
"\t-h : print the command usage\n");
27413 if ( globalUtilOptind >= argc )
27415 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
27418 pPars->
nFrames = atoi(argv[globalUtilOptind]);
27419 globalUtilOptind++;
27435 if ( pAbc->pGia == NULL )
27437 Abc_Print( -1,
"Abc_CommandAbc9Resim(): There is no AIG.\n" );
27441 pAbc->Status = RetValue ? 0 : -1;
27442 pAbc->nFrames = pAbc->pCex->iFrame;
27447 Abc_Print( -2,
"usage: &resim [-F num] [-mvh]\n" );
27448 Abc_Print( -2,
"\t resimulates equivalence classes using counter-example\n" );
27449 Abc_Print( -2,
"\t-F num : the number of additinal frames to simulate [default = %d]\n", pPars->
nFrames );
27450 Abc_Print( -2,
"\t-m : toggle miter vs. any circuit [default = %s]\n", pPars->
fCheckMiter?
"miter":
"circuit" );
27451 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
27452 Abc_Print( -2,
"\t-h : print the command usage\n");
27469 extern int Gia_CommandSpecI(
Gia_Man_t * pGia,
int nFrames,
int nBTLimit,
int fUseStart,
int fCheckMiter,
int fVerbose );
27471 int nBTLimit = 25000;
27473 int fCheckMiter = 1;
27482 if ( globalUtilOptind >= argc )
27484 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
27487 nFrames = atoi(argv[globalUtilOptind]);
27488 globalUtilOptind++;
27493 if ( globalUtilOptind >= argc )
27495 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
27498 nBTLimit = atoi(argv[globalUtilOptind]);
27499 globalUtilOptind++;
27500 if ( nBTLimit < 0 )
27518 if ( pAbc->pGia == NULL )
27520 Abc_Print( -1,
"Abc_CommandAbc9SpecI(): There is no AIG.\n" );
27523 Gia_CommandSpecI( pAbc->pGia, nFrames, nBTLimit, fUseStart, fCheckMiter, fVerbose );
27527 Abc_Print( -2,
"usage: &speci [-FC num] [-fmvh]\n" );
27528 Abc_Print( -2,
"\t refines equivalence classes using speculative reduction\n" );
27529 Abc_Print( -2,
"\t-F num : the max number of time frames [default = %d]\n", nFrames );
27530 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", nBTLimit );
27531 Abc_Print( -2,
"\t-f : toggle starting BMC from a later frame [default = %s]\n", fUseStart?
"yes":
"no" );
27532 Abc_Print( -2,
"\t-m : toggle miter vs. any circuit [default = %s]\n", fCheckMiter?
"miter":
"circuit" );
27533 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
27534 Abc_Print( -2,
"\t-h : print the command usage\n");
27562 if ( globalUtilOptind >= argc )
27564 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
27567 pPars->
nWords = atoi(argv[globalUtilOptind]);
27568 globalUtilOptind++;
27569 if ( pPars->
nWords < 0 )
27573 if ( globalUtilOptind >= argc )
27575 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
27578 pPars->
nFrames = atoi(argv[globalUtilOptind]);
27579 globalUtilOptind++;
27584 if ( globalUtilOptind >= argc )
27586 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
27589 pPars->
nRounds = atoi(argv[globalUtilOptind]);
27590 globalUtilOptind++;
27595 if ( globalUtilOptind >= argc )
27597 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
27600 pPars->
nNonRefines = atoi(argv[globalUtilOptind]);
27601 globalUtilOptind++;
27606 if ( globalUtilOptind >= argc )
27608 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
27611 pPars->
TimeLimit = atoi(argv[globalUtilOptind]);
27612 globalUtilOptind++;
27634 if ( pAbc->pGia == NULL )
27636 Abc_Print( -1,
"Abc_CommandAbc9Equiv(): There is no AIG.\n" );
27643 Abc_Print( -2,
"usage: &equiv [-WFRST num] [-smdvh]\n" );
27644 Abc_Print( -2,
"\t computes candidate equivalence classes\n" );
27645 Abc_Print( -2,
"\t-W num : the number of words to simulate [default = %d]\n", pPars->
nWords );
27646 Abc_Print( -2,
"\t-F num : the number of frames to simulate [default = %d]\n", pPars->
nFrames );
27647 Abc_Print( -2,
"\t-R num : the max number of simulation rounds [default = %d]\n", pPars->
nRounds );
27648 Abc_Print( -2,
"\t-S num : the max number of rounds w/o refinement to stop [default = %d]\n", pPars->
nNonRefines );
27649 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", pPars->
TimeLimit );
27650 Abc_Print( -2,
"\t-s : toggle seq vs. comb simulation [default = %s]\n", pPars->
fSeqSimulate?
"yes":
"no" );
27651 Abc_Print( -2,
"\t-m : toggle miter vs. any circuit [default = %s]\n", pPars->
fCheckMiter?
"miter":
"circuit" );
27652 Abc_Print( -2,
"\t-d : toggle using two POs intead of XOR [default = %s]\n", pPars->
fDualOut?
"yes":
"no" );
27653 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
27654 Abc_Print( -2,
"\t-h : print the command usage\n");
27672 int nFramesMax = 20;
27673 int nConfMax = 500;
27676 int TimeLimit2 = 0;
27678 int fLatchOnly = 0;
27687 if ( globalUtilOptind >= argc )
27689 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
27692 nFramesMax = atoi(argv[globalUtilOptind]);
27693 globalUtilOptind++;
27694 if ( nFramesMax < 0 )
27698 if ( globalUtilOptind >= argc )
27700 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
27703 nConfMax = atoi(argv[globalUtilOptind]);
27704 globalUtilOptind++;
27705 if ( nConfMax < 0 )
27709 if ( globalUtilOptind >= argc )
27711 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
27714 nRounds = atoi(argv[globalUtilOptind]);
27715 globalUtilOptind++;
27720 if ( globalUtilOptind >= argc )
27722 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
27725 TimeLimit = atoi(argv[globalUtilOptind]);
27726 globalUtilOptind++;
27727 if ( TimeLimit < 0 )
27731 if ( globalUtilOptind >= argc )
27733 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
27736 TimeLimit2 = atoi(argv[globalUtilOptind]);
27737 globalUtilOptind++;
27738 if ( TimeLimit2 < 0 )
27756 if ( pAbc->pGia == NULL )
27758 Abc_Print( -1,
"Abc_CommandAbc9Equiv2(): There is no AIG.\n" );
27763 Abc_Print( 0,
"Abc_CommandAbc9Equiv2(): There is no flops. Nothing is done.\n" );
27768 if ( pAbc->pCex == NULL )
27770 Abc_Print( 0,
"Abc_CommandAbc9Equiv2(): Counter-example is not available.\n" );
27775 Abc_Print( -1,
"Abc_CommandAbc9Equiv2(): The number of PIs differs in cex (%d) and in AIG (%d).\n",
27780 Ssw_SignalFilterGia( pAbc->pGia, nFramesMax, nConfMax, nRounds, TimeLimit, TimeLimit2, fUseCex? pAbc->pCex: NULL, fLatchOnly, fVerbose );
27787 Abc_Print( -2,
"usage: &equiv2 [-FCRTS num] [-xlvh]\n" );
27788 Abc_Print( -2,
"\t computes candidate equivalence classes\n" );
27789 Abc_Print( -2,
"\t-F num : the max number of frames for BMC [default = %d]\n", nFramesMax );
27790 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", nConfMax );
27791 Abc_Print( -2,
"\t-R num : the max number of BMC rounds [default = %d]\n", nRounds );
27792 Abc_Print( -2,
"\t-T num : runtime limit in seconds for all rounds [default = %d]\n", TimeLimit );
27793 Abc_Print( -2,
"\t-S num : runtime limit in seconds for one round [default = %d]\n", TimeLimit2 );
27794 Abc_Print( -2,
"\t-x : toggle using the current cex to perform refinement [default = %s]\n", fUseCex?
"yes":
"no" );
27795 Abc_Print( -2,
"\t-l : toggle considering only latch output equivalences [default = %s]\n", fLatchOnly?
"yes":
"no" );
27796 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
27797 Abc_Print( -2,
"\t-h : print the command usage\n");
27824 if ( globalUtilOptind >= argc )
27826 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
27829 pPars->
nFrames = atoi(argv[globalUtilOptind]);
27830 globalUtilOptind++;
27835 if ( globalUtilOptind >= argc )
27837 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
27840 pPars->
nWords = atoi(argv[globalUtilOptind]);
27841 globalUtilOptind++;
27842 if ( pPars->
nWords < 0 )
27846 if ( globalUtilOptind >= argc )
27848 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
27851 pPars->
nBinSize = atoi(argv[globalUtilOptind]);
27852 globalUtilOptind++;
27857 if ( globalUtilOptind >= argc )
27859 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
27862 pPars->
nRounds = atoi(argv[globalUtilOptind]);
27863 globalUtilOptind++;
27868 if ( globalUtilOptind >= argc )
27870 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
27873 pPars->
nRestart = atoi(argv[globalUtilOptind]);
27874 globalUtilOptind++;
27879 if ( globalUtilOptind >= argc )
27881 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
27884 pPars->
nRandSeed = atoi(argv[globalUtilOptind]);
27885 globalUtilOptind++;
27890 if ( globalUtilOptind >= argc )
27892 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
27895 pPars->
TimeOut = atoi(argv[globalUtilOptind]);
27896 globalUtilOptind++;
27918 if ( pAbc->pGia == NULL )
27920 Abc_Print( -1,
"Abc_CommandAbc9Equiv3(): There is no AIG.\n" );
27925 Abc_Print( 0,
"Abc_CommandAbc9Equiv3(): There is no flops. Nothing is done.\n" );
27932 Abc_Print( 0,
"Abc_CommandAbc9Equiv3(): Considering the miter as a circuit because the CEX is given.\n" );
27935 if ( pAbc->pCex == NULL )
27937 Abc_Print( 0,
"Abc_CommandAbc9Equiv3(): Counter-example is not available.\n" );
27942 Abc_Print( -1,
"Abc_CommandAbc9Equiv3(): The number of PIs differs in cex (%d) and in AIG (%d).\n",
27946 pPars->
pCex = pAbc->pCex;
27954 Abc_Print( -2,
"usage: &equiv3 [-FWRSNT num] [-mxlvh]\n" );
27955 Abc_Print( -2,
"\t computes candidate equivalence classes\n" );
27956 Abc_Print( -2,
"\t-F num : the max number of frames for BMC [default = %d]\n", pPars->
nFrames );
27957 Abc_Print( -2,
"\t-W num : the number of words to simulate [default = %d]\n", pPars->
nWords );
27958 Abc_Print( -2,
"\t-R num : the max number of simulation rounds [default = %d]\n", pPars->
nRounds );
27959 Abc_Print( -2,
"\t-S num : the number of rounds before a restart [default = %d]\n", pPars->
nRestart );
27960 Abc_Print( -2,
"\t-N num : random number seed (1 <= num <= 1000) [default = %d]\n", pPars->
nRandSeed );
27961 Abc_Print( -2,
"\t-T num : runtime limit in seconds for all rounds [default = %d]\n", pPars->
TimeOut );
27962 Abc_Print( -2,
"\t-m : toggle miter vs. any circuit [default = %s]\n", pPars->
fMiter?
"miter":
"circuit" );
27963 Abc_Print( -2,
"\t-x : toggle using the current CEX to perform refinement [default = %s]\n", pPars->
fUseCex?
"yes":
"no" );
27964 Abc_Print( -2,
"\t-l : toggle considering only latch output equivalences [default = %s]\n", pPars->
fLatchOnly?
"yes":
"no" );
27965 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
27966 Abc_Print( -2,
"\t-h : print the command usage\n");
27993 if ( globalUtilOptind >= argc )
27995 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
27998 pPars->
nWords = atoi(argv[globalUtilOptind]);
27999 globalUtilOptind++;
28000 if ( pPars->
nWords < 0 )
28004 if ( globalUtilOptind >= argc )
28006 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
28009 pPars->
nRounds = atoi(argv[globalUtilOptind]);
28010 globalUtilOptind++;
28015 if ( globalUtilOptind >= argc )
28017 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
28020 pPars->
nFrames = atoi(argv[globalUtilOptind]);
28021 globalUtilOptind++;
28026 if ( globalUtilOptind >= argc )
28028 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
28031 pPars->
nNonRefines = atoi(argv[globalUtilOptind]);
28032 globalUtilOptind++;
28037 if ( globalUtilOptind >= argc )
28039 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
28042 pPars->
nMinOutputs = atoi(argv[globalUtilOptind]);
28043 globalUtilOptind++;
28048 if ( globalUtilOptind >= argc )
28050 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
28053 pPars->
nBTLimit = atoi(argv[globalUtilOptind]);
28054 globalUtilOptind++;
28059 if ( globalUtilOptind >= argc )
28061 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
28064 pPars->
TimeLimit = atoi(argv[globalUtilOptind]);
28065 globalUtilOptind++;
28084 if ( pAbc->pGia == NULL )
28086 Abc_Print( -1,
"Abc_CommandAbc9Resim(): There is no AIG.\n" );
28093 Abc_Print( -2,
"usage: &semi [-WRFSMCT num] [-mdvh]\n" );
28094 Abc_Print( -2,
"\t performs semiformal refinement of equivalence classes\n" );
28095 Abc_Print( -2,
"\t-W num : the number of words to simulate [default = %d]\n", pPars->
nWords );
28096 Abc_Print( -2,
"\t-R num : the max number of rounds to simulate [default = %d]\n", pPars->
nRounds );
28097 Abc_Print( -2,
"\t-F num : the max number of frames to unroll [default = %d]\n", pPars->
nFrames );
28098 Abc_Print( -2,
"\t-S num : the max number of rounds w/o refinement to stop [default = %d]\n", pPars->
nNonRefines );
28099 Abc_Print( -2,
"\t-M num : the min number of outputs of bounded SRM [default = %d]\n", pPars->
nMinOutputs );
28100 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->
nBTLimit );
28101 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", pPars->
TimeLimit );
28102 Abc_Print( -2,
"\t-m : toggle miter vs. any circuit [default = %s]\n", pPars->
fCheckMiter?
"miter":
"circuit" );
28103 Abc_Print( -2,
"\t-d : toggle using two POs intead of XOR [default = %s]\n", pPars->
fDualOut?
"yes":
"no" );
28104 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
28105 Abc_Print( -2,
"\t-h : print the command usage\n");
28124 int c, nTimes = 2, fVerbose = 0;
28131 if ( globalUtilOptind >= argc )
28133 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
28136 nTimes = atoi(argv[globalUtilOptind]);
28137 globalUtilOptind++;
28150 if ( pAbc->pGia == NULL )
28152 Abc_Print( -1,
"Abc_CommandAbc9Times(): There is no AIG.\n" );
28160 Abc_Print( -2,
"usage: × [-N <num>] [-vh]\n" );
28161 Abc_Print( -2,
"\t creates several \"parallel\" copies of the design\n" );
28162 Abc_Print( -2,
"\t-N num : number of copies to create [default = %d]\n", nTimes );
28163 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28164 Abc_Print( -2,
"\t-h : print the command usage\n");
28186 int nCofFanLit = 0;
28188 int fInitSpecial = 0;
28196 if ( globalUtilOptind >= argc )
28198 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
28201 pPars->
nFrames = atoi(argv[globalUtilOptind]);
28202 globalUtilOptind++;
28207 if ( globalUtilOptind >= argc )
28209 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
28212 nCofFanLit = atoi(argv[globalUtilOptind]);
28213 globalUtilOptind++;
28214 if ( nCofFanLit < 0 )
28241 if ( pAbc->pGia == NULL )
28243 Abc_Print( -1,
"Abc_CommandAbc9Frames(): There is no AIG.\n" );
28248 Abc_Print( -1,
"The network is combinational.\n" );
28251 if ( fInitSpecial )
28253 else if ( nCofFanLit )
28255 else if ( fNewAlgo )
28263 Abc_Print( -2,
"usage: &frames [-FL <num>] [-soibavh]\n" );
28264 Abc_Print( -2,
"\t unrolls the design for several timeframes\n" );
28265 Abc_Print( -2,
"\t-F num : the number of frames to unroll [default = %d]\n", pPars->
nFrames );
28266 Abc_Print( -2,
"\t-L num : the limit on fanout count of resets/enables to cofactor [default = %d]\n", nCofFanLit );
28267 Abc_Print( -2,
"\t-s : toggle disabling structural hashing [default = %s]\n", pPars->
fDisableSt?
"yes":
"no" );
28268 Abc_Print( -2,
"\t-o : toggle ORing corresponding POs [default = %s]\n", pPars->
fOrPos?
"yes":
"no" );
28269 Abc_Print( -2,
"\t-i : toggle initializing registers [default = %s]\n", pPars->
fInit?
"yes":
"no" );
28270 Abc_Print( -2,
"\t-b : toggle computing special AIG for BMC [default = %s]\n", fInitSpecial?
"yes":
"no" );
28271 Abc_Print( -2,
"\t-a : toggle using new algorithm [default = %s]\n", fNewAlgo?
"yes":
"no" );
28272 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
28273 Abc_Print( -2,
"\t-h : print the command usage\n");
28292 int nMaxIters = 100;
28300 if ( globalUtilOptind >= argc )
28302 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
28305 nMaxIters = atoi(argv[globalUtilOptind]);
28306 globalUtilOptind++;
28307 if ( nMaxIters < 0 )
28319 if ( pAbc->pGia == NULL )
28321 Abc_Print( -1,
"Abc_CommandAbc9Retime(): There is no AIG.\n" );
28326 Abc_Print( -1,
"The network is combinational.\n" );
28334 Abc_Print( -2,
"usage: &retime [-N <num>] [-vh]\n" );
28335 Abc_Print( -2,
"\t performs most-forward retiming\n" );
28336 Abc_Print( -2,
"\t-N num : the number of incremental iterations [default = %d]\n", nMaxIters );
28337 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28338 Abc_Print( -2,
"\t-h : print the command usage\n");
28376 if ( pAbc->pGia == NULL )
28378 Abc_Print( -1,
"Abc_CommandAbc9Enable(): There is no AIG.\n" );
28389 Abc_Print( -2,
"usage: &enable [-rvh]\n" );
28390 Abc_Print( -2,
"\t adds or removes flop enable signals\n" );
28391 Abc_Print( -2,
"\t-r : toggle adding vs. removing enables [default = %s]\n", fRemove?
"remove":
"add" );
28392 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28393 Abc_Print( -2,
"\t-h : print the command usage\n");
28411 int c, fVerbose = 0;
28412 int fUpdateLevel = 1;
28430 if ( pAbc->pGia == NULL )
28432 Abc_Print( -1,
"Abc_CommandAbc9Dc2(): There is no AIG.\n" );
28440 Abc_Print( -2,
"usage: &dc2 [-lvh]\n" );
28441 Abc_Print( -2,
"\t performs heavy rewriting of the AIG\n" );
28442 Abc_Print( -2,
"\t-l : toggle level update during rewriting [default = %s]\n", fUpdateLevel?
"yes":
"no" );
28443 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28444 Abc_Print( -2,
"\t-h : print the command usage\n");
28463 int c, fVerbose = 0;
28464 int fUpdateLevel = 1;
28482 if ( pAbc->pGia == NULL )
28484 Abc_Print( -1,
"Abc_CommandAbc9Dsd(): There is no AIG.\n" );
28492 Abc_Print( -2,
"usage: &dsd [-vh]\n" );
28493 Abc_Print( -2,
"\t performs DSD-based collapsing\n" );
28495 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28496 Abc_Print( -2,
"\t-h : print the command usage\n");
28514 int c, fVerbose = 0;
28515 int fUpdateLevel = 1;
28533 if ( pAbc->pGia == NULL )
28535 Abc_Print( -1,
"Abc_CommandAbc9Bidec(): There is no AIG.\n" );
28540 Abc_Print( -1,
"Abc_CommandAbc9Bidec(): Mapping of the AIG is not defined.\n" );
28548 Abc_Print( -2,
"usage: &bidec [-vh]\n" );
28549 Abc_Print( -2,
"\t performs heavy rewriting of the AIG\n" );
28551 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28552 Abc_Print( -2,
"\t-h : print the command usage\n");
28571 int c,fVerbose = 0;
28572 int fKeepLevel = 0;
28573 int nFanoutMax = 50;
28580 if ( globalUtilOptind >= argc )
28582 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a char string.\n" );
28585 nFanoutMax = atoi(argv[globalUtilOptind]);
28586 globalUtilOptind++;
28587 if ( nFanoutMax < 0 )
28602 if ( pAbc->pGia == NULL )
28604 Abc_Print( -1,
"Abc_CommandAbc9Shrink(): There is no AIG.\n" );
28609 Abc_Print( -1,
"Abc_CommandAbc9Shrink(): Mapping of the AIG is not defined.\n" );
28613 if ( nLutSize <= 4 )
28615 else if ( nLutSize <= 6 )
28618 Abc_Print( -1,
"Abc_CommandAbc9Shrink(): Works only for 4-LUTs and 6-LUTs.\n" );
28624 Abc_Print( -2,
"usage: &shrink [-N num] [-lvh]\n" );
28625 Abc_Print( -2,
"\t performs fast shrinking using current mapping\n" );
28626 Abc_Print( -2,
"\t-N num : the max fanout count to skip a divisor [default = %d]\n", nFanoutMax );
28627 Abc_Print( -2,
"\t-l : toggle level update during shrinking [default = %s]\n", fKeepLevel?
"yes":
"no" );
28628 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28629 Abc_Print( -2,
"\t-h : print the command usage\n");
28647 int nNewNodesMax = 1000000;
28648 int LitCountMax = 0;
28650 int c, fVerbose = 0;
28651 int fVeryVerbose = 0;
28659 if ( globalUtilOptind >= argc )
28661 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
28664 nNewNodesMax = atoi(argv[globalUtilOptind]);
28665 globalUtilOptind++;
28666 if ( nNewNodesMax < 0 )
28670 if ( globalUtilOptind >= argc )
28672 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
28675 LitCountMax = atoi(argv[globalUtilOptind]);
28676 globalUtilOptind++;
28677 if ( LitCountMax < 0 )
28696 if ( pAbc->pGia == NULL )
28698 Abc_Print( -1,
"Abc_CommandAbc9Shrink(): There is no AIG.\n" );
28703 Abc_Print( -1,
"Abc_CommandAbc9Shrink(): Mapping of the AIG is not defined.\n" );
28706 pTemp =
Gia_ManPerformFx( pAbc->pGia, nNewNodesMax, LitCountMax, fReverse, fVerbose, fVeryVerbose );
28707 if ( pTemp != NULL )
28710 Abc_Print( -1,
"Abc_CommandAbc9Fx(): Command has failed.\n" );
28714 Abc_Print( -2,
"usage: &fx [-NM <num>] [-vh]\n");
28715 Abc_Print( -2,
"\t extract shared logic using the classical \"fast_extract\" algorithm\n");
28716 Abc_Print( -2,
"\t-N <num> : max number of divisors to extract during this run [default = %d]\n", nNewNodesMax );
28717 Abc_Print( -2,
"\t-M <num> : upper bound on literal count of divisors to extract [default = %d]\n", LitCountMax );
28718 Abc_Print( -2,
"\t-r : reversing variable order during ISOP computation [default = %s]\n", fReverse?
"yes":
"no" );
28719 Abc_Print( -2,
"\t-v : print verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28720 Abc_Print( -2,
"\t-w : toggle printing additional information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
28721 Abc_Print( -2,
"\t-h : print the command usage\n");
28740 int fDelayOnly = 0;
28741 int fSimpleAnd = 0;
28742 int fKeepLevel = 0;
28743 int c, fVerbose = 0;
28744 int fVeryVerbose = 0;
28751 if ( globalUtilOptind >= argc )
28753 Abc_Print( -1,
"Command line switch \"-N\" should be followed by a char string.\n" );
28756 nNewNodesMax = atoi(argv[globalUtilOptind]);
28757 globalUtilOptind++;
28758 if ( nNewNodesMax < 0 )
28782 if ( pAbc->pGia == NULL )
28784 Abc_Print( -1,
"Abc_CommandAbc9Balance(): There is no AIG.\n" );
28790 pTemp =
Gia_ManAreaBalance( pAbc->pGia, fSimpleAnd, nNewNodesMax, fVerbose, fVeryVerbose );
28795 Abc_Print( -2,
"usage: &b [-N num] [-davwh]\n" );
28796 Abc_Print( -2,
"\t performs AIG balancing to reduce delay and area\n" );
28797 Abc_Print( -2,
"\t-N num : the max fanout count to skip a divisor [default = %d]\n", nNewNodesMax );
28798 Abc_Print( -2,
"\t-d : toggle delay only balancing [default = %s]\n", fDelayOnly?
"yes":
"no" );
28799 Abc_Print( -2,
"\t-a : toggle using AND instead of AND/XOR/MUX [default = %s]\n", fSimpleAnd?
"yes":
"no" );
28801 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28802 Abc_Print( -2,
"\t-w : toggle printing additional information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
28803 Abc_Print( -2,
"\t-h : print the command usage\n");
28827 int fRecursive = 1;
28829 int c, fVerbose = 0;
28830 int fVeryVerbose = 0;
28837 if ( globalUtilOptind >= argc )
28839 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a char string.\n" );
28842 nLutSize = atoi(argv[globalUtilOptind]);
28843 globalUtilOptind++;
28844 if ( nLutSize < 0 )
28848 if ( globalUtilOptind >= argc )
28850 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a char string.\n" );
28853 nCutNum = atoi(argv[globalUtilOptind]);
28854 globalUtilOptind++;
28882 if ( pAbc->pGia == NULL )
28884 Abc_Print( -1,
"Abc_CommandAbc9BalanceLut(): There is no AIG.\n" );
28890 pTemp =
Gia_ManLutBalance( pAbc->pGia, nLutSize, fUseMuxes, fRecursive, fOptArea, fVerbose );
28895 Abc_Print( -2,
"usage: &blut [-KC num] [-mravh]\n" );
28896 Abc_Print( -2,
"\t performs AIG balancing for the given LUT size\n" );
28897 Abc_Print( -2,
"\t-K num : LUT size for the mapping (2 <= K <= %d) [default = %d]\n", 6, nLutSize );
28898 Abc_Print( -2,
"\t-C num : the max number of priority cuts (1 <= C <= %d) [default = %d]\n", 8, nCutNum );
28899 Abc_Print( -2,
"\t-m : toggle performing MUX restructuring [default = %s]\n", fUseMuxes?
"yes":
"no" );
28900 Abc_Print( -2,
"\t-r : toggle performing recursive restructuring [default = %s]\n", fRecursive?
"yes":
"no" );
28901 Abc_Print( -2,
"\t-a : toggle performing area-oriented restructuring [default = %s]\n", fOptArea?
"yes":
"no" );
28902 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28904 Abc_Print( -2,
"\t-h : print the command usage\n");
28922 int c, fVerbose = 0;
28926 int nRelaxRatio = 20;
28928 int fVeryVerbose = 0;
28935 if ( globalUtilOptind >= argc )
28937 Abc_Print( 1,
"Command line switch \"-R\" should be followed by a floating point number.\n" );
28940 nRelaxRatio = atoi(argv[globalUtilOptind]);
28941 globalUtilOptind++;
28942 if ( nRelaxRatio < 0 )
28969 if ( pAbc->pGia == NULL )
28971 Abc_Print( -1,
"Abc_CommandAbc9Syn2(): There is no AIG.\n" );
28979 printf(
"DSD manager has incompatible number of variables. Delay minimization is not performed.\n" );
28983 pTemp =
Gia_ManAigSyn2( pAbc->pGia, fOldAlgo, fCoarsen, fCutMin, nRelaxRatio, fDelayMin, fVerbose, fVeryVerbose );
28988 Abc_Print( -2,
"usage: &syn2 [-R num] [-akmdvh]\n" );
28989 Abc_Print( -2,
"\t performs AIG optimization\n" );
28990 Abc_Print( -2,
"\t-R num : the delay relaxation ratio (num >= 0) [default = %d]\n", nRelaxRatio );
28991 Abc_Print( -2,
"\t-a : toggles using the old algorithm [default = %s]\n", fOldAlgo?
"yes":
"no" );
28992 Abc_Print( -2,
"\t-k : toggles coarsening the subject graph [default = %s]\n", fCoarsen?
"yes":
"no" );
28993 Abc_Print( -2,
"\t-m : toggles cut minimization [default = %s]\n", fCutMin?
"yes":
"no" );
28994 Abc_Print( -2,
"\t-d : toggles additional delay optimization [default = %s]\n", fDelayMin?
"yes":
"no" );
28995 Abc_Print( -2,
"\t-v : toggles printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
28996 Abc_Print( -2,
"\t-w : toggles printing additional information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
28997 Abc_Print( -2,
"\t-h : print the command usage\n");
29017 int c, nLutSize = 6;
29018 int nRelaxRatio = 20;
29027 if ( globalUtilOptind >= argc )
29029 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
29032 pPars->nWords = atoi(argv[globalUtilOptind]);
29033 globalUtilOptind++;
29034 if ( pPars->nWords < 0 )
29038 if ( globalUtilOptind >= argc )
29040 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
29043 pPars->nBTLimit = atoi(argv[globalUtilOptind]);
29044 globalUtilOptind++;
29045 if ( pPars->nBTLimit < 0 )
29049 if ( globalUtilOptind >= argc )
29051 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
29054 pPars->nSatVarMax = atoi(argv[globalUtilOptind]);
29055 globalUtilOptind++;
29056 if ( pPars->nSatVarMax < 0 )
29060 if ( globalUtilOptind >= argc )
29062 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a char string.\n" );
29065 nLutSize = atoi(argv[globalUtilOptind]);
29066 globalUtilOptind++;
29067 if ( nLutSize < 0 )
29071 if ( globalUtilOptind >= argc )
29073 Abc_Print( 1,
"Command line switch \"-R\" should be followed by a floating point number.\n" );
29076 nRelaxRatio = atoi(argv[globalUtilOptind]);
29077 globalUtilOptind++;
29078 if ( nRelaxRatio < 0 )
29082 pPars->fLightSynth ^= 1;
29085 pPars->fVerbose ^= 1;
29093 if ( pAbc->pGia == NULL )
29095 Abc_Print( -1,
"Abc_CommandAbc9Dch(): There is no AIG.\n" );
29103 Abc_Print( -2,
"usage: &synch2 [-WCSKR num] [-fvh]\n" );
29104 Abc_Print( -2,
"\t computes structural choices using a new approach\n" );
29105 Abc_Print( -2,
"\t-W num : the max number of simulation words [default = %d]\n", pPars->nWords );
29106 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->nBTLimit );
29107 Abc_Print( -2,
"\t-S num : the max number of SAT variables [default = %d]\n", pPars->nSatVarMax );
29108 Abc_Print( -2,
"\t-K num : the target LUT size for downstream mapping [default = %d]\n", nLutSize );
29109 Abc_Print( -2,
"\t-R num : the delay relaxation ratio (num >= 0) [default = %d]\n", nRelaxRatio );
29110 Abc_Print( -2,
"\t-f : toggle using lighter logic synthesis [default = %s]\n", pPars->fLightSynth?
"yes":
"no" );
29111 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
29112 Abc_Print( -2,
"\t-h : print the command usage\n");
29130 int c, fVerbose = 0;
29131 int fVeryVerbose = 0;
29149 if ( pAbc->pGia == NULL )
29151 Abc_Print( -1,
"Abc_CommandAbc9Syn3(): There is no AIG.\n" );
29159 Abc_Print( -2,
"usage: &syn3 [-lvh]\n" );
29160 Abc_Print( -2,
"\t performs AIG optimization\n" );
29161 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
29162 Abc_Print( -2,
"\t-w : toggle printing additional information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
29163 Abc_Print( -2,
"\t-h : print the command usage\n");
29181 int c, fVerbose = 0;
29182 int fVeryVerbose = 0;
29200 if ( pAbc->pGia == NULL )
29202 Abc_Print( -1,
"Abc_CommandAbc9Syn4(): There is no AIG.\n" );
29210 Abc_Print( -2,
"usage: &syn4 [-lvh]\n" );
29211 Abc_Print( -2,
"\t performs AIG optimization\n" );
29212 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
29213 Abc_Print( -2,
"\t-w : toggle printing additional information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
29214 Abc_Print( -2,
"\t-h : print the command usage\n");
29235 int c, fVerbose = 0;
29236 int fVeryVerbose = 0;
29243 if ( globalUtilOptind >= argc )
29245 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a char string.\n" );
29248 nSlackMax = atoi(argv[globalUtilOptind]);
29249 globalUtilOptind++;
29250 if ( nSlackMax < 0 )
29254 if ( globalUtilOptind >= argc )
29256 Abc_Print( -1,
"Command line switch \"-T\" should be followed by a char string.\n" );
29259 nTimeOut = atoi(argv[globalUtilOptind]);
29260 globalUtilOptind++;
29261 if ( nTimeOut < 0 )
29276 if ( pAbc->pGia == NULL )
29278 Abc_Print( -1,
"Abc_CommandAbc9False(): There is no AIG.\n" );
29281 pTemp =
Gia_ManCheckFalse( pAbc->pGia, nSlackMax, nTimeOut, fVerbose, fVeryVerbose );
29286 Abc_Print( -2,
"usage: &false [-ST num] [-vwh]\n" );
29287 Abc_Print( -2,
"\t detecting and elimintation false paths\n" );
29288 Abc_Print( -2,
"\t-S num : maximum slack to identify false paths [default = %d]\n", nSlackMax );
29289 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", nTimeOut );
29290 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
29291 Abc_Print( -2,
"\t-w : toggle printing additional information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
29292 Abc_Print( -2,
"\t-h : print the command usage\n");
29312 char * FileName, * pTemp;
29327 if ( globalUtilOptind >= argc )
29329 Abc_Print( -1,
"Command line switch \"-I\" should be followed by a char string.\n" );
29332 nInsDup = atoi(argv[globalUtilOptind]);
29333 globalUtilOptind++;
29359 Abc_Print( -1,
"Abc_CommandAbc9Miter(): The number of outputs should be even.\n" );
29362 if ( pAbc->pGia == NULL )
29364 Abc_Print( -1,
"Abc_CommandAbc9Miter(): There is no AIG.\n" );
29369 Abc_Print( 1,
"The miter (current AIG) is transformed by XORing POs pair-wise.\n" );
29375 if ( nArgcNew != 1 )
29377 Abc_Print( -1,
"File name is not given on the command line.\n" );
29382 FileName = pArgvNew[0];
29384 for ( pTemp = FileName; *pTemp; pTemp++ )
29385 if ( *pTemp ==
'>' )
29387 if ( (pFile = fopen( FileName,
"r" )) == NULL )
29389 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
29391 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
29397 if ( pSecond == NULL )
29399 Abc_Print( -1,
"Reading AIGER has failed.\n" );
29403 pAux =
Gia_ManMiter( pAbc->pGia, pSecond, nInsDup, fDualOut, fSeq, 0, fVerbose );
29409 Abc_Print( -2,
"usage: &miter [-I num] [-dstvh] <file>\n" );
29410 Abc_Print( -2,
"\t creates miter of two designs (current AIG vs. <file>)\n" );
29411 Abc_Print( -2,
"\t-I num : the number of last PIs to replicate [default = %d]\n", nInsDup );
29412 Abc_Print( -2,
"\t-d : toggle creating dual-output miter [default = %s]\n", fDualOut?
"yes":
"no" );
29413 Abc_Print( -2,
"\t-s : toggle creating sequential miter [default = %s]\n", fSeq?
"yes":
"no" );
29414 Abc_Print( -2,
"\t-t : toggle XORing pair-wise POs of the miter [default = %s]\n", fTrans?
"yes":
"no" );
29415 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
29416 Abc_Print( -2,
"\t-h : print the command usage\n");
29417 Abc_Print( -2,
"\t<file> : AIGER file with the design to miter\n");
29436 char * FileName, * pTemp, * pInit;
29439 int c, fVerbose = 0;
29456 if ( nArgcNew != 1 )
29458 Abc_Print( -1,
"File name is not given on the command line.\n" );
29462 FileName = pArgvNew[0];
29464 for ( pTemp = FileName; *pTemp; pTemp++ )
29465 if ( *pTemp ==
'>' )
29467 if ( (pFile = fopen( FileName,
"r" )) == NULL )
29469 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
29471 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
29492 Abc_Print( -2,
"usage: &miter2 [-vh] <file>\n" );
29493 Abc_Print( -2,
"\t creates miter of two copies of the design\n" );
29494 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
29495 Abc_Print( -2,
"\t-h : print the command usage\n");
29496 Abc_Print( -2,
"\t<file> : file name with flop initial values (0/1/x/X) [default = required]\n" );
29515 char * FileName, * pTemp;
29537 if ( nArgcNew != 1 )
29539 Abc_Print( -1,
"File name is not given on the command line.\n" );
29544 FileName = pArgvNew[0];
29546 for ( pTemp = FileName; *pTemp; pTemp++ )
29547 if ( *pTemp ==
'>' )
29549 if ( (pFile = fopen( FileName,
"r" )) == NULL )
29551 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
29553 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
29559 if ( pSecond == NULL )
29561 Abc_Print( -1,
"Reading AIGER has failed.\n" );
29570 Abc_Print( -2,
"usage: &append [-vh] <file>\n" );
29571 Abc_Print( -2,
"\t appends <file> to the current AIG using new PIs and POs\n" );
29572 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
29573 Abc_Print( -2,
"\t-h : print the command usage\n");
29574 Abc_Print( -2,
"\t<file> : AIGER file with the design to miter\n");
29614 if ( pAbc->pGia == NULL )
29616 Abc_Print( -1,
"Abc_CommandAbc9Scl(): There is no AIG.\n" );
29621 if ( pAbc->pGia->pAigExtra == NULL )
29623 printf(
"Timing manager is given but there is no GIA of boxes.\n" );
29632 Abc_Print( -1,
"The network is combinational.\n" );
29640 Abc_Print( -2,
"usage: &scl [-cevh]\n" );
29641 Abc_Print( -2,
"\t performs structural sequential cleanup\n" );
29642 Abc_Print( -2,
"\t-c : toggle removing stuck-at constant registers [default = %s]\n", fConst?
"yes":
"no" );
29643 Abc_Print( -2,
"\t-e : toggle removing equivalent-driver registers [default = %s]\n", fEquiv?
"yes":
"no" );
29644 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
29645 Abc_Print( -2,
"\t-h : print the command usage\n");
29673 if ( globalUtilOptind >= argc )
29675 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
29678 pPars->
nFrames = atoi(argv[globalUtilOptind]);
29679 globalUtilOptind++;
29684 if ( globalUtilOptind >= argc )
29686 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
29689 pPars->
nBTLimit = atoi(argv[globalUtilOptind]);
29690 globalUtilOptind++;
29695 if ( globalUtilOptind >= argc )
29697 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
29700 pPars->
nPrefix = atoi(argv[globalUtilOptind]);
29701 globalUtilOptind++;
29718 if ( pAbc->pGia == NULL )
29720 Abc_Print( -1,
"Abc_CommandAbc9Lcorr(): There is no AIG.\n" );
29725 if ( pAbc->pGia->pAigExtra == NULL )
29727 printf(
"Timing manager is given but there is no GIA of boxes.\n" );
29736 Abc_Print( -1,
"The network is combinational.\n" );
29744 Abc_Print( -2,
"usage: &lcorr [-FCP num] [-rcvh]\n" );
29745 Abc_Print( -2,
"\t performs latch correpondence computation\n" );
29746 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->
nBTLimit );
29747 Abc_Print( -2,
"\t-F num : the number of timeframes in inductive case [default = %d]\n", pPars->
nFrames );
29748 Abc_Print( -2,
"\t-P num : the number of timeframes in the prefix [default = %d]\n", pPars->
nPrefix );
29749 Abc_Print( -2,
"\t-r : toggle using implication rings during refinement [default = %s]\n", pPars->
fUseRings?
"yes":
"no" );
29750 Abc_Print( -2,
"\t-c : toggle using circuit-based SAT solver [default = %s]\n", pPars->
fUseCSat?
"yes":
"no" );
29751 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
29752 Abc_Print( -2,
"\t-h : print the command usage\n");
29779 if ( globalUtilOptind >= argc )
29781 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
29784 pPars->
nFrames = atoi(argv[globalUtilOptind]);
29785 globalUtilOptind++;
29790 if ( globalUtilOptind >= argc )
29792 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
29795 pPars->
nBTLimit = atoi(argv[globalUtilOptind]);
29796 globalUtilOptind++;
29801 if ( globalUtilOptind >= argc )
29803 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
29806 pPars->
nPrefix = atoi(argv[globalUtilOptind]);
29807 globalUtilOptind++;
29836 if ( pAbc->pGia == NULL )
29838 Abc_Print( -1,
"Abc_CommandAbc9Scorr(): There is no AIG.\n" );
29843 if ( pAbc->pGia->pAigExtra == NULL )
29845 printf(
"Timing manager is given but there is no GIA of boxes.\n" );
29854 Abc_Print( -1,
"The network is combinational.\n" );
29862 Abc_Print( -2,
"usage: &scorr [-FCP num] [-krecqwvh]\n" );
29863 Abc_Print( -2,
"\t performs signal correpondence computation\n" );
29864 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->
nBTLimit );
29865 Abc_Print( -2,
"\t-F num : the number of timeframes in inductive case [default = %d]\n", pPars->
nFrames );
29866 Abc_Print( -2,
"\t-P num : the number of timeframes in the prefix [default = %d]\n", pPars->
nPrefix );
29867 Abc_Print( -2,
"\t-k : toggle using constant correspondence [default = %s]\n", pPars->
fConstCorr?
"yes":
"no" );
29868 Abc_Print( -2,
"\t-r : toggle using implication rings during refinement [default = %s]\n", pPars->
fUseRings?
"yes":
"no" );
29869 Abc_Print( -2,
"\t-e : toggle using equivalences as choices [default = %s]\n", pPars->
fMakeChoices?
"yes":
"no" );
29870 Abc_Print( -2,
"\t-c : toggle using circuit-based SAT solver [default = %s]\n", pPars->
fUseCSat?
"yes":
"no" );
29871 Abc_Print( -2,
"\t-q : toggle quitting when PO is not a constant candidate [default = %s]\n", pPars->
fStopWhenGone?
"yes":
"no" );
29872 Abc_Print( -2,
"\t-w : toggle printing verbose info about equivalent flops [default = %s]\n", pPars->
fVerboseFlops?
"yes":
"no" );
29873 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
29874 Abc_Print( -2,
"\t-h : print the command usage\n");
29901 if ( globalUtilOptind >= argc )
29903 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
29906 pPars->
nBTLimit = atoi(argv[globalUtilOptind]);
29907 globalUtilOptind++;
29921 if ( pAbc->pGia == NULL )
29923 Abc_Print( -1,
"Abc_CommandAbc9Choice(): There is no AIG.\n" );
29931 Abc_Print( -2,
"usage: &choice [-C num] [-cvh]\n" );
29932 Abc_Print( -2,
"\t performs computation of structural choices\n" );
29933 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->
nBTLimit );
29934 Abc_Print( -2,
"\t-c : toggle using circuit-based SAT solver [default = %s]\n", pPars->
fUseCSat?
"yes":
"no" );
29935 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
29936 Abc_Print( -2,
"\t-h : print the command usage\n");
29964 if ( globalUtilOptind >= argc )
29966 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
29969 pPars->nBTLimit = atoi(argv[globalUtilOptind]);
29970 globalUtilOptind++;
29971 if ( pPars->nBTLimit < 0 )
29975 if ( globalUtilOptind >= argc )
29977 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
29980 pPars->nSatVarMax = atoi(argv[globalUtilOptind]);
29981 globalUtilOptind++;
29982 if ( pPars->nSatVarMax < 0 )
29986 if ( globalUtilOptind >= argc )
29988 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
29991 pPars->nCallsRecycle = atoi(argv[globalUtilOptind]);
29992 globalUtilOptind++;
29993 if ( pPars->nCallsRecycle < 0 )
29997 pPars->fNonChrono ^= 1;
30000 pPars->fCheckMiter ^= 1;
30003 pPars->fLearnCls ^= 1;
30009 pPars->fVerbose ^= 1;
30015 if ( pAbc->pGia == NULL )
30017 Abc_Print( -1,
"Abc_CommandAbc9Sat(): There is no AIG.\n" );
30024 if ( pPars->fLearnCls )
30025 vCounters =
Tas_ManSolveMiterNc( pAbc->pGia, pPars->nBTLimit, &vStatus, pPars->fVerbose );
30026 else if ( pPars->fNonChrono )
30027 vCounters =
Cbs_ManSolveMiterNc( pAbc->pGia, pPars->nBTLimit, &vStatus, pPars->fVerbose );
30029 vCounters =
Cbs_ManSolveMiter( pAbc->pGia, pPars->nBTLimit, &vStatus, pPars->fVerbose );
30041 Abc_Print( -2,
"usage: &sat [-CSN <num>] [-nmctvh]\n" );
30042 Abc_Print( -2,
"\t performs SAT solving for the combinational outputs\n" );
30043 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->nBTLimit );
30044 Abc_Print( -2,
"\t-S num : the min number of variables to recycle the solver [default = %d]\n", pPars->nSatVarMax );
30045 Abc_Print( -2,
"\t-N num : the min number of calls to recycle the solver [default = %d]\n", pPars->nCallsRecycle );
30046 Abc_Print( -2,
"\t-n : toggle using non-chronological backtracking [default = %s]\n", pPars->fNonChrono?
"yes":
"no" );
30047 Abc_Print( -2,
"\t-m : toggle miter vs. any circuit [default = %s]\n", pPars->fCheckMiter?
"miter":
"circuit" );
30048 Abc_Print( -2,
"\t-c : toggle using circuit-based SAT solver [default = %s]\n", fCSat?
"yes":
"no" );
30049 Abc_Print( -2,
"\t-t : toggle using learning in curcuit-based solver [default = %s]\n", pPars->fLearnCls?
"yes":
"no" );
30050 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
30051 Abc_Print( -2,
"\t-h : print the command usage\n");
30069 int c, nConfLimit = 0, nTimeOut = 0, fVerbose = 0;
30076 if ( globalUtilOptind >= argc )
30078 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
30081 nConfLimit = atoi(argv[globalUtilOptind]);
30082 globalUtilOptind++;
30083 if ( nConfLimit < 0 )
30087 if ( globalUtilOptind >= argc )
30089 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
30092 nTimeOut = atoi(argv[globalUtilOptind]);
30093 globalUtilOptind++;
30094 if ( nTimeOut < 0 )
30104 if ( pAbc->pGia == NULL )
30106 Abc_Print( -1,
"Abc_CommandAbc9SatEnum(): There is no AIG.\n" );
30113 Abc_Print( -2,
"usage: &satenum [-CT <num>] [-vh]\n" );
30114 Abc_Print( -2,
"\t enumerates solutions of the combinational miter\n" );
30115 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", nConfLimit );
30116 Abc_Print( -2,
"\t-T num : global timeout [default = %d]\n", nTimeOut );
30117 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
30118 Abc_Print( -2,
"\t-h : print the command usage\n");
30146 if ( globalUtilOptind >= argc )
30148 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
30151 pPars->
nWords = atoi(argv[globalUtilOptind]);
30152 globalUtilOptind++;
30153 if ( pPars->
nWords < 0 )
30157 if ( globalUtilOptind >= argc )
30159 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
30162 pPars->
nRounds = atoi(argv[globalUtilOptind]);
30163 globalUtilOptind++;
30168 if ( globalUtilOptind >= argc )
30170 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
30173 pPars->
nItersMax = atoi(argv[globalUtilOptind]);
30174 globalUtilOptind++;
30179 if ( globalUtilOptind >= argc )
30181 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
30184 pPars->
nLevelMax = atoi(argv[globalUtilOptind]);
30185 globalUtilOptind++;
30190 if ( globalUtilOptind >= argc )
30192 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
30195 pPars->
nDepthMax = atoi(argv[globalUtilOptind]);
30196 globalUtilOptind++;
30201 if ( globalUtilOptind >= argc )
30203 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
30206 pPars->
nBTLimit = atoi(argv[globalUtilOptind]);
30207 globalUtilOptind++;
30233 if ( pAbc->pGia == NULL )
30235 Abc_Print( -1,
"Abc_CommandAbc9Fraig(): There is no AIG.\n" );
30243 Abc_Print( -2,
"usage: &fraig [-WRILDC <num>] [-rmdcwvh]\n" );
30244 Abc_Print( -2,
"\t performs combinational SAT sweeping\n" );
30245 Abc_Print( -2,
"\t-W num : the number of simulation words [default = %d]\n", pPars->
nWords );
30246 Abc_Print( -2,
"\t-R num : the number of simulation rounds [default = %d]\n", pPars->
nRounds );
30247 Abc_Print( -2,
"\t-I num : the number of sweeping iterations [default = %d]\n", pPars->
nItersMax );
30248 Abc_Print( -2,
"\t-L num : the max number of levels of nodes to consider [default = %d]\n", pPars->
nLevelMax );
30249 Abc_Print( -2,
"\t-D num : the max number of steps of speculative reduction [default = %d]\n", pPars->
nDepthMax );
30250 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->
nBTLimit );
30251 Abc_Print( -2,
"\t-r : toggle the use of AIG rewriting [default = %s]\n", pPars->
fRewriting?
"yes":
"no" );
30252 Abc_Print( -2,
"\t-m : toggle miter vs. any circuit [default = %s]\n", pPars->
fCheckMiter?
"miter":
"circuit" );
30253 Abc_Print( -2,
"\t-d : toggle using double output miters [default = %s]\n", pPars->
fDualOut?
"yes":
"no" );
30254 Abc_Print( -2,
"\t-c : toggle using circuit-based solver [default = %s]\n", pPars->
fRunCSat?
"yes":
"no" );
30255 Abc_Print( -2,
"\t-w : toggle printing even more verbose information [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
30256 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
30257 Abc_Print( -2,
"\t-h : print the command usage\n");
30284 if ( globalUtilOptind >= argc )
30286 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
30289 pPars->nWords = atoi(argv[globalUtilOptind]);
30290 globalUtilOptind++;
30291 if ( pPars->nWords < 0 )
30295 if ( globalUtilOptind >= argc )
30297 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
30300 pPars->nBTLimit = atoi(argv[globalUtilOptind]);
30301 globalUtilOptind++;
30302 if ( pPars->nBTLimit < 0 )
30306 pPars->fAppend ^= 1;
30309 pPars->fVerify ^= 1;
30312 pPars->fVerbose ^= 1;
30318 if ( pAbc->pGia == NULL )
30320 Abc_Print( -1,
"Abc_CommandAbc9CFraig(): There is no AIG.\n" );
30328 Abc_Print( -2,
"usage: &cfraig [-WC <num>] [-acvh]\n" );
30329 Abc_Print( -2,
"\t performs combinational SAT sweeping under constraints\n" );
30330 Abc_Print( -2,
"\t which are present in the AIG or set manually using \"constr\"\n" );
30331 Abc_Print( -2,
"\t (constraints are listed as last POs and true when they are 0)\n" );
30332 Abc_Print( -2,
"\t-W num : the number of simulation words [default = %d]\n", pPars->nWords );
30333 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->nBTLimit );
30334 Abc_Print( -2,
"\t-a : toggle appending constraints to the result [default = %s]\n", pPars->fAppend?
"yes":
"no" );
30335 Abc_Print( -2,
"\t-c : toggle performing internal verification [default = %s]\n", pPars->fVerify?
"yes":
"no" );
30336 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
30337 Abc_Print( -2,
"\t-h : print the command usage\n");
30354 char * pFileNameIn = NULL;
30355 char pFileName[10] =
"gsrm.aig", pFileName2[10] =
"gsyn.aig";
30357 int c, fVerbose = 0;
30358 int fSynthesis = 0;
30359 int fSpeculate = 1;
30368 if ( globalUtilOptind >= argc )
30370 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a file name.\n" );
30374 globalUtilOptind++;
30397 if ( pAbc->pGia == NULL )
30399 Abc_Print( -1,
"Abc_CommandAbc9Srm(): There is no AIG.\n" );
30402 sprintf(pFileName,
"gsrm%s.aig", fSpeculate?
"" :
"s" );
30403 sprintf(pFileName2,
"gsyn%s.aig", fSpeculate?
"" :
"s" );
30404 pTemp =
Gia_ManSpecReduce( pAbc->pGia, fDualOut, fSynthesis, fSpeculate, fSkipSome, fVerbose );
30412 Gia_AigerWrite( pTemp, pFileNameIn ? pFileNameIn : pFileName, 0, 0 );
30413 Abc_Print( 1,
"Speculatively reduced model was written into file \"%s\".\n", pFileName );
30426 Abc_Print( 1,
"Reduced original network was written into file \"%s\".\n", pFileName2 );
30434 Abc_Print( -2,
"usage: &srm [-A file] [-drsfvh]\n" );
30435 Abc_Print( -2,
"\t writes speculatively reduced model into file \"%s\"\n", pFileName );
30436 Abc_Print( -2,
"\t-A file : file name for dumping speculative-reduced model [default = \"gsrm.aig\"]\n" );
30437 Abc_Print( -2,
"\t-d : toggle creating dual-output miter [default = %s]\n", fDualOut?
"yes":
"no" );
30438 Abc_Print( -2,
"\t-r : toggle writing reduced network for synthesis [default = %s]\n", fSynthesis?
"yes":
"no" );
30439 Abc_Print( -2,
"\t-s : toggle using speculation at the internal nodes [default = %s]\n", fSpeculate?
"yes":
"no" );
30440 Abc_Print( -2,
"\t-f : toggle filtering to remove redundant equivalences [default = %s]\n", fSkipSome?
"yes":
"no" );
30441 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
30442 Abc_Print( -2,
"\t-h : print the command usage\n");
30460 char pFileName[10], * pFileName1, * pFileName2;
30462 int fLatchA = 0, fLatchB = 0;
30463 int c, fVerbose = 0;
30484 if ( pAbc->pGia == NULL )
30486 Abc_Print( -1,
"Abc_CommandAbc9Srm2(): There is no AIG.\n" );
30489 if ( pAbc->pGia->pReprs == NULL || pAbc->pGia->pNexts == NULL )
30491 Abc_Print( -1,
"Equivalences are not defined.\n" );
30494 if ( argc != globalUtilOptind + 2 )
30496 Abc_Print( -1,
"Abc_CommandAbc9Srm2(): Expecting two file names on the command line.\n" );
30501 pFileName2 = argv[globalUtilOptind+1];
30503 sprintf(pFileName,
"gsrm.aig" );
30515 Abc_Print( -1,
"Filtering equivalences has failed.\n" );
30527 Abc_Print( 1,
"Speculatively reduced model was written into file \"%s\".\n", pFileName );
30534 Abc_Print( -2,
"usage: &srm2 [-abvh] <PartA_FileName> <PartB_FileName>\n" );
30535 Abc_Print( -2,
"\t writes speculatively reduced model into file \"%s\"\n", pFileName );
30536 Abc_Print( -2,
"\t only preserves equivalences across PartA and PartB\n" );
30537 Abc_Print( -2,
"\t-a : toggle using latches only in PartA [default = %s]\n", fLatchA?
"yes":
"no" );
30538 Abc_Print( -2,
"\t-b : toggle using latches only in PartB [default = %s]\n", fLatchB?
"yes":
"no" );
30539 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
30540 Abc_Print( -2,
"\t-h : print the command usage\n");
30557 char * pFileName1 = NULL, * pFileName2 = NULL;
30558 int fFlopsOnly = 0, fFlopsWith = 0, fUseRiDrivers = 0;
30559 int c, fVerbose = 0;
30572 fUseRiDrivers ^= 1;
30583 if ( pAbc->pGia == NULL )
30585 Abc_Print( -1,
"Abc_CommandAbc9Srm2(): There is no AIG.\n" );
30588 if ( pAbc->pGia->pReprs == NULL || pAbc->pGia->pNexts == NULL )
30590 Abc_Print( -1,
"Equivalences are not defined.\n" );
30593 if ( argc != globalUtilOptind && argc != globalUtilOptind + 2 )
30595 Abc_Print( -1,
"Abc_CommandAbc9Srm2(): Expecting two file names on the command line.\n" );
30599 if ( fFlopsOnly ^ fFlopsWith )
30602 if ( argc == globalUtilOptind + 2 )
30605 pFileName2 = argv[globalUtilOptind+1];
30608 Abc_Print( -1,
"Filtering equivalences using PartA and PartB has failed.\n" );
30615 Abc_Print( -2,
"usage: &filter [-fgivh] <PartA_FileName> <PartB_FileName>\n" );
30616 Abc_Print( -2,
"\t performs filtering of equivalence classes\n" );
30617 Abc_Print( -2,
"\t (if Parts A/B are given, removes classes composed of one part)\n" );
30618 Abc_Print( -2,
"\t-f : toggle removing all elements except flops [default = %s]\n", fFlopsOnly?
"yes":
"no" );
30619 Abc_Print( -2,
"\t-g : toggle removing classes without flops [default = %s]\n", fFlopsWith?
"yes":
"no" );
30620 Abc_Print( -2,
"\t-i : toggle using flop inputs instead of flop outputs [default = %s]\n", fUseRiDrivers?
"yes":
"no" );
30621 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
30622 Abc_Print( -2,
"\t-h : print the command usage\n");
30640 int c, fVerbose = 0;
30663 if ( pAbc->pGia == NULL )
30665 Abc_Print( -1,
"Abc_CommandAbc9Reduce(): There is no AIG.\n" );
30680 Abc_Print( -2,
"usage: &reduce [-advh]\n" );
30681 Abc_Print( -2,
"\t reduces the circuit using equivalence classes\n" );
30682 Abc_Print( -2,
"\t-a : toggle merging all equivalences [default = %s]\n", fUseAll?
"yes":
"no" );
30683 Abc_Print( -2,
"\t-d : toggle using dual-output merging [default = %s]\n", fDualOut?
"yes":
"no" );
30684 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
30685 Abc_Print( -2,
"\t-h : print the command usage\n");
30704 int c, fVerbose = 0;
30723 if ( pAbc->pGia == NULL )
30725 Abc_Print( -1,
"Abc_CommandAbc9EquivMark(): There is no AIG.\n" );
30728 if ( argc != globalUtilOptind + 1 )
30737 Abc_Print( -2,
"usage: &equiv_mark [-fvh] <miter.aig>\n" );
30738 Abc_Print( -2,
"\t marks equivalences using an external miter\n" );
30739 Abc_Print( -2,
"\t-f : toggle the use of filtered equivalences [default = %s]\n", fSkipSome?
"yes":
"no" );
30740 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
30741 Abc_Print( -2,
"\t-h : print the command usage\n");
30742 Abc_Print( -2,
"\t<miter.aig> : file with the external miter to read\n");
30744 Abc_Print( -2,
"\t The external miter should be generated by &srm -s\n" );
30745 Abc_Print( -2,
"\t and (partially) solved by any verification engine(s).\n" );
30746 Abc_Print( -2,
"\t The external miter should have as many POs as\n" );
30747 Abc_Print( -2,
"\t the number of POs in the current AIG plus\n" );
30748 Abc_Print( -2,
"\t the number of equivalences in the current AIG.\n" );
30749 Abc_Print( -2,
"\t If some POs are proved, the corresponding equivs\n" );
30750 Abc_Print( -2,
"\t are marked as proved, to be reduced by &reduce.\n" );
30768 int c, fVerbose = 0;
30783 if ( pAbc->pGia == NULL )
30785 Abc_Print( -1,
"Abc_CommandAbc9EquivFilter(): There is no AIG.\n" );
30792 Abc_Print( -2,
"usage: &equiv_filter [-vh]\n" );
30793 Abc_Print( -2,
"\t filters equivalence candidates after disproving some SRM outputs\n" );
30794 Abc_Print( -2,
"\t (the array of disproved outputs should be given as pAbc->vAbcObjIds)\n" );
30795 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
30796 Abc_Print( -2,
"\t-h : print the command usage\n");
30816 char * FileName, * pTemp;
30818 int c, nArgcNew, fMiter = 0, fDualOutput = 0, fDumpMiter = 0;
30826 if ( globalUtilOptind >= argc )
30828 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
30831 pPars->
nBTLimit = atoi(argv[globalUtilOptind]);
30832 globalUtilOptind++;
30837 if ( globalUtilOptind >= argc )
30839 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
30842 pPars->
TimeLimit = atoi(argv[globalUtilOptind]);
30843 globalUtilOptind++;
30874 Abc_Print( -1,
"The dual-output miter should have an even number of outputs.\n" );
30877 Abc_Print( 1,
"Assuming the current network is a double-output miter. (Conflict limit = %d.)\n", pPars->
nBTLimit );
30883 Abc_Print( 1,
"Assuming the current network is a single-output miter. (Conflict limit = %d.)\n", pPars->
nBTLimit );
30894 if ( nArgcNew != 1 )
30896 if ( pAbc->pGia->pSpec == NULL )
30898 Abc_Print( -1,
"File name is not given on the command line.\n" );
30901 FileName = pAbc->pGia->pSpec;
30904 FileName = pArgvNew[0];
30906 for ( pTemp = FileName; *pTemp; pTemp++ )
30907 if ( *pTemp ==
'>' )
30909 if ( (pFile = fopen( FileName,
"r" )) == NULL )
30911 Abc_Print( -1,
"Cannot open input file \"%s\". ", FileName );
30913 Abc_Print( 1,
"Did you mean \"%s\"?", FileName );
30919 if ( pSecond == NULL )
30921 Abc_Print( -1,
"Reading AIGER has failed.\n" );
30930 Abc_Print( 0,
"The verification miter is written into file \"%s\".\n",
"cec_miter.aig" );
30941 Abc_Print( -2,
"usage: &cec [-CT num] [-nmdavh]\n" );
30942 Abc_Print( -2,
"\t new combinational equivalence checker\n" );
30943 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->
nBTLimit );
30944 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", pPars->
TimeLimit );
30945 Abc_Print( -2,
"\t-n : toggle using naive SAT-based checking [default = %s]\n", pPars->
fNaive?
"yes":
"no");
30946 Abc_Print( -2,
"\t-m : toggle miter vs. two circuits [default = %s]\n", fMiter?
"miter":
"two circuits");
30947 Abc_Print( -2,
"\t-d : toggle using dual output miter [default = %s]\n", fDualOutput?
"yes":
"no");
30948 Abc_Print( -2,
"\t-a : toggle writing dual-output miter [default = %s]\n", fDumpMiter?
"yes":
"no");
30949 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no");
30950 Abc_Print( -2,
"\t-h : print the command usage\n");
30967 char * pFileSpec = NULL;
30968 int c, nBTLimit = 1000, nTimeLim = 0, fSeq = 0, fVerbose = 0;
30975 if ( globalUtilOptind >= argc )
30977 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
30980 nBTLimit = atoi(argv[globalUtilOptind]);
30981 globalUtilOptind++;
30982 if ( nBTLimit < 0 )
30986 if ( globalUtilOptind >= argc )
30988 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
30991 nTimeLim = atoi(argv[globalUtilOptind]);
30992 globalUtilOptind++;
30993 if ( nTimeLim < 0 )
31008 if ( argc == globalUtilOptind + 1 )
31012 printf(
"Taking spec from file \"%s\".\n", pFileSpec );
31018 Abc_Print( -2,
"usage: &verify [-CT num] [-svh] <file>\n" );
31019 Abc_Print( -2,
"\t performs verification of combinational design\n" );
31020 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", nBTLimit );
31021 Abc_Print( -2,
"\t-T num : approximate runtime limit in seconds [default = %d]\n", nTimeLim );
31022 Abc_Print( -2,
"\t-s : toggle using sequential verification [default = %s]\n", fSeq?
"yes":
"no");
31023 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no");
31024 Abc_Print( -2,
"\t-h : print the command usage\n");
31025 Abc_Print( -2,
"\t<file> : optional file name with the spec [default = not used\n" );
31052 if ( globalUtilOptind >= argc )
31054 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
31057 pPars->nWords = atoi(argv[globalUtilOptind]);
31058 globalUtilOptind++;
31059 if ( pPars->nWords < 0 )
31063 if ( globalUtilOptind >= argc )
31065 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
31068 pPars->nBTLimit = atoi(argv[globalUtilOptind]);
31069 globalUtilOptind++;
31070 if ( pPars->nBTLimit < 0 )
31074 if ( globalUtilOptind >= argc )
31076 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
31079 pPars->nSatVarMax = atoi(argv[globalUtilOptind]);
31080 globalUtilOptind++;
31081 if ( pPars->nSatVarMax < 0 )
31085 pPars->fSimulateTfo ^= 1;
31088 pPars->fVerbose ^= 1;
31096 if ( pAbc->pGia == NULL )
31098 Abc_Print( -1,
"Abc_CommandAbc9Sweep(): There is no AIG.\n" );
31101 if (
Gia_ManBoxNum(pAbc->pGia) && pAbc->pGia->pAigExtra == NULL )
31103 printf(
"Timing manager is given but there is no GIA of boxes.\n" );
31114 Abc_Print( -2,
"usage: &sweep [-WCS num] [-tvh]\n" );
31115 Abc_Print( -2,
"\t performs SAT sweeping for AIG with boxes\n" );
31116 Abc_Print( -2,
"\t-W num : the max number of simulation words [default = %d]\n", pPars->nWords );
31117 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->nBTLimit );
31118 Abc_Print( -2,
"\t-S num : the max number of SAT variables [default = %d]\n", pPars->nSatVarMax );
31119 Abc_Print( -2,
"\t-t : toggle simulation of the TFO classes [default = %s]\n", pPars->fSimulateTfo?
"yes":
"no" );
31120 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
31121 Abc_Print( -2,
"\t-h : print the command usage\n");
31140 int fClustered = 1;
31149 if ( globalUtilOptind >= argc )
31151 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
31154 nIters = atoi(argv[globalUtilOptind]);
31155 globalUtilOptind++;
31171 if ( pAbc->pGia == NULL )
31173 Abc_Print( -1,
"Abc_CommandAbc9Force(): There is no AIG.\n" );
31180 Abc_Print( -2,
"usage: &force [-I <num>] [-cvh]\n" );
31181 Abc_Print( -2,
"\t one-dimensional placement algorithm FORCE introduced by\n" );
31182 Abc_Print( -2,
"\t F. A. Aloul, I. L. Markov, and K. A. Sakallah (GLSVLSI�03).\n" );
31183 Abc_Print( -2,
"\t-I num : the number of refinement iterations [default = %d]\n", nIters );
31184 Abc_Print( -2,
"\t-c : toggle clustered representation [default = %s]\n", fClustered?
"yes":
"no");
31185 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no");
31186 Abc_Print( -2,
"\t-h : print the command usage\n");
31220 if ( globalUtilOptind >= argc )
31222 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
31225 pPars->
nDims = atoi(argv[globalUtilOptind]);
31226 globalUtilOptind++;
31227 if ( pPars->
nDims < 0 )
31231 if ( globalUtilOptind >= argc )
31233 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
31236 pPars->
nIters = atoi(argv[globalUtilOptind]);
31237 globalUtilOptind++;
31238 if ( pPars->
nIters < 0 )
31265 if ( pAbc->pGia == NULL )
31267 Abc_Print( -1,
"Abc_CommandAbc9Embed(): There is no AIG.\n" );
31274 Abc_Print( -2,
"usage: &embed [-DI <num>] [-rdlscvh]\n" );
31275 Abc_Print( -2,
"\t fast placement based on high-dimensional embedding from\n" );
31276 Abc_Print( -2,
"\t D. Harel and Y. Koren, \"Graph drawing by high-dimensional\n" );
31277 Abc_Print( -2,
"\t embedding\", J. Graph Algs & Apps, 2004, Vol 8(2), pp. 195-217\n" );
31278 Abc_Print( -2,
"\t-D num : the number of dimensions for embedding [default = %d]\n", pPars->
nDims );
31279 Abc_Print( -2,
"\t-I num : the number of refinement iterations [default = %d]\n", pPars->
nIters );
31280 Abc_Print( -2,
"\t-r : toggle the use of refinement [default = %s]\n", pPars->
fRefine?
"yes":
"no");
31281 Abc_Print( -2,
"\t-c : toggle clustered representation [default = %s]\n", pPars->
fCluster?
"yes":
"no");
31282 Abc_Print( -2,
"\t-d : toggle dumping placement into a Gnuplot file [default = %s]\n", pPars->
fDump?
"yes":
"no");
31283 Abc_Print( -2,
"\t-l : toggle dumping Gnuplot for large placement [default = %s]\n", pPars->
fDumpLarge?
"yes":
"no");
31284 Abc_Print( -2,
"\t-s : toggle showing image if Gnuplot is installed [default = %s]\n", pPars->
fShowImage?
"yes":
"no");
31285 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no");
31286 Abc_Print( -2,
"\t-h : print the command usage\n");
31305 int nTimeWindow = 0;
31307 int nRelaxRatio = 0;
31308 int c, fVerbose = 0;
31315 if ( globalUtilOptind >= argc )
31317 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
31320 nLevelMax = atoi(argv[globalUtilOptind]);
31321 globalUtilOptind++;
31322 if ( nLevelMax < 0 )
31326 if ( globalUtilOptind >= argc )
31328 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
31331 nTimeWindow = atoi(argv[globalUtilOptind]);
31332 globalUtilOptind++;
31333 if ( nTimeWindow < 0 )
31337 if ( globalUtilOptind >= argc )
31339 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
31342 nCutNum = atoi(argv[globalUtilOptind]);
31343 globalUtilOptind++;
31348 if ( globalUtilOptind >= argc )
31350 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
31353 nRelaxRatio = atoi(argv[globalUtilOptind]);
31354 globalUtilOptind++;
31355 if ( nRelaxRatio < 0 )
31367 if ( pAbc->pGia == NULL )
31369 Abc_Print( -1,
"Abc_CommandAbc9Sopb(): There is no AIG.\n" );
31372 if ( nLevelMax || nTimeWindow )
31380 Abc_Print( -2,
"usage: &sopb [-LWCR num] [-vh]\n" );
31381 Abc_Print( -2,
"\t performs SOP balancing\n" );
31382 Abc_Print( -2,
"\t-L num : optimize paths above this level [default = %d]\n", nLevelMax );
31383 Abc_Print( -2,
"\t-W num : optimize paths falling into this window [default = %d]\n", nTimeWindow );
31384 Abc_Print( -2,
"\t-C num : the number of cuts at a node [default = %d]\n", nCutNum );
31385 Abc_Print( -2,
"\t-R num : the delay relaxation ratio (num >= 0) [default = %d]\n", nRelaxRatio );
31386 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
31387 Abc_Print( -2,
"\t-h : print the command usage\n");
31406 int nTimeWindow = 0;
31409 int nRelaxRatio = 0;
31410 int c, fVerbose = 0;
31417 if ( globalUtilOptind >= argc )
31419 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
31422 nLevelMax = atoi(argv[globalUtilOptind]);
31423 globalUtilOptind++;
31424 if ( nLevelMax < 0 )
31428 if ( globalUtilOptind >= argc )
31430 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
31433 nTimeWindow = atoi(argv[globalUtilOptind]);
31434 globalUtilOptind++;
31435 if ( nTimeWindow < 0 )
31439 if ( globalUtilOptind >= argc )
31441 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
31444 nLutSize = atoi(argv[globalUtilOptind]);
31445 globalUtilOptind++;
31446 if ( nLutSize < 0 )
31450 if ( globalUtilOptind >= argc )
31452 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
31455 nCutNum = atoi(argv[globalUtilOptind]);
31456 globalUtilOptind++;
31461 if ( globalUtilOptind >= argc )
31463 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
31466 nRelaxRatio = atoi(argv[globalUtilOptind]);
31467 globalUtilOptind++;
31468 if ( nRelaxRatio < 0 )
31480 if ( pAbc->pGia == NULL )
31482 Abc_Print( -1,
"Abc_CommandAbc9Dsdb(): There is no AIG.\n" );
31487 printf(
"Abc_CommandAbc9Dsdb(): Size of the required DSD manager (%d) exceeds the precompiled limit (%d) (change parameter DAU_MAX_VAR).\n", nLutSize,
DAU_MAX_VAR );
31492 printf(
"Abc_CommandAbc9Dsdb(): Incompatible size of the DSD manager (run \"dsd_free -b\").\n" );
31495 if ( nLevelMax || nTimeWindow )
31503 Abc_Print( -2,
"usage: &dsdb [-LWKCR num] [-vh]\n" );
31504 Abc_Print( -2,
"\t performs DSD balancing\n" );
31505 Abc_Print( -2,
"\t-L num : optimize paths above this level [default = %d]\n", nLevelMax );
31506 Abc_Print( -2,
"\t-W num : optimize paths falling into this window [default = %d]\n", nTimeWindow );
31507 Abc_Print( -2,
"\t-K num : the number of LUT inputs (LUT size) [default = %d]\n", nLutSize );
31508 Abc_Print( -2,
"\t-C num : the number of cuts at a node [default = %d]\n", nCutNum );
31509 Abc_Print( -2,
"\t-R num : the delay relaxation ratio (num >= 0) [default = %d]\n", nRelaxRatio );
31510 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
31511 Abc_Print( -2,
"\t-h : print the command usage\n");
31528 extern void Gia_ManPerformFlow(
int fIsMapped,
int nAnds,
int nLevels,
int nLutSize,
int nCutNum,
int fMinAve,
int fUseMfs,
int fVerbose );
31533 int c, fVerbose = 0;
31540 if ( globalUtilOptind >= argc )
31542 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
31545 nLutSize = atoi(argv[globalUtilOptind]);
31546 globalUtilOptind++;
31547 if ( nLutSize < 0 )
31551 if ( globalUtilOptind >= argc )
31553 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
31556 nCutNum = atoi(argv[globalUtilOptind]);
31557 globalUtilOptind++;
31576 if ( pAbc->pGia == NULL )
31578 Abc_Print( -1,
"Abc_CommandAbc9Flow(): There is no AIG.\n" );
31585 Abc_Print( -2,
"usage: &flow [-KC num] [-tmvh]\n" );
31586 Abc_Print( -2,
"\t integration optimization and mapping flow\n" );
31587 Abc_Print( -2,
"\t-K num : the number of LUT inputs (LUT size) [default = %d]\n", nLutSize );
31588 Abc_Print( -2,
"\t-C num : the number of cuts at a node [default = %d]\n", nCutNum );
31589 Abc_Print( -2,
"\t-t : toggle minimizing average rather than max delay [default = %s]\n", fMinAve?
"yes":
"no" );
31590 Abc_Print( -2,
"\t-m : toggle using \"mfs2\" in the script [default = %s]\n", fUseMfs?
"yes":
"no" );
31591 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
31592 Abc_Print( -2,
"\t-h : print the command usage\n");
31609 extern void Gia_ManPerformFlow2(
int fIsMapped,
int nAnds,
int nLevels,
int nLutSize,
int nCutNum,
int fBalance,
int fMinAve,
int fUseMfs,
int fVerbose );
31615 int c, fVerbose = 0;
31622 if ( globalUtilOptind >= argc )
31624 Abc_Print( -1,
"Command line switch \"-K\" should be followed by an integer.\n" );
31627 nLutSize = atoi(argv[globalUtilOptind]);
31628 globalUtilOptind++;
31629 if ( nLutSize < 0 )
31633 if ( globalUtilOptind >= argc )
31635 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
31638 nCutNum = atoi(argv[globalUtilOptind]);
31639 globalUtilOptind++;
31661 if ( pAbc->pGia == NULL )
31663 Abc_Print( -1,
"Abc_CommandAbc9Flow2(): There is no AIG.\n" );
31670 Abc_Print( -2,
"usage: &flow2 [-KC num] [-btmvh]\n" );
31671 Abc_Print( -2,
"\t integration optimization and mapping flow\n" );
31672 Abc_Print( -2,
"\t-K num : the number of LUT inputs (LUT size) [default = %d]\n", nLutSize );
31673 Abc_Print( -2,
"\t-C num : the number of cuts at a node [default = %d]\n", nCutNum );
31674 Abc_Print( -2,
"\t-b : toggle using SOP balancing during synthesis [default = %s]\n", fBalance?
"yes":
"no" );
31675 Abc_Print( -2,
"\t-t : toggle minimizing average (not maximum) level [default = %s]\n", fMinAve?
"yes":
"no" );
31676 Abc_Print( -2,
"\t-m : toggle using \"mfs2\" in the script [default = %s]\n", fUseMfs?
"yes":
"no" );
31677 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
31678 Abc_Print( -2,
"\t-h : print the command usage\n");
31702 if ( pAbc->pLibLut == NULL )
31704 Abc_Print( -1,
"LUT library is not given. Using default LUT library.\n" );
31709 while ( ( c =
Extra_UtilGetopt( argc, argv,
"KCFAGRDEWSTqalepmrsdbgxyojfuikztncvh" ) ) != EOF )
31714 if ( globalUtilOptind >= argc )
31716 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
31719 pPars->
nLutSize = atoi(argv[globalUtilOptind]);
31720 globalUtilOptind++;
31727 if ( globalUtilOptind >= argc )
31729 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a positive integer.\n" );
31732 pPars->
nCutsMax = atoi(argv[globalUtilOptind]);
31733 globalUtilOptind++;
31738 if ( globalUtilOptind >= argc )
31740 Abc_Print( -1,
"Command line switch \"-F\" should be followed by a positive integer.\n" );
31743 pPars->
nFlowIters = atoi(argv[globalUtilOptind]);
31744 globalUtilOptind++;
31749 if ( globalUtilOptind >= argc )
31751 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a positive integer.\n" );
31754 pPars->
nAreaIters = atoi(argv[globalUtilOptind]);
31755 globalUtilOptind++;
31760 if ( globalUtilOptind >= argc )
31762 Abc_Print( -1,
"Command line switch \"-G\" should be followed by a positive integer no less than 3.\n" );
31765 pPars->
nGateSize = atoi(argv[globalUtilOptind]);
31766 globalUtilOptind++;
31771 if ( globalUtilOptind >= argc )
31773 Abc_Print( 1,
"Command line switch \"-R\" should be followed by a floating point number.\n" );
31776 pPars->
nRelaxRatio = atoi(argv[globalUtilOptind]);
31777 globalUtilOptind++;
31782 if ( globalUtilOptind >= argc )
31784 Abc_Print( -1,
"Command line switch \"-T\" should be followed by a positive integer 0,1,or 2.\n" );
31787 pPars->
nStructType = atoi(argv[globalUtilOptind]);
31788 globalUtilOptind++;
31793 if ( globalUtilOptind >= argc )
31795 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
31799 globalUtilOptind++;
31804 if ( globalUtilOptind >= argc )
31806 Abc_Print( -1,
"Command line switch \"-E\" should be followed by a floating point number.\n" );
31809 pPars->
Epsilon = (float)
atof(argv[globalUtilOptind]);
31810 globalUtilOptind++;
31815 if ( globalUtilOptind >= argc )
31817 Abc_Print( -1,
"Command line switch \"-W\" should be followed by a floating point number.\n" );
31821 globalUtilOptind++;
31826 if ( globalUtilOptind >= argc )
31828 Abc_Print( -1,
"Command line switch \"-S\" should be followed by string.\n" );
31832 globalUtilOptind++;
31835 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a 2- or 3-char string (e.g. \"44\" or \"555\").\n" );
31917 if ( pAbc->pGia == NULL )
31919 Abc_Print( -1,
"Empty GIA network.\n" );
31924 Abc_Print( -1,
"This command does not work with barrier buffers.\n" );
31929 Abc_Print( -1,
"Current AIG has mapping. Run \"&st\".\n" );
31935 if ( pPars->
pLutLib == NULL )
31937 Abc_Print( -1,
"The LUT library is not given.\n" );
31955 Abc_Print( -1,
"Incorrect number of cuts.\n" );
31971 Abc_Print( -1,
"This feature only works for {4,5,6}-LUTs.\n" );
31979 Abc_Print( -1,
"Only one additional check can be performed at the same time.\n" );
31986 Abc_Print( -1,
"This feature only works for {6,7}-LUTs.\n" );
31996 Abc_Print( -1,
"This feature only works for odd-sized LUTs.\n" );
32004 if ( pDsdMan == NULL )
32006 Abc_Print( -1,
"DSD manager is not available.\n" );
32016 Abc_Print( -1,
"DSD manager is not matched with any particular cell.\n" );
32027 Abc_Print( -1,
"Switches -f and -u are not compatible.\n" );
32032 Abc_Print( -1,
"This feature only works for {6,7,8}-LUTs.\n" );
32042 Abc_Print( -1,
"Incompatible options (-S and -x).\n" );
32047 Abc_Print( -1,
"This feature only works for [6;16]-LUTs.\n" );
32104 printf(
"DSD only works for LUT structures XY.\n" );
32109 printf(
"DSD manager has incompatible number of variables.\n" );
32114 printf(
"DSD manager has different LUT size.\n" );
32121 printf(
"Size of required DSD manager (%d) exceeds the precompiled limit (%d) (change parameter DAU_MAX_VAR).\n", LutSize,
DAU_MAX_VAR );
32132 printf(
"LMS manager is not running (use \"rec_start3\").\n" );
32148 if ( pAbc->pGia->pManTime && pAbc->pLibBox == NULL )
32150 Abc_Print( -1,
"Design has boxes but box library is not entered.\n" );
32156 if ( pNew == NULL )
32158 Abc_Print( -1,
"Abc_CommandAbc9If(): Mapping of GIA has failed.\n" );
32166 sprintf(Buffer,
"best possible" );
32170 sprintf(LutSize,
"library" );
32173 Abc_Print( -2,
"usage: &if [-KCFAGRT num] [-DEW float] [-S str] [-qarlepmsdbgxyojfuikztncvh]\n" );
32174 Abc_Print( -2,
"\t performs FPGA technology mapping of the network\n" );
32175 Abc_Print( -2,
"\t-K num : the number of LUT inputs (2 < num < %d) [default = %s]\n",
IF_MAX_LUTSIZE+1, LutSize );
32176 Abc_Print( -2,
"\t-C num : the max number of priority cuts (0 < num < 2^12) [default = %d]\n", pPars->
nCutsMax );
32177 Abc_Print( -2,
"\t-F num : the number of area flow recovery iterations (num >= 0) [default = %d]\n", pPars->
nFlowIters );
32178 Abc_Print( -2,
"\t-A num : the number of exact area recovery iterations (num >= 0) [default = %d]\n", pPars->
nAreaIters );
32179 Abc_Print( -2,
"\t-G num : the max AND/OR gate size for mapping (0 = unused) [default = %d]\n", pPars->
nGateSize );
32180 Abc_Print( -2,
"\t-R num : the delay relaxation ratio (num >= 0) [default = %d]\n", pPars->
nRelaxRatio );
32181 Abc_Print( -2,
"\t-T num : the type of LUT structures [default = any]\n", pPars->
nStructType );
32182 Abc_Print( -2,
"\t-D float : sets the delay constraint for the mapping [default = %s]\n", Buffer );
32183 Abc_Print( -2,
"\t-E float : sets epsilon used for tie-breaking [default = %f]\n", pPars->
Epsilon );
32184 Abc_Print( -2,
"\t-W float : sets wire delay between adjects LUTs [default = %f]\n", pPars->
WireDelay );
32186 Abc_Print( -2,
"\t-q : toggles preprocessing using several starting points [default = %s]\n", pPars->
fPreprocess?
"yes":
"no" );
32187 Abc_Print( -2,
"\t-a : toggles area-oriented mapping [default = %s]\n", pPars->
fArea?
"yes":
"no" );
32188 Abc_Print( -2,
"\t-r : enables expansion/reduction of the best cuts [default = %s]\n", pPars->
fExpRed?
"yes":
"no" );
32189 Abc_Print( -2,
"\t-l : optimizes latch paths for delay, other paths for area [default = %s]\n", pPars->
fLatchPaths?
"yes":
"no" );
32190 Abc_Print( -2,
"\t-e : uses edge-based cut selection heuristics [default = %s]\n", pPars->
fEdge?
"yes":
"no" );
32191 Abc_Print( -2,
"\t-p : uses power-aware cut selection heuristics [default = %s]\n", pPars->
fPower?
"yes":
"no" );
32192 Abc_Print( -2,
"\t-m : enables cut minimization by removing vacuous variables [default = %s]\n", pPars->
fCutMin?
"yes":
"no" );
32193 Abc_Print( -2,
"\t-s : toggles delay-oriented mapping used with -S <NN> [default = %s]\n", pPars->
fDelayOptLut?
"yes":
"no" );
32194 Abc_Print( -2,
"\t-d : toggles deriving local AIGs using bi-decomposition [default = %s]\n", pPars->
fBidec?
"yes":
"no" );
32195 Abc_Print( -2,
"\t-b : toggles the use of one special feature [default = %s]\n", pPars->
fUseBat?
"yes":
"no" );
32196 Abc_Print( -2,
"\t-g : toggles delay optimization by SOP balancing [default = %s]\n", pPars->
fDelayOpt?
"yes":
"no" );
32197 Abc_Print( -2,
"\t-x : toggles delay optimization by DSD balancing [default = %s]\n", pPars->
fDsdBalance?
"yes":
"no" );
32198 Abc_Print( -2,
"\t-y : toggles delay optimization with recorded library [default = %s]\n", pPars->
fUserRecLib?
"yes":
"no" );
32199 Abc_Print( -2,
"\t-o : toggles using buffers to decouple combinational outputs [default = %s]\n", pPars->
fUseBuffs?
"yes":
"no" );
32200 Abc_Print( -2,
"\t-j : toggles enabling additional check [default = %s]\n", pPars->
fEnableCheck07?
"yes":
"no" );
32201 Abc_Print( -2,
"\t-f : toggles enabling additional check [default = %s]\n", pPars->
fEnableCheck75?
"yes":
"no" );
32202 Abc_Print( -2,
"\t-u : toggles enabling additional check [default = %s]\n", pPars->
fEnableCheck75u?
"yes":
"no" );
32203 Abc_Print( -2,
"\t-i : toggles using cofactoring variables [default = %s]\n", pPars->
fUseCofVars?
"yes":
"no" );
32204 Abc_Print( -2,
"\t-k : toggles matching based on precomputed DSD manager [default = %s]\n", pPars->
fUseDsdTune?
"yes":
"no" );
32205 Abc_Print( -2,
"\t-z : toggles deriving LUTs when mapping into LUT structures [default = %s]\n", pPars->
fDeriveLuts?
"yes":
"no" );
32206 Abc_Print( -2,
"\t-t : toggles optimizing average rather than maximum level [default = %s]\n", pPars->
fDoAverage?
"yes":
"no" );
32207 Abc_Print( -2,
"\t-n : toggles computing DSDs of the cut functions [default = %s]\n", pPars->
fUseDsd?
"yes":
"no" );
32208 Abc_Print( -2,
"\t-c : toggles computing truth tables in a new way [default = %s]\n", pPars->
fUseTtPerm?
"yes":
"no" );
32209 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
32210 Abc_Print( -2,
"\t-h : prints the command usage\n");
32228 int c, fVerbose = 0;
32243 if ( pAbc->pGia == NULL )
32245 Abc_Print( -1,
"Abc_CommandAbc9Iff(): There is no AIG to map.\n" );
32250 Abc_Print( -1,
"Abc_CommandAbc9Iff(): Mapping of the AIG is not defined.\n" );
32253 if ( pAbc->pLibLut == NULL )
32255 Abc_Print( -1,
"Abc_CommandAbc9Iff(): LUT library is not defined.\n" );
32262 Abc_Print( -2,
"usage: &iff [-vh]\n" );
32263 Abc_Print( -2,
"\t performs structural mapping into LUT structures\n" );
32264 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
32265 Abc_Print( -2,
"\t-h : print the command usage\n");
32288 int c, nLutSize = 6;
32297 if ( globalUtilOptind >= argc )
32299 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
32302 nLutSize = atoi(argv[globalUtilOptind]);
32303 globalUtilOptind++;
32304 if ( nLutSize < 2 || nLutSize > 16 )
32306 Abc_Print( -1,
"LUT size %d is not supported.\n", nLutSize );
32311 if ( globalUtilOptind >= argc )
32313 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a positive integer.\n" );
32316 pPars->
nNumCuts = atoi(argv[globalUtilOptind]);
32317 globalUtilOptind++;
32322 if ( globalUtilOptind >= argc )
32324 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
32327 pPars->
DelayTarget = atoi(argv[globalUtilOptind]);
32328 globalUtilOptind++;
32365 if ( pAbc->pGia == NULL )
32367 Abc_Print( -1,
"Empty GIA network.\n" );
32379 if ( pAbc->pLibScl == NULL )
32381 Abc_Print( -1,
"There is no SCL library available.\n" );
32384 pPars->
pScl = pAbc->pLibScl;
32388 if ( pPars->
fUseDsd && nLutSize != 6 )
32390 Abc_Print( -1,
"Currently DSD can only be used with 6-input cuts.\n" );
32399 Abc_Print( -1,
"There is no GENLIB library available.\n" );
32405 if ( pTemp == NULL )
32407 Abc_Print( -1,
"Abc_CommandAbc9If2(): Mapping into standard cells has failed.\n" );
32417 if ( pNew == NULL )
32419 Abc_Print( -1,
"Abc_CommandAbc9If2(): Mapping into LUTs has failed.\n" );
32428 sprintf(Buffer,
"best possible" );
32431 Abc_Print( -2,
"usage: &if2 [-KCD num] [-tmzrcuxvwh]\n" );
32432 Abc_Print( -2,
"\t performs technology mapping of the network\n" );
32433 Abc_Print( -2,
"\t-K num : sets the LUT size for the mapping [default = %d]\n", nLutSize );
32434 Abc_Print( -2,
"\t-C num : the max number of priority cuts (0 < num < 2^12) [default = %d]\n", pPars->
nNumCuts );
32435 Abc_Print( -2,
"\t-D num : sets the delay constraint for the mapping [default = %s]\n", Buffer );
32436 Abc_Print( -2,
"\t-t : enables using AND/XOR/MUX nodes instead of simple AIG [default = %s]\n", pPars->
fUseGates?
"yes":
"no" );
32437 Abc_Print( -2,
"\t-m : enables cut minimization by removing vacuous variables [default = %s]\n", pPars->
fCutMin?
"yes":
"no" );
32438 Abc_Print( -2,
"\t-z : toggles deriving LUTs when mapping into LUT structures [default = %s]\n", pPars->
fDeriveLuts?
"yes":
"no" );
32439 Abc_Print( -2,
"\t-r : toggles using one round of mapping [default = %s]\n", pPars->
fOneRound?
"yes":
"no" );
32440 Abc_Print( -2,
"\t-c : toggles mapping for CNF computation [default = %s]\n", pPars->
fMap4Cnf?
"yes":
"no" );
32441 Abc_Print( -2,
"\t-u : toggles mapping for AIG computation [default = %s]\n", pPars->
fMap4Aig?
"yes":
"no" );
32442 Abc_Print( -2,
"\t-x : toggles mapping for standard cells [default = %s]\n", pPars->
fMap4Gates?
"yes":
"no" );
32443 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
32444 Abc_Print( -2,
"\t-w : toggles very verbose output [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
32445 Abc_Print( -2,
"\t-h : prints the command usage\n");
32473 if ( globalUtilOptind >= argc )
32475 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
32478 pPars->
nLutSize = atoi(argv[globalUtilOptind]);
32479 globalUtilOptind++;
32487 if ( globalUtilOptind >= argc )
32489 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a positive integer.\n" );
32492 pPars->
nCutNum = atoi(argv[globalUtilOptind]);
32493 globalUtilOptind++;
32496 Abc_Print( -1,
"This number of cuts (%d) is not supported.\n", pPars->
nCutNum );
32501 if ( globalUtilOptind >= argc )
32503 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
32506 pPars->
DelayTarget = atoi(argv[globalUtilOptind]);
32507 globalUtilOptind++;
32512 if ( globalUtilOptind >= argc )
32514 Abc_Print( -1,
"Command line switch \"-W\" should be followed by a positive integer.\n" );
32517 pPars->
nVerbLimit = atoi(argv[globalUtilOptind]);
32518 globalUtilOptind++;
32555 if ( pAbc->pGia == NULL )
32557 Abc_Print( -1,
"Empty GIA network.\n" );
32562 Abc_Print( -1,
"Abc_CommandAbc9Jf(): This command does not work with barrier buffers.\n" );
32567 Abc_Print( -1,
"Abc_CommandAbc9Jf(): DSD computation works for LUT6 or less.\n" );
32573 Abc_Print( -1,
"Abc_CommandAbc9Jf(): Cannot input DSD data from file.\n" );
32578 if ( pNew == NULL )
32580 Abc_Print( -1,
"Abc_CommandAbc9Jf(): Mapping into LUTs has failed.\n" );
32588 sprintf(Buffer,
"best possible" );
32591 Abc_Print( -2,
"usage: &jf [-KCDW num] [-akmdcgvwh]\n" );
32592 Abc_Print( -2,
"\t performs technology mapping of the network\n" );
32594 Abc_Print( -2,
"\t-C num : the max number of priority cuts (1 <= C <= %d) [default = %d]\n", pPars->
nCutNumMax, pPars->
nCutNum );
32595 Abc_Print( -2,
"\t-D num : sets the delay constraint for the mapping [default = %s]\n", Buffer );
32596 Abc_Print( -2,
"\t-W num : min frequency when printing functions with \"-w\" [default = %d]\n", pPars->
nVerbLimit );
32597 Abc_Print( -2,
"\t-a : toggles area-oriented mapping [default = %s]\n", pPars->
fAreaOnly?
"yes":
"no" );
32598 Abc_Print( -2,
"\t-e : toggles edge vs node minimization [default = %s]\n", pPars->
fOptEdge?
"yes":
"no" );
32599 Abc_Print( -2,
"\t-k : toggles coarsening the subject graph [default = %s]\n", pPars->
fCoarsen?
"yes":
"no" );
32600 Abc_Print( -2,
"\t-m : toggles cut minimization [default = %s]\n", pPars->
fCutMin?
"yes":
"no" );
32601 Abc_Print( -2,
"\t-d : toggles using DSD to represent cut functions [default = %s]\n", pPars->
fFuncDsd?
"yes":
"no" );
32602 Abc_Print( -2,
"\t-c : toggles mapping for CNF generation [default = %s]\n", pPars->
fGenCnf?
"yes":
"no" );
32603 Abc_Print( -2,
"\t-g : toggles generating AIG without mapping [default = %s]\n", pPars->
fPureAig?
"yes":
"no" );
32604 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
32605 Abc_Print( -2,
"\t-w : toggles very verbose output [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
32606 Abc_Print( -2,
"\t-h : prints the command usage\n");
32630 while ( ( c =
Extra_UtilGetopt( argc, argv,
"KCPDWaekmdcgtsvwh" ) ) != EOF )
32635 if ( globalUtilOptind >= argc )
32637 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
32640 pPars->
nLutSize = atoi(argv[globalUtilOptind]);
32641 globalUtilOptind++;
32649 if ( globalUtilOptind >= argc )
32651 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a positive integer.\n" );
32654 pPars->
nCutNum = atoi(argv[globalUtilOptind]);
32655 globalUtilOptind++;
32658 Abc_Print( -1,
"This number of cuts (%d) is not supported.\n", pPars->
nCutNum );
32663 if ( globalUtilOptind >= argc )
32665 Abc_Print( -1,
"Command line switch \"-P\" should be followed by a positive integer.\n" );
32668 pPars->
nProcNum = atoi(argv[globalUtilOptind]);
32669 globalUtilOptind++;
32674 if ( globalUtilOptind >= argc )
32676 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
32679 pPars->
DelayTarget = atoi(argv[globalUtilOptind]);
32680 globalUtilOptind++;
32685 if ( globalUtilOptind >= argc )
32687 Abc_Print( -1,
"Command line switch \"-W\" should be followed by a positive integer.\n" );
32690 pPars->
nVerbLimit = atoi(argv[globalUtilOptind]);
32691 globalUtilOptind++;
32734 if ( pAbc->pGia == NULL )
32736 Abc_Print( -1,
"Empty GIA network.\n" );
32741 if ( pNew == NULL )
32743 Abc_Print( -1,
"Abc_CommandAbc9Kf(): Mapping into LUTs has failed.\n" );
32751 sprintf(Buffer,
"best possible" );
32754 Abc_Print( -2,
"usage: &kf [-KCPDW num] [-akmdcgtsvwh]\n" );
32755 Abc_Print( -2,
"\t performs technology mapping of the network\n" );
32757 Abc_Print( -2,
"\t-C num : the max number of priority cuts (1 <= C <= %d) [default = %d]\n", pPars->
nCutNumMax, pPars->
nCutNum );
32758 Abc_Print( -2,
"\t-P num : the number of cut computation processes (0 <= P <= %d) [default = %d]\n", pPars->
nProcNumMax, pPars->
nProcNum );
32759 Abc_Print( -2,
"\t-D num : sets the delay constraint for the mapping [default = %s]\n", Buffer );
32760 Abc_Print( -2,
"\t-W num : min frequency when printing functions with \"-w\" [default = %d]\n", pPars->
nVerbLimit );
32761 Abc_Print( -2,
"\t-a : toggles area-oriented mapping [default = %s]\n", pPars->
fAreaOnly?
"yes":
"no" );
32762 Abc_Print( -2,
"\t-e : toggles edge vs node minimization [default = %s]\n", pPars->
fOptEdge?
"yes":
"no" );
32763 Abc_Print( -2,
"\t-k : toggles coarsening the subject graph [default = %s]\n", pPars->
fCoarsen?
"yes":
"no" );
32764 Abc_Print( -2,
"\t-m : toggles cut minimization [default = %s]\n", pPars->
fCutMin?
"yes":
"no" );
32765 Abc_Print( -2,
"\t-d : toggles using DSD to represent cut functions [default = %s]\n", pPars->
fFuncDsd?
"yes":
"no" );
32766 Abc_Print( -2,
"\t-c : toggles mapping for CNF generation [default = %s]\n", pPars->
fGenCnf?
"yes":
"no" );
32767 Abc_Print( -2,
"\t-g : toggles generating AIG without mapping [default = %s]\n", pPars->
fPureAig?
"yes":
"no" );
32768 Abc_Print( -2,
"\t-t : toggles cut computation using hash table [default = %s]\n", pPars->
fCutHashing?
"yes":
"no" );
32769 Abc_Print( -2,
"\t-s : toggles cut computation using a simple method [default = %s]\n", pPars->
fCutSimple?
"yes":
"no" );
32770 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
32771 Abc_Print( -2,
"\t-w : toggles very verbose output [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
32772 Abc_Print( -2,
"\t-h : prints the command usage\n");
32794 while ( ( c =
Extra_UtilGetopt( argc, argv,
"KCFARLEDWMaekmupgtvwh" ) ) != EOF )
32799 if ( globalUtilOptind >= argc )
32801 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
32804 pPars->
nLutSize = atoi(argv[globalUtilOptind]);
32805 globalUtilOptind++;
32813 if ( globalUtilOptind >= argc )
32815 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a positive integer.\n" );
32818 pPars->
nCutNum = atoi(argv[globalUtilOptind]);
32819 globalUtilOptind++;
32822 Abc_Print( -1,
"This number of cuts (%d) is not supported.\n", pPars->
nCutNum );
32827 if ( globalUtilOptind >= argc )
32829 Abc_Print( -1,
"Command line switch \"-F\" should be followed by a positive integer.\n" );
32832 pPars->
nRounds = atoi(argv[globalUtilOptind]);
32833 globalUtilOptind++;
32838 if ( globalUtilOptind >= argc )
32840 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a positive integer.\n" );
32843 pPars->
nRoundsEla = atoi(argv[globalUtilOptind]);
32844 globalUtilOptind++;
32849 if ( globalUtilOptind >= argc )
32851 Abc_Print( 1,
"Command line switch \"-R\" should be followed by a floating point number.\n" );
32854 pPars->
nRelaxRatio = atoi(argv[globalUtilOptind]);
32855 globalUtilOptind++;
32860 if ( globalUtilOptind >= argc )
32862 Abc_Print( 1,
"Command line switch \"-R\" should be followed by a floating point number.\n" );
32866 globalUtilOptind++;
32871 if ( globalUtilOptind >= argc )
32873 Abc_Print( 1,
"Command line switch \"-E\" should be followed by a floating point number.\n" );
32876 pPars->
nAreaTuner = atoi(argv[globalUtilOptind]);
32877 globalUtilOptind++;
32882 if ( globalUtilOptind >= argc )
32884 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
32887 pPars->
DelayTarget = atoi(argv[globalUtilOptind]);
32888 globalUtilOptind++;
32893 if ( globalUtilOptind >= argc )
32895 Abc_Print( -1,
"Command line switch \"-W\" should be followed by a positive integer.\n" );
32898 pPars->
nVerbLimit = atoi(argv[globalUtilOptind]);
32899 globalUtilOptind++;
32904 if ( globalUtilOptind >= argc )
32906 Abc_Print( -1,
"Command line switch \"-M\" should be followed by a positive integer.\n" );
32909 pPars->
nLutSizeMux = atoi(argv[globalUtilOptind]);
32910 globalUtilOptind++;
32953 if ( pAbc->pGia == NULL )
32955 Abc_Print( -1,
"Empty GIA network.\n" );
32960 Abc_Print( -1,
"Current AIG has mapping. Run \"&st\".\n" );
32965 Abc_Print( -1,
"Flags \"-M\" and \"-u\" are incompatible.\n" );
32970 if ( pNew == NULL )
32972 Abc_Print( -1,
"Abc_CommandAbc9Lf(): Mapping into LUTs has failed.\n" );
32980 sprintf(Buffer,
"best possible" );
32983 Abc_Print( -2,
"usage: &lf [-KCFARLEDM num] [-kmupgtvwh]\n" );
32984 Abc_Print( -2,
"\t performs technology mapping of the network\n" );
32986 Abc_Print( -2,
"\t-C num : the max number of priority cuts (1 <= C <= %d) [default = %d]\n", pPars->
nCutNumMax, pPars->
nCutNum );
32987 Abc_Print( -2,
"\t-F num : the number of area flow rounds [default = %d]\n", pPars->
nRounds );
32988 Abc_Print( -2,
"\t-A num : the number of exact area rounds [default = %d]\n", pPars->
nRoundsEla );
32989 Abc_Print( -2,
"\t-R num : the delay relaxation ratio (num >= 0) [default = %d]\n", pPars->
nRelaxRatio );
32990 Abc_Print( -2,
"\t-L num : the fanout limit for coarsening XOR/MUX (num >= 2) [default = %d]\n", pPars->
nCoarseLimit );
32991 Abc_Print( -2,
"\t-E num : the area/edge tradeoff parameter (0 <= num <= 100) [default = %d]\n", pPars->
nAreaTuner );
32992 Abc_Print( -2,
"\t-D num : sets the delay constraint for the mapping [default = %s]\n", Buffer );
32993 Abc_Print( -2,
"\t-M num : LUT size when cofactoring is performed (0 <= num <= 100) [default = %d]\n", pPars->
nLutSizeMux );
32995 Abc_Print( -2,
"\t-e : toggles edge vs node minimization [default = %s]\n", pPars->
fOptEdge?
"yes":
"no" );
32996 Abc_Print( -2,
"\t-k : toggles coarsening the subject graph [default = %s]\n", pPars->
fCoarsen?
"yes":
"no" );
32997 Abc_Print( -2,
"\t-m : toggles cut minimization [default = %s]\n", pPars->
fCutMin?
"yes":
"no" );
32998 Abc_Print( -2,
"\t-u : toggles using additional MUXes [default = %s]\n", pPars->
fUseMux7?
"yes":
"no" );
32999 Abc_Print( -2,
"\t-p : toggles power-aware cut selection heuristics [default = %s]\n", pPars->
fPower?
"yes":
"no" );
33000 Abc_Print( -2,
"\t-g : toggles generating AIG without mapping [default = %s]\n", pPars->
fPureAig?
"yes":
"no" );
33001 Abc_Print( -2,
"\t-t : toggles optimizing average rather than maximum level [default = %s]\n", pPars->
fDoAverage?
"yes":
"no" );
33002 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
33003 Abc_Print( -2,
"\t-w : toggles very verbose output [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
33004 Abc_Print( -2,
"\t-h : prints the command usage\n");
33026 while ( ( c =
Extra_UtilGetopt( argc, argv,
"KCFARLEDWaekmcgvwh" ) ) != EOF )
33031 if ( globalUtilOptind >= argc )
33033 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
33036 pPars->
nLutSize = atoi(argv[globalUtilOptind]);
33037 globalUtilOptind++;
33045 if ( globalUtilOptind >= argc )
33047 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a positive integer.\n" );
33050 pPars->
nCutNum = atoi(argv[globalUtilOptind]);
33051 globalUtilOptind++;
33054 Abc_Print( -1,
"This number of cuts (%d) is not supported.\n", pPars->
nCutNum );
33059 if ( globalUtilOptind >= argc )
33061 Abc_Print( -1,
"Command line switch \"-F\" should be followed by a positive integer.\n" );
33064 pPars->
nRounds = atoi(argv[globalUtilOptind]);
33065 globalUtilOptind++;
33070 if ( globalUtilOptind >= argc )
33072 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a positive integer.\n" );
33075 pPars->
nRoundsEla = atoi(argv[globalUtilOptind]);
33076 globalUtilOptind++;
33081 if ( globalUtilOptind >= argc )
33083 Abc_Print( 1,
"Command line switch \"-R\" should be followed by a floating point number.\n" );
33086 pPars->
nRelaxRatio = atoi(argv[globalUtilOptind]);
33087 globalUtilOptind++;
33092 if ( globalUtilOptind >= argc )
33094 Abc_Print( 1,
"Command line switch \"-R\" should be followed by a floating point number.\n" );
33098 globalUtilOptind++;
33103 if ( globalUtilOptind >= argc )
33105 Abc_Print( 1,
"Command line switch \"-E\" should be followed by a floating point number.\n" );
33108 pPars->
nAreaTuner = atoi(argv[globalUtilOptind]);
33109 globalUtilOptind++;
33114 if ( globalUtilOptind >= argc )
33116 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
33119 pPars->
DelayTarget = atoi(argv[globalUtilOptind]);
33120 globalUtilOptind++;
33125 if ( globalUtilOptind >= argc )
33127 Abc_Print( -1,
"Command line switch \"-W\" should be followed by a positive integer.\n" );
33130 pPars->
nVerbLimit = atoi(argv[globalUtilOptind]);
33131 globalUtilOptind++;
33165 if ( pAbc->pGia == NULL )
33167 Abc_Print( -1,
"Empty GIA network.\n" );
33172 if ( pNew == NULL )
33174 Abc_Print( -1,
"Abc_CommandAbc9Lf(): Mapping into LUTs has failed.\n" );
33178 Cnf_DataFree( pAbc->pGia->pData ), pAbc->pGia->pData = NULL;
33184 sprintf(Buffer,
"best possible" );
33187 Abc_Print( -2,
"usage: &mf [-KCFARLED num] [-akmcgvwh]\n" );
33188 Abc_Print( -2,
"\t performs technology mapping of the network\n" );
33190 Abc_Print( -2,
"\t-C num : the max number of priority cuts (1 <= C <= %d) [default = %d]\n", pPars->
nCutNumMax, pPars->
nCutNum );
33191 Abc_Print( -2,
"\t-F num : the number of area flow rounds [default = %d]\n", pPars->
nRounds );
33192 Abc_Print( -2,
"\t-A num : the number of exact area rounds [default = %d]\n", pPars->
nRoundsEla );
33193 Abc_Print( -2,
"\t-R num : the delay relaxation ratio (num >= 0) [default = %d]\n", pPars->
nRelaxRatio );
33194 Abc_Print( -2,
"\t-L num : the fanout limit for coarsening XOR/MUX (num >= 2) [default = %d]\n", pPars->
nCoarseLimit );
33195 Abc_Print( -2,
"\t-E num : the area/edge tradeoff parameter (0 <= num <= 100) [default = %d]\n", pPars->
nAreaTuner );
33196 Abc_Print( -2,
"\t-D num : sets the delay constraint for the mapping [default = %s]\n", Buffer );
33197 Abc_Print( -2,
"\t-a : toggles area-oriented mapping [default = %s]\n", pPars->
fAreaOnly?
"yes":
"no" );
33198 Abc_Print( -2,
"\t-e : toggles edge vs node minimization [default = %s]\n", pPars->
fOptEdge?
"yes":
"no" );
33199 Abc_Print( -2,
"\t-k : toggles coarsening the subject graph [default = %s]\n", pPars->
fCoarsen?
"yes":
"no" );
33200 Abc_Print( -2,
"\t-m : toggles cut minimization [default = %s]\n", pPars->
fCutMin?
"yes":
"no" );
33201 Abc_Print( -2,
"\t-c : toggles mapping for CNF generation [default = %s]\n", pPars->
fGenCnf?
"yes":
"no" );
33202 Abc_Print( -2,
"\t-g : toggles generating AIG without mapping [default = %s]\n", pPars->
fPureAig?
"yes":
"no" );
33203 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
33204 Abc_Print( -2,
"\t-w : toggles very verbose output [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
33205 Abc_Print( -2,
"\t-h : prints the command usage\n");
33234 if ( globalUtilOptind >= argc )
33236 Abc_Print( -1,
"Command line switch \"-K\" should be followed by a positive integer.\n" );
33239 pPars->
nLutSize = atoi(argv[globalUtilOptind]);
33240 globalUtilOptind++;
33248 if ( globalUtilOptind >= argc )
33250 Abc_Print( -1,
"Command line switch \"-C\" should be followed by a positive integer.\n" );
33253 pPars->
nCutNum = atoi(argv[globalUtilOptind]);
33254 globalUtilOptind++;
33257 Abc_Print( -1,
"This number of cuts (%d) is not supported.\n", pPars->
nCutNum );
33262 if ( globalUtilOptind >= argc )
33264 Abc_Print( -1,
"Command line switch \"-F\" should be followed by a positive integer.\n" );
33267 pPars->
nRounds = atoi(argv[globalUtilOptind]);
33268 globalUtilOptind++;
33273 if ( globalUtilOptind >= argc )
33275 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a positive integer.\n" );
33278 pPars->
nRoundsEla = atoi(argv[globalUtilOptind]);
33279 globalUtilOptind++;
33284 if ( globalUtilOptind >= argc )
33286 Abc_Print( 1,
"Command line switch \"-R\" should be followed by a floating point number.\n" );
33289 pPars->
nRelaxRatio = atoi(argv[globalUtilOptind]);
33290 globalUtilOptind++;
33295 if ( globalUtilOptind >= argc )
33297 Abc_Print( 1,
"Command line switch \"-R\" should be followed by a floating point number.\n" );
33301 globalUtilOptind++;
33306 if ( globalUtilOptind >= argc )
33308 Abc_Print( 1,
"Command line switch \"-E\" should be followed by a floating point number.\n" );
33311 pPars->
nAreaTuner = atoi(argv[globalUtilOptind]);
33312 globalUtilOptind++;
33317 if ( globalUtilOptind >= argc )
33319 Abc_Print( -1,
"Command line switch \"-D\" should be followed by a floating point number.\n" );
33322 pPars->
DelayTarget = atoi(argv[globalUtilOptind]);
33323 globalUtilOptind++;
33328 if ( globalUtilOptind >= argc )
33330 Abc_Print( -1,
"Command line switch \"-W\" should be followed by a positive integer.\n" );
33333 pPars->
nVerbLimit = atoi(argv[globalUtilOptind]);
33334 globalUtilOptind++;
33355 if ( pAbc->pGia == NULL )
33357 Abc_Print( -1,
"Empty GIA network.\n" );
33362 Abc_Print( -1,
"Current library is not available.\n" );
33366 if ( pNew == NULL )
33368 Abc_Print( -1,
"Abc_CommandAbc9Nf(): Mapping into LUTs has failed.\n" );
33376 sprintf(Buffer,
"best possible" );
33379 Abc_Print( -2,
"usage: &nf [-KCFARLED num] [-akvwh]\n" );
33380 Abc_Print( -2,
"\t performs technology mapping of the network\n" );
33382 Abc_Print( -2,
"\t-C num : the max number of priority cuts (1 <= C <= %d) [default = %d]\n", pPars->
nCutNumMax, pPars->
nCutNum );
33383 Abc_Print( -2,
"\t-F num : the number of area flow rounds [default = %d]\n", pPars->
nRounds );
33384 Abc_Print( -2,
"\t-A num : the number of exact area rounds [default = %d]\n", pPars->
nRoundsEla );
33385 Abc_Print( -2,
"\t-R num : the delay relaxation ratio (num >= 0) [default = %d]\n", pPars->
nRelaxRatio );
33386 Abc_Print( -2,
"\t-L num : the fanout limit for coarsening XOR/MUX (num >= 2) [default = %d]\n", pPars->
nCoarseLimit );
33387 Abc_Print( -2,
"\t-E num : the area/edge tradeoff parameter (0 <= num <= 100) [default = %d]\n", pPars->
nAreaTuner );
33388 Abc_Print( -2,
"\t-D num : sets the delay constraint for the mapping [default = %s]\n", Buffer );
33389 Abc_Print( -2,
"\t-a : toggles area-oriented mapping [default = %s]\n", pPars->
fAreaOnly?
"yes":
"no" );
33390 Abc_Print( -2,
"\t-k : toggles coarsening the subject graph [default = %s]\n", pPars->
fCoarsen?
"yes":
"no" );
33391 Abc_Print( -2,
"\t-v : toggles verbose output [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
33392 Abc_Print( -2,
"\t-w : toggles very verbose output [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
33393 Abc_Print( -2,
"\t-h : prints the command usage\n");
33411 int c, fVerbose = 0;
33426 if ( pAbc->pGia == NULL )
33428 Abc_Print( -1,
"Abc_CommandAbc9Struct(): There is no AIG to map.\n" );
33436 Abc_Print( -2,
"usage: &unmap [-vh]\n" );
33437 Abc_Print( -2,
"\t removes mapping from the current network\n" );
33438 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
33439 Abc_Print( -2,
"\t-h : print the command usage\n");
33474 if ( pAbc->pGia == NULL )
33476 Abc_Print( -1,
"Abc_CommandAbc9Struct(): There is no AIG to map.\n" );
33481 Abc_Print( -1,
"Abc_CommandAbc9Struct(): Mapping of the AIG is not defined.\n" );
33486 Abc_Print( -1,
"Abc_CommandAbc9Struct(): Can only handle nodes with less than 8 inputs.\n" );
33493 Abc_Print( -2,
"usage: &struct [-vh]\n" );
33494 Abc_Print( -2,
"\t checks decomposition structures of the current mapping\n" );
33495 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
33496 Abc_Print( -2,
"\t-h : print the command usage\n");
33537 if ( pAbc->pGia == NULL )
33539 Abc_Print( -1,
"Abc_CommandAbc9Speedup(): There is no AIG to map.\n" );
33544 Abc_Print( -1,
"Abc_CommandAbc9Speedup(): Mapping of the AIG is not defined.\n" );
33547 pAbc->pGia->pLutLib = fUseLutLib ? pAbc->pLibLut : NULL;
33552 Abc_Print( -2,
"usage: &trace [-lvh]\n" );
33553 Abc_Print( -2,
"\t performs delay trace of LUT-mapped network\n" );
33554 Abc_Print( -2,
"\t-l : toggle using unit- or LUT-library-delay model [default = %s]\n", fUseLutLib?
"lib":
"unit" );
33555 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
33556 Abc_Print( -2,
"\t-h : print the command usage\n");
33578 int c, fVeryVerbose;
33592 if ( globalUtilOptind >= argc )
33594 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
33597 Percentage = atoi(argv[globalUtilOptind]);
33598 globalUtilOptind++;
33599 if ( Percentage < 1 || Percentage > 100 )
33603 if ( globalUtilOptind >= argc )
33605 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
33608 Degree = atoi(argv[globalUtilOptind]);
33609 globalUtilOptind++;
33610 if ( Degree < 1 || Degree > 5 )
33628 if ( pAbc->pGia == NULL )
33630 Abc_Print( -1,
"Abc_CommandAbc9Speedup(): There is no AIG to map.\n" );
33635 Abc_Print( -1,
"Abc_CommandAbc9Speedup(): Mapping of the AIG is not defined.\n" );
33638 pAbc->pGia->pLutLib = fUseLutLib ? pAbc->pLibLut : NULL;
33639 pTemp =
Gia_ManSpeedup( pAbc->pGia, Percentage, Degree, fVerbose, fVeryVerbose );
33644 Abc_Print( -2,
"usage: &speedup [-P num] [-N num] [-lvwh]\n" );
33645 Abc_Print( -2,
"\t transforms LUT-mapped network into an AIG with choices;\n" );
33646 Abc_Print( -2,
"\t the choices are added to speedup the next round of mapping\n" );
33647 Abc_Print( -2,
"\t-P <num> : delay delta defining critical path for library model [default = %d%%]\n", Percentage );
33648 Abc_Print( -2,
"\t-N <num> : the max critical path degree for resynthesis (0 < num < 6) [default = %d]\n", Degree );
33649 Abc_Print( -2,
"\t-l : toggle using unit- or LUT-library-delay model [default = %s]\n", fUseLutLib?
"lib" :
"unit" );
33650 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", fVerbose?
"yes":
"no" );
33651 Abc_Print( -2,
"\t-w : toggle printing detailed stats for each node [default = %s]\n", fVeryVerbose?
"yes":
"no" );
33652 Abc_Print( -2,
"\t-h : print the command usage\n");
33670 int c, fVerbose = 0;
33674 int nStatesMax = 1000000000;
33684 if ( globalUtilOptind >= argc )
33686 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a positive integer.\n" );
33689 nStatesMax = atoi(argv[globalUtilOptind]);
33690 globalUtilOptind++;
33691 if ( nStatesMax < 0 )
33712 if ( pAbc->pGia == NULL )
33714 Abc_Print( -1,
"Abc_CommandAbc9Era(): There is no AIG.\n" );
33719 Abc_Print( -1,
"Abc_CommandAbc9Era(): The network is combinational.\n" );
33724 Abc_Print( -1,
"Abc_CommandAbc9Era(): The number of PIs (%d) should be no more than 12 when cubes are not used.\n",
Gia_ManPiNum(pAbc->pGia) );
33727 if ( fUseCubes && !fDumpFile )
33735 Abc_Print( -2,
"usage: &era [-S num] [-mcdvh]\n" );
33736 Abc_Print( -2,
"\t explicit reachability analysis for small sequential AIGs\n" );
33737 Abc_Print( -2,
"\t-S num : the max number of states (num > 0) [default = %d]\n", nStatesMax );
33738 Abc_Print( -2,
"\t-m : stop when the miter output is 1 [default = %s]\n", fMiter?
"yes":
"no" );
33739 Abc_Print( -2,
"\t-c : use state cubes instead of state minterms [default = %s]\n", fUseCubes?
"yes":
"no" );
33740 Abc_Print( -2,
"\t-d : toggle dumping STG into a file [default = %s]\n", fDumpFile?
"yes":
"no" );
33741 Abc_Print( -2,
"\t-v : print verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
33742 Abc_Print( -2,
"\t-h : print the command usage\n");
33770 if ( globalUtilOptind >= argc )
33772 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
33775 pPars->nWords = atoi(argv[globalUtilOptind]);
33776 globalUtilOptind++;
33777 if ( pPars->nWords < 0 )
33781 if ( globalUtilOptind >= argc )
33783 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
33786 pPars->nBTLimit = atoi(argv[globalUtilOptind]);
33787 globalUtilOptind++;
33788 if ( pPars->nBTLimit < 0 )
33792 if ( globalUtilOptind >= argc )
33794 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
33797 pPars->nSatVarMax = atoi(argv[globalUtilOptind]);
33798 globalUtilOptind++;
33799 if ( pPars->nSatVarMax < 0 )
33803 pPars->fSynthesis ^= 1;
33806 pPars->fPower ^= 1;
33809 pPars->fSimulateTfo ^= 1;
33812 pPars->fLightSynth ^= 1;
33815 pPars->fVerbose ^= 1;
33823 if ( pAbc->pGia == NULL )
33825 Abc_Print( -1,
"Abc_CommandAbc9Dch(): There is no AIG.\n" );
33830 Abc_Print( -1,
"Abc_CommandAbc9Dch(): This command does not work with barrier buffers.\n" );
33838 Abc_Print( -2,
"usage: &dch [-WCS num] [-sptfvh]\n" );
33839 Abc_Print( -2,
"\t computes structural choices using a new approach\n" );
33840 Abc_Print( -2,
"\t-W num : the max number of simulation words [default = %d]\n", pPars->nWords );
33841 Abc_Print( -2,
"\t-C num : the max number of conflicts at a node [default = %d]\n", pPars->nBTLimit );
33842 Abc_Print( -2,
"\t-S num : the max number of SAT variables [default = %d]\n", pPars->nSatVarMax );
33843 Abc_Print( -2,
"\t-s : toggle synthesizing three snapshots [default = %s]\n", pPars->fSynthesis?
"yes":
"no" );
33844 Abc_Print( -2,
"\t-p : toggle power-aware rewriting [default = %s]\n", pPars->fPower?
"yes":
"no" );
33845 Abc_Print( -2,
"\t-t : toggle simulation of the TFO classes [default = %s]\n", pPars->fSimulateTfo?
"yes":
"no" );
33846 Abc_Print( -2,
"\t-f : toggle using lighter logic synthesis [default = %s]\n", pPars->fLightSynth?
"yes":
"no" );
33847 Abc_Print( -2,
"\t-v : toggle verbose printout [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
33848 Abc_Print( -2,
"\t-h : print the command usage\n");
33867 int c, nCutMax = 16;
33868 int fUseOldAlgo = 0;
33870 int fVeryVerbose = 0;
33877 if ( globalUtilOptind >= argc )
33879 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
33882 nCutMax = atoi(argv[globalUtilOptind]);
33883 globalUtilOptind++;
33902 if ( pAbc->pGia == NULL )
33904 Abc_Print( -1,
"Abc_CommandAbc9Rpm(): There is no AIG.\n" );
33910 pTemp =
Abs_RpmPerform( pAbc->pGia, nCutMax, fVerbose, fVeryVerbose );
33915 Abc_Print( -2,
"usage: &rpm [-C num] [-avwh]\n" );
33916 Abc_Print( -2,
"\t performs structural reparametrization\n" );
33917 Abc_Print( -2,
"\t-C num : max cut size for testing range equivalence [default = %d]\n", nCutMax );
33918 Abc_Print( -2,
"\t-a : toggle using old algorithm [default = %s]\n", fUseOldAlgo?
"yes":
"no" );
33919 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
33920 Abc_Print( -2,
"\t-w : toggle printing more verbose information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
33921 Abc_Print( -2,
"\t-h : print the command usage\n");
33941 int c, fVerbose = 0;
33942 int nFrameMax = 1000000;
33943 int nConfMax = 1000000;
33951 if ( globalUtilOptind >= argc )
33953 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
33956 nFrameMax = atoi(argv[globalUtilOptind]);
33957 globalUtilOptind++;
33958 if ( nFrameMax < 0 )
33962 if ( globalUtilOptind >= argc )
33964 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
33967 nConfMax = atoi(argv[globalUtilOptind]);
33968 globalUtilOptind++;
33969 if ( nConfMax < 0 )
33973 if ( globalUtilOptind >= argc )
33975 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
33978 nTimeMax = atoi(argv[globalUtilOptind]);
33979 globalUtilOptind++;
33980 if ( nTimeMax < 0 )
33992 if ( pAbc->pGia == NULL )
33994 Abc_Print( -1,
"Abc_CommandAbc9BackReach(): There is no AIG.\n" );
33999 Abc_Print( -1,
"Abc_CommandAbc9BackReach(): The number of POs is different from 1.\n" );
34002 pTemp =
Gia_ManCofTest( pAbc->pGia, nFrameMax, nConfMax, nTimeMax, fVerbose );
34007 Abc_Print( -2,
"usage: &back_reach [-FCT <num>] [-vh]\n" );
34008 Abc_Print( -2,
"\t performs backward reachability by circuit cofactoring\n" );
34009 Abc_Print( -2,
"\t-F num : the limit on the depth of induction [default = %d]\n", nFrameMax );
34010 Abc_Print( -2,
"\t-C num : the conflict limit at a node during induction [default = %d]\n", nConfMax );
34011 Abc_Print( -2,
"\t-T num : the timeout for property directed reachability [default = %d]\n", nTimeMax );
34012 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
34013 Abc_Print( -2,
"\t-h : print the command usage\n");
34033 int c, nVars = 5, fVerbose = 0;
34040 if ( globalUtilOptind >= argc )
34042 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
34045 nVars = atoi(argv[globalUtilOptind]);
34046 globalUtilOptind++;
34059 if ( pAbc->pGia == NULL )
34061 Abc_Print( -1,
"Abc_CommandAbc9Posplit(): There is no AIG.\n" );
34067 if ( pMan != NULL )
34076 Abc_Print( -2,
"usage: &posplit [-N num] [-vh]\n" );
34077 Abc_Print( -2,
"\t cofactors the property output w.r.t. a support subset\n" );
34078 Abc_Print( -2,
"\t (the OR of new PO functions is equal to the original property)\n" );
34079 Abc_Print( -2,
"\t-N num : the number of random cofactoring variables [default = %d]\n", nVars );
34080 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
34081 Abc_Print( -2,
"\t-h : print the command usage\n");
34100 char * pLogFileName = NULL;
34107 while ( ( c =
Extra_UtilGetopt( argc, argv,
"TBFCHSLripcsyzvwh" ) ) != EOF )
34112 if ( globalUtilOptind >= argc )
34114 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
34117 pPars->TimeLimit = atoi(argv[globalUtilOptind]);
34118 globalUtilOptind++;
34119 if ( pPars->TimeLimit < 0 )
34123 if ( globalUtilOptind >= argc )
34125 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
34128 pPars->nBddMax = atoi(argv[globalUtilOptind]);
34129 globalUtilOptind++;
34130 if ( pPars->nBddMax < 0 )
34134 if ( globalUtilOptind >= argc )
34136 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
34139 pPars->nIterMax = atoi(argv[globalUtilOptind]);
34140 globalUtilOptind++;
34141 if ( pPars->nIterMax < 0 )
34145 if ( globalUtilOptind >= argc )
34147 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
34150 pPars->nClusterMax = atoi(argv[globalUtilOptind]);
34151 globalUtilOptind++;
34152 if ( pPars->nClusterMax < 0 )
34156 if ( globalUtilOptind >= argc )
34158 Abc_Print( -1,
"Command line switch \"-H\" should be followed by an integer.\n" );
34161 pPars->nHintDepth = atoi(argv[globalUtilOptind]);
34162 globalUtilOptind++;
34163 if ( pPars->nHintDepth < 0 )
34167 if ( globalUtilOptind >= argc )
34169 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
34172 pPars->HintFirst = atoi(argv[globalUtilOptind]);
34173 globalUtilOptind++;
34174 if ( pPars->HintFirst < 0 )
34178 if ( globalUtilOptind >= argc )
34180 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a file name.\n" );
34184 globalUtilOptind++;
34187 pPars->fReorder ^= 1;
34190 pPars->fIndConstr ^= 1;
34193 pPars->fUsePivots ^= 1;
34196 pPars->fCluster ^= 1;
34199 pPars->fSchedule ^= 1;
34202 pPars->fSkipOutCheck ^= 1;
34205 pPars->fSkipReach ^= 1;
34208 pPars->fVerbose ^= 1;
34211 pPars->fVeryVerbose ^= 1;
34219 if ( pAbc->pGia == NULL )
34221 Abc_Print( -1,
"Abc_CommandAbc9ReachM(): There is no AIG.\n" );
34226 Abc_Print( -1,
"Abc_CommandAbc9ReachM(): The current AIG has no latches.\n" );
34231 Abc_Print( -1,
"Abc_CommandAbc9ReachM(): Currently cannot handle AIGs with more than %d objects.\n", (1<<16) );
34235 pAbc->nFrames = pPars->iFrame;
34237 if ( pLogFileName )
34242 Abc_Print( -2,
"usage: &reachm [-TBFCHS num] [-L file] [-ripcsyzvwh]\n" );
34243 Abc_Print( -2,
"\t model checking via BDD-based reachability (dependence-matrix-based)\n" );
34244 Abc_Print( -2,
"\t-T num : approximate time limit in seconds (0=infinite) [default = %d]\n", pPars->TimeLimit );
34245 Abc_Print( -2,
"\t-B num : max number of nodes in the intermediate BDDs [default = %d]\n", pPars->nBddMax );
34246 Abc_Print( -2,
"\t-F num : max number of reachability iterations [default = %d]\n", pPars->nIterMax );
34247 Abc_Print( -2,
"\t-C num : max number of variables in a cluster [default = %d]\n", pPars->nClusterMax );
34248 Abc_Print( -2,
"\t-H num : max number of hints to use [default = %d]\n", pPars->nHintDepth );
34249 Abc_Print( -2,
"\t-S num : the number of the starting hint [default = %d]\n", pPars->HintFirst );
34250 Abc_Print( -2,
"\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName :
"no logging" );
34251 Abc_Print( -2,
"\t-r : enable dynamic BDD variable reordering [default = %s]\n", pPars->fReorder?
"yes":
"no" );
34252 Abc_Print( -2,
"\t-i : enable extraction of inductive constraints [default = %s]\n", pPars->fIndConstr?
"yes":
"no" );
34253 Abc_Print( -2,
"\t-p : enable partitions for internal cut-points [default = %s]\n", pPars->fUsePivots?
"yes":
"no" );
34254 Abc_Print( -2,
"\t-c : enable clustering of partitions [default = %s]\n", pPars->fCluster?
"yes":
"no" );
34255 Abc_Print( -2,
"\t-s : enable scheduling of clusters [default = %s]\n", pPars->fSchedule?
"yes":
"no" );
34256 Abc_Print( -2,
"\t-y : skip checking property outputs [default = %s]\n", pPars->fSkipOutCheck?
"yes":
"no" );
34257 Abc_Print( -2,
"\t-z : skip reachability (run preparation phase only) [default = %s]\n", pPars->fSkipReach?
"yes":
"no" );
34258 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
34259 Abc_Print( -2,
"\t-w : prints dependency matrix [default = %s]\n", pPars->fVeryVerbose?
"yes":
"no" );
34260 Abc_Print( -2,
"\t-h : print the command usage\n");
34280 char * pLogFileName = NULL;
34292 if ( globalUtilOptind >= argc )
34294 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
34297 pPars->nPartValue = atoi(argv[globalUtilOptind]);
34298 globalUtilOptind++;
34299 if ( pPars->nPartValue < 0 )
34303 if ( globalUtilOptind >= argc )
34305 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
34308 pPars->nBddMax = atoi(argv[globalUtilOptind]);
34309 globalUtilOptind++;
34310 if ( pPars->nBddMax < 0 )
34314 if ( globalUtilOptind >= argc )
34316 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
34319 pPars->nIterMax = atoi(argv[globalUtilOptind]);
34320 globalUtilOptind++;
34321 if ( pPars->nIterMax < 0 )
34325 if ( globalUtilOptind >= argc )
34327 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
34330 pPars->TimeLimit = atoi(argv[globalUtilOptind]);
34331 globalUtilOptind++;
34332 if ( pPars->TimeLimit < 0 )
34336 if ( globalUtilOptind >= argc )
34338 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a file name.\n" );
34342 globalUtilOptind++;
34345 pPars->fReorder ^= 1;
34348 pPars->fBackward ^= 1;
34351 pPars->fSkipOutCheck ^= 1;
34354 pPars->fSkipReach ^= 1;
34357 pPars->fDumpReached ^= 1;
34360 pPars->fVerbose ^= 1;
34363 pPars->fVeryVerbose ^= 1;
34371 if ( pAbc->pGia == NULL )
34373 Abc_Print( -1,
"Abc_CommandAbc9ReachP(): There is no AIG.\n" );
34378 Abc_Print( -1,
"Abc_CommandAbc9ReachP(): The current AIG has no latches.\n" );
34383 Abc_Print( -1,
"Abc_CommandAbc9ReachP(): Currently cannot handle AIGs with more than %d objects.\n", (1<<16) );
34388 pAbc->nFrames = pPars->iFrame;
34390 if ( pLogFileName )
34396 Abc_Print( -2,
"usage: &reachp [-NFT num] [-L file] [-rbyzdvwh]\n" );
34397 Abc_Print( -2,
"\t model checking via BDD-based reachability (partitioning-based)\n" );
34398 Abc_Print( -2,
"\t-N num : partitioning value (MinVol=nANDs/N/2; MaxVol=nANDs/N) [default = %d]\n", pPars->nPartValue );
34400 Abc_Print( -2,
"\t-F num : max number of reachability iterations [default = %d]\n", pPars->nIterMax );
34401 Abc_Print( -2,
"\t-T num : approximate time limit in seconds (0=infinite) [default = %d]\n", pPars->TimeLimit );
34402 Abc_Print( -2,
"\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName :
"no logging" );
34403 Abc_Print( -2,
"\t-r : enable additional BDD var reordering before image [default = %s]\n", pPars->fReorder?
"yes":
"no" );
34404 Abc_Print( -2,
"\t-b : perform backward reachability analysis [default = %s]\n", pPars->fBackward?
"yes":
"no" );
34405 Abc_Print( -2,
"\t-y : skip checking property outputs [default = %s]\n", pPars->fSkipOutCheck?
"yes":
"no" );
34406 Abc_Print( -2,
"\t-z : skip reachability (run preparation phase only) [default = %s]\n", pPars->fSkipReach?
"yes":
"no" );
34407 Abc_Print( -2,
"\t-d : dump BDD of reached states into file \"reached.blif\" [default = %s]\n", pPars->fDumpReached?
"yes":
"no" );
34408 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
34409 Abc_Print( -2,
"\t-w : prints additional information [default = %s]\n", pPars->fVeryVerbose?
"yes":
"no" );
34410 Abc_Print( -2,
"\t-h : print the command usage\n");
34430 char * pLogFileName = NULL;
34442 if ( globalUtilOptind >= argc )
34444 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
34447 pPars->nBddMax = atoi(argv[globalUtilOptind]);
34448 globalUtilOptind++;
34449 if ( pPars->nBddMax < 0 )
34453 if ( globalUtilOptind >= argc )
34455 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
34458 pPars->nIterMax = atoi(argv[globalUtilOptind]);
34459 globalUtilOptind++;
34460 if ( pPars->nIterMax < 0 )
34464 if ( globalUtilOptind >= argc )
34466 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
34469 pPars->TimeLimit = atoi(argv[globalUtilOptind]);
34470 globalUtilOptind++;
34471 if ( pPars->TimeLimit < 0 )
34475 if ( globalUtilOptind >= argc )
34477 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a file name.\n" );
34481 globalUtilOptind++;
34484 pPars->fReorder ^= 1;
34487 pPars->fSkipOutCheck ^= 1;
34490 pPars->fSkipReach ^= 1;
34493 pPars->fVerbose ^= 1;
34496 pPars->fVeryVerbose ^= 1;
34504 if ( pAbc->pGia == NULL )
34506 Abc_Print( -1,
"Abc_CommandAbc9ReachN(): There is no AIG.\n" );
34511 Abc_Print( -1,
"Abc_CommandAbc9ReachN(): The current AIG has no latches.\n" );
34516 Abc_Print( -1,
"Abc_CommandAbc9ReachN(): Currently cannot handle AIGs with more than %d objects.\n", (1<<16) );
34521 pAbc->nFrames = pPars->iFrame;
34523 if ( pLogFileName )
34529 Abc_Print( -2,
"usage: &reachn [-BFT num] [-L file] [-ryzvh]\n" );
34530 Abc_Print( -2,
"\t model checking via BDD-based reachability (non-linear-QS-based)\n" );
34531 Abc_Print( -2,
"\t-B num : the BDD node increase when hints kick in [default = %d]\n", pPars->nBddMax );
34532 Abc_Print( -2,
"\t-F num : max number of reachability iterations [default = %d]\n", pPars->nIterMax );
34533 Abc_Print( -2,
"\t-T num : approximate time limit in seconds (0=infinite) [default = %d]\n", pPars->TimeLimit );
34534 Abc_Print( -2,
"\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName :
"no logging" );
34535 Abc_Print( -2,
"\t-r : enable additional BDD var reordering before image [default = %s]\n", pPars->fReorder?
"yes":
"no" );
34536 Abc_Print( -2,
"\t-y : skip checking property outputs [default = %s]\n", pPars->fSkipOutCheck?
"yes":
"no" );
34537 Abc_Print( -2,
"\t-z : skip reachability (run preparation phase only) [default = %s]\n", pPars->fSkipReach?
"yes":
"no" );
34538 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
34540 Abc_Print( -2,
"\t-h : print the command usage\n");
34560 char * pLogFileName = NULL;
34565 pPars->fCluster = 0;
34566 pPars->fReorder = 0;
34567 pPars->nBddMax = 100;
34568 pPars->nClusterMax = 500;
34575 if ( globalUtilOptind >= argc )
34577 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
34580 pPars->nBddMax = atoi(argv[globalUtilOptind]);
34581 globalUtilOptind++;
34582 if ( pPars->nBddMax < 0 )
34586 if ( globalUtilOptind >= argc )
34588 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
34591 pPars->nClusterMax = atoi(argv[globalUtilOptind]);
34592 globalUtilOptind++;
34593 if ( pPars->nClusterMax < 0 )
34597 if ( globalUtilOptind >= argc )
34599 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
34602 pPars->nIterMax = atoi(argv[globalUtilOptind]);
34603 globalUtilOptind++;
34604 if ( pPars->nIterMax < 0 )
34608 if ( globalUtilOptind >= argc )
34610 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
34613 pPars->TimeLimit = atoi(argv[globalUtilOptind]);
34614 globalUtilOptind++;
34615 if ( pPars->TimeLimit < 0 )
34619 if ( globalUtilOptind >= argc )
34621 Abc_Print( -1,
"Command line switch \"-L\" should be followed by a file name.\n" );
34625 globalUtilOptind++;
34628 pPars->fBackward ^= 1;
34631 pPars->fCluster ^= 1;
34634 pPars->fReorder ^= 1;
34637 pPars->fSkipOutCheck ^= 1;
34640 pPars->fSkipReach ^= 1;
34643 pPars->fVerbose ^= 1;
34646 pPars->fVeryVerbose ^= 1;
34654 if ( pAbc->pGia == NULL )
34656 Abc_Print( -1,
"Abc_CommandAbc9ReachN(): There is no AIG.\n" );
34661 Abc_Print( -1,
"Abc_CommandAbc9ReachN(): The current AIG has no latches.\n" );
34673 pAbc->nFrames = pPars->iFrame;
34675 if ( pLogFileName )
34681 Abc_Print( -2,
"usage: &reachy [-BCFT num] [-L file] [-bcryzvh]\n" );
34682 Abc_Print( -2,
"\t model checking via BDD-based reachability (non-linear-QS-based)\n" );
34683 Abc_Print( -2,
"\t-B num : the max BDD size to introduce cut points [default = %d]\n", pPars->nBddMax );
34684 Abc_Print( -2,
"\t-C num : the max BDD size to reparameterize/cluster [default = %d]\n", pPars->nClusterMax );
34685 Abc_Print( -2,
"\t-F num : max number of reachability iterations [default = %d]\n", pPars->nIterMax );
34686 Abc_Print( -2,
"\t-T num : approximate time limit in seconds (0=infinite) [default = %d]\n", pPars->TimeLimit );
34687 Abc_Print( -2,
"\t-L file: the log file name [default = %s]\n", pLogFileName ? pLogFileName :
"no logging" );
34688 Abc_Print( -2,
"\t-b : enable using backward enumeration [default = %s]\n", pPars->fBackward?
"yes":
"no" );
34689 Abc_Print( -2,
"\t-c : enable reparametrization clustering [default = %s]\n", pPars->fCluster?
"yes":
"no" );
34690 Abc_Print( -2,
"\t-r : enable additional BDD var reordering before image [default = %s]\n", pPars->fReorder?
"yes":
"no" );
34691 Abc_Print( -2,
"\t-y : skip checking property outputs [default = %s]\n", pPars->fSkipOutCheck?
"yes":
"no" );
34692 Abc_Print( -2,
"\t-z : skip reachability (run preparation phase only) [default = %s]\n", pPars->fSkipReach?
"yes":
"no" );
34693 Abc_Print( -2,
"\t-v : prints verbose information [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
34695 Abc_Print( -2,
"\t-h : print the command usage\n");
34725 if ( pAbc->pGia == NULL )
34727 Abc_Print( -1,
"Abc_CommandAbc9Undo(): There is no design.\n" );
34730 if ( pAbc->pGia2 == NULL )
34732 Abc_Print( -1,
"Abc_CommandAbc9Undo(): There is no previously saved network.\n" );
34736 pAbc->pGia = pAbc->pGia2;
34737 pAbc->pGia2 = NULL;
34741 Abc_Print( -2,
"usage: &undo [-h]\n" );
34742 Abc_Print( -2,
"\t reverses the previous AIG transformation\n" );
34743 Abc_Print( -2,
"\t-h : print the command usage\n");
34763 int c, fNewAlgo = 1, fEstimate = 0, fBetterQual = 0, fDualOut = 0, fVerbose = 0, fVeryVerbose = 0;
34793 if ( pAbc->pGia == NULL )
34795 Abc_Print( -1,
"Abc_CommandAbc9Iso(): There is no AIG.\n" );
34800 Abc_Print( -1,
"Abc_CommandAbc9Iso(): The AIG has only one PO. Isomorphism detection is not performed.\n" );
34804 pAig =
Gia_ManIsoReduce2( pAbc->pGia, &vPosEquivs, NULL, fEstimate, fBetterQual, fDualOut, fVerbose, fVeryVerbose );
34806 pAig =
Gia_ManIsoReduce( pAbc->pGia, &vPosEquivs, NULL, fEstimate, fDualOut, fVerbose, fVeryVerbose );
34809 if ( pAig == NULL )
34811 Abc_Print( -1,
"Abc_CommandAbc9Iso(): Transformation has failed.\n" );
34821 Abc_Print( -2,
"usage: &iso [-neqdvwh]\n" );
34822 Abc_Print( -2,
"\t removes POs with isomorphic sequential COI\n" );
34823 Abc_Print( -2,
"\t-n : toggle using new fast algorithm [default = %s]\n", fNewAlgo?
"yes":
"no" );
34824 Abc_Print( -2,
"\t-e : toggle computing lower bound on equivalence classes [default = %s]\n", fEstimate?
"yes":
"no" );
34825 Abc_Print( -2,
"\t-q : toggle improving quality at the expense of runtime [default = %s]\n", fBetterQual?
"yes":
"no" );
34826 Abc_Print( -2,
"\t-d : toggle treating the current AIG as a dual-output miter [default = %s]\n", fDualOut?
"yes":
"no" );
34827 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
34828 Abc_Print( -2,
"\t-w : toggle printing very verbose information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
34829 Abc_Print( -2,
"\t-h : print the command usage\n");
34847 int c, fDualOut = 0, fVerbose = 0;
34865 if ( pAbc->pGia == NULL )
34867 Abc_Print( -1,
"Abc_CommandAbc9CexInfo(): There is no AIG.\n" );
34870 if ( pAbc->pCex == NULL )
34872 Abc_Print( -1,
"Abc_CommandAbc9CexInfo(): There is no CEX.\n" );
34879 Abc_Print( -2,
"usage: &cexinfo [-vh]\n" );
34880 Abc_Print( -2,
"\t prints information about the current counter-example\n" );
34881 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
34882 Abc_Print( -2,
"\t-h : print the command usage\n");
34900 int c, nFrames = 10, fUseCex = 0, fVerbose = 0;
34907 if ( globalUtilOptind >= argc )
34909 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
34912 nFrames = atoi(argv[globalUtilOptind]);
34913 globalUtilOptind++;
34929 if ( pAbc->pGia == NULL )
34931 Abc_Print( -1,
"Abc_CommandAbc9Cycle(): There is no AIG.\n" );
34934 pTemp =
Gia_ManDupCycled( pAbc->pGia, fUseCex ? pAbc->pCex : NULL, nFrames );
34939 Abc_Print( -2,
"usage: &cycle [-F num] [-cvh]\n" );
34940 Abc_Print( -2,
"\t cycles sequential circuit for the given number of timeframes\n" );
34941 Abc_Print( -2,
"\t to derive a new initial state (which may be on the envelope)\n" );
34942 Abc_Print( -2,
"\t-F num : the number of frames to simulate [default = %d]\n", nFrames );
34943 Abc_Print( -2,
"\t-c : toggle using PI values from the current CEX [default = %s]\n", fUseCex?
"yes":
"no" );
34944 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
34945 Abc_Print( -2,
"\t-h : print the command usage\n");
34965 int c, iOutNum = -1, nOutRange = 1, iPartNum = -1, nLevelMax = 0, nTimeWindow = 0, fUseAllCis = 0, fVerbose = 0;
34972 if ( globalUtilOptind >= argc )
34974 Abc_Print( -1,
"Command line switch \"-O\" should be followed by an integer.\n" );
34977 iOutNum = atoi(argv[globalUtilOptind]);
34978 globalUtilOptind++;
34983 if ( globalUtilOptind >= argc )
34985 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
34988 nOutRange = atoi(argv[globalUtilOptind]);
34989 globalUtilOptind++;
34990 if ( nOutRange < 0 )
34994 if ( globalUtilOptind >= argc )
34996 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
34999 iPartNum = atoi(argv[globalUtilOptind]);
35000 globalUtilOptind++;
35001 if ( iPartNum < 0 )
35005 if ( globalUtilOptind >= argc )
35007 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
35010 nLevelMax = atoi(argv[globalUtilOptind]);
35011 globalUtilOptind++;
35012 if ( nLevelMax < 0 )
35016 if ( globalUtilOptind >= argc )
35018 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
35021 nTimeWindow = atoi(argv[globalUtilOptind]);
35022 globalUtilOptind++;
35023 if ( nTimeWindow < 0 )
35038 if ( pAbc->pGia == NULL )
35040 Abc_Print( -1,
"Abc_CommandAbc9Cone(): There is no AIG.\n" );
35043 if ( nLevelMax || nTimeWindow )
35045 if ( nLevelMax && nTimeWindow )
35047 Abc_Print( -1,
"Abc_CommandAbc9Cone(): Parameters -L (max level) and -W (timing window) cannot be specified at the same time.\n" );
35057 if ( iPartNum >= 0 )
35061 if ( vClasses == NULL )
35063 Abc_Print( -1,
"Abc_CommandAbc9Cone(): Partitions are not defined.\n" );
35068 Abc_Print( -1,
"Abc_CommandAbc9Cone(): Partition index exceed the array size.\n" );
35077 if ( iOutNum < 0 || iOutNum + nOutRange >=
Gia_ManPoNum(pAbc->pGia) )
35079 Abc_Print( -1,
"Abc_CommandAbc9Cone(): Range of outputs to extract is incorrect.\n" );
35090 Abc_Print( -2,
"usage: &cone [-ORPLW num] [-avh]\n" );
35091 Abc_Print( -2,
"\t extracting multi-output sequential logic cones\n" );
35092 Abc_Print( -2,
"\t-O num : the index of first PO to extract [default = %d]\n", iOutNum );
35093 Abc_Print( -2,
"\t-R num : (optional) the number of outputs to extract [default = %d]\n", nOutRange );
35094 Abc_Print( -2,
"\t-P num : (optional) the partition number to extract [default = %d]\n", iPartNum );
35095 Abc_Print( -2,
"\t-L num : (optional) extract cones with higher level [default = %d]\n", nLevelMax );
35096 Abc_Print( -2,
"\t-W num : (optional) extract cones falling into this window [default = %d]\n", nTimeWindow );
35097 Abc_Print( -2,
"\t-a : toggle keeping all CIs or structral support only [default = %s]\n", fUseAllCis?
"all":
"structural" );
35098 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
35099 Abc_Print( -2,
"\t-h : print the command usage\n");
35117 int c, nSuppSize = 6, fVerbose = 0;
35124 if ( globalUtilOptind >= argc )
35126 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
35129 nSuppSize = atoi(argv[globalUtilOptind]);
35130 globalUtilOptind++;
35131 if ( nSuppSize < 0 )
35143 if ( pAbc->pGia == NULL )
35145 Abc_Print( -1,
"Abc_CommandAbc9Slice(): There is no AIG.\n" );
35153 Abc_Print( -2,
"usage: &slice [-S num] [-vh]\n" );
35154 Abc_Print( -2,
"\t cuts the lower part of the AIG with nodes using their support\n" );
35155 Abc_Print( -2,
"\t-S num : the largest support size to keep in the slide [default = %d]\n", nSuppSize );
35156 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
35157 Abc_Print( -2,
"\t-h : print the command usage\n");
35177 int c, SelectShift = 0, fOnlyCis = 0, fSetLargest = 0, fVerbose = 0;
35184 if ( globalUtilOptind >= argc )
35186 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
35189 SelectShift = atoi(argv[globalUtilOptind]);
35190 globalUtilOptind++;
35191 if ( SelectShift < 0 )
35209 if ( pAbc->pGia == NULL )
35211 Abc_Print( -1,
"Abc_CommandAbc9PoPart(): There is no AIG.\n" );
35214 pTemp =
Gia_ManFindPoPartition( pAbc->pGia, SelectShift, fOnlyCis, fSetLargest, fVerbose, &vPosEquivs );
35221 Abc_Print( -2,
"usage: &popart [-S num] [-imvh]\n" );
35222 Abc_Print( -2,
"\t partitioning of POs into equivalence classes\n" );
35223 Abc_Print( -2,
"\t-S num : random seed to select the set of pivot nodes [default = %d]\n", SelectShift );
35224 Abc_Print( -2,
"\t : (if the seed is 0, the nodes with max fanout counts are used)\n" );
35225 Abc_Print( -2,
"\t-i : toggle allowing only CIs to be the pivots [default = %s]\n", fOnlyCis?
"yes":
"no" );
35226 Abc_Print( -2,
"\t-m : toggle using the largest part as the current network [default = %s]\n", fSetLargest?
"yes":
"no" );
35227 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
35228 Abc_Print( -2,
"\t-h : print the command usage\n");
35248 int c, iStartNum = 0, nDelta = 10, nOutsMin = 100, nOutsMax = 1000, fSetLargest = 0, fVerbose = 0;
35255 if ( globalUtilOptind >= argc )
35257 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
35260 iStartNum = atoi(argv[globalUtilOptind]);
35261 globalUtilOptind++;
35262 if ( iStartNum < 0 )
35266 if ( globalUtilOptind >= argc )
35268 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
35271 nDelta = atoi(argv[globalUtilOptind]);
35272 globalUtilOptind++;
35277 if ( globalUtilOptind >= argc )
35279 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
35282 nOutsMin = atoi(argv[globalUtilOptind]);
35283 globalUtilOptind++;
35284 if ( nOutsMin < 0 )
35288 if ( globalUtilOptind >= argc )
35290 Abc_Print( -1,
"Command line switch \"-U\" should be followed by an integer.\n" );
35293 nOutsMax = atoi(argv[globalUtilOptind]);
35294 globalUtilOptind++;
35295 if ( nOutsMax < 0 )
35310 if ( pAbc->pGia == NULL )
35312 Abc_Print( -1,
"Abc_CommandAbc9PoPart(): There is no AIG.\n" );
35315 pTemp =
Gia_ManFindPoPartition2( pAbc->pGia, iStartNum, nDelta, nOutsMin, nOutsMax, fSetLargest, fVerbose, &vPosEquivs );
35322 Abc_Print( -2,
"usage: &popart2 [-SDLU num] [-mvh]\n" );
35323 Abc_Print( -2,
"\t extracting multi-output sequential logic cones\n" );
35324 Abc_Print( -2,
"\t-S num : the index of the PO to start the cluster [default = %d]\n", iStartNum );
35325 Abc_Print( -2,
"\t-D num : the max increase in flop count after adding one PO [default = %d]\n", nDelta );
35326 Abc_Print( -2,
"\t-L num : the minimum number of POs in a cluster [default = %d]\n", nOutsMin );
35327 Abc_Print( -2,
"\t-U num : the maximum number of POs in a cluster [default = %d]\n", nOutsMax );
35328 Abc_Print( -2,
"\t-m : toggle selecting the largest cluster [default = %s]\n", fSetLargest?
"yes":
"no" );
35329 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
35330 Abc_Print( -2,
"\t-h : print the command usage\n");
35349 char * pCommLine = NULL;
35350 int c, nGroupSize = 1, fVerbose = 0;
35357 if ( globalUtilOptind >= argc )
35359 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
35362 nGroupSize = atoi(argv[globalUtilOptind]);
35363 globalUtilOptind++;
35364 if ( nGroupSize <= 0 )
35368 if ( globalUtilOptind >= argc )
35370 Abc_Print( -1,
"Command line switch \"-S\" should be followed by a file name.\n" );
35374 globalUtilOptind++;
35384 if ( pAbc->pGia == NULL )
35386 Abc_Print( -1,
"Abc_CommandAbc9GroupProve(): There is no AIG.\n" );
35389 if ( pCommLine == NULL )
35391 Abc_Print( -1,
"Abc_CommandAbc9GroupProve(): Command line is not given.\n" );
35399 Abc_Print( -2,
"usage: &gprove [-GS num] [-vh]\n" );
35400 Abc_Print( -2,
"\t proves multi-output testcase by splitting outputs into groups\n" );
35401 Abc_Print( -2,
"\t (currently, group size more than one works only for \"bmc3\" and \"pdr\")\n" );
35402 Abc_Print( -2,
"\t-G num : the size of one group [default = %d]\n", nGroupSize );
35403 Abc_Print( -2,
"\t-S str : the command line to be executed for each group [default = %s]\n", pCommLine ? pCommLine :
"none" );
35404 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
35405 Abc_Print( -2,
"\t-h : print the command usage\n");
35437 if ( globalUtilOptind >= argc )
35439 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
35442 pPars->
TimeOutGlo = atoi(argv[globalUtilOptind]);
35443 globalUtilOptind++;
35448 if ( globalUtilOptind >= argc )
35450 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
35453 pPars->
TimeOutLoc = atoi(argv[globalUtilOptind]);
35454 globalUtilOptind++;
35459 if ( globalUtilOptind >= argc )
35461 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
35464 pPars->
TimeOutInc = atoi(argv[globalUtilOptind]);
35465 globalUtilOptind++;
35470 if ( globalUtilOptind >= argc )
35472 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
35475 pPars->
TimeOutGap = atoi(argv[globalUtilOptind]);
35476 globalUtilOptind++;
35481 if ( globalUtilOptind >= argc )
35483 Abc_Print( -1,
"Command line switch \"-H\" should be followed by an integer.\n" );
35486 pPars->
TimePerOut = atoi(argv[globalUtilOptind]);
35487 globalUtilOptind++;
35509 if ( pAbc->pGia == NULL )
35511 Abc_Print( -1,
"Abc_CommandAbc9MultiProve(): There is no AIG.\n" );
35516 Abc_Print( -1,
"Abc_CommandAbc9MultiProve(): The problem is combinational.\n" );
35526 Abc_Print( -2,
"usage: &mprove [-TLMGH num] [-sdvwh]\n" );
35527 Abc_Print( -2,
"\t proves multi-output testcase by applying several engines\n" );
35528 Abc_Print( -2,
"\t-T num : approximate global runtime limit in seconds [default = %d]\n", pPars->
TimeOutGlo );
35529 Abc_Print( -2,
"\t-L num : approximate local runtime limit in seconds [default = %d]\n", pPars->
TimeOutLoc );
35530 Abc_Print( -2,
"\t-M num : percentage of local runtime limit increase [default = %d]\n", pPars->
TimeOutInc );
35531 Abc_Print( -2,
"\t-G num : approximate gap runtime limit in seconds [default = %d]\n", pPars->
TimeOutGap );
35532 Abc_Print( -2,
"\t-H num : timeout per output in miliseconds [default = %d]\n", pPars->
TimePerOut );
35533 Abc_Print( -2,
"\t-s : toggle using combinational synthesis [default = %s]\n", pPars->
fUseSyn?
"yes":
"no" );
35534 Abc_Print( -2,
"\t-d : toggle dumping invariant into a file [default = %s]\n", pPars->
fDumpFinal?
"yes":
"no" );
35535 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
35536 Abc_Print( -2,
"\t-w : toggle printing additional verbose information [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
35537 Abc_Print( -2,
"\t-h : print the command usage\n");
35554 extern int Cec_GiaSplitTest(
Gia_Man_t *
p,
int nProcs,
int nTimeOut,
int nIterMax,
int LookAhead,
int fVerbose,
int fVeryVerbose );
35555 int c, nProcs = 1, nTimeOut = 10, nIterMax = 0, LookAhead = 1, fVerbose = 0, fVeryVerbose = 0;
35562 if ( globalUtilOptind >= argc )
35564 Abc_Print( -1,
"Command line switch \"-P\" should be followed by a positive integer.\n" );
35567 nProcs = atoi(argv[globalUtilOptind]);
35568 globalUtilOptind++;
35573 if ( globalUtilOptind >= argc )
35575 Abc_Print( -1,
"Command line switch \"-T\" should be followed by a positive integer.\n" );
35578 nTimeOut = atoi(argv[globalUtilOptind]);
35579 globalUtilOptind++;
35580 if ( nTimeOut <= 0 )
35584 if ( globalUtilOptind >= argc )
35586 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
35589 nIterMax = atoi(argv[globalUtilOptind]);
35590 globalUtilOptind++;
35591 if ( nIterMax < 0 )
35595 if ( globalUtilOptind >= argc )
35597 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
35600 LookAhead = atoi(argv[globalUtilOptind]);
35601 globalUtilOptind++;
35602 if ( LookAhead <= 0 || LookAhead > 100 )
35604 Abc_Print( -1,
"Look-ahead value (\"-L <num>\") should be between 1 and 100.\n", LookAhead );
35620 if ( pAbc->pGia == NULL )
35622 Abc_Print( -1,
"Abc_CommandAbc9SplitProve(): There is no AIG.\n" );
35627 Abc_Print( -1,
"Abc_CommandAbc9SplitProve(): The problem is sequential.\n" );
35630 pAbc->Status =
Cec_GiaSplitTest( pAbc->pGia, nProcs, nTimeOut, nIterMax, LookAhead, fVerbose, fVeryVerbose );
35631 pAbc->pCex = pAbc->pGia->pCexComb; pAbc->pGia->pCexComb = NULL;
35635 Abc_Print( -2,
"usage: &splitprove [-PTIL num] [-vwh]\n" );
35636 Abc_Print( -2,
"\t proves CEC problem by case-splitting\n" );
35637 Abc_Print( -2,
"\t-P num : the number of concurrent processes [default = %d]\n", nProcs );
35638 Abc_Print( -2,
"\t-T num : runtime limit in seconds per subproblem [default = %d]\n", nTimeOut );
35639 Abc_Print( -2,
"\t-I num : the max number of iterations (0 = infinity) [default = %d]\n", nIterMax );
35640 Abc_Print( -2,
"\t-L num : maximum look-ahead during cofactoring [default = %d]\n", LookAhead );
35641 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
35642 Abc_Print( -2,
"\t-w : toggle printing more verbose information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
35643 Abc_Print( -2,
"\t-h : print the command usage\n");
35684 if ( globalUtilOptind >= argc )
35686 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
35689 pPars->
nStart = atoi(argv[globalUtilOptind]);
35690 globalUtilOptind++;
35691 if ( pPars->
nStart < 0 )
35695 if ( globalUtilOptind >= argc )
35697 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
35700 pPars->
nFramesMax = atoi(argv[globalUtilOptind]);
35701 globalUtilOptind++;
35706 if ( globalUtilOptind >= argc )
35708 Abc_Print( -1,
"Command line switch \"-A\" should be followed by an integer.\n" );
35711 pPars->
nFramesAdd = atoi(argv[globalUtilOptind]);
35712 globalUtilOptind++;
35717 if ( globalUtilOptind >= argc )
35719 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
35722 pPars->
nTimeOut = atoi(argv[globalUtilOptind]);
35723 globalUtilOptind++;
35748 if ( pAbc->pGia == NULL )
35750 Abc_Print( -1,
"Abc_CommandAbc9Bmc(): There is no AIG.\n" );
35755 Abc_Print( -1,
"Abc_CommandAbc9Bmc(): Cannot input precomputed DSD information.\n" );
35759 pAbc->nFrames = pPars->
iFrame;
35764 Abc_Print( -2,
"usage: &bmc [-SFAT num] [-dscvwh]\n" );
35765 Abc_Print( -2,
"\t performs bounded model checking\n" );
35766 Abc_Print( -2,
"\t-S num : the starting timeframe [default = %d]\n", pPars->
nStart );
35767 Abc_Print( -2,
"\t-F num : the maximum number of timeframes [default = %d]\n", pPars->
nFramesMax );
35768 Abc_Print( -2,
"\t-A num : the number of additional frames to unroll [default = %d]\n", pPars->
nFramesAdd );
35769 Abc_Print( -2,
"\t-T num : approximate timeout in seconds [default = %d]\n", pPars->
nTimeOut );
35770 Abc_Print( -2,
"\t-d : toggle dumping unfolded timeframes [default = %s]\n", pPars->
fDumpFrames?
"yes":
"no" );
35771 Abc_Print( -2,
"\t-s : toggle synthesizing unrolled timeframes [default = %s]\n", pPars->
fUseSynth?
"yes":
"no" );
35772 Abc_Print( -2,
"\t-c : toggle using old CNF computation [default = %s]\n", pPars->
fUseOldCnf?
"yes":
"no" );
35773 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
35774 Abc_Print( -2,
"\t-w : toggle printing information about unfolding [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
35775 Abc_Print( -2,
"\t-h : print the command usage\n");
35793 int nFrameMax = 200;
35796 int fVeryVerbose = 0;
35804 if ( globalUtilOptind >= argc )
35806 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
35809 nFrameMax = atoi(argv[globalUtilOptind]);
35810 globalUtilOptind++;
35811 if ( nFrameMax < 0 )
35815 if ( globalUtilOptind >= argc )
35817 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
35820 nConfMax = atoi(argv[globalUtilOptind]);
35821 globalUtilOptind++;
35822 if ( nConfMax < 0 )
35837 if ( pAbc->pGia == NULL )
35839 Abc_Print( -1,
"Abc_CommandAbc9ChainBmc(): There is no AIG.\n" );
35844 Abc_Print( -1,
"Abc_CommandAbc9ChainBmc(): The AIG is combinational.\n" );
35847 Bmc_ChainTest( pAbc->pGia, nFrameMax, nConfMax, fVerbose, fVeryVerbose );
35853 Abc_Print( -2,
"usage: &chainbmc [-FC <num>] [-vwh]\n" );
35854 Abc_Print( -2,
"\t runs a specialized flavor of BMC\n" );
35855 Abc_Print( -2,
"\t-F <num> : the max number of timeframes (0 = unused) [default = %d]\n", nFrameMax );
35856 Abc_Print( -2,
"\t-C <num> : the max number of conflicts (0 = unused) [default = %d]\n", nConfMax );
35857 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
35858 Abc_Print( -2,
"\t-w : toggle printing even more information [default = %s]\n", fVeryVerbose?
"yes":
"no" );
35859 Abc_Print( -2,
"\t-h : print the command usage\n");
35891 if ( globalUtilOptind >= argc )
35893 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
35896 pPars->
iFrame = atoi(argv[globalUtilOptind]);
35897 globalUtilOptind++;
35898 if ( pPars->
iFrame < 0 )
35902 if ( globalUtilOptind >= argc )
35904 Abc_Print( -1,
"Command line switch \"-O\" should be followed by an integer.\n" );
35907 pPars->
iOutput = atoi(argv[globalUtilOptind]);
35908 globalUtilOptind++;
35913 if ( globalUtilOptind >= argc )
35915 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
35918 pPars->
nTimeOut = atoi(argv[globalUtilOptind]);
35919 globalUtilOptind++;
35924 if ( globalUtilOptind >= argc )
35926 Abc_Print( -1,
"Command line switch \"-V\" should be followed by a file name.\n" );
35930 globalUtilOptind++;
35941 if ( pAbc->pGia == NULL )
35943 Abc_Print( -1,
"Abc_CommandAbc9BCore(): There is no AIG.\n" );
35948 Abc_Print( -1,
"Abc_CommandAbc9BCore(): AIG has no registers.\n" );
35956 if ( pFile == NULL )
35958 Abc_Print( -1,
"Abc_CommandAbc9BCore(): Cannot open file \"%s\" with pivot node IDs.\n", pPars->
pFilePivots );
35964 if ( argc == globalUtilOptind + 1 )
35969 if ( pFile == NULL )
35971 Abc_Print( -1,
"Abc_CommandAbc9BCore(): Cannot open file \"%s\" for writing the proof.\n", pPars->
pFileProof );
35980 Abc_Print( -2,
"usage: &bcore [-FOTV num] [-vh] <file>\n" );
35981 Abc_Print( -2,
"\t records UNSAT core of the BMC instance\n" );
35982 Abc_Print( -2,
"\t-F num : the zero-based index of a timeframe [default = %d]\n", pPars->
iFrame );
35983 Abc_Print( -2,
"\t-O num : the zero-based index of a primary output [default = %d]\n", pPars->
iOutput );
35984 Abc_Print( -2,
"\t-T num : approximate timeout in seconds [default = %d]\n", pPars->
nTimeOut );
35985 Abc_Print( -2,
"\t-V file: file name with AIG IDs of pivot variables [default = no pivots]\n" );
35986 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
35987 Abc_Print( -2,
"\t-h : print the command usage\n");
35988 Abc_Print( -2,
"\t<file> : file name to write the resulting proof [default = stdout]\n");
36005 int c, nFramesMax = 1, nTimeOut = 0, fEmpty = 0, fSearch = 1, fReverse = 0, fDump = 0, fVerbose = 0;
36012 if ( globalUtilOptind >= argc )
36014 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
36017 nFramesMax = atoi(argv[globalUtilOptind]);
36018 globalUtilOptind++;
36019 if ( nFramesMax <= 0 )
36023 if ( globalUtilOptind >= argc )
36025 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
36028 nTimeOut = atoi(argv[globalUtilOptind]);
36029 globalUtilOptind++;
36030 if ( nTimeOut < 0 )
36054 if ( pAbc->pGia == NULL )
36056 Abc_Print( -1,
"Abc_CommandAbc9ICheck(): There is no AIG.\n" );
36061 Abc_Print( -1,
"Abc_CommandAbc9ICheck(): The AIG is combinational.\n" );
36066 pAbc->vIndFlops =
Bmc_PerformISearch( pAbc->pGia, nFramesMax, nTimeOut, fReverse, fDump, fVerbose );
36069 pAbc->nIndFrames = pAbc->vIndFlops ? nFramesMax : 0;
36073 Abc_Print( -2,
"usage: &icheck [-MT num] [-esrdvh]\n" );
36074 Abc_Print( -2,
"\t performs specialized induction check\n" );
36075 Abc_Print( -2,
"\t-M num : the number of timeframes used for induction [default = %d]\n", nFramesMax );
36076 Abc_Print( -2,
"\t-T num : approximate global runtime limit in seconds [default = %d]\n", nTimeOut );
36077 Abc_Print( -2,
"\t-e : toggle using empty set of next-state functions [default = %s]\n", fEmpty?
"yes":
"no" );
36078 Abc_Print( -2,
"\t-s : toggle searching for a minimal subset [default = %s]\n", fSearch?
"yes":
"no" );
36079 Abc_Print( -2,
"\t-r : toggle searching in the reverse order [default = %s]\n", fReverse?
"yes":
"no" );
36080 Abc_Print( -2,
"\t-d : toggle printing out the resulting set [default = %s]\n", fDump?
"yes":
"no" );
36081 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
36082 Abc_Print( -2,
"\t-h : print the command usage\n");
36100 int c, fLoadCnf = 0, fVerbose = 0;
36118 if ( pAbc->pGia == NULL )
36120 Abc_Print( -1,
"Abc_CommandAbc9SatTest(): There is no AIG.\n" );
36127 Abc_Print( -2,
"usage: &sattest [-cvh]\n" );
36128 Abc_Print( -2,
"\t performs testing of dynamic CNF loading\n" );
36129 Abc_Print( -2,
"\t-c : toggle dynamic CNF loading [default = %s]\n", fLoadCnf?
"yes":
"no" );
36130 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
36131 Abc_Print( -2,
"\t-h : print the command usage\n");
36151 char * pFileName = NULL;
36161 if ( globalUtilOptind >= argc )
36163 Abc_Print( -1,
"Command line switch \"-A\" should be followed by an integer.\n" );
36166 pPars->
Algo = atoi(argv[globalUtilOptind]);
36167 globalUtilOptind++;
36168 if ( pPars->
Algo < 0 || pPars->
Algo > 4 )
36172 if ( globalUtilOptind >= argc )
36174 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
36177 pPars->
nTimeOut = atoi(argv[globalUtilOptind]);
36178 globalUtilOptind++;
36183 if ( globalUtilOptind >= argc )
36185 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
36188 pPars->
nIterCheck = atoi(argv[globalUtilOptind]);
36189 globalUtilOptind++;
36194 if ( globalUtilOptind >= argc )
36196 Abc_Print( -1,
"Command line switch \"-S\" should be followed by string.\n" );
36200 globalUtilOptind++;
36203 if ( globalUtilOptind >= argc )
36205 Abc_Print( -1,
"Command line switch \"-G\" should be followed by string.\n" );
36209 globalUtilOptind++;
36234 Abc_Print( -1,
"Formula string (-S <str>) should be selected when algorithm is 0 (-A 0).\n" );
36239 Abc_Print( -1,
"Algorithm should be 0 (-A 0) when formula string is selected (-S <str>).\n" );
36243 if ( argc == globalUtilOptind + 1 )
36247 pFile = fopen( pPars->
pFileName,
"r" );
36248 if ( pFile == NULL )
36250 Abc_Print( -1,
"Cannot open file \"%s\" with the input test patterns.\n", pPars->
pFileName );
36256 if ( pAbc->pGia == NULL )
36258 Abc_Print( -1,
"Abc_CommandAbc9FFTest(): There is no AIG.\n" );
36263 Abc_Print( -1,
"Abc_CommandAbc9FFTest(): For delay testing, AIG should be sequential.\n" );
36269 FILE * pFile = fopen( pFileName,
"r" );
36270 if ( pFile == NULL )
36272 Abc_Print( -1,
"Abc_CommandAbc9FFTest(): File name \"%s\" with golden model is invalid.\n", pFileName );
36277 if ( pGold == NULL )
36279 Abc_Print( -1,
"Abc_CommandAbc9FFTest(): Cannot read file \"%s\" with golden model.\n", pFileName );
36285 Abc_Print( -1,
"Abc_CommandAbc9FFTest(): Old model and gold model have different number of PIs.\n" );
36291 Abc_Print( -1,
"Abc_CommandAbc9FFTest(): Old model and gold model have different number of POs.\n" );
36294 printf(
"Entered spec AIG from file \"%s\".\n", pFileName );
36301 Abc_Print( -2,
"usage: &fftest [-ATN num] [-sbduvh] <file> [-G file] [-S str]\n" );
36302 Abc_Print( -2,
"\t performs functional fault test generation\n" );
36303 Abc_Print( -2,
"\t-A num : selects fault model for all gates [default = %d]\n", pPars->
Algo );
36304 Abc_Print( -2,
"\t 0: fault model is not selected (use -S str)\n" );
36305 Abc_Print( -2,
"\t 1: delay fault testing for sequential circuits\n" );
36306 Abc_Print( -2,
"\t 2: traditional stuck-at fault: -S (((a&b)&~p)|q)\n" );
36307 Abc_Print( -2,
"\t 3: complement fault: -S ((a&b)^p)\n" );
36308 Abc_Print( -2,
"\t 4: functionally observable fault\n" );
36309 Abc_Print( -2,
"\t-T num : specifies approximate runtime limit in seconds [default = %d]\n", pPars->
nTimeOut );
36310 Abc_Print( -2,
"\t-N num : specifies iteration to check for fixed parameters [default = %d]\n", pPars->
nIterCheck );
36311 Abc_Print( -2,
"\t-s : toggles starting with the all-0 and all-1 patterns [default = %s]\n", pPars->
fStartPats?
"yes":
"no" );
36312 Abc_Print( -2,
"\t-b : toggles testing for single faults only [default = %s]\n", pPars->
fBasic?
"yes":
"no" );
36313 Abc_Print( -2,
"\t-d : toggles dumping test patterns into file \"tests.txt\" [default = %s]\n", pPars->
fDump?
"yes":
"no" );
36314 Abc_Print( -2,
"\t-u : toggles dumping untestable faults into \"untest.txt\" [default = %s]\n", pPars->
fDumpUntest?
"yes":
"no" );
36315 Abc_Print( -2,
"\t-v : toggles printing verbose information [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
36316 Abc_Print( -2,
"\t-h : print the command usage\n");
36317 Abc_Print( -2,
"\t<file> : (optional) file name with input test patterns\n\n");
36318 Abc_Print( -2,
"\t-G file : (optional) file name with the golden model\n\n");
36319 Abc_Print( -2,
"\t-S str : (optional) string representing the fault model\n");
36320 Abc_Print( -2,
"\t The following notations are used:\n");
36321 Abc_Print( -2,
"\t Functional variables: {a,b} (both a and b are always present)\n");
36322 Abc_Print( -2,
"\t Parameter variables: {p,q,r,s,t,u,v,w} (any number from 1 to 8)\n");
36323 Abc_Print( -2,
"\t Boolean operators: AND(&), OR(|), XOR(^), MUX(?:), NOT(~)\n");
36324 Abc_Print( -2,
"\t Parantheses should be used around each operator. Spaces not allowed.\n");
36325 Abc_Print( -2,
"\t Complement (~) is only allowed before variables (use DeMorgan law).\n");
36327 Abc_Print( -2,
"\t (((a&b)&~p)|q) stuck-at-0/1 at the output\n");
36328 Abc_Print( -2,
"\t (((a&~p)|q)&b) stuck-at-0/1 at input a\n");
36329 Abc_Print( -2,
"\t (((a|p)&(b|q))&~r) stuck-at-1 at the inputs and stuck-at-0 at the output\n");
36330 Abc_Print( -2,
"\t (((a&~p)&(b&~q))|r) stuck-at-0 at the inputs and stuck-at-1 at the output\n");
36331 Abc_Print( -2,
"\t ((a&b)^p) complement at the output\n");
36332 Abc_Print( -2,
"\t (((a^p)&(b^q))^r) complement at the inputs and at the output\n");
36333 Abc_Print( -2,
"\t (a?(b?~s:r):(b?q:p)) functionally observable fault at the output\n");
36334 Abc_Print( -2,
"\t (p?(a|b):(a&b)) replace AND by OR\n");
36353 extern int Gia_QbfSolve(
Gia_Man_t * pGia,
int nPars,
int nIterLimit,
int nConfLimit,
int nTimeOut,
int fVerbose );
36355 int nIterLimit = 0;
36356 int nConfLimit = 0;
36367 if ( globalUtilOptind >= argc )
36369 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
36372 nPars = atoi(argv[globalUtilOptind]);
36373 globalUtilOptind++;
36378 if ( globalUtilOptind >= argc )
36380 Abc_Print( -1,
"Command line switch \"-I\" should be followed by an integer.\n" );
36383 nIterLimit = atoi(argv[globalUtilOptind]);
36384 globalUtilOptind++;
36385 if ( nIterLimit < 0 )
36389 if ( globalUtilOptind >= argc )
36391 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
36394 nConfLimit = atoi(argv[globalUtilOptind]);
36395 globalUtilOptind++;
36396 if ( nConfLimit < 0 )
36400 if ( globalUtilOptind >= argc )
36402 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
36405 nTimeOut = atoi(argv[globalUtilOptind]);
36406 globalUtilOptind++;
36407 if ( nTimeOut < 0 )
36425 if ( pAbc->pGia == NULL )
36427 Abc_Print( -1,
"There is no current GIA.\n" );
36432 Abc_Print( -1,
"Works only for combinational networks.\n" );
36437 Abc_Print( -1,
"The miter should have one primary output.\n" );
36440 if ( !(nPars > 0 && nPars <
Gia_ManPiNum(pAbc->pGia)) )
36442 Abc_Print( -1,
"The number of parameter variables is invalid (should be > 0 and < PI num).\n" );
36450 Abc_Print( -1,
"Cannot quantify more than 16 variables.\n" );
36460 Gia_QbfSolve( pAbc->pGia, nPars, nIterLimit, nConfLimit, nTimeOut, fVerbose );
36464 Abc_Print( -2,
"usage: &qbf [-PICT num] [-dqvh]\n" );
36465 Abc_Print( -2,
"\t solves QBF problem EpVxM(p,x)\n" );
36466 Abc_Print( -2,
"\t-P num : number of parameters p (should be the first PIs) [default = %d]\n", nPars );
36467 Abc_Print( -2,
"\t-I num : quit after the given iteration even if unsolved [default = %d]\n", nIterLimit );
36468 Abc_Print( -2,
"\t-C num : conflict limit per problem [default = %d]\n", nConfLimit );
36469 Abc_Print( -2,
"\t-T num : global timeout [default = %d]\n", nTimeOut );
36470 Abc_Print( -2,
"\t-d : toggle dumping QDIMACS file instead of solving [default = %s]\n", fDumpCnf?
"yes":
"no" );
36471 Abc_Print( -2,
"\t-q : toggle quantifying functions variables [default = %s]\n", fQuantX?
"yes":
"no" );
36472 Abc_Print( -2,
"\t-v : toggle verbose output [default = %s]\n", fVerbose?
"yes":
"no" );
36473 Abc_Print( -2,
"\t-h : print the command usage\n");
36491 int c, nFrames = 10, nWords = 1000, nTimeOut = 0, fSim = 0, fVerbose = 0;
36498 if ( globalUtilOptind >= argc )
36500 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
36503 nFrames = atoi(argv[globalUtilOptind]);
36504 globalUtilOptind++;
36509 if ( globalUtilOptind >= argc )
36511 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
36514 nWords = atoi(argv[globalUtilOptind]);
36515 globalUtilOptind++;
36520 if ( globalUtilOptind >= argc )
36522 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
36525 nTimeOut = atoi(argv[globalUtilOptind]);
36526 globalUtilOptind++;
36527 if ( nTimeOut < 0 )
36542 if ( pAbc->pGia == NULL )
36544 Abc_Print( -1,
"Abc_CommandAbc9Inse(): There is no AIG.\n" );
36549 Abc_Print( -1,
"Abc_CommandAbc9Inse(): AIG is combinational.\n" );
36552 if ( pAbc->pGia->vInitClasses != NULL )
36554 Abc_Print( 1,
"Abc_CommandAbc9Inse(): All-0 initial state is assumed.\n" );
36557 pAbc->pGia->vInitClasses =
Gia_ManInseTest( pAbc->pGia, NULL, nFrames, nWords, nTimeOut, fSim, fVerbose );
36561 Abc_Print( -2,
"usage: &inse [-FWT num] [-svh]\n" );
36562 Abc_Print( -2,
"\t experimental procedure\n" );
36563 Abc_Print( -2,
"\t-F num : the number of timeframes [default = %d]\n", nFrames );
36564 Abc_Print( -2,
"\t-W num : the number of machine words [default = %d]\n", nWords );
36565 Abc_Print( -2,
"\t-T num : approximate global runtime limit in seconds [default = %d]\n", nTimeOut );
36566 Abc_Print( -2,
"\t-s : toggles using ternary simulation [default = %s]\n", fSim?
"yes":
"no" );
36567 Abc_Print( -2,
"\t-v : toggles printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
36568 Abc_Print( -2,
"\t-h : print the command usage\n");
36587 int c, nFrames = 5, nWords = 1000, nTimeOut = 0, fSim = 0, fVerbose = 0;
36594 if ( globalUtilOptind >= argc )
36596 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
36599 nFrames = atoi(argv[globalUtilOptind]);
36600 globalUtilOptind++;
36605 if ( globalUtilOptind >= argc )
36607 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
36610 nWords = atoi(argv[globalUtilOptind]);
36611 globalUtilOptind++;
36616 if ( globalUtilOptind >= argc )
36618 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
36621 nTimeOut = atoi(argv[globalUtilOptind]);
36622 globalUtilOptind++;
36623 if ( nTimeOut < 0 )
36638 if ( pAbc->pGia == NULL )
36640 Abc_Print( -1,
"Abc_CommandAbc9Maxi(): There is no AIG.\n" );
36645 Abc_Print( -1,
"Abc_CommandAbc9Maxi(): AIG is combinational.\n" );
36648 pAbc->pGia->vInitClasses =
Gia_ManMaxiTest( pAbc->pGia, vTemp = pAbc->pGia->vInitClasses, nFrames, nWords, nTimeOut, fSim, fVerbose );
36653 Abc_Print( -2,
"usage: &maxi [-FWT num] [-svh]\n" );
36654 Abc_Print( -2,
"\t experimental procedure\n" );
36655 Abc_Print( -2,
"\t-F num : the number of timeframes [default = %d]\n", nFrames );
36656 Abc_Print( -2,
"\t-W num : the number of machine words [default = %d]\n", nWords );
36657 Abc_Print( -2,
"\t-T num : approximate global runtime limit in seconds [default = %d]\n", nTimeOut );
36658 Abc_Print( -2,
"\t-s : toggles using ternary simulation [default = %s]\n", fSim?
"yes":
"no" );
36659 Abc_Print( -2,
"\t-v : toggles printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
36660 Abc_Print( -2,
"\t-h : print the command usage\n");
36678 int c, nFrames = 1000, nWords = 1000, nTimeOut = 0, fSim = 0, fVerbose = 0;
36685 if ( globalUtilOptind >= argc )
36687 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
36690 nFrames = atoi(argv[globalUtilOptind]);
36691 globalUtilOptind++;
36696 if ( globalUtilOptind >= argc )
36698 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
36701 nWords = atoi(argv[globalUtilOptind]);
36702 globalUtilOptind++;
36707 if ( globalUtilOptind >= argc )
36709 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
36712 nTimeOut = atoi(argv[globalUtilOptind]);
36713 globalUtilOptind++;
36714 if ( nTimeOut < 0 )
36729 if ( pAbc->pGia == NULL )
36731 Abc_Print( -1,
"Abc_CommandAbc9Bmci(): There is no AIG.\n" );
36736 Abc_Print( -1,
"Abc_CommandAbc9Bmci(): AIG is combinational.\n" );
36739 if ( pAbc->pGia->vInitClasses == NULL )
36741 Abc_Print( -1,
"Abc_CommandAbc9Bmci(): Init array is not given.\n" );
36744 Gia_ManBmciTest( pAbc->pGia, pAbc->pGia->vInitClasses, nFrames, nWords, nTimeOut, fSim, fVerbose );
36748 Abc_Print( -2,
"usage: &bmci [-FWT num] [-svh]\n" );
36749 Abc_Print( -2,
"\t experimental procedure\n" );
36750 Abc_Print( -2,
"\t-F num : the number of timeframes [default = %d]\n", nFrames );
36751 Abc_Print( -2,
"\t-W num : the number of machine words [default = %d]\n", nWords );
36752 Abc_Print( -2,
"\t-T num : approximate global runtime limit in seconds [default = %d]\n", nTimeOut );
36753 Abc_Print( -2,
"\t-s : toggles using ternary simulation [default = %s]\n", fSim?
"yes":
"no" );
36754 Abc_Print( -2,
"\t-v : toggles printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
36755 Abc_Print( -2,
"\t-h : print the command usage\n");
36773 int c, nFrames = 1000, fVerbose = 0;
36780 if ( globalUtilOptind >= argc )
36782 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
36785 nFrames = atoi(argv[globalUtilOptind]);
36786 globalUtilOptind++;
36799 if ( pAbc->pGia == NULL )
36801 Abc_Print( -1,
"Abc_CommandAbc9Bmci(): There is no AIG.\n" );
36806 Abc_Print( -1,
"Abc_CommandAbc9Bmci(): AIG is combinational.\n" );
36810 pAbc->vAbcObjIds =
Gia_ManPoXSim( pAbc->pGia, nFrames, fVerbose );
36814 Abc_Print( -2,
"usage: &poxsim [-F num] [-vh]\n" );
36815 Abc_Print( -2,
"\t X-valued simulation of the multi-output sequential miter\n" );
36816 Abc_Print( -2,
"\t-F num : the number of timeframes [default = %d]\n", nFrames );
36817 Abc_Print( -2,
"\t-v : toggles printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
36818 Abc_Print( -2,
"\t-h : print the command usage\n");
36837 int c, fVerbose = 0;
36852 if ( pAbc->pGia == NULL )
36854 Abc_Print( -1,
"Abc_CommandAbc9Demiter(): There is no AIG.\n" );
36859 Abc_Print( -1,
"Abc_CommandAbc9Demiter(): Miter should have one output.\n" );
36869 Abc_Print( -2,
"usage: &demiter [-vh]\n" );
36870 Abc_Print( -2,
"\t decomposes a single-output miter\n" );
36871 Abc_Print( -2,
"\t-v : toggles printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
36872 Abc_Print( -2,
"\t-h : print the command usage\n");
36892 int c, nFaddMin = 3, fUseNat = 0, fUseArt = 0, fVerbose = 0;
36893 int DelayC = 0, nPathMin = 3, nPathMax = 32, nPathLimit = 50, fUseFanout = 0, fIgnoreBoxDelays = 0;
36900 if ( globalUtilOptind >= argc )
36902 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
36905 nFaddMin = atoi(argv[globalUtilOptind]);
36906 globalUtilOptind++;
36907 if ( nFaddMin < 0 )
36911 if ( globalUtilOptind >= argc )
36913 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
36916 DelayC = atoi(argv[globalUtilOptind]);
36917 globalUtilOptind++;
36922 if ( globalUtilOptind >= argc )
36924 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
36927 nPathMin = atoi(argv[globalUtilOptind]);
36928 globalUtilOptind++;
36929 if ( nPathMin < 0 )
36933 if ( globalUtilOptind >= argc )
36935 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
36938 nPathMax = atoi(argv[globalUtilOptind]);
36939 globalUtilOptind++;
36940 if ( nPathMax < 0 )
36944 if ( globalUtilOptind >= argc )
36946 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
36949 nPathLimit = atoi(argv[globalUtilOptind]);
36950 globalUtilOptind++;
36951 if ( nPathLimit < 0 )
36964 fIgnoreBoxDelays ^= 1;
36975 if ( pAbc->pGia == NULL )
36977 Abc_Print( -1,
"Abc_CommandAbc9Fadds(): There is no AIG.\n" );
36998 Abc_Print( -2,
"usage: &fadds [-NBSLP num] [-nafvh]\n" );
36999 Abc_Print( -2,
"\t detects full-adder chains and puts them into white boxes\n" );
37000 Abc_Print( -2,
"\t-n : toggles detecting natural full-adder chains [default = %s]\n", fUseNat?
"yes":
"no" );
37001 Abc_Print( -2,
"\t-N num : minimum length of a natural full-adder chain to detect [default = %d]\n", nFaddMin );
37002 Abc_Print( -2,
"\t-a : toggles detecting artificial full-adder chains [default = %s]\n", fUseArt?
"yes":
"no" );
37003 Abc_Print( -2,
"\t-B num : full-adder box delay (percentage of AND-gate delay) [default = %d]\n", DelayC );
37004 Abc_Print( -2,
"\t-S num : minimum length of an artificial full-adder chain [default = %d]\n", nPathMin );
37005 Abc_Print( -2,
"\t-L num : maximum length of an artificial full-adder chain [default = %d]\n", nPathMax );
37006 Abc_Print( -2,
"\t-P num : maximum number of artificial full-adder chains to detect [default = %d]\n", nPathLimit );
37007 Abc_Print( -2,
"\t-f : toggles allowing external fanouts in artificial chains [default = %s]\n", fUseFanout?
"yes":
"no" );
37008 Abc_Print( -2,
"\t-b : toggles ignoring boxes when computing delays [default = %s]\n", fIgnoreBoxDelays?
"yes":
"no" );
37009 Abc_Print( -2,
"\t-v : toggles printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
37010 Abc_Print( -2,
"\t-h : print the command usage\n");
37040 if ( globalUtilOptind >= argc )
37042 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
37045 pPars->
nTfoLevMax = atoi(argv[globalUtilOptind]);
37046 globalUtilOptind++;
37051 if ( globalUtilOptind >= argc )
37053 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
37056 pPars->
nFanoutMax = atoi(argv[globalUtilOptind]);
37057 globalUtilOptind++;
37062 if ( globalUtilOptind >= argc )
37064 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
37067 pPars->
nDepthMax = atoi(argv[globalUtilOptind]);
37068 globalUtilOptind++;
37073 if ( globalUtilOptind >= argc )
37075 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
37078 pPars->
nWinSizeMax = atoi(argv[globalUtilOptind]);
37079 globalUtilOptind++;
37084 if ( globalUtilOptind >= argc )
37086 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
37090 globalUtilOptind++;
37095 if ( globalUtilOptind >= argc )
37097 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
37100 pPars->
nBTLimit = atoi(argv[globalUtilOptind]);
37101 globalUtilOptind++;
37106 if ( globalUtilOptind >= argc )
37108 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
37111 pPars->
nNodesMax = atoi(argv[globalUtilOptind]);
37112 globalUtilOptind++;
37137 if ( pAbc->pGia == NULL )
37139 Abc_Print( -1,
"Abc_CommandAbc9Mfs(): There is no AIG.\n" );
37144 Abc_Print( -1,
"Abc_CommandAbc9Mfs(): This command does not work with barrier buffers.\n" );
37149 Abc_Print( -1,
"Abc_CommandAbc9Mfs(): The current AIG has no mapping.\n" );
37157 Abc_Print( -2,
"usage: &mfs [-WFDMLCN <num>] [-daevwh]\n" );
37158 Abc_Print( -2,
"\t performs don't-care-based optimization of logic networks\n" );
37159 Abc_Print( -2,
"\t-W <num> : the number of levels in the TFO cone (0 <= num) [default = %d]\n", pPars->
nTfoLevMax );
37160 Abc_Print( -2,
"\t-F <num> : the max number of fanouts to skip (1 <= num) [default = %d]\n", pPars->
nFanoutMax );
37161 Abc_Print( -2,
"\t-D <num> : the max depth nodes to try (0 = no limit) [default = %d]\n", pPars->
nDepthMax );
37162 Abc_Print( -2,
"\t-M <num> : the max node count of windows to consider (0 = no limit) [default = %d]\n", pPars->
nWinSizeMax );
37163 Abc_Print( -2,
"\t-L <num> : the max increase in node level after resynthesis (0 <= num) [default = %d]\n", pPars->
nGrowthLevel );
37164 Abc_Print( -2,
"\t-C <num> : the max number of conflicts in one SAT run (0 = no limit) [default = %d]\n", pPars->
nBTLimit );
37165 Abc_Print( -2,
"\t-N <num> : the max number of nodes to try (0 = all) [default = %d]\n", pPars->
nNodesMax );
37166 Abc_Print( -2,
"\t-d : toggle performing redundancy removal [default = %s]\n", pPars->
fRrOnly?
"yes":
"no" );
37167 Abc_Print( -2,
"\t-a : toggle minimizing area or area+edges [default = %s]\n", pPars->
fArea?
"area":
"area+edges" );
37168 Abc_Print( -2,
"\t-e : toggle high-effort resubstitution [default = %s]\n", pPars->
fMoreEffort?
"yes":
"no" );
37169 Abc_Print( -2,
"\t-v : toggle printing optimization summary [default = %s]\n", pPars->
fVerbose?
"yes":
"no" );
37170 Abc_Print( -2,
"\t-w : toggle printing detailed stats for each node [default = %s]\n", pPars->
fVeryVerbose?
"yes":
"no" );
37171 Abc_Print( -2,
"\t-h : print the command usage\n");
37215 if ( globalUtilOptind >= argc )
37217 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
37220 iFrStart = atoi(argv[globalUtilOptind]);
37221 globalUtilOptind++;
37222 if ( iFrStart < 0 )
37226 if ( globalUtilOptind >= argc )
37228 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
37231 iFrStop = atoi(argv[globalUtilOptind]);
37232 globalUtilOptind++;
37247 if ( pAbc->pCex == NULL )
37249 Abc_Print( 1,
"There is no current cex.\n");
37252 if ( pAbc->pCex2 == NULL )
37254 Abc_Print( 1,
"There is no saved cex.\n");
37257 if ( iFrStop - iFrStart < pAbc->pCex->iFrame )
37259 Abc_Print( 1,
"Current CEX does not allow to shorten the saved CEX.\n");
37262 pCexNew =
Abc_CexMerge( pAbc->pCex2, pAbc->pCex, iFrStart, iFrStop );
37263 if ( pCexNew == NULL )
37265 Abc_Print( 1,
"Merging CEXes has failed.\n");
37270 pAbc->pCex2 = pCexNew;
37274 Abc_Print( -2,
"usage: &cexmerge [-FG num] [-vh]\n" );
37275 Abc_Print( -2,
"\t merges the current CEX into the saved one\n" );
37276 Abc_Print( -2,
"\t and sets the resulting CEX as the saved one\n" );
37277 Abc_Print( -2,
"\t-F num : 0-based number of the starting frame [default = %d]\n", iFrStart );
37278 Abc_Print( -2,
"\t-G num : 0-based number of the ending frame [default = %d]\n", iFrStop );
37279 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
37280 Abc_Print( -2,
"\t-h : print the command usage\n");
37299 int iFrameStart = 0;
37303 int c, fVerbose = 0;
37310 if ( globalUtilOptind >= argc )
37312 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
37315 iFrameStart = atoi(argv[globalUtilOptind]);
37316 globalUtilOptind++;
37317 if ( iFrameStart < 0 )
37321 if ( globalUtilOptind >= argc )
37323 Abc_Print( -1,
"Command line switch \"-N\" should be followed by an integer.\n" );
37326 nRealPis = atoi(argv[globalUtilOptind]);
37327 globalUtilOptind++;
37328 if ( nRealPis < 0 )
37346 if ( pAbc->pGia == NULL )
37348 Abc_Print( -1,
"Abc_CommandAbc9CexMin(): There is no AIG.\n" );
37353 Abc_Print( -1,
"Abc_CommandAbc9CexMin(): The network is combinational.\n" );
37356 if ( pAbc->pCex == NULL )
37358 Abc_Print( -1,
"Abc_CommandAbc9CexMin(): There is no counter-example.\n" );
37361 pCexNew =
Gia_ManCexMin( pAbc->pGia, pAbc->pCex, iFrameStart, nRealPis, fJustMax, fUseAll, fVerbose );
37367 Abc_Print( -2,
"usage: &cexmin [-FN num] [-javh]\n" );
37368 Abc_Print( -2,
"\t minimizes a deep counter-example\n" );
37369 Abc_Print( -2,
"\t-F num : starting timeframe for minimization [default = %d]\n", iFrameStart );
37370 Abc_Print( -2,
"\t-N num : the number of real primary inputs [default = %d]\n", nRealPis );
37371 Abc_Print( -2,
"\t-j : toggle computing all justifying assignments [default = %s]\n", fJustMax?
"yes":
"no" );
37372 Abc_Print( -2,
"\t-a : toggle using all terminal objects [default = %s]\n", fUseAll?
"yes":
"no" );
37373 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
37374 Abc_Print( -2,
"\t-h : print the command usage\n");
37393 int c, fVerbose = 0;
37408 if ( pAbc->pGia == NULL )
37410 Abc_Print( -1,
"Abc_CommandAbc9AbsDerive(): There is no AIG.\n" );
37415 Abc_Print( -1,
"The network is combinational.\n" );
37418 if ( pAbc->pGia->vFlopClasses == NULL )
37420 Abc_Print( -1,
"Abstraction flop map is missing.\n" );
37428 Abc_Print( -2,
"usage: &abs_derive [-vh]\n" );
37429 Abc_Print( -2,
"\t derives abstracted model using the pre-computed flop map\n" );
37430 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
37431 Abc_Print( -2,
"\t-h : print the command usage\n");
37450 int nFfToAddMax = 0;
37452 int fSensePath = 0;
37461 if ( globalUtilOptind >= argc )
37463 Abc_Print( -1,
"Command line switch \"-M\" should be followed by an integer.\n" );
37466 nFfToAddMax = atoi(argv[globalUtilOptind]);
37467 globalUtilOptind++;
37468 if ( nFfToAddMax < 0 )
37486 if ( pAbc->pGia == NULL )
37488 Abc_Print( -1,
"Abc_CommandAbc9AbsRefine(): There is no AIG.\n" );
37493 Abc_Print( -1,
"The network is combinational.\n" );
37496 if ( pAbc->pCex == NULL )
37498 Abc_Print( -1,
"Abc_CommandAbc9AbsRefine(): There is no counter-example.\n" );
37506 Abc_Print( -2,
"usage: &abs_refine [-M <num>] [-tsvh]\n" );
37507 Abc_Print( -2,
"\t refines the pre-computed flop map using the counter-example\n" );
37508 Abc_Print( -2,
"\t-M num : the max number of flops to add (0 = not used) [default = %d]\n", nFfToAddMax );
37509 Abc_Print( -2,
"\t-t : toggle trying four abstractions instead of one [default = %s]\n", fTryFour?
"yes":
"no" );
37510 Abc_Print( -2,
"\t-s : toggle using the path sensitization algorithm [default = %s]\n", fSensePath?
"yes":
"no" );
37511 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
37512 Abc_Print( -2,
"\t-h : print the command usage\n");
37531 int c, fVerbose = 0;
37546 if ( pAbc->pGia == NULL )
37548 Abc_Print( -1,
"Abc_CommandAbc9GlaDerive(): There is no AIG.\n" );
37558 if ( pAbc->pGia->vGateClasses == NULL )
37560 Abc_Print( -1,
"Abstraction gate map is missing.\n" );
37571 Abc_Print( -2,
"usage: &gla_derive [-vh]\n" );
37572 Abc_Print( -2,
"\t derives abstracted model using the pre-computed gate map\n" );
37573 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
37574 Abc_Print( -2,
"\t-h : print the command usage\n");
37592 int iFrameStart = 0;
37593 int iFrameExtra = 0;
37595 int c, fVerbose = 0;
37602 if ( globalUtilOptind >= argc )
37604 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
37607 iFrameStart = atoi(argv[globalUtilOptind]);
37608 globalUtilOptind++;
37609 if ( iFrameStart < 0 )
37613 if ( globalUtilOptind >= argc )
37615 Abc_Print( -1,
"Command line switch \"-G\" should be followed by an integer.\n" );
37618 iFrameExtra = atoi(argv[globalUtilOptind]);
37619 globalUtilOptind++;
37620 if ( iFrameExtra < 0 )
37635 if ( pAbc->pGia == NULL )
37637 Abc_Print( -1,
"Abc_CommandAbc9GlaRefine(): There is no AIG.\n" );
37642 Abc_Print( -1,
"The network is combinational.\n" );
37645 if ( pAbc->pCex == NULL )
37647 Abc_Print( -1,
"Abc_CommandAbc9GlaRefine(): There is no counter-example.\n" );
37650 pAbc->Status =
Gia_ManNewRefine( pAbc->pGia, pAbc->pCex, iFrameStart, iFrameExtra, fVerbose );
37655 Abc_Print( -2,
"usage: &gla_refine [-FG num] [-vh]\n" );
37656 Abc_Print( -2,
"\t refines the pre-computed gate map using the counter-example\n" );
37657 Abc_Print( -2,
"\t-F num : starting timeframe for suffix refinement [default = %d]\n", iFrameStart );
37658 Abc_Print( -2,
"\t-G num : the number of additional timeframes to try [default = %d]\n", iFrameExtra );
37660 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
37661 Abc_Print( -2,
"\t-h : print the command usage\n");
37683 int c, fVerbose = 0;
37690 if ( globalUtilOptind >= argc )
37692 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
37695 nFrameMax = atoi(argv[globalUtilOptind]);
37696 globalUtilOptind++;
37697 if ( nFrameMax < 0 )
37701 if ( globalUtilOptind >= argc )
37703 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
37706 nTimeOut = atoi(argv[globalUtilOptind]);
37707 globalUtilOptind++;
37708 if ( nTimeOut < 0 )
37729 if ( pAbc->pGia == NULL )
37731 Abc_Print( -1,
"Abc_CommandAbc9GlaShrink(): There is no AIG.\n" );
37734 if ( pAbc->pGia->vGateClasses == NULL )
37736 Abc_Print( -1,
"Abc_CommandAbc9GlaShrink(): There is no gate-level abstraction.\n" );
37739 Gia_ManShrinkGla( pAbc->pGia, nFrameMax, nTimeOut, fUsePdr, fUseSat, fUseBdd, fVerbose );
37743 Abc_Print( -2,
"usage: &gla_shrink [-FT num] [-psbvh]\n" );
37744 Abc_Print( -2,
"\t shrinks the abstraction by removing redundant objects\n" );
37745 Abc_Print( -2,
"\t-F num : the maximum timeframe to check to [default = %d]\n", nFrameMax );
37746 Abc_Print( -2,
"\t-T num : the timeout per call, in seconds [default = %d]\n", nTimeOut );
37747 Abc_Print( -2,
"\t-p : toggle using PDR for checking [default = %s]\n", fUsePdr?
"yes":
"no" );
37748 Abc_Print( -2,
"\t-s : toggle using BMC for checking [default = %s]\n", fUseSat?
"yes":
"no" );
37749 Abc_Print( -2,
"\t-b : toggle using BDDs for checking [default = %s]\n", fUseBdd?
"yes":
"no" );
37750 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
37751 Abc_Print( -2,
"\t-h : print the command usage\n");
37770 int c, fNewAlgo = 1;
37773 while ( ( c =
Extra_UtilGetopt( argc, argv,
"FSCLDETRQPBAtfardmnscbpquwvh" ) ) != EOF )
37778 if ( globalUtilOptind >= argc )
37780 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
37783 pPars->nFramesMax = atoi(argv[globalUtilOptind]);
37784 globalUtilOptind++;
37785 if ( pPars->nFramesMax < 0 )
37789 if ( globalUtilOptind >= argc )
37791 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
37794 pPars->nFramesStart = atoi(argv[globalUtilOptind]);
37795 globalUtilOptind++;
37796 if ( pPars->nFramesStart < 0 )
37800 if ( globalUtilOptind >= argc )
37802 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
37805 pPars->nConfLimit = atoi(argv[globalUtilOptind]);
37806 globalUtilOptind++;
37807 if ( pPars->nConfLimit < 0 )
37811 if ( globalUtilOptind >= argc )
37813 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
37816 pPars->nLearnedStart = atoi(argv[globalUtilOptind]);
37817 globalUtilOptind++;
37818 if ( pPars->nLearnedStart < 0 )
37822 if ( globalUtilOptind >= argc )
37824 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
37827 pPars->nLearnedDelta = atoi(argv[globalUtilOptind]);
37828 globalUtilOptind++;
37829 if ( pPars->nLearnedDelta < 0 )
37833 if ( globalUtilOptind >= argc )
37835 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
37838 pPars->nLearnedPerce = atoi(argv[globalUtilOptind]);
37839 globalUtilOptind++;
37840 if ( pPars->nLearnedPerce < 0 )
37844 if ( globalUtilOptind >= argc )
37846 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
37849 pPars->nTimeOut = atoi(argv[globalUtilOptind]);
37850 globalUtilOptind++;
37851 if ( pPars->nTimeOut < 0 )
37855 if ( globalUtilOptind >= argc )
37857 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
37860 pPars->nRatioMin = atoi(argv[globalUtilOptind]);
37861 globalUtilOptind++;
37862 if ( pPars->nRatioMin < 0 )
37866 if ( globalUtilOptind >= argc )
37868 Abc_Print( -1,
"Command line switch \"-Q\" should be followed by an integer.\n" );
37871 pPars->nRatioMin2 = atoi(argv[globalUtilOptind]);
37872 globalUtilOptind++;
37873 if ( pPars->nRatioMin2 < 0 )
37877 if ( globalUtilOptind >= argc )
37879 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
37882 pPars->nRatioMax = atoi(argv[globalUtilOptind]);
37883 globalUtilOptind++;
37884 if ( pPars->nRatioMax < 0 )
37888 if ( globalUtilOptind >= argc )
37890 Abc_Print( -1,
"Command line switch \"-B\" should be followed by an integer.\n" );
37893 pPars->nFramesNoChangeLim = atoi(argv[globalUtilOptind]);
37894 globalUtilOptind++;
37895 if ( pPars->nFramesNoChangeLim < 0 )
37899 if ( globalUtilOptind >= argc )
37901 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a file name.\n" );
37905 globalUtilOptind++;
37908 pPars->fUseTermVars ^= 1;
37911 pPars->fPropFanout ^= 1;
37914 pPars->fAddLayer ^= 1;
37917 pPars->fNewRefine ^= 1;
37920 pPars->fDumpVabs ^= 1;
37923 pPars->fDumpMabs ^= 1;
37929 pPars->fUseSkip ^= 1;
37932 pPars->fUseSimple ^= 1;
37935 pPars->fSkipHash ^= 1;
37938 pPars->fUseFullProof ^= 1;
37941 pPars->fCallProver ^= 1;
37944 pPars->fSimpProver ^= 1;
37947 pPars->fVerbose ^= 1;
37950 pPars->fVeryVerbose ^= 1;
37958 if ( pAbc->pGia == NULL )
37972 Abc_Print( 1,
"The network is more than one PO (run \"orpos\").\n" );
37975 if ( pPars->nFramesMax < 0 )
37977 Abc_Print( 1,
"The number of starting frames should be a positive integer.\n" );
37980 if ( pPars->nFramesMax && pPars->nFramesStart > pPars->nFramesMax )
37982 Abc_Print( 1,
"The starting frame is larger than the max number of frames.\n" );
37989 pAbc->nFrames = pPars->iFrame;
37994 Abc_Print( -2,
"usage: &gla [-FSCLDETRQPB num] [-A file] [-fardmnscbpquwvh]\n" );
37995 Abc_Print( -2,
"\t fixed-time-frame gate-level proof- and cex-based abstraction\n" );
37996 Abc_Print( -2,
"\t-F num : the max number of timeframes to unroll [default = %d]\n", pPars->nFramesMax );
37997 Abc_Print( -2,
"\t-S num : the starting time frame (0=unused) [default = %d]\n", pPars->nFramesStart );
37998 Abc_Print( -2,
"\t-C num : the max number of SAT solver conflicts (0=unused) [default = %d]\n", pPars->nConfLimit );
37999 Abc_Print( -2,
"\t-L num : the max number of learned clauses to keep (0=unused) [default = %d]\n", pPars->nLearnedStart );
38000 Abc_Print( -2,
"\t-D num : delta value for learned clause removal [default = %d]\n", pPars->nLearnedDelta );
38001 Abc_Print( -2,
"\t-E num : ratio percentage for learned clause removal [default = %d]\n", pPars->nLearnedPerce );
38002 Abc_Print( -2,
"\t-T num : an approximate timeout, in seconds [default = %d]\n", pPars->nTimeOut );
38003 Abc_Print( -2,
"\t-R num : stop when abstraction size exceeds num %% (0<=num<=100) [default = %d]\n", pPars->nRatioMin );
38004 Abc_Print( -2,
"\t-Q num : stop when abstraction size exceeds num %% during refinement (0<=num<=100) [default = %d]\n", pPars->nRatioMin2 );
38005 Abc_Print( -2,
"\t-P num : maximum percentage of added objects before a restart (0<=num<=100) [default = %d]\n", pPars->nRatioMax );
38006 Abc_Print( -2,
"\t-B num : the number of stable frames to call prover or dump abstraction [default = %d]\n", pPars->nFramesNoChangeLim );
38007 Abc_Print( -2,
"\t-A file : file name for dumping abstrated model [default = \"glabs.aig\"]\n" );
38008 Abc_Print( -2,
"\t-f : toggle propagating fanout implications [default = %s]\n", pPars->fPropFanout?
"yes":
"no" );
38009 Abc_Print( -2,
"\t-a : toggle refinement by adding one layers of gates [default = %s]\n", pPars->fAddLayer?
"yes":
"no" );
38010 Abc_Print( -2,
"\t-r : toggle using improved refinement heuristics [default = %s]\n", pPars->fNewRefine?
"yes":
"no" );
38011 Abc_Print( -2,
"\t-d : toggle dumping abstracted model into a file [default = %s]\n", pPars->fDumpVabs?
"yes":
"no" );
38012 Abc_Print( -2,
"\t-m : toggle dumping abstraction map into a file [default = %s]\n", pPars->fDumpMabs?
"yes":
"no" );
38013 Abc_Print( -2,
"\t-n : toggle using new algorithms [default = %s]\n", fNewAlgo?
"yes":
"no" );
38014 Abc_Print( -2,
"\t-s : toggle skipping previously proved timeframes [default = %s]\n", pPars->fUseSkip?
"yes":
"no" );
38015 Abc_Print( -2,
"\t-c : toggle using naive (2-input AND node) CNF encoding [default = %s]\n", pPars->fUseSimple?
"yes":
"no" );
38016 Abc_Print( -2,
"\t-b : toggle CNF construction without hashing [default = %s]\n", pPars->fSkipHash?
"yes":
"no" );
38017 Abc_Print( -2,
"\t-p : toggle using full-proof for UNSAT cores [default = %s]\n", pPars->fUseFullProof?
"yes":
"no" );
38018 Abc_Print( -2,
"\t-q : toggle calling the prover [default = %s]\n", pPars->fCallProver?
"yes":
"no" );
38019 Abc_Print( -2,
"\t-u : toggle enabling simplifation before calling the prover [default = %s]\n", pPars->fSimpProver?
"yes":
"no" );
38020 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
38021 Abc_Print( -2,
"\t-w : toggle printing more verbose information [default = %s]\n", pPars->fVeryVerbose?
"yes":
"no" );
38022 Abc_Print( -2,
"\t-h : print the command usage\n");
38044 while ( ( c =
Extra_UtilGetopt( argc, argv,
"FSPCLDETRAtradvh" ) ) != EOF )
38049 if ( globalUtilOptind >= argc )
38051 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
38054 pPars->nFramesMax = atoi(argv[globalUtilOptind]);
38055 globalUtilOptind++;
38056 if ( pPars->nFramesMax < 0 )
38060 if ( globalUtilOptind >= argc )
38062 Abc_Print( -1,
"Command line switch \"-S\" should be followed by an integer.\n" );
38065 pPars->nFramesStart = atoi(argv[globalUtilOptind]);
38066 globalUtilOptind++;
38067 if ( pPars->nFramesStart < 0 )
38071 if ( globalUtilOptind >= argc )
38073 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
38076 pPars->nFramesPast = atoi(argv[globalUtilOptind]);
38077 globalUtilOptind++;
38078 if ( pPars->nFramesPast < 0 )
38082 if ( globalUtilOptind >= argc )
38084 Abc_Print( -1,
"Command line switch \"-C\" should be followed by an integer.\n" );
38087 pPars->nConfLimit = atoi(argv[globalUtilOptind]);
38088 globalUtilOptind++;
38089 if ( pPars->nConfLimit < 0 )
38093 if ( globalUtilOptind >= argc )
38095 Abc_Print( -1,
"Command line switch \"-L\" should be followed by an integer.\n" );
38098 pPars->nLearnedStart = atoi(argv[globalUtilOptind]);
38099 globalUtilOptind++;
38100 if ( pPars->nLearnedStart < 0 )
38104 if ( globalUtilOptind >= argc )
38106 Abc_Print( -1,
"Command line switch \"-D\" should be followed by an integer.\n" );
38109 pPars->nLearnedDelta = atoi(argv[globalUtilOptind]);
38110 globalUtilOptind++;
38111 if ( pPars->nLearnedDelta < 0 )
38115 if ( globalUtilOptind >= argc )
38117 Abc_Print( -1,
"Command line switch \"-E\" should be followed by an integer.\n" );
38120 pPars->nLearnedPerce = atoi(argv[globalUtilOptind]);
38121 globalUtilOptind++;
38122 if ( pPars->nLearnedPerce < 0 )
38126 if ( globalUtilOptind >= argc )
38128 Abc_Print( -1,
"Command line switch \"-T\" should be followed by an integer.\n" );
38131 pPars->nTimeOut = atoi(argv[globalUtilOptind]);
38132 globalUtilOptind++;
38133 if ( pPars->nTimeOut < 0 )
38137 if ( globalUtilOptind >= argc )
38139 Abc_Print( -1,
"Command line switch \"-R\" should be followed by an integer.\n" );
38142 pPars->nRatioMin = atoi(argv[globalUtilOptind]);
38143 globalUtilOptind++;
38144 if ( pPars->nRatioMin < 0 )
38148 if ( globalUtilOptind >= argc )
38150 Abc_Print( -1,
"Command line switch \"-A\" should be followed by a file name.\n" );
38154 globalUtilOptind++;
38157 pPars->fUseTermVars ^= 1;
38160 pPars->fUseRollback ^= 1;
38163 pPars->fAddLayer ^= 1;
38166 pPars->fDumpVabs ^= 1;
38169 pPars->fVerbose ^= 1;
38177 if ( pAbc->pGia == NULL )
38184 Abc_Print( -1,
"The network is combinational.\n" );
38189 Abc_Print( 1,
"The network is more than one PO (run \"orpos\").\n" );
38192 if ( pPars->nFramesMax < 0 )
38194 Abc_Print( 1,
"The number of starting frames should be a positive integer.\n" );
38197 if ( pPars->nFramesMax && pPars->nFramesStart > pPars->nFramesMax )
38199 Abc_Print( 1,
"The starting frame is larger than the max number of frames.\n" );
38203 pAbc->nFrames = pPars->iFrame;
38208 Abc_Print( -2,
"usage: &vta [-FSPCLDETR num] [-A file] [-tradvh]\n" );
38209 Abc_Print( -2,
"\t variable-time-frame gate-level proof- and cex-based abstraction\n" );
38210 Abc_Print( -2,
"\t-F num : the max number of timeframes to unroll [default = %d]\n", pPars->nFramesMax );
38211 Abc_Print( -2,
"\t-S num : the starting time frame (0=unused) [default = %d]\n", pPars->nFramesStart );
38212 Abc_Print( -2,
"\t-P num : the number of previous frames for UNSAT core [default = %d]\n", pPars->nFramesPast );
38213 Abc_Print( -2,
"\t-C num : the max number of SAT solver conflicts (0=unused) [default = %d]\n", pPars->nConfLimit );
38214 Abc_Print( -2,
"\t-L num : the max number of learned clauses to keep (0=unused) [default = %d]\n", pPars->nLearnedStart );
38215 Abc_Print( -2,
"\t-D num : delta value for learned clause removal [default = %d]\n", pPars->nLearnedDelta );
38216 Abc_Print( -2,
"\t-E num : ratio percentage for learned clause removal [default = %d]\n", pPars->nLearnedPerce );
38217 Abc_Print( -2,
"\t-T num : an approximate timeout, in seconds [default = %d]\n", pPars->nTimeOut );
38218 Abc_Print( -2,
"\t-R num : minimum percentage of abstracted objects (0<=num<=100) [default = %d]\n", pPars->nRatioMin );
38219 Abc_Print( -2,
"\t-A file : file name for dumping abstrated model [default = \"vabs.aig\"]\n" );
38220 Abc_Print( -2,
"\t-t : toggle using terminal variables [default = %s]\n", pPars->fUseTermVars?
"yes":
"no" );
38221 Abc_Print( -2,
"\t-r : toggle using rollback after the starting frames [default = %s]\n", pPars->fUseRollback?
"yes":
"no" );
38222 Abc_Print( -2,
"\t-a : toggle refinement by adding one layers of gates [default = %s]\n", pPars->fAddLayer?
"yes":
"no" );
38223 Abc_Print( -2,
"\t-d : toggle dumping abstracted model into a file [default = %s]\n", pPars->fDumpVabs?
"yes":
"no" );
38224 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", pPars->fVerbose?
"yes":
"no" );
38225 Abc_Print( -2,
"\t-h : print the command usage\n");
38242 int c, fVerbose = 0;
38257 if ( pAbc->pGia == NULL )
38259 Abc_Print( -1,
"Abc_CommandAbc9Vta2Gla(): There is no AIG.\n" );
38262 if ( pAbc->pGia->vObjClasses == NULL )
38264 Abc_Print( -1,
"Abc_CommandAbc9Vta2Gla(): There is no variable-time-frame abstraction is defined.\n" );
38273 Abc_Print( -2,
"usage: &vta_gla [-vh]\n" );
38274 Abc_Print( -2,
"\t maps variable- into fixed-time-frame gate-level abstraction\n" );
38275 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
38276 Abc_Print( -2,
"\t-h : print the command usage\n");
38293 int c, fVerbose = 0;
38294 int nFrames = pAbc->nFrames;
38301 if ( globalUtilOptind >= argc )
38303 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
38306 nFrames = atoi(argv[globalUtilOptind]);
38307 globalUtilOptind++;
38320 if ( pAbc->pGia == NULL )
38322 Abc_Print( -1,
"Abc_CommandAbc9Gla2Vta(): There is no AIG.\n" );
38325 if ( pAbc->pGia->vGateClasses == NULL )
38327 Abc_Print( -1,
"Abc_CommandAbc9Gla2Vta(): There is no gate-level abstraction is defined.\n" );
38330 if ( pAbc->nFrames < 1 )
38332 Abc_Print( -1,
"Abc_CommandAbc9Gla2Vta(): The number of timeframes (%d) should be a positive integer.\n", nFrames );
38341 Abc_Print( -2,
"usage: &gla_vta [-F num] [-vh]\n" );
38342 Abc_Print( -2,
"\t maps fixed- into variable-time-frame gate-level abstraction\n" );
38343 Abc_Print( -2,
"\t-F num : timeframes in the resulting variable-time-frame abstraction [default = %d]\n", nFrames );
38344 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
38345 Abc_Print( -2,
"\t-h : print the command usage\n");
38362 int c, fVerbose = 0;
38377 if ( pAbc->pGia == NULL )
38379 Abc_Print( -1,
"Abc_CommandAbc9Fla2Gla(): There is no AIG.\n" );
38382 if ( pAbc->pGia->vFlopClasses == NULL )
38384 Abc_Print( -1,
"Abc_CommandAbc9Fla2Gla(): There is no gate-level abstraction is defined.\n" );
38393 Abc_Print( -2,
"usage: &fla_gla [-vh]\n" );
38394 Abc_Print( -2,
"\t maps flop-level into gate-level abstraction\n" );
38395 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
38396 Abc_Print( -2,
"\t-h : print the command usage\n");
38413 int c, fVerbose = 0;
38428 if ( pAbc->pGia == NULL )
38430 Abc_Print( -1,
"Abc_CommandAbc9Gla2Fla(): There is no AIG.\n" );
38433 if ( pAbc->pGia->vGateClasses == NULL )
38435 Abc_Print( -1,
"Abc_CommandAbc9Gla2Fla(): There is no gate-level abstraction is defined.\n" );
38444 Abc_Print( -2,
"usage: &gla_fla [-vh]\n" );
38445 Abc_Print( -2,
"\t maps gate-level into flop-level abstraction\n" );
38446 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
38447 Abc_Print( -2,
"\t-h : print the command usage\n");
38466 int c, fVerbose = 0;
38502 if ( globalUtilOptind >= argc )
38504 Abc_Print( -1,
"Command line switch \"-W\" should be followed by an integer.\n" );
38507 nWords = atoi(argv[globalUtilOptind]);
38508 globalUtilOptind++;
38513 if ( globalUtilOptind >= argc )
38515 Abc_Print( -1,
"Command line switch \"-P\" should be followed by an integer.\n" );
38518 nProcs = atoi(argv[globalUtilOptind]);
38519 globalUtilOptind++;
38524 if ( globalUtilOptind >= argc )
38526 Abc_Print( -1,
"Command line switch \"-F\" should be followed by an integer.\n" );
38529 nFrames = atoi(argv[globalUtilOptind]);
38530 globalUtilOptind++;
38546 if ( pAbc->pGia == NULL )
38548 Abc_Print( -1,
"Abc_CommandAbc9Test(): There is no AIG.\n" );
38603 Abc_Print( -2,
"usage: &test [-FW num] [-svh]\n" );
38604 Abc_Print( -2,
"\t testing various procedures\n" );
38605 Abc_Print( -2,
"\t-F num: the number of timeframes [default = %d]\n", nFrames );
38606 Abc_Print( -2,
"\t-W num: the number of machine words [default = %d]\n", nWords );
38607 Abc_Print( -2,
"\t-s : toggle enable (yes) vs. disable (no) [default = %s]\n", fSwitch?
"yes":
"no" );
38608 Abc_Print( -2,
"\t-v : toggle printing verbose information [default = %s]\n", fVerbose?
"yes":
"no" );
38609 Abc_Print( -2,
"\t-h : print the command usage\n");
Abc_Ntk_t * Abc_NtkDsdGlobal(Abc_Ntk_t *pNtk, int fVerbose, int fPrint, int fShort)
FUNCTION DEFINITIONS ///.
static int Abc_CommandPrintMffc(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandPrintIo(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL Abc_Ntk_t * Abc_NtkDarLatchSweep(Abc_Ntk_t *pNtk, int fLatchConst, int fLatchEqual, int fSaveNames, int fUseMvSweep, int nFramesSymb, int nFramesSatur, int fVerbose, int fVeryVerbose)
static int Abc_CommandAbc9Append(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkPrintUnate(Abc_Ntk_t *pNtk, int fUseBdds, int fUseNaive, int fVerbose)
FUNCTION DEFINITIONS ///.
void Abc_NtkPrintGates(Abc_Ntk_t *pNtk, int fUseLibrary)
int Abc_NtkSuperChoiceLut(Abc_Ntk_t *pNtk, int nLutSize, int nCutSizeMax, int fVerbose)
FUNCTION DEFINITIONS ///.
static int Abc_CommandOutdec(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandDsdSave(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkCompareAndSaveBest(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
static int * Vec_IntArray(Vec_Int_t *p)
int Gia_ManBmciTest(Gia_Man_t *p, Vec_Int_t *vInit, int nFrames, int nWords, int nTimeOut, int fSim, int fVerbose)
static int Abc_CommandComb(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Cec_ManSatSweeping(Gia_Man_t *pAig, Cec_ParFra_t *pPars)
static int Abc_CommandAbc9Lf(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkInvertConstraints(Abc_Ntk_t *pNtk)
static int Abc_CommandSuperChoiceLut(Abc_Frame_t *pAbc, int argc, char **argv)
float Gia_ManDelayTraceLutPrint(Gia_Man_t *p, int fVerbose)
Abc_Cex_t * Abc_CexTransformTempor(Abc_Cex_t *p, int nPisOld, int nPosOld, int nRegsOld)
int Abc_RpoTest(char *pFileName, int nVarNum, int nThreshold, int fVerbose)
void Cec_ManCorSetDefaultParams(Cec_ParCor_t *p)
Gia_Man_t * Gia_ManMapShrink4(Gia_Man_t *p, int fKeepLevel, int fVerbose)
FUNCTION DEFINITIONS ///.
void Abc_FrameReplaceCexVec(Abc_Frame_t *pAbc, Vec_Ptr_t **pvCexVec)
static int Abc_CommandOrder(Abc_Frame_t *pAbc, int argc, char **argv)
void Bbr_ManSetDefaultParams(Saig_ParBbr_t *p)
FUNCTION DEFINITIONS ///.
static int Abc_CommandNpnSave(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandShowCut(Abc_Frame_t *pAbc, int argc, char **argv)
void Mpm_ManSetParsDefault(Mpm_Par_t *p)
MACRO DEFINITIONS ///.
void Abc_NtkShowFlopDependency(Abc_Ntk_t *pNtk)
static int Abc_CommandAbc9Cone(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandDsdPs(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Equiv2(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_FrameReplaceCurrentNetwork(Abc_Frame_t *p, Abc_Ntk_t *pNet)
ABC_DLL Abc_Ntk_t * Abc_NtkFrames(Abc_Ntk_t *pNtk, int nFrames, int fInitial, int fVerbose)
ABC_DLL void Abc_NtkRecAdd3(Abc_Ntk_t *pNtk, int fUseSOPB)
void Abc_NtkPrintSharing(Abc_Ntk_t *pNtk)
void Saig_ParBmcSetDefaultParams(Saig_ParBmc_t *p)
Gia_Man_t * Gia_ManSpecReduce(Gia_Man_t *p, int fDualOut, int fSynthesis, int fReduce, int fSkipSome, int fVerbose)
int Nm_ManFindIdByName(Nm_Man_t *p, char *pName, int Type)
static int Abc_CommandShow(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
static int Abc_CommandSeqMap(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandFlowRetime(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkPrintLevel(FILE *pFile, Abc_Ntk_t *pNtk, int fProfile, int fListNodes, int fVerbose)
void Abc_FrameReplacePoEquivs(Abc_Frame_t *pAbc, Vec_Ptr_t **pvPoEquivs)
Vec_Ptr_t * Abc_NtkCollectCiNames(Abc_Ntk_t *pNtk)
static int Abc_CommandSendAig(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_NtkIsLogic(Abc_Ntk_t *pNtk)
static int Abc_CommandEliminate(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManDupUnshuffleInputs(Gia_Man_t *p)
static int Abc_CommandBalance(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManDupCones(Gia_Man_t *p, int *pPos, int nPos, int fTrimPis)
ABC_DLL Abc_Ntk_t * Abc_NtkTopmost(Abc_Ntk_t *pNtk, int nLevels)
static int Abc_CommandSat(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9MultiProve(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandLogic(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkDarReach(Abc_Ntk_t *pNtk, Saig_ParBbr_t *pPars)
ABC_DLL int Abc_FrameIsBridgeMode()
int Abc_NtkDsdLocal(Abc_Ntk_t *pNtk, int fVerbose, int fRecursive)
int Abc_CommandAbc9CexMerge(Abc_Frame_t *pAbc, int argc, char **argv)
int Llb_NonlinCoreReach(Aig_Man_t *pAig, Gia_ParLlb_t *pPars)
void Abc_NtkCecFraigPartAuto(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nSeconds, int fVerbose)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
ABC_DLL int Abc_NtkDarPrintCone(Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkTestScorr(char *pFileNameIn, char *pFileNameOut, int nStepsMax, int nBTLimit, int fNewAlgo, int fFlopOnly, int fFfNdOnly, int fVerbose)
Gia_Man_t * Gia_ManDupTrimmed(Gia_Man_t *p, int fTrimCis, int fTrimCos, int fDualOut, int OutValue)
Abc_Ntk_t * Abc_NtkDarFold(Abc_Ntk_t *pNtk, int fCompl, int fVerbose)
static int Abc_CommandInduction(Abc_Frame_t *pAbc, int argc, char **argv)
int Gia_ManIsSeqWithBoxes(Gia_Man_t *p)
static int Abc_CommandReconcile(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Jf_ManPerformMapping(Gia_Man_t *pGia, Jf_Par_t *pPars)
void Nm_ManDeleteIdName(Nm_Man_t *p, int ObjId)
static int Abc_CommandSop(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkSparsify(Abc_Ntk_t *pNtk, int nPerc, int fVerbose)
static int Abc_CommandAbc9Unmap(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Trim(Abc_Frame_t *pAbc, int argc, char **argv)
int Lpk_Resynthesize(Abc_Ntk_t *pNtk, Lpk_Par_t *pPars)
MACRO DEFINITIONS ///.
ABC_DLL void Abc_NtkPrintIo(FILE *pFile, Abc_Ntk_t *pNtk, int fPrintFlops)
static int Abc_CommandRecDump3(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManPerformDsdBalanceWin(Gia_Man_t *p, int LevelMax, int nTimeWindow, int nLutSize, int nCutNum, int nRelaxRatio, int fVerbose)
void Lf_ManSetDefaultPars(Jf_Par_t *pPars)
static int Abc_NtkIsComb(Abc_Ntk_t *pNtk)
void Aig_ManShow(Aig_Man_t *pMan, int fHaig, Vec_Ptr_t *vBold)
ABC_DLL void Abc_NtkUnpermute(Abc_Ntk_t *pNtk)
static int Abc_CommandAbc9FFTest(Abc_Frame_t *pAbc, int argc, char **argv)
void Amap_ManSetDefaultParams(Amap_Par_t *pPars)
MACRO DEFINITIONS ///.
static int Abc_CommandPrintSupport(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Miter2(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandTestCex(Abc_Frame_t *pAbc, int argc, char **argv)
void Saig_ManBlockPo(Aig_Man_t *pAig, int nCycles)
int Abc_NtkRetimeDebug(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkMakeComb(Abc_Ntk_t *pNtk, int fRemoveLatches)
static int Abc_CommandAbc9Posplit(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void * Abc_FrameReadLibGen()
Gia_Man_t * Gia_ManDupWithNaturalBoxes(Gia_Man_t *p, int nFaddMin, int fVerbose)
Gia_Man_t * Gia_ManPerformBidec(Gia_Man_t *p, int fVerbose)
Gia_Man_t * Gia_ManCofTest(Gia_Man_t *pGia, int nFrameMax, int nConfMax, int nTimeMax, int fVerbose)
ABC_DLL Gia_Man_t * Abc_NtkRecGetGia3()
void Abc_NtkSymmetries(Abc_Ntk_t *pNtk, int fUseBdds, int fNaive, int fReorder, int fVerbose)
FUNCTION DEFINITIONS ///.
Abc_Ntk_t * Abc_NtkSuperChoice(Abc_Ntk_t *pNtk)
Gia_Man_t * Gia_ManIsoReduce(Gia_Man_t *p, Vec_Ptr_t **pvPosEquivs, Vec_Ptr_t **pvPiPerms, int fEstimate, int fDualOut, int fVerbose, int fVeryVerbose)
Vec_Int_t * Abc_NtkFindDcLatches(Abc_Ntk_t *pNtk)
Gia_Man_t * Gia_ManExtractWindow(Gia_Man_t *p, int LevelMax, int nTimeWindow, int fVerbose)
void Kit_TruthPrintProfile(unsigned *pTruth, int nVars)
static int Abc_CommandAbc9Era(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandTempor(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManDup(Gia_Man_t *p)
void Ssc_ManSetDefaultParams(Ssc_Pars_t *p)
MACRO DEFINITIONS ///.
int Gia_ManToBridgeResult(FILE *pFile, int Result, Abc_Cex_t *pCex, int iPoProved)
DECLARATIONS ///.
static int Abc_CommandAbc9Test(Abc_Frame_t *pAbc, int argc, char **argv)
int Gia_QbfSolve(Gia_Man_t *pGia, int nPars, int nIterLimit, int nConfLimit, int nTimeOut, int fVerbose)
void If_DsdManSetLutSize(If_DsdMan_t *p, int nLutSize)
static int Abc_CommandAbc9GlaRefine(Abc_Frame_t *pAbc, int argc, char **argv)
void Dch_ManSetDefaultParams(Dch_Pars_t *p)
DECLARATIONS ///.
Gia_Man_t * Abc_NtkHieCecTest2(char *pFileName, char *pModelName, int fVerbose)
static int Abc_CommandAbc9Sweep(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkXValueSimulate(Abc_Ntk_t *pNtk, int nFrames, int fXInputs, int fXState, int fVerbose)
FUNCTION DEFINITIONS ///.
static int Abc_CommandAddPi(Abc_Frame_t *pAbc, int argc, char **argv)
int Bmc_ChainTest(Gia_Man_t *p, int nFrameMax, int nConfMax, int fVerbose, int fVeryVerbose)
static int Abc_CommandAbc9Load(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkShow(Abc_Ntk_t *pNtk0, int fGateNames, int fSeq, int fUseReverse)
static int Abc_CommandSeqSweep2(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandDSat(Abc_Frame_t *pAbc, int argc, char **argv)
void Gia_ManStop(Gia_Man_t *p)
void Cec_ManChcSetDefaultParams(Cec_ParChc_t *p)
Gia_Man_t * Gia_ManTransformMiter(Gia_Man_t *p)
Abc_Ntk_t * Abc_NtkDch(Abc_Ntk_t *pNtk, Dch_Pars_t *pPars)
ABC_DLL float Abc_NtkDelayTrace(Abc_Ntk_t *pNtk, Abc_Obj_t *pOut, Abc_Obj_t *pIn, int fPrint)
static int Abc_CommandDSec(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandCSweep(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkPerformMfs(Abc_Ntk_t *pNtk, Sfm_Par_t *pPars)
Aig_Man_t * Gia_ManToAigSimple(Gia_Man_t *p)
int Gia_ManArePerform(Gia_Man_t *pAig, int nStatesMax, int fMiter, int fVerbose)
static int Abc_CommandAbc9Jf(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_CommandAbc9CexCut(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManDupOneHot(Gia_Man_t *p)
void Llb_ManSetDefaultParams(Gia_ParLlb_t *pPars)
MACRO DEFINITIONS ///.
static int Abc_CommandAbc9CFraig(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandCubeEnum(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandNodeDup(Abc_Frame_t *pAbc, int argc, char **argv)
Vec_Int_t * Cbs_ManSolveMiter(Gia_Man_t *pGia, int nConfs, Vec_Str_t **pvStatus, int fVerbose)
void Gia_ManSolveProblem(Gia_Man_t *pGia, Emb_Par_t *pPars)
int Abc_NtkPartitionedSat(Abc_Ntk_t *pNtk, int nAlgo, int nPartSize, int nConfPart, int nConfTotal, int fAlignPol, int fSynthesize, int fVerbose)
static int Abc_CommandDouble(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManEquivReduceAndRemap(Gia_Man_t *p, int fSeq, int fMiterPairs)
static int Abc_CommandReorder(Abc_Frame_t *pAbc, int argc, char **argv)
Aig_Man_t * Bmc_AigTargetStates(Aig_Man_t *p, Abc_Cex_t *pCex, int iFrBeg, int iFrEnd, int fCombOnly, int fGenAll, int fAllFrames, int fVerbose)
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
void Gia_ManPrintStats(Gia_Man_t *p, Gps_Par_t *pPars)
static int Abc_CommandBm(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_AigerRead(char *pFileName, int fSkipStrash, int fCheck)
static int Abc_CommandShortNames(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandShowBdd(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkResubstitute(Abc_Ntk_t *pNtk, int nCutMax, int nStepsMax, int nLevelsOdc, int fUpdateLevel, int fVerbose, int fVeryVerbose)
FUNCTION DEFINITIONS ///.
static int Gia_ManPoNum(Gia_Man_t *p)
static int Abc_CommandIProve(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkFromMappedGia(Gia_Man_t *p)
static int Abc_CommandDRewrite(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandSynch(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandInit(Abc_Frame_t *pAbc, int argc, char **argv)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
void Abc_NtkDarConstrProfile(Abc_Ntk_t *pNtk, int fVerbose)
Abc_Ntk_t * Abc_NtkReachability(Abc_Ntk_t *pNtkRel, int nIters, int fVerbose)
Abc_Ntk_t * Abc_NtkDarEnlarge(Abc_Ntk_t *pNtk, int nFrames, int fVerbose)
Gia_Man_t * Gia_QbfQuantify(Gia_Man_t *p, int nPars)
static int Abc_CommandSaucy(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Miter(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Cex_t * Abc_CexTransformUndc(Abc_Cex_t *p, char *pInit)
static int Abc_CommandTopAnd(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandDFraig(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkIvyRewriteSeq(Abc_Ntk_t *pNtk, int fUseZeroCost, int fVerbose)
void If_DsdManPrint(If_DsdMan_t *p, char *pFileName, int Number, int Support, int fOccurs, int fTtDump, int fVerbose)
Gia_Man_t * Gia_ManShrinkGla(Gia_Man_t *p, int nFrameMax, int nTimeOut, int fUsePdr, int fUseSat, int fUseBdd, int fVerbose)
void Ssw_SignalFilterGia(Gia_Man_t *p, int nFramesMax, int nConfMax, int nRounds, int TimeLimit, int TimeLimit2, Abc_Cex_t *pCex, int fLatchOnly, int fVerbose)
static int Abc_CommandAbc9BCore(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9BackReach(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandTestColor(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandFrames(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NodeShowBdd(Abc_Obj_t *pNode)
FUNCTION DEFINITIONS ///.
static int Abc_CommandAbc9Nf(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkPrintSccs(Abc_Ntk_t *pNtk, int fVerbose)
Abc_Cex_t * Abc_CexMerge(Abc_Cex_t *pCex, Abc_Cex_t *pPart, int iFrBeg, int iFrEnd)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
int Gia_ManRegBoxNum(Gia_Man_t *p)
static int Vec_IntCountEntry(Vec_Int_t *p, int Entry)
static int Abc_CommandGen(Abc_Frame_t *pAbc, int argc, char **argv)
Aig_Man_t * Aig_ManSplit(Aig_Man_t *p, int nVars, int fVerbose)
void Aig_ManStop(Aig_Man_t *p)
static int Abc_CommandSenseInput(Abc_Frame_t *pAbc, int argc, char **argv)
int Cmd_CommandExecute(void *pAbc, char *pCommandLine)
static int Abc_CommandTrace(Abc_Frame_t *pAbc, int argc, char **argv)
int Gia_ManSimSimulate(Gia_Man_t *pAig, Gia_ParSim_t *pPars)
static Vec_Int_t * Vec_IntStartRange(int First, int Range)
void Pdr_ManSetDefaultParams(Pdr_Par_t *pPars)
MACRO DEFINITIONS ///.
static int Abc_CommandUnseq(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandCut(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManFrames2(Gia_Man_t *pAig, Gia_ParFra_t *pPars)
typedefABC_NAMESPACE_HEADER_START struct Pdr_Par_t_ Pdr_Par_t
INCLUDES ///.
static int Abc_CommandNode(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Sopb(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkIvyCuts(Abc_Ntk_t *pNtk, int nInputs)
int Abc_NtkDarSec(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, Fra_Sec_t *pSecPar)
Gia_Man_t * Gia_ManDupAbsFlops(Gia_Man_t *p, Vec_Int_t *vFlopClasses)
FUNCTION DECLARATIONS ///.
void Gia_ManSimSimulatePattern(Gia_Man_t *p, char *pFileIn, char *pFileOut)
Gia_Man_t * Gia_ManDupOrderAiger(Gia_Man_t *p)
Abc_Cex_t * Gia_ManCexMin(Gia_Man_t *p, Abc_Cex_t *pCex, int iFrameStart, int nRealPis, int fJustMax, int fUseAll, int fVerbose)
static int Abc_CommandDProve(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkRecPs3(int fPrintLib)
void If_DsdManFree(If_DsdMan_t *p, int fVerbose)
static int Abc_CommandAbc9WriteVer(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkDarFrames(Abc_Ntk_t *pNtk, int nPrefix, int nFrames, int fInit, int fVerbose)
static int Abc_CommandRecStop3(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandVarMin(Abc_Frame_t *pAbc, int argc, char **argv)
static char * Gia_ManName(Gia_Man_t *p)
static int Abc_CommandBdd(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkDarProve(Abc_Ntk_t *pNtk, Fra_Sec_t *pSecPar, int nBmcFramesMax, int nBmcConfMax)
static int Abc_CommandPrintGates(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManReadMiniAig(char *pFileName)
int Abc_NpnTest(char *pFileName, int NpnType, int nVarNum, int fDumpRes, int fBinary, int fVerbose)
static int Abc_CommandAbc9SatTest(Abc_Frame_t *pAbc, int argc, char **argv)
void If_ManSetDefaultPars(If_Par_t *pPars)
FUNCTION DECLARATIONS ///.
static int Abc_CommandFraig(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandQuaReach(Abc_Frame_t *pAbc, int argc, char **argv)
int Llb_Nonlin4CoreReach(Aig_Man_t *pAig, Gia_ParLlb_t *pPars)
void Gia_ParFfSetDefault(Bmc_ParFf_t *p)
FUNCTION DEFINITIONS ///.
int Abc_NtkRR(Abc_Ntk_t *pNtk, int nFaninLevels, int nFanoutLevels, int fUseFanouts, int fVerbose)
FUNCTION DEFINITIONS ///.
static int Abc_CommandRecMerge3(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkMulti(Abc_Ntk_t *pNtk, int nThresh, int nFaninMax, int fCnf, int fMulti, int fSimple, int fFactor)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Ssw_Pars_t_ Ssw_Pars_t
INCLUDES ///.
static int Abc_CommandAig(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandDsdMatch(Abc_Frame_t *pAbc, int argc, char **argv)
void Io_WriteVerilog(Abc_Ntk_t *pNtk, char *FileName)
FUNCTION DEFINITIONS ///.
static int Abc_CommandAbc9Read(Abc_Frame_t *pAbc, int argc, char **argv)
void Mf_ManSetDefaultPars(Jf_Par_t *pPars)
static int Abc_CommandReach(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Equiv(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandFraigStore(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL int Abc_NtkRecInputNum3()
static int Abc_CommandIFraig(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
static int Abc_CommandAbc9Times(Abc_Frame_t *pAbc, int argc, char **argv)
Cut_Man_t * Abc_NtkSeqCuts(Abc_Ntk_t *pNtk, Cut_Params_t *pParams)
static int Abc_CommandAbc9Vta(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManFrames(Gia_Man_t *pAig, Gia_ParFra_t *pPars)
int Abc_CommandCexMin(Abc_Frame_t *pAbc, int argc, char **argv)
Vec_Int_t * Gia_VtaConvertFromGla(Gia_Man_t *p, Vec_Int_t *vGla, int nFrames)
Gia_Man_t * Lf_ManPerformMapping(Gia_Man_t *pGia, Jf_Par_t *pPars)
int Abc_NtkDarSimSec(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, Ssw_Pars_t *pPars)
Abc_Ntk_t * Abc_NtkIvyRewrite(Abc_Ntk_t *pNtk, int fUpdateLevel, int fUseZeroCost, int fVerbose)
Abc_Ntk_t * Abc_NtkDarExtWin(Abc_Ntk_t *pNtk, int nObjId, int nDist, int fVerbose)
typedefABC_NAMESPACE_HEADER_START struct Ssc_Pars_t_ Ssc_Pars_t
INCLUDES ///.
Abc_Ntk_t * Abc_NtkDarOutdec(Abc_Ntk_t *pNtk, int nLits, int fVerbose)
Abc_Ntk_t * Io_ReadNetlist(char *pFileName, Io_FileType_t FileType, int fCheck)
void Abc_NtkFxuFreeInfo(Fxu_Data_t *p)
static int Abc_CommandAbc9ReadVer(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandUnfold(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkMiterReport(Abc_Ntk_t *pMiter)
static int Abc_CommandTraceCheck(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandExtWin(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManBalanceLut(Gia_Man_t *p, int nLutSize, int nCutNum, int fVerbose)
Gia_Man_t * Gia_ManDupOrderDfs(Gia_Man_t *p)
static void Vec_PtrFreeFree(Vec_Ptr_t *p)
void If_DsdManInvertMarks(If_DsdMan_t *p, int fVerbose)
Gia_Man_t * Gia_ManDupAbsGates(Gia_Man_t *p, Vec_Int_t *vGateClasses)
Gia_Man_t * Gia_ManRemoveEnables(Gia_Man_t *p)
static int Abc_CommandAbc9SpecI(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandBmc2(Abc_Frame_t *pAbc, int argc, char **argv)
int Gia_ManPerformGla(Gia_Man_t *p, Abs_Par_t *pPars)
typedefABC_NAMESPACE_HEADER_START struct FxuDataStruct Fxu_Data_t
INCLUDES ///.
Gia_Man_t * Gia_ManLutBalance(Gia_Man_t *p, int nLutSize, int fUseMuxes, int fRecursive, int fOptArea, int fVerbose)
void Abc_NtkImplementCiOrder(Abc_Ntk_t *pNtk, char *pFileName, int fReverse, int fVerbose)
static int Abc_CommandEnlarge(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_ObjFaninNum(Abc_Obj_t *pObj)
static int Abc_NtkHasMapping(Abc_Ntk_t *pNtk)
void Gia_ManLutParams(Gia_Man_t *p, int *pnCurLuts, int *pnCurEdges, int *pnCurLevels)
void Abc_NtkMoveNames(Abc_Ntk_t *pNtk, Abc_Ntk_t *pOld)
Gia_Man_t * Mpm_ManLutMapping(Gia_Man_t *pGia, Mpm_Par_t *pPars)
static int Abc_CommandDsdFilter(Abc_Frame_t *pAbc, int argc, char **argv)
void saucyGateWay(Abc_Ntk_t *pNtkOrig, Abc_Obj_t *pNodePo, FILE *gFile, int fBooleanMatching, int fLookForSwaps, int fFixOutputs, int fFixInputs, int fQuiet, int fPrintTree)
ABC_DLL int Abc_NtkGetFaninMax(Abc_Ntk_t *pNtk)
void Gia_QbfDumpFile(Gia_Man_t *pGia, int nPars)
ABC_DLL void Abc_NtkInsertHierarchyGia(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNew, int fVerbose)
static int Abc_CommandDropSat(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkPrintStrSupports(Abc_Ntk_t *pNtk, int fMatrix)
static int Abc_CommandPrintCone(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkConvertDcLatches(Abc_Ntk_t *pNtk)
Vec_Int_t * Gia_ManMaxiTest(Gia_Man_t *p, Vec_Int_t *vInit0, int nFrames, int nWords, int nTimeOut, int fSim, int fVerbose)
static int Abc_CommandTraceStart(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_FrameReplaceCex(Abc_Frame_t *pAbc, Abc_Cex_t **ppCex)
FUNCTION DEFINITIONS ///.
void Abc_NtkEspresso(Abc_Ntk_t *pNtk, int fVerbose)
FUNCTION DEFINITIONS ///.
int Abc_NtkEliminate1(Abc_Ntk_t *pNtk, int ElimValue, int nMaxSize, int nIterMax, int fReverse, int fVerbose)
static int Abc_CommandCover(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Syn3(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkShortNames(Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkDarAmap(Abc_Ntk_t *pNtk, Amap_Par_t *pPars)
Gia_Man_t * Gia_ManStgRead(char *pFileName, int kHot, int fVerbose)
static int Abc_NtkLatchNum(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkBalanceExor(Abc_Ntk_t *pNtk, int fUpdateLevel, int fVerbose)
Cut_Oracle_t * Cut_OracleStart(Cut_Man_t *pMan)
FUNCTION DEFINITIONS ///.
Abc_Ntk_t * Abc_NtkIvyStrash(Abc_Ntk_t *pNtk)
void Abc_NtkDropOneOutput(Abc_Ntk_t *pNtk, int iOutput, int fSkipSweep, int fUseConst1)
static int Abc_CommandAbc9ReachM(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9ReadStg(Abc_Frame_t *pAbc, int argc, char **argv)
void If_DsdManCleanMarks(If_DsdMan_t *p, int fVerbose)
Abc_Ntk_t * Abc_NtkDarRetime(Abc_Ntk_t *pNtk, int nStepsMax, int fVerbose)
Abc_Ntk_t * Abc_NtkTopAnd(Abc_Ntk_t *pNtk)
static int Abc_CommandRetime(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_ObjFaninC0(Abc_Obj_t *pObj)
static int Abc_CommandCubes(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkIf(Abc_Ntk_t *pNtk, If_Par_t *pPars)
void Id_DsdManTuneThresh(If_DsdMan_t *p, int fUnate, int fThresh, int fVerbose)
static int Abc_CommandCexMerge(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL Abc_Ntk_t * Abc_NtkDup(Abc_Ntk_t *pNtk)
static int Abc_CommandOrPos(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkDarMatch(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nDist, int fVerbose)
static int Abc_CommandAbc9Synch2(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandIRewrite(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Ps(Abc_Frame_t *pAbc, int argc, char **argv)
Mpm_LibLut_t * Mpm_LibLutSetSimple(int nLutSize)
DECLARATIONS ///.
static int Abc_CommandAbc9Syn2(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandExdcSet(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkDarSynch(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nWords, int fVerbose)
float pLutDelays[IF_MAX_LUTSIZE+1][IF_MAX_LUTSIZE+1]
int Abc_DecTest(char *pFileName, int DecType, int nVarNum, int fVerbose)
static int Abc_CommandExtSeqDcs(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Mf_ManPerformMapping(Gia_Man_t *pGia, Jf_Par_t *pPars)
void Gia_ManPrintStatsShort(Gia_Man_t *p)
void Cmd_CommandAdd(Abc_Frame_t *pAbc, const char *sGroup, const char *sName, Cmd_CommandFuncType pFunc, int fChanges)
static int Abc_CommandRecPs3(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_GenAdder(char *pFileName, int nVars)
typedefABC_NAMESPACE_HEADER_START struct Gia_ParLlb_t_ Gia_ParLlb_t
INCLUDES ///.
static int Abc_CommandPermute(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManFromAigSimple(Aig_Man_t *p)
void Fra_SecSetDefaultParams(Fra_Sec_t *p)
DECLARATIONS ///.
static int Abc_NtkCiNum(Abc_Ntk_t *pNtk)
#define ABC_ALLOC(type, num)
Gia_Man_t * Gia_ManMapShrink6(Gia_Man_t *p, int nFanoutMax, int fKeepLevel, int fVerbose)
static int Abc_CommandRenode(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkShow6VarFunc(char *pF0, char *pF1)
#define Abc_NtkForEachCo(pNtk, pCo, i)
void Gia_ManMuxProfiling(Gia_Man_t *p)
static int Abc_CommandAbc9ReadBlif(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Cex_t * Llb4_Nonlin4NormalizeCex(Aig_Man_t *pAigOrg, Aig_Man_t *pAigRpm, Abc_Cex_t *pCexRpm)
int Abc_NtkFastExtract(Abc_Ntk_t *pNtk, Fxu_Data_t *p)
static int Abc_CommandMap(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9EquivMark(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkResynthesize(Abc_Ntk_t *pNtk, Res_Par_t *pPars)
MACRO DEFINITIONS ///.
static int Abc_CommandAbc9Retime(Abc_Frame_t *pAbc, int argc, char **argv)
Vec_Int_t * Gia_VtaConvertToGla(Gia_Man_t *p, Vec_Int_t *vVta)
static int Abc_NtkIsSopLogic(Abc_Ntk_t *pNtk)
void Prove_ParamsSetDefault(Prove_Params_t *pParams)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Dch_Pars_t_ Dch_Pars_t
INCLUDES ///.
ABC_DLL char * Abc_NtkCollectLatchValuesStr(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
static int Abc_CommandMfs2(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandQuaVar(Abc_Frame_t *pAbc, int argc, char **argv)
int Llb_ManReachMinCut(Aig_Man_t *pAig, Gia_ParLlb_t *pPars)
static int Abc_CommandConstr(Abc_Frame_t *pAbc, int argc, char **argv)
Vec_Int_t * Saig_ManReturnFailingState(Aig_Man_t *pAig, Abc_Cex_t *p, int fNextOne)
Gia_Man_t * Gia_ManIsoReduce2(Gia_Man_t *p, Vec_Ptr_t **pvPosEquivs, Vec_Ptr_t **pvPiPerms, int fEstimate, int fBetterQual, int fDualOut, int fVerbose, int fVeryVerbose)
void Cut_OracleStop(Cut_Oracle_t *p)
Abc_Ntk_t * Abc_NtkFpga(Abc_Ntk_t *pNtk, float DelayTarget, int fRecovery, int fSwitching, int fLatchPaths, int fVerbose)
FUNCTION DEFINITIONS ///.
static int Abc_CommandDChoice(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandPrintUnate(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManAigSyn3(Gia_Man_t *p, int fVerbose, int fVeryVerbose)
static int Abc_CommandAbc9Fla2Gla(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL int Abc_NtkCleanup(Abc_Ntk_t *pNtk, int fVerbose)
ABC_DLL int Abc_NtkMiterProve(Abc_Ntk_t **ppNtk, void *pParams)
FUNCTION DEFINITIONS ///.
ABC_DLL Abc_Ntk_t * Abc_NtkRestrashZero(Abc_Ntk_t *pNtk, int fCleanup)
static int Abc_CommandAbc9Iso(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Dsdb(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Save(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkRemovePo(Abc_Ntk_t *pNtk, int iOutput, int fRemoveConst0)
Gia_Man_t * Gia_ManPerformFx(Gia_Man_t *p, int nNewNodesMax, int LitCountMax, int fReverse, int fVerbose, int fVeryVerbose)
static int Abc_CommandAbc9GlaDerive(Abc_Frame_t *pAbc, int argc, char **argv)
static abctime Abc_Clock()
static int Abc_CommandIResyn(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandMulti(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandPrintFactor(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkDropSatOutputs(Abc_Ntk_t *pNtk, Vec_Ptr_t *vCexes, int fVerbose)
static int Abc_CommandAbc9Syn4(Abc_Frame_t *pAbc, int argc, char **argv)
static Abc_Obj_t * Abc_NtkObj(Abc_Ntk_t *pNtk, int i)
static int Vec_PtrSize(Vec_Ptr_t *p)
int Abc_CommandAbcLivenessToSafetySim(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkCrossCut(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkPrintFanio(FILE *pFile, Abc_Ntk_t *pNtk, int fUsePis)
static void Vec_VecFree(Vec_Vec_t *p)
Abc_Ntk_t * Abc_NtkDarRetimeMinArea(Abc_Ntk_t *pNtk, int nMaxIters, int fForwardOnly, int fBackwardOnly, int fInitial, int fVerbose)
int Gia_ManSetFailedPoCex(Gia_Man_t *pAig, Abc_Cex_t *p)
Abc_Ntk_t * Abc_NtkDarInsWin(Abc_Ntk_t *pNtk, Abc_Ntk_t *pCare, int nObjId, int nDist, int fVerbose)
static int Abc_CommandIf(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManPerformMapping(Gia_Man_t *p, void *pIfPars)
static int Abc_CommandPrintFanio(Abc_Frame_t *pAbc, int argc, char **argv)
static void Abc_LatchSetInitDc(Abc_Obj_t *pLatch)
static int Abc_CommandAbc9Reduce(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9PFan(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Abc_NtkHieCecTest(char *pFileName, int fVerbose)
int If_CutPerformCheck07(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
static int Abc_NtkIsAigLogic(Abc_Ntk_t *pNtk)
void Gia_ManEquivFilter(Gia_Man_t *p, Vec_Int_t *vPoIds, int fVerbose)
Vec_Int_t * Abc_NtkLutMerge(Abc_Ntk_t *pNtk, Nwk_LMPars_t *pPars)
int Gia_ManMultiProve(Gia_Man_t *p, Bmc_MulPar_t *pPars)
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
int Abc_NtkRetime(Abc_Ntk_t *pNtk, int Mode, int nDelayLim, int fForwardOnly, int fBackwardOnly, int fOneStep, int fVerbose)
FUNCTION DEFINITIONS ///.
ABC_DLL int Abc_NtkGetChoiceNum(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkDupTransformMiter(Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkDarFraigPart(Abc_Ntk_t *pNtk, int nPartSize, int nConfLimit, int nLevelMax, int fVerbose)
ABC_DLL int Abc_NtkRecIsRunning3()
static int Abc_CommandUnpermute(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_NtkCoNum(Abc_Ntk_t *pNtk)
void Abc_NodePrintKMap(Abc_Obj_t *pNode, int fUseRealNames)
static int Abc_CommandAbc9ReachP(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Choice(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManPerformDsdBalance(Gia_Man_t *p, int nLutSize, int nCutNum, int nRelaxRatio, int fVerbose)
static int Abc_CommandPdr(Abc_Frame_t *pAbc, int argc, char **argv)
int Gia_ManCollectReachable(Gia_Man_t *pAig, int nStatesMax, int fMiter, int fDumpFile, int fVerbose)
static int Abc_CommandAndPos(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Mpm_ManCellMapping(Gia_Man_t *pGia, Mpm_Par_t *pPars, void *pMio)
static int Abc_CommandAbc9Srm(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_GenSorter(char *pFileName, int nVars)
int Abc_NtkExtractSequentialDcs(Abc_Ntk_t *pNtk, int fVerbose)
FUNCTION DEFINITIONS ///.
static int Abc_CommandDc2(Abc_Frame_t *pAbc, int argc, char **argv)
void If_DsdManMerge(If_DsdMan_t *p, If_DsdMan_t *pNew)
int Gia_ManFindFailedPoCex(Gia_Man_t *pAig, Abc_Cex_t *p, int nOutputs)
int Cnf_DataSolveFromFile(char *pFileName, int nConfLimit, int fVerbose)
ABC_DLL void Abc_NtkPrintLatch(FILE *pFile, Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkFraig(Abc_Ntk_t *pNtk, void *pParams, int fAllNodes, int fExdc)
FUNCTION DEFINITIONS ///.
Gia_Man_t * Gia_ManFindPoPartition(Gia_Man_t *p, int SelectShift, int fOnlyCis, int fSetLargest, int fVerbose, Vec_Ptr_t **pvPosEquivs)
Gia_Man_t * Gia_ManDupNoMuxes(Gia_Man_t *p)
void Gia_ManPrintFanio(Gia_Man_t *pGia, int nNodes)
Gia_Man_t * Gia_ManDupZeroUndc(Gia_Man_t *p, char *pInit, int fVerbose)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
void Abc_GenFpga(char *pFileName, int nLutSize, int nLuts, int nVars)
int Abc_CommandAbcLivenessToSafetyWithLTL(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandResubstitute(Abc_Frame_t *pAbc, int argc, char **argv)
void Gia_ManStopP(Gia_Man_t **p)
static int Abc_CommandAbc9Fadds(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9AbsRefine(Abc_Frame_t *pAbc, int argc, char **argv)
void Cgt_SetDefaultParams(Cgt_Par_t *p)
MACRO DEFINITIONS ///.
void Gia_ManDetectSeqSignals(Gia_Man_t *p, int fSetReset, int fVerbose)
Aig_Man_t * Saig_ManIsoReduce(Aig_Man_t *pAig, Vec_Ptr_t **pvCosEquivs, int fVerbose)
int Gia_ManHasDangling(Gia_Man_t *p)
void Sfm_ParSetDefault(Sfm_Par_t *pPars)
MACRO DEFINITIONS ///.
void Gia_ManSetIfParsDefault(void *pIfPars)
FUNCTION DEFINITIONS ///.
static int Abc_CommandAbc9Inse(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_CommandCS_kLiveness(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkDarInduction(Abc_Ntk_t *pNtk, int nTimeOut, int nFramesMax, int nConfMax, int fUnique, int fUniqueAll, int fGetCex, int fVerbose, int fVeryVerbose)
Abc_Ntk_t * Abc_NtkFromDarChoices(Abc_Ntk_t *pNtkOld, Aig_Man_t *pMan)
static Abc_Obj_t * Abc_NtkCo(Abc_Ntk_t *pNtk, int i)
static int Gia_ManHasChoices(Gia_Man_t *p)
Abc_Ntk_t * Io_Read(char *pFileName, Io_FileType_t FileType, int fCheck, int fBarBufs)
int Abc_NtkDarDemiter(Abc_Ntk_t *pNtk)
void Dau_DecTrySets(word *pInit, int nVars, int fVerbose)
int Gia_ManBmcPerform(Gia_Man_t *p, Bmc_AndPar_t *pPars)
Gia_Man_t * Gia_ManPerformMfs(Gia_Man_t *p, Sfm_Par_t *pPars)
void Abc_NtkSwapOneOutput(Abc_Ntk_t *pNtk, int iOutput)
static int Abc_CommandAbc9Resim(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkPrintFanioNew(FILE *pFile, Abc_Ntk_t *pNtk, int fMffc)
static int Abc_CommandAbc9Maxi(Abc_Frame_t *pAbc, int argc, char **argv)
Vec_Int_t * Cbs_ManSolveMiterNc(Gia_Man_t *pGia, int nConfs, Vec_Str_t **pvStatus, int fVerbose)
static int Abc_CommandRecAdd3(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkLatchPipe(Abc_Ntk_t *pNtk, int nLatches)
static int Abc_CommandFraigClean(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Cec_ManChoiceComputation(Gia_Man_t *pAig, Cec_ParChc_t *pPars)
Abc_Ntk_t * Abc_NtkDarSynchOne(Abc_Ntk_t *pNtk, int nWords, int fVerbose)
ABC_DLL Abc_Ntk_t * Abc_NtkToLogic(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
static int Abc_CommandAbc9Undo(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandTestRPO(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandMuxes(Abc_Frame_t *pAbc, int argc, char **argv)
void Abs_ParSetDefaults(Abs_Par_t *p)
DECLARATIONS ///.
static int Abc_CommandMatch(Abc_Frame_t *pAbc, int argc, char **argv)
void Cec_ManSmfSetDefaultParams(Cec_ParSmf_t *p)
static int Abc_CommandRemovePo(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandUnfold2(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandPipe(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManCollapseTest(Gia_Man_t *p, int fVerbose)
ABC_DLL void Abc_FrameClearVerifStatus(Abc_Frame_t *p)
static int Abc_CommandQuaRel(Abc_Frame_t *pAbc, int argc, char **argv)
void Cec_ManSimSetDefaultParams(Cec_ParSim_t *p)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateMffc(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode, char *pNodeName)
static Abc_Obj_t * Abc_ObjChild0(Abc_Obj_t *pObj)
Gia_Man_t * Gia_ManFromAig(Aig_Man_t *p)
INCLUDES ///.
ABC_DLL Abc_Ntk_t * Abc_NtkCollapse(Abc_Ntk_t *pNtk, int fBddSizeMax, int fDualRail, int fReorder, int fVerbose)
FUNCTION DEFINITIONS ///.
Gia_Man_t * Gia_ManEquivReduce(Gia_Man_t *p, int fUseAll, int fDualOut, int fSkipPhase, int fVerbose)
int Gia_ManSatEnum(Gia_Man_t *pGia, int nConfLimit, int nTimeOut, int fVerbose)
FUNCTION DEFINITIONS ///.
static void Abc_PrintTime(int level, const char *pStr, abctime time)
Io_FileType_t Io_ReadFileType(char *pFileName)
DECLARATIONS ///.
static int Abc_CommandPrintDelay(Abc_Frame_t *pAbc, int argc, char **argv)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
static int Abc_CommandAbc9Gla2Fla(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Status(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkMakeOnePo(Abc_Ntk_t *pNtkInit, int Output, int nRange)
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
static int Abc_CommandFraigRestore(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandInsWin(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkIvyFraig(Abc_Ntk_t *pNtk, int nConfLimit, int fDoSparse, int fProve, int fTransfer, int fVerbose)
int Abc_NtkDarDemiterDual(Abc_Ntk_t *pNtk, int fVerbose)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
static int Gia_ManAndNum(Gia_Man_t *p)
Gia_Man_t * Ssc_PerformSweepingConstr(Gia_Man_t *p, Ssc_Pars_t *pPars)
static int Abc_CommandFastExtract(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkAutoDebug(Abc_Ntk_t *pNtk, int(*pFuncError)(Abc_Ntk_t *))
FUNCTION DEFINITIONS ///.
Abc_Ntk_t * Abc_NtkPutOnTop(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtk2)
Abc_Ntk_t * Abc_NtkDarRetimeF(Abc_Ntk_t *pNtk, int nStepsMax, int fVerbose)
void Abc_NtkPrintMiter(Abc_Ntk_t *pNtk)
Gia_Man_t * Gia_ManCheckFalse(Gia_Man_t *p, int nSlackMax, int nTimeOut, int fVerbose, int fVeryVerbose)
void Id_DsdManTuneStr(If_DsdMan_t *p, char *pStruct, int nConfls, int nProcs, int fVerbose)
ABC_DLL void Abc_NodePrintFanio(FILE *pFile, Abc_Obj_t *pNode)
ABC_NAMESPACE_IMPL_START void Kf_ManSetDefaultPars(Jf_Par_t *pPars)
DECLARATIONS ///.
static int Abc_CommandNpnLoad(Abc_Frame_t *pAbc, int argc, char **argv)
void Cec_ManSimulation(Gia_Man_t *pAig, Cec_ParSim_t *pPars)
static int Abc_CommandPrintLevel(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkPrintStats(Abc_Ntk_t *pNtk, int fFactored, int fSaveBest, int fDumpResult, int fUseLutLib, int fPrintMuxes, int fPower, int fGlitch, int fSkipBuf)
static int Abc_CommandSimSec(Abc_Frame_t *pAbc, int argc, char **argv)
typedefABC_NAMESPACE_HEADER_START struct Abc_Frame_t_ Abc_Frame_t
INCLUDES ///.
void Abc_Init(Abc_Frame_t *pAbc)
DECLARATIONS ///.
Gia_Man_t * Gia_ManSpeedup(Gia_Man_t *p, int Percentage, int Degree, int fVerbose, int fVeryVerbose)
static int Abc_CommandDch(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandSim3(Abc_Frame_t *pAbc, int argc, char **argv)
#define CUT_SIZE_MIN
INCLUDES ///.
Abc_Ntk_t * Abc_NtkIvySat(Abc_Ntk_t *pNtk, int nConfLimit, int fVerbose)
Gia_Man_t * Gia_ManPerformDch(Gia_Man_t *p, void *pPars)
static int Abc_CommandMuxStruct(Abc_Frame_t *pAbc, int argc, char **argv)
void Gia_AigerWriteSimple(Gia_Man_t *pInit, char *pFileName)
static int Abc_CommandMoveNames(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL int Abc_NtkMapToSop(Abc_Ntk_t *pNtk)
int Abc_NtkDarSeqSim3(Abc_Ntk_t *pNtk, Ssw_RarPars_t *pPars)
static int Abc_CommandAbc9Show(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandDsdMerge(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandGenFsm(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManFramesInitSpecial(Gia_Man_t *pAig, int nFrames, int fVerbose)
Aig_Man_t * Abc_NtkToDarChoices(Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkPowerdown(Abc_Ntk_t *pNtk, int fUseLutLib, int Percentage, int Degree, int fVerbose, int fVeryVerbose)
static int Abc_CommandDebug(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Sat(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkDarPdr(Abc_Ntk_t *pNtk, Pdr_Par_t *pPars)
void Bmc_LoadTest(Gia_Man_t *pGia, int fLoadCnf, int fVerbose)
static int Abc_CommandAbc9Speedup(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_FrameSetManDsd(void *pMan)
static int Abc_CommandAbc9Force(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandCone(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkQbf(Abc_Ntk_t *pNtk, int nPars, int nItersMax, int fDumpCnf, int fVerbose)
FUNCTION DEFINITIONS ///.
void Npn_ManSave(char *pFileName)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
ABC_NAMESPACE_IMPL_START int Cec_GiaSplitTest(Gia_Man_t *p, int nProcs, int nTimeOut, int nIterMax, int LookAhead, int fVerbose, int fVeryVerbose)
DECLARATIONS ///.
ABC_DLL void Abc_NtkRecLibMerge3(Gia_Man_t *pGia)
Gia_Man_t * Gia_ManDupCof(Gia_Man_t *p, int iVar)
static int Abc_CommandAbc9GroupProve(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Sim3(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandDsdLoad(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandBmc(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_GenMulti(char *pFileName, int nVars)
#define DAU_MAX_VAR
INCLUDES ///.
Gia_Man_t * Cec_ManSatSolving(Gia_Man_t *pAig, Cec_ParSat_t *pPars)
Abc_Ntk_t * Abc_NtkFpgaFast(Abc_Ntk_t *pNtk, int nLutSize, int fRecovery, int fVerbose)
FUNCTION DEFINITIONS ///.
ABC_DLL int Abc_AigCleanup(Abc_Aig_t *pMan)
int Gia_ManVerifyWithBoxes(Gia_Man_t *pGia, int nBTLimit, int nTimeLim, int fSeq, int fVerbose, char *pFileSpec)
int Cec_ManSeqResimulateCounter(Gia_Man_t *pAig, Cec_ParSim_t *pPars, Abc_Cex_t *pCex)
static int Abc_CommandClockGate(Abc_Frame_t *pAbc, int argc, char **argv)
void If_DsdManSave(If_DsdMan_t *p, char *pFileName)
void Abc_GenFsm(char *pFileName, int nPis, int nPos, int nStates, int nLines, int ProbI, int ProbO)
Gia_Man_t * Gia_ManAigSyn2(Gia_Man_t *p, int fOldAlgo, int fCoarsen, int fCutMin, int nRelaxRatio, int fDelayMin, int fVerbose, int fVeryVerbose)
int Fra_FraigInductionTest(char *pFileName, Fra_Ssw_t *pParams)
Gia_Man_t * Abs_RpmPerform(Gia_Man_t *p, int nCutMax, int fVerbose, int fVeryVerbose)
static int Gia_ManCompareWithBest(Gia_Man_t *pBest, Gia_Man_t *p, int *pnBestLuts, int *pnBestEdges, int *pnBestLevels)
int Gia_ManBoxNum(Gia_Man_t *p)
DECLARATIONS ///.
#define IF_MAX_LUTSIZE
INCLUDES ///.
ABC_DLL int Abc_NtkToSop(Abc_Ntk_t *pNtk, int fDirect)
void Abc_End(Abc_Frame_t *pAbc)
Aig_Man_t * Abc_NtkToDar(Abc_Ntk_t *pNtk, int fExors, int fRegisters)
static int Abc_CommandAbc9Dc2(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL int Abc_NtkRewrite(Abc_Ntk_t *pNtk, int fUpdateLevel, int fUseZeros, int fVerbose, int fVeryVerbose, int fPlaceEnable)
FUNCTION DEFINITIONS ///.
static int Abc_CommandAbc9PoPart(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Qbf(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL Abc_Ntk_t * Abc_NtkMiter(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fComb, int nPartSize, int fImplic, int fMulti)
FUNCTION DEFINITIONS ///.
static int Abc_CommandPrintMiter(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkDrwsat(Abc_Ntk_t *pNtk, int fBalance, int fVerbose)
static int Abc_CommandInter(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandSweep(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkCSweep(Abc_Ntk_t *pNtk, int nCutsMax, int nLeafMax, int fVerbose)
static void Vec_StrFree(Vec_Str_t *p)
static int Abc_CommandAppend(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL Abc_Obj_t * Abc_NtkFindNode(Abc_Ntk_t *pNtk, char *pName)
ABC_DLL int Abc_NtkPrepareTwoNtks(FILE *pErr, Abc_Ntk_t *pNtk, char **argv, int argc, Abc_Ntk_t **ppNtk1, Abc_Ntk_t **ppNtk2, int *pfDelete1, int *pfDelete2)
Gia_Man_t * Gia_ManUnrollAndCofactor(Gia_Man_t *p, int nFrames, int nFanMax, int fVerbose)
static int Abc_CommandSparsify(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandDisjoint(Abc_Frame_t *pAbc, int argc, char **argv)
void Jf_ManSetDefaultPars(Jf_Par_t *pPars)
Gia_Man_t * Gia_ManBalance(Gia_Man_t *p, int fSimpleAnd, int fVerbose)
void Gia_ManFaultTest(Gia_Man_t *p, Gia_Man_t *pG, Bmc_ParFf_t *pPars)
static int Abc_CommandAbc9Trace(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_FrameClearDesign()
Gia_Man_t * Gia_ManFindPoPartition2(Gia_Man_t *p, int iStartNum, int nDelta, int nOutsMin, int nOutsMax, int fSetLargest, int fVerbose, Vec_Ptr_t **pvPosEquivs)
Gia_Man_t * Kf_ManPerformMapping(Gia_Man_t *pGia, Jf_Par_t *pPars)
static int Abc_CommandFold2(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandTestSeqSweep(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManRetimeForward(Gia_Man_t *p, int nMaxIters, int fVerbose)
Abc_Ntk_t * Abc_NtkSplitSop(Abc_Ntk_t *pNtk, int nCubesMax, int fVerbose)
static int Abc_CommandExtract(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandZero(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Enable(Abc_Frame_t *pAbc, int argc, char **argv)
void Cut_ManStop(Cut_Man_t *p)
ABC_DLL int Abc_NtkIvyProve(Abc_Ntk_t **ppNtk, void *pPars)
void Ssw_ManSetDefaultParams(Ssw_Pars_t *p)
DECLARATIONS ///.
void Abc_NtkMakeSeq(Abc_Ntk_t *pNtk, int nLatchesToAdd)
typedefABC_NAMESPACE_HEADER_START struct Mfs_Par_t_ Mfs_Par_t
INCLUDES ///.
static int Abc_CommandAbc9Cof(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandBm2(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandPrintXCut(Abc_Frame_t *pAbc, int argc, char **argv)
static int Vec_IntEntry(Vec_Int_t *p, int i)
int Abc_NtkFraigSweep(Abc_Ntk_t *pNtk, int fUseInv, int fExdc, int fVerbose, int fVeryVerbose)
FUNCTION DEFINITIONS ///.
unsigned __int64 word
DECLARATIONS ///.
ABC_DLL void Abc_NodePrintFactor(FILE *pFile, Abc_Obj_t *pNode, int fUseRealNames)
Gia_Man_t * Gia_ManDupTrimmed2(Gia_Man_t *p)
static int Abc_CommandPrintExdc(Abc_Frame_t *pAbc, int argc, char **argv)
Vec_Int_t * Abc_NtkSensitivity(Abc_Ntk_t *pNtk, int nConfLim, int fVerbose)
void Abc_CexPrintStats(Abc_Cex_t *p)
static int Abc_CommandAttach(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandRecStart3(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL char * Abc_ObjNamePrefix(Abc_Obj_t *pObj, char *pPrefix)
static int Abc_CommandAbc9Put(Abc_Frame_t *pAbc, int argc, char **argv)
#define ABC_NAMESPACE_IMPL_END
void Inter_ManSetDefaultParams(Inter_ManParams_t *p)
MACRO DEFINITIONS ///.
Gia_Man_t * Gia_ManDupSelf(Gia_Man_t *p)
ABC_DLL int Abc_NtkRefactor(Abc_Ntk_t *pNtk, int nNodeSizeMax, int nConeSizeMax, int fUpdateLevel, int fUseZeros, int fUseDcs, int fVerbose)
FUNCTION DEFINITIONS ///.
void Cec_ManCecSetDefaultParams(Cec_ParCec_t *p)
Cut_Man_t * Abc_NtkCuts(Abc_Ntk_t *pNtk, Cut_Params_t *pParams)
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
static word Abc_Tt6Stretch(word t, int nVars)
void * Abc_FrameGetGlobalFrame()
void For_ManExperiment(Gia_Man_t *pGia, int nIters, int fClustered, int fVerbose)
Gia_Man_t * Cec_ManLSCorrespondence(Gia_Man_t *pAig, Cec_ParCor_t *pPars)
static int Abc_CommandAbc9Dfs(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandSeqCleanup(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Fraig(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandMinisimp(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManDupMuxes(Gia_Man_t *p, int Limit)
ABC_DLL int Abc_NtkMiterSat(Abc_Ntk_t *pNtk, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, int fVerbose, ABC_INT64_T *pNumConfs, ABC_INT64_T *pNumInspects)
FUNCTION DEFINITIONS ///.
static int Abc_CommandPowerdown(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Abs_RpmPerformOld(Gia_Man_t *p, int fVerbose)
static int Abc_CommandStrash(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateCone(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode, char *pNodeName, int fUseAllCis)
static int Abc_CommandAbc9Vta2Gla(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManDupOrderDfsReverse(Gia_Man_t *p)
Abc_Ntk_t * Abc_NtkCRetime(Abc_Ntk_t *pNtk, int fVerbose)
static int Abc_CommandAbc9Srm2(Abc_Frame_t *pAbc, int argc, char **argv)
#define IF_MAX_FUNC_LUTSIZE
int Llb_ManModelCheckGia(Gia_Man_t *pGia, Gia_ParLlb_t *pPars)
static int Abc_CommandCleanup(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandXsim(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkRestrashRandom(Abc_Ntk_t *pNtk)
Gia_Man_t * Gia_ManSeqStructSweep(Gia_Man_t *p, int fConst, int fEquiv, int fVerbose)
Gia_Man_t * Gia_ManDupCofAll(Gia_Man_t *p, int nFanLim, int fVerbose)
ABC_DLL int Abc_NtkSweepBufsInvs(Abc_Ntk_t *pNtk, int fVerbose)
ABC_INT64_T nTotalInspectLimit
int If_DsdManVarNum(If_DsdMan_t *p)
Gia_Man_t * Gia_ManDupTopAnd(Gia_Man_t *p, int fVerbose)
static int Hop_IsComplement(Hop_Obj_t *p)
Vec_Int_t * Gia_ManGroupProve(Gia_Man_t *pInit, char *pCommLine, int nGroupSize, int fVerbose)
int Abc_NtkFxPerform(Abc_Ntk_t *pNtk, int nNewNodesMax, int LitCountMax, int fVerbose, int fVeryVerbose)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromNode(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode)
static int Abc_CommandUnmap(Abc_Frame_t *pAbc, int argc, char **argv)
Aig_Man_t * Gia_ManToAig(Gia_Man_t *p, int fChoices)
int Gia_CommandSpecI(Gia_Man_t *pGia, int nFramesInit, int nBTLimitInit, int fStart, int fCheckMiter, int fVerbose)
Gia_Man_t * Gia_ManRehash(Gia_Man_t *p, int fAddStrash)
static int Abc_CommandAbc9SatEnum(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL int Abc_NtkToBdd(Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkDarSeqSweep(Abc_Ntk_t *pNtk, Fra_Ssw_t *pPars)
void Dar_ManDefaultRefParams(Dar_RefPar_t *pPars)
FUNCTION DEFINITIONS ///.
int Abc_CommandAbc9CexMin(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9EquivFilter(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManDupWithAttributes(Gia_Man_t *p)
void Gia_ManFilterEquivsUsingLatches(Gia_Man_t *pGia, int fFlopsOnly, int fFlopsWith, int fUseRiDrivers)
static int Abc_CommandAbc9Lcorr(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandSpeedup(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandLutpack(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Slice(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void * Abc_FrameReadManDsd()
void Gia_ManPerformFlow2(int fIsMapped, int nAnds, int nLevels, int nLutSize, int nCutNum, int fBalance, int fMinAve, int fUseMfs, int fVerbose)
void Gia_ManTransferTiming(Gia_Man_t *p, Gia_Man_t *pGia)
static ABC_NAMESPACE_IMPL_START int Abc_CommandPrintStats(Abc_Frame_t *pAbc, int argc, char **argv)
DECLARATIONS ///.
static int Abc_CommandPrintKMap(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandBb2Wb(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkCycleInitStateSop(Abc_Ntk_t *pNtk, int nFrames, int fVerbose)
#define Abc_NtkForEachLatch(pNtk, pObj, i)
Vec_Int_t * Gia_GlaConvertToFla(Gia_Man_t *p, Vec_Int_t *vGla)
int Ssw_RarSimulateGia(Gia_Man_t *p, Ssw_RarPars_t *pPars)
typedefABC_NAMESPACE_HEADER_START struct Cgt_Par_t_ Cgt_Par_t
INCLUDES ///.
static Abc_Obj_t * Abc_NtkCreatePi(Abc_Ntk_t *pNtk)
int Gia_ManLutSizeMax(Gia_Man_t *p)
static int Abc_CommandAmap(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandSplitSop(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAddBuffs(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandDsdFree(Abc_Frame_t *pAbc, int argc, char **argv)
static void Vec_IntFreeP(Vec_Int_t **p)
Abc_Ntk_t * Abc_NtkDarLcorrNew(Abc_Ntk_t *pNtk, int nVarsMax, int nConfMax, int fVerbose)
void Abc_NtkCutsOracle(Abc_Ntk_t *pNtk, Cut_Oracle_t *p)
int Gia_ManFilterEquivsUsingParts(Gia_Man_t *pGia, char *pName1, char *pName2)
int Gia_ManPerformGlaOld(Gia_Man_t *p, Abs_Par_t *pPars, int fStartVta)
ABC_DLL Abc_Ntk_t * Abc_NtkFraigTrust(Abc_Ntk_t *pNtk)
int Abc_NtkDSat(Abc_Ntk_t *pNtk, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, int nLearnedStart, int nLearnedDelta, int nLearnedPerce, int fAlignPol, int fAndOuts, int fNewSolver, int fVerbose)
Abc_Ntk_t * Abc_NtkLutmin(Abc_Ntk_t *pNtkInit, int nLutSize, int fVerbose)
static int Abc_CommandRestructure(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandDrwsat(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkTransRel(Abc_Ntk_t *pNtk, int fInputs, int fVerbose)
static int Abc_CommandDFrames(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkWriteLogFile(char *pFileName, Abc_Cex_t *pSeqCex, int Status, int nFrames, char *pCommand)
DECLARATIONS ///.
int Abc_CommandNChooseK(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkDarClockGate(Abc_Ntk_t *pNtk, Abc_Ntk_t *pCare, Cgt_Par_t *pPars)
int Cec_ManSeqSemiformal(Gia_Man_t *pAig, Cec_ParSmf_t *pPars)
ABC_DLL Gia_Man_t * Abc_NtkFlattenHierarchyGia(Abc_Ntk_t *pNtk, Vec_Ptr_t **pvBuffers, int fVerbose)
Vec_Ptr_t * Abc_NtkCollectCoNames(Abc_Ntk_t *pNtk)
static void Abc_Print(int level, const char *format,...)
void Gia_ManIffTest(Gia_Man_t *pGia, If_LibLut_t *pLib, int fVerbose)
static int Abc_CommandMfs(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkEliminateSpecial(Abc_Ntk_t *pNtk, int nMaxSize, int fVerbose)
Abc_Ntk_t * Abc_NtkDarTempor(Abc_Ntk_t *pNtk, int nFrames, int TimeOut, int nConfLimit, int fUseBmc, int fUseTransSigs, int fVerbose, int fVeryVerbose)
void Abc_NtkSetDefaultFxParams(Fxu_Data_t *p)
FUNCTION DEFINITIONS ///.
static int Abc_CommandAbc9If(Abc_Frame_t *pAbc, int argc, char **argv)
Aig_Man_t * Saig_ManDupDual(Aig_Man_t *pAig, Vec_Int_t *vDcFlops, int nDualPis, int fDualFfs, int fMiterFfs, int fComplPo, int fCheckZero, int fCheckOne)
FUNCTION DEFINITIONS ///.
ABC_DLL void Abc_FrameSetManDsd2(void *pMan)
int Abc_NtkQuantify(Abc_Ntk_t *pNtk, int fUniv, int iVar, int fVerbose)
void Abc_NtkCycleInitState(Abc_Ntk_t *pNtk, int nFrames, int fUseXval, int fVerbose)
void Gia_AigerWrite(Gia_Man_t *p, char *pFileName, int fWriteSymbols, int fCompact)
void Abc_GenMesh(char *pFileName, int nVars)
int Abc_NtkDarBmc(Abc_Ntk_t *pNtk, int nStart, int nFrames, int nSizeMax, int nNodeDelta, int nTimeOut, int nBTLimit, int nBTLimitAll, int fRewrite, int fNewAlgo, int fOrDecomp, int nCofFanLit, int fVerbose, int *piFrames)
ABC_DLL Abc_Ntk_t * Abc_NtkDupDfs(Abc_Ntk_t *pNtk)
static int Abc_CommandAbc9GlaShrink(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9ReachN(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandScut(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManFraigSweepSimple(Gia_Man_t *p, void *pPars)
static int Abc_CommandAbc9Demiter(Abc_Frame_t *pAbc, int argc, char **argv)
void Gia_Iso3Test(Gia_Man_t *p)
static int Abc_CommandAbc9AbsDerive(Abc_Frame_t *pAbc, int argc, char **argv)
Vec_Int_t * Bmc_PerformISearch(Gia_Man_t *p, int nFramesMax, int nTimeOut, int fReverse, int fDump, int fVerbose)
Abc_Ntk_t * Abc_NtkFromAigPhase(Aig_Man_t *pMan)
ABC_DLL void * Abc_FrameReadManDsd2()
Abc_Ntk_t * Abc_NtkFromCellMappedGia(Gia_Man_t *p)
static Vec_Int_t * Vec_VecEntryInt(Vec_Vec_t *p, int i)
static int Abc_CommandAbc9Gla2Vta(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_NtkConstrNum(Abc_Ntk_t *pNtk)
int Abc_CommandAbc9PoPart2(Abc_Frame_t *pAbc, int argc, char **argv)
void Nf_ManSetDefaultPars(Jf_Par_t *pPars)
ABC_DLL void Abc_NtkFraigStoreClean()
static int Abc_CommandExdcGet(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Kf(Abc_Frame_t *pAbc, int argc, char **argv)
#define ABC_NAMESPACE_IMPL_START
int Abc_NtkDarBmcInter(Abc_Ntk_t *pNtk, Inter_ManParams_t *pPars, Abc_Ntk_t **ppNtkRes)
static int Abc_CommandAbc9Gla(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Shrink(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9SetRegNum(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkDarFraig(Abc_Ntk_t *pNtk, int nConfLimit, int fDoSparse, int fProve, int fTransfer, int fSpeculate, int fChoicing, int fVerbose)
Gia_Man_t * Gia_ManDupDemiter(Gia_Man_t *p, int fVerbose)
static int Abc_CommandISat(Abc_Frame_t *pAbc, int argc, char **argv)
If_DsdMan_t * If_DsdManFilter(If_DsdMan_t *p, int Limit)
int MainSimp(int argc, char **argv)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
static int Abc_CommandRestore(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkDress(Abc_Ntk_t *pNtkLogic, char *pFileName, int fVerbose)
FUNCTION DEFINITIONS ///.
static int Abc_CommandSeqSweep(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandTopmost(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL Abc_Ntk_t * Abc_FrameReadNtk(Abc_Frame_t *p)
Gia_Man_t * Gia_ManDupCollapse(Gia_Man_t *p, Gia_Man_t *pBoxes, Vec_Int_t *vBoxPres, int fSeq)
static int Abc_CommandZeroPo(Abc_Frame_t *pAbc, int argc, char **argv)
static void Abc_LatchSetInit1(Abc_Obj_t *pLatch)
void Gia_ManPrintStatsMiter(Gia_Man_t *p, int fVerbose)
Abc_Ntk_t * Abc_NtkRenode(Abc_Ntk_t *pNtk, int nFaninMax, int nCubeMax, int nFlowIters, int nAreaIters, int fArea, int fUseBdds, int fUseSops, int fUseCnfs, int fUseMv, int fVerbose)
FUNCTION DEFINITIONS ///.
int Abc_NtkVerifyCex(Abc_Ntk_t *pNtk, Abc_Cex_t *p)
static int Gia_ManCiNum(Gia_Man_t *p)
void Abc_NtkCecFraig(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nSeconds, int fVerbose)
static int Abc_CommandBidec(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkMfsParsDefault(Mfs_Par_t *pPars)
MACRO DEFINITIONS ///.
int MainSat(int argc, char **argv)
static int Abc_CommandIndcut(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandPrintSymms(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandCexCut(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandCexLoad(Abc_Frame_t *pAbc, int argc, char **argv)
int Gia_ManFilterEquivsForSpeculation(Gia_Man_t *pGia, char *pName1, char *pName2, int fLatchA, int fLatchB)
static int Abc_CommandAbc9Cec(Abc_Frame_t *pAbc, int argc, char **argv)
Vec_Int_t * Gia_ManPoXSim(Gia_Man_t *p, int nFrames, int fVerbose)
Abc_Ntk_t * Abc_NtkIvyResyn(Abc_Ntk_t *pNtk, int fUpdateLevel, int fVerbose)
static int Abc_CommandSwapPos(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_CommandAbcLivenessToSafety(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_NtkIsMappedLogic(Abc_Ntk_t *pNtk)
int Abc_NtkRestructure(Abc_Ntk_t *pNtk, int nCutMax, int fUpdateLevel, int fUseZeros, int fVerbose)
FUNCTION DEFINITIONS ///.
void Kit_DsdTest(unsigned *pTruth, int nVars)
static int Abc_CommandAbc9Cycle(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkDress2(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nConflictLimit, int fVerbose)
Abc_Ntk_t * Abc_NtkDarRetimeMostFwd(Abc_Ntk_t *pNtk, int nMaxIters, int fVerbose)
static int Vec_IntSize(Vec_Int_t *p)
ABC_DLL int Abc_NtkCombinePos(Abc_Ntk_t *pNtk, int fAnd, int fXor)
static int Abc_CommandDarPhase(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkRecStart3(Gia_Man_t *p, int nVars, int nCuts, int fFuncOnly, int fVerbose)
Abc_Ntk_t * Abc_NtkSopToCubes(Abc_Ntk_t *pNtk)
void Abc_NtkFraigPartitionedTime(Abc_Ntk_t *pNtk, void *pParams)
static int Abc_CommandFraigDress(Abc_Frame_t *pAbc, int argc, char **argv)
static int Gia_ManHasMapping(Gia_Man_t *p)
void Gia_ManPrintMiterStatus(Gia_Man_t *p)
void Abc_NtkDarConstr(Abc_Ntk_t *pNtk, int nFrames, int nConfs, int nProps, int fStruct, int fOldAlgo, int fVerbose)
static Abc_Obj_t * Abc_NtkPo(Abc_Ntk_t *pNtk, int i)
#define Abc_NtkForEachCi(pNtk, pCi, i)
static int Abc_NtkPoNum(Abc_Ntk_t *pNtk)
int Ssw_RarSignalFilterGia(Gia_Man_t *p, Ssw_RarPars_t *pPars)
static int Abc_CommandAbc9Balance(Abc_Frame_t *pAbc, int argc, char **argv)
void * Dsm_ManDeriveGia(void *p, int fUseMuxes)
If_DsdMan_t * If_DsdManAlloc(int nVars, int nLutSize)
Abc_Ntk_t * Abc_NtkInter(Abc_Ntk_t *pNtkOn, Abc_Ntk_t *pNtkOff, int fRelation, int fVerbose)
int Abc_NtkDarSeqSim(Abc_Ntk_t *pNtk, int nFrames, int nWords, int TimeOut, int fNew, int fMiter, int fVerbose, char *pFileSim)
ABC_DLL int Abc_NtkSweep(Abc_Ntk_t *pNtk, int fVerbose)
static int Abc_CommandDemiter(Abc_Frame_t *pAbc, int argc, char **argv)
int(* pFuncCell)(If_Man_t *, unsigned *, int, int, char *)
Gia_Man_t * Gia_ManDupSliced(Gia_Man_t *p, int nSuppMax)
static int Abc_CommandRr(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Bmci(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManPerformSopBalance(Gia_Man_t *p, int nCutNum, int nRelaxRatio, int fVerbose)
void Abc_NtkPerformIfif(Abc_Ntk_t *pNtk, Ifif_Par_t *pPars)
static int Abc_NtkIsBddLogic(Abc_Ntk_t *pNtk)
static int Abc_CommandTrim(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Cex_t * Abc_CexDup(Abc_Cex_t *p, int nRegsNew)
int If_DsdManLutSize(If_DsdMan_t *p)
static int Abc_CommandAbc9Struct(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_NtkPiNum(Abc_Ntk_t *pNtk)
void Abc_NtkDelayTracePrint(Abc_Ntk_t *pNtk, int fUseLutLib, int fVerbose)
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
void Ssw_RarSetDefaultParams(Ssw_RarPars_t *p)
FUNCTION DEFINITIONS ///.
Abc_Cex_t * Abc_CexTransformPhase(Abc_Cex_t *p, int nPisOld, int nPosOld, int nRegsOld)
void Abc_NtkBidecResyn(Abc_Ntk_t *pNtk, int fVerbose)
Abc_Cex_t * Abc_CexDeriveFromCombModel(int *pModel, int nPis, int nRegs, int iPo)
static int Gia_ManBufNum(Gia_Man_t *p)
int Gia_VtaPerform(Gia_Man_t *pAig, Abs_Par_t *pPars)
Abc_Ntk_t * Abc_NtkDouble(Abc_Ntk_t *pNtk)
void Abc_NtkCecSat(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nConfLimit, int nInsLimit)
FUNCTION DEFINITIONS ///.
Abc_Ntk_t * Abc_NtkDarUnfold(Abc_Ntk_t *pNtk, int nFrames, int nConfs, int nProps, int fStruct, int fOldAlgo, int fVerbose)
int Abc_NtkMfs(Abc_Ntk_t *pNtk, Mfs_Par_t *pPars)
ABC_DLL void Abc_NtkCleanData(Abc_Ntk_t *pNtk)
Gia_Man_t * Gia_ManDupWithArtificialBoxes(Gia_Man_t *p, int DelayC, int nPathMin, int nPathMax, int nPathLimit, int fUseFanout, int fIgnoreBoxDelays, int fVerbose)
static int Abc_CommandIfif(Abc_Frame_t *pAbc, int argc, char **argv)
typedefABC_NAMESPACE_HEADER_START struct Dar_RwrPar_t_ Dar_RwrPar_t
INCLUDES ///.
void Gia_ManDupAppend(Gia_Man_t *p, Gia_Man_t *pTwo)
static int Abc_CommandCRetime(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NodeShowCut(Abc_Obj_t *pNode, int nNodeSizeMax, int nConeSizeMax)
static int Abc_CommandLcorr(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL Abc_Ntk_t * Abc_NtkBalance(Abc_Ntk_t *pNtk, int fDuplicate, int fSelective, int fUpdateLevel)
FUNCTION DEFINITIONS ///.
static int Abc_CommandSendStatus(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkNodeDup(Abc_Ntk_t *pNtkInit, int nLimit, int fVerbose)
static int Abc_CommandDCec(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL Abc_Ntk_t * Abc_NtkBddToMuxes(Abc_Ntk_t *pNtk)
int Abc_NtkDarCec(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nConfLimit, int fPartition, int fVerbose)
ABC_DLL int Abc_NtkAttach(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
static int Abc_CommandUndc(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9MuxProfile(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkCecFraigPart(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nSeconds, int nPartSize, int fVerbose)
static int Abc_CommandAbc9If2(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkEliminate(Abc_Ntk_t *pNtk, int nMaxSize, int fReverse, int fVerbose)
int Gia_ManToBridgeAbsNetlist(FILE *pFile, void *p, int pkg_type)
typedefABC_NAMESPACE_HEADER_START struct Lpk_Par_t_ Lpk_Par_t
INCLUDES ///.
Gia_Man_t * Gia_ManDupCycled(Gia_Man_t *pAig, Abc_Cex_t *pCex, int nFrames)
static int Abc_CommandAbc9False(Abc_Frame_t *pAbc, int argc, char **argv)
void If_DsdManTune(If_DsdMan_t *p, int LutSize, int fFast, int fAdd, int fSpec, int fVerbose)
int Cec_ManVerify(Gia_Man_t *p, Cec_ParCec_t *pPars)
MACRO DEFINITIONS ///.
static int Abc_CommandFraigTrust(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkDarBmc3(Abc_Ntk_t *pNtk, Saig_ParBmc_t *pPars, int fOrDecomp)
static int Abc_CommandAbc9ChainBmc(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandOneHot(Abc_Frame_t *pAbc, int argc, char **argv)
float nFraigingLimitMulti
void Gia_ManSimSetDefaultParams(Gia_ParSim_t *p)
static int Abc_CommandICut(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Equiv3(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManDupTimes(Gia_Man_t *p, int nTimes)
static int Vec_VecSize(Vec_Vec_t *p)
static int Abc_CommandCascade(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Fx(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandSim(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkDRewrite(Abc_Ntk_t *pNtk, Dar_RwrPar_t *pPars)
static int Abc_CommandAbc9ReachY(Abc_Frame_t *pAbc, int argc, char **argv)
If_DsdMan_t * If_DsdManLoad(char *pFileName)
void Cnf_DataFree(Cnf_Dat_t *p)
static void Abc_ObjXorFaninC(Abc_Obj_t *pObj, int i)
void Cec_ManFraSetDefaultParams(Cec_ParFra_t *p)
void Gia_ManTestStruct(Gia_Man_t *p)
void Mpm_LibLutFree(Mpm_LibLut_t *pLib)
static int Abc_CommandAbc9PoXsim(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_FrameUpdateGia(Abc_Frame_t *pAbc, Gia_Man_t *pNew)
static int Abc_CommandAbc9Bidec(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_NAMESPACE_IMPL_END ABC_NAMESPACE_IMPL_START void Abc_GenRandom(char *pFileName, int nPis)
static int Abc_CommandAbc9Verify(Abc_Frame_t *pAbc, int argc, char **argv)
Vec_Ptr_t * Sim_ComputeFunSupp(Abc_Ntk_t *pNtk, int fVerbose)
void Gia_ManWriteMiniAig(Gia_Man_t *pGia, char *pFileName)
static int Abc_CommandLutmin(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManCompress2(Gia_Man_t *p, int fUpdateLevel, int fVerbose)
ABC_DLL int Abc_NtkToAig(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Res_Par_t_ Res_Par_t
INCLUDES ///.
void Abc_NtkAutoPrint(Abc_Ntk_t *pNtk, int Output, int fNaive, int fVerbose)
FUNCTION DEFINITIONS ///.
Vec_Int_t * Gia_FlaConvertToGla(Gia_Man_t *p, Vec_Int_t *vFla)
int Abc_NtkDarClau(Abc_Ntk_t *pNtk, int nFrames, int nPref, int nClauses, int nLutSize, int nLevels, int nCutsMax, int nBatches, int fStepUp, int fBmc, int fRefs, int fTarget, int fVerbose, int fVeryVerbose)
float pLutDelays[IF_MAX_LUTSIZE]
char * If_DsdManGetCellStr(If_DsdMan_t *p)
ABC_NAMESPACE_IMPL_START void Abc_ColorTest()
DECLARATIONS ///.
#define ABC_INFINITY
MACRO DEFINITIONS ///.
static int Abc_CommandAbc9ReadCBlif(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Write(Abc_Frame_t *pAbc, int argc, char **argv)
unsigned * Hop_ManConvertAigToTruth(Hop_Man_t *p, Hop_Obj_t *pRoot, int nVars, Vec_Int_t *vTruth, int fMsbFirst)
static int Abc_CommandDRefactor(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL Gia_Man_t * Abc_NtkAigToGia(Abc_Ntk_t *p)
Abc_Ntk_t * Abc_NtkDChoice(Abc_Ntk_t *pNtk, int fBalance, int fUpdateLevel, int fConstruct, int nConfMax, int nLevelMax, int fVerbose)
typedefABC_NAMESPACE_HEADER_START struct Cec_ParSat_t_ Cec_ParSat_t
INCLUDES ///.
static int Abc_CommandAbc9Topand(Abc_Frame_t *pAbc, int argc, char **argv)
Aig_Man_t * Abc_NtkToDarBmc(Abc_Ntk_t *pNtk, Vec_Int_t **pvMap)
static int Abc_CommandSuperChoice(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandBlockPo(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Nf_ManPerformMapping(Gia_Man_t *pGia, Jf_Par_t *pPars)
ABC_DLL FILE * Abc_FrameReadErr(Abc_Frame_t *p)
static int Abc_NtkHasAig(Abc_Ntk_t *pNtk)
int Gia_ManCexAbstractionRefine(Gia_Man_t *pGia, Abc_Cex_t *pCex, int nFfToAddMax, int fTryFour, int fSensePath, int fVerbose)
static int Abc_CommandAbc9Sim(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandCollapse(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandTestScorr(Abc_Frame_t *pAbc, int argc, char **argv)
int Gia_ManLevelNum(Gia_Man_t *p)
Abc_Ntk_t * Abc_NtkDC2(Abc_Ntk_t *pNtk, int fBalance, int fUpdateLevel, int fFanout, int fPower, int fVerbose)
static int Abc_CommandDRetime(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Mfs(Abc_Frame_t *pAbc, int argc, char **argv)
#define BRIDGE_ABS_NETLIST
static int Abc_CommandAbc9Get(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL char * Abc_FrameReadFlag(char *pFlag)
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
int Abc_NtkDarAbSec(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int nFrames, int fVerbose)
static int Abc_CommandAbc9Scl(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkConvertOnehot(Abc_Ntk_t *pNtk)
static int Abc_CommandAbc9SplitProve(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkMap(Abc_Ntk_t *pNtk, double DelayTarget, double AreaMulti, double DelayMulti, float LogFan, float Slew, float Gain, int nGatesMin, int fRecovery, int fSwitching, int fVerbose)
FUNCTION DEFINITIONS ///.
static int Abc_CommandAbc9Flow(Abc_Frame_t *pAbc, int argc, char **argv)
int If_CutPerformCheck75(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
static int Abc_CommandAbc9Add1Hot(Abc_Frame_t *pAbc, int argc, char **argv)
void Fpga_SetSimpleLutLib(int nLutSize)
static int Abc_CommandAbc9Dsd(Abc_Frame_t *pAbc, int argc, char **argv)
static char * Abc_NtkSpec(Abc_Ntk_t *pNtk)
static int Abc_CommandAbc9Rpm(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManSweepWithBoxes(Gia_Man_t *p, void *pParsC, void *pParsS, int fConst, int fEquiv, int fVerbose)
Gia_Man_t * Gia_ManAreaBalance(Gia_Man_t *p, int fSimpleAnd, int nNewNodesMax, int fVerbose, int fVeryVerbose)
static int Gia_ManHasCellMapping(Gia_Man_t *p)
If_LibLut_t * If_LibLutSetSimple(int nLutSize)
static int Abc_CommandPutOnTop(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Flow2(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Semi(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandCycle(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_GenOneHot(char *pFileName, int nVars)
void Gia_ManFraSetDefaultParams(Gia_ParFra_t *p)
Vec_Int_t * Gia_ManInseTest(Gia_Man_t *p, Vec_Int_t *vInit0, int nFrames, int nWords, int nTimeOut, int fSim, int fVerbose)
ABC_DLL void Abc_NtkPermute(Abc_Ntk_t *pNtk, int fInputs, int fOutputs, int fFlops, char *pFlopPermFile)
static int Abc_CommandSeqFpga(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandIRewriteSeq(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkFindCiOrder(Abc_Ntk_t *pNtk, int fReverse, int fVerbose)
FUNCTION DEFINITIONS ///.
ABC_DLL FILE * Abc_FrameReadOut(Abc_Frame_t *p)
static int Abc_CommandCareSet(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL int * Abc_NtkVerifySimulatePattern(Abc_Ntk_t *pNtk, int *pModel)
#define Abc_NtkForEachPo(pNtk, pPo, i)
Gia_Man_t * Gia_ManIsoCanonicize(Gia_Man_t *p, int fVerbose)
void If_DsdManSetNewAsUseless(If_DsdMan_t *p)
static int Abc_CommandRewrite(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandPrintSharing(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManTransformToDual(Gia_Man_t *p)
static void Vec_IntFree(Vec_Int_t *p)
void Npn_ManLoad(char *pFileName)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static int Abc_CommandPSat(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_CexFree(Abc_Cex_t *p)
static int Gia_ManPiNum(Gia_Man_t *p)
Abc_Ntk_t * Abc_NtkDarCleanupAig(Abc_Ntk_t *pNtk, int fCleanupPis, int fCleanupPos, int fVerbose)
static Hop_Obj_t * Hop_Regular(Hop_Obj_t *p)
static int Abc_CommandMiter(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9BalanceLut(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Abc_FrameGetGia(Abc_Frame_t *pAbc)
static int Abc_CommandSeq(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Mf(Abc_Frame_t *pAbc, int argc, char **argv)
int Abc_NtkMfsAfterICheck(Abc_Ntk_t *p, int nFrames, int nFramesAdd, Vec_Int_t *vFlops, Sfm_Par_t *pPars)
Gia_Man_t * Gia_ManAigSynch2(Gia_Man_t *pInit, void *pPars0, int nLutSize, int nRelaxRatio)
Vec_Int_t * Abc_FrameDeriveStatusArray(Vec_Ptr_t *vCexes)
Abc_Cex_t * Abc_CexCreate(int nRegs, int nPis, int *pArray, int iFrame, int iPo, int fSkipRegs)
double Abc_NtkSpacePercentage(Abc_Obj_t *pNode)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
void If_DsdManCleanOccur(If_DsdMan_t *p, int fVerbose)
void Kit_DsdPrintCofactors(unsigned *pTruth, int nVars, int nCofLevel, int fVerbose)
static int Abc_CommandPrintLatch(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkOrderCisCos(Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkAddBuffs(Abc_Ntk_t *pNtkInit, int fDirect, int fReverse, int nImprove, int fVerbose)
int Gia_ManNewRefine(Gia_Man_t *p, Abc_Cex_t *pCex, int iFrameStart, int iFrameExtra, int fVerbose)
ABC_DLL void * Abc_FrameReadLibLut()
int If_CutPerformCheck16(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
Gia_Man_t * Gia_ManPerformSopBalanceWin(Gia_Man_t *p, int LevelMax, int nTimeWindow, int nCutNum, int nRelaxRatio, int fVerbose)
Gia_Man_t * Gia_ManDupWithConstr(Gia_Man_t *p)
static int Abc_CommandAbc9ICheck(Abc_Frame_t *pAbc, int argc, char **argv)
void Dar_LibStart()
MACRO DEFINITIONS ///.
Abc_Ntk_t * Abc_NtkSpeedup(Abc_Ntk_t *pNtk, int fUseLutLib, int Percentage, int Degree, int fVerbose, int fVeryVerbose)
static void Abc_LatchSetInit0(Abc_Obj_t *pLatch)
Abc_Ntk_t * Abc_NtkSopEsopCover(Abc_Ntk_t *pNtk, int nFaninMax, int fUseEsop, int fUseSop, int fUseInvs, int fVerbose)
FUNCTION DEFINITIONS ///.
static int Abc_CommandBackup(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9PSig(Abc_Frame_t *pAbc, int argc, char **argv)
void Gia_ManPerformFlow(int fIsMapped, int nAnds, int nLevels, int nLutSize, int nCutNum, int fMinAve, int fUseMfs, int fVerbose)
ABC_DLL void Abc_NtkPrintFactor(FILE *pFile, Abc_Ntk_t *pNtk, int fUseRealNames)
void Bmc_ManBCorePerform(Gia_Man_t *pGia, Bmc_BCorePar_t *pPars)
MACRO DEFINITIONS ///.
void Dar_ManDefaultRwrParams(Dar_RwrPar_t *pPars)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Hop_Man_t_ Hop_Man_t
INCLUDES ///.
void Abc_NtkConvertBb2Wb(char *pFileNameIn, char *pFileNameOut, int fSeq, int fVerbose)
void Cec_ManSatSetDefaultParams(Cec_ParSat_t *p)
DECLARATIONS ///.
ABC_DLL int Abc_NtkAppend(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fAddPos)
static int Abc_CommandTestDec(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandIStrash(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandTestNpn(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManAigSyn4(Gia_Man_t *p, int fVerbose, int fVeryVerbose)
static int Abc_CommandProve(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandFraigSweep(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkPrintMffc(FILE *pFile, Abc_Ntk_t *pNtk)
int Saig_ManFindFailedPoCex(Aig_Man_t *pAig, Abc_Cex_t *p)
Abc_Ntk_t * Abc_NtkDarSeqSweep2(Abc_Ntk_t *pNtk, Ssw_Pars_t *pPars)
static int Abc_CommandBmc3(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandPrintDsd(Abc_Frame_t *pAbc, int argc, char **argv)
void Gia_ManEquivMark(Gia_Man_t *p, char *pFileName, int fSkipSome, int fVerbose)
static int Abc_CommandAbc9CexInfo(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkOrderObjsByName(Abc_Ntk_t *pNtk, int fComb)
Abc_Ntk_t * Abc_NtkDRefactor(Abc_Ntk_t *pNtk, Dar_RefPar_t *pPars)
static int Abc_CommandTest(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbSec(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandRefactor(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandExdcFree(Abc_Frame_t *pAbc, int argc, char **argv)
Gia_Man_t * Gia_ManMiter(Gia_Man_t *pAig0, Gia_Man_t *pAig1, int nInsDup, int fDualOut, int fSeq, int fImplic, int fVerbose)
static int Gia_ManObjNum(Gia_Man_t *p)
Gia_Man_t * Gia_ManMiter2(Gia_Man_t *p, char *pInit, int fVerbose)
Vec_Int_t * Tas_ManSolveMiterNc(Gia_Man_t *pGia, int nConfs, Vec_Str_t **pvStatus, int fVerbose)
void Abc_NtkRecDumpTt3(char *pFileName, int fBinary)
static int Abc_CommandAbc9Frames(Abc_Frame_t *pAbc, int argc, char **argv)
Abc_Ntk_t * Abc_NtkPhaseAbstract(Abc_Ntk_t *pNtk, int nFrames, int nPref, int fIgnore, int fPrint, int fVerbose)
static int Abc_CommandEspresso(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NodePrintLevel(FILE *pFile, Abc_Obj_t *pNode)
static int Abc_CommandAbc9Scorr(Abc_Frame_t *pAbc, int argc, char **argv)
void bmGateWay(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int p_equivalence)
ABC_DLL Abc_Ntk_t * Abc_NtkFraigRestore()
typedefABC_NAMESPACE_HEADER_START struct Abs_Par_t_ Abs_Par_t
INCLUDES ///.
Abc_Cex_t * Saig_ManCexMinPerform(Aig_Man_t *pAig, Abc_Cex_t *pCex)
static int Abc_CommandMinisat(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Embed(Abc_Frame_t *pAbc, int argc, char **argv)
void Bmc_PerformICheck(Gia_Man_t *p, int nFramesMax, int nTimeOut, int fEmpty, int fVerbose)
typedefABC_NAMESPACE_HEADER_START struct Inter_ManParams_t_ Inter_ManParams_t
INCLUDES ///.
static int Abc_CommandAbc9Strash(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_NtkBddReorder(Abc_Ntk_t *pNtk, int fVerbose)
static void Vec_PtrFree(Vec_Ptr_t *p)
Abc_Ntk_t * Abc_NtkDarLcorr(Abc_Ntk_t *pNtk, int nFramesP, int nConfMax, int fVerbose)
static int Gia_ManCoNum(Gia_Man_t *p)
static int Abc_CommandAbc9Dch(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandBmcInter(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandPrintStatus(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL void Abc_NtkRecStop3()
static int Abc_CommandPrintAuto(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandIso(Abc_Frame_t *pAbc, int argc, char **argv)
void Abc_FrameReplacePoStatuses(Abc_Frame_t *pAbc, Vec_Int_t **pvStatuses)
Abc_Ntk_t * Abc_NtkCascade(Abc_Ntk_t *pNtk, int nLutSize, int fCheck, int fVerbose)
FUNCTION DEFINITIONS ///.
static int Abc_CommandDualRail(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandFold(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Iff(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandQbf(Abc_Frame_t *pAbc, int argc, char **argv)
ABC_DLL int Abc_NtkFraigStore(Abc_Ntk_t *pNtk)
static int Abc_CommandCexSave(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandAbc9Filter(Abc_Frame_t *pAbc, int argc, char **argv)
static int Gia_ManRegNum(Gia_Man_t *p)
static int Abc_CommandAbc9Bmc(Abc_Frame_t *pAbc, int argc, char **argv)
static int Abc_CommandCec(Abc_Frame_t *pAbc, int argc, char **argv)