Go to the source code of this file.
◆ Csw_ManStart()
DECLARATIONS ///.
CFile****************************************************************
FileName [cswMan.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Cut sweeping.]
Synopsis []
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - July 11, 2007.]
Revision [
- Id
- cswMan.c,v 1.00 2007/07/11 00:00:00 alanmi Exp
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Starts the cut sweeping manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file cswMan.c.
46{
49 int i;
52
55 p->nCutsMax = nCutsMax;
56 p->nLeafMax = nLeafMax;
57 p->fVerbose = fVerbose;
59
61 assert( Aig_ManCiNum(
p->pManAig) == Aig_ManCiNum(
p->pManRes) );
62
63 p->pnRefs =
ABC_ALLOC(
int, Aig_ManObjNumMax(pMan) );
67 memset(
p->pnRefs, 0,
sizeof(
int) * Aig_ManObjNumMax(pMan) );
68
69 p->nTruthWords = Abc_TruthWordNum(nLeafMax);
70 p->nCutSize =
sizeof(
Csw_Cut_t) +
sizeof(
int) * nLeafMax +
sizeof(unsigned) *
p->nTruthWords;
72
73 p->nTableSize = Abc_PrimeCudd( Aig_ManNodeNum(pMan) *
p->nCutsMax / 2 );
76
77 Csw_ObjSetEquiv(
p, Aig_ManConst1(
p->pManAig), Aig_ManConst1(
p->pManRes) );
79 Csw_ObjSetEquiv(
p, pObj, Aig_ManCi(
p->pManRes, i) );
80
81 p->puTemp[0] =
ABC_ALLOC(
unsigned, 4 *
p->nTruthWords );
82 p->puTemp[1] =
p->puTemp[0] +
p->nTruthWords;
83 p->puTemp[2] =
p->puTemp[1] +
p->nTruthWords;
84 p->puTemp[3] =
p->puTemp[2] +
p->nTruthWords;
86}
#define ABC_ALLOC(type, num)
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
Aig_Man_t * Aig_ManStartFrom(Aig_Man_t *p)
struct Aig_Obj_t_ Aig_Obj_t
Aig_MmFixed_t * Aig_MmFixedStart(int nEntrySize, int nEntriesMax)
FUNCTION DEFINITIONS ///.
struct Csw_Cut_t_ Csw_Cut_t
typedefABC_NAMESPACE_HEADER_START struct Csw_Man_t_ Csw_Man_t
INCLUDES ///.
◆ Csw_ManStop()
Function*************************************************************
Synopsis [Stops the fraiging manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 99 of file cswMan.c.
100{
102 {
103 int nNodesBeg = Aig_ManNodeNum(
p->pManAig);
104 int nNodesEnd = Aig_ManNodeNum(
p->pManRes);
105 printf( "Beg = %7d. End = %7d. (%6.2f %%) Try = %7d. Cuts = %8d.\n",
106 nNodesBeg, nNodesEnd, 100.0*(nNodesBeg-nNodesEnd)/nNodesBeg,
108 printf( "Triv0 = %6d. Triv1 = %6d. Triv2 = %6d. Cut-replace = %6d.\n",
109 p->nNodesTriv0,
p->nNodesTriv1,
p->nNodesTriv2,
p->nNodesCuts );
110 ABC_PRTP(
"Cuts ",
p->timeCuts,
p->timeTotal );
111 ABC_PRTP(
"Hashing ",
p->timeHash,
p->timeTotal );
112 ABC_PRTP(
"Other ",
p->timeOther,
p->timeTotal );
113 ABC_PRTP(
"TOTAL ",
p->timeTotal,
p->timeTotal );
114 }
122}
#define ABC_PRTP(a, t, T)
void Aig_MmFixedStop(Aig_MmFixed_t *p, int fVerbose)
int Csw_TableCountCuts(Csw_Man_t *p)