From 4cf99cae95c629b31d6d89c5dcea2eeb17654c85 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Wed, 6 Dec 2006 08:01:00 -0800 Subject: Version abc61206 --- src/map/if/if.h | 1 + src/map/if/ifMan.c | 9 ++++++++- src/map/if/ifTruth.c | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src/map/if') diff --git a/src/map/if/if.h b/src/map/if/if.h index 32bb07f8..12769eb6 100644 --- a/src/map/if/if.h +++ b/src/map/if/if.h @@ -85,6 +85,7 @@ struct If_Par_t_ // internal parameters int fTruth; // truth table computation enabled int fUseBdds; // sets local BDDs at the nodes + int fUseSops; // sets local SOPs at the nodes int nLatches; // the number of latches in seq mapping If_Lib_t * pLutLib; // the LUT library float * pTimesArr; // arrival times diff --git a/src/map/if/ifMan.c b/src/map/if/ifMan.c index 9e3d8e88..46ca1b5b 100644 --- a/src/map/if/ifMan.c +++ b/src/map/if/ifMan.c @@ -205,7 +205,7 @@ If_Obj_t * If_ManSetupObj( If_Man_t * p ) { If_Cut_t * pCut; If_Obj_t * pObj; - int i, * pArrays; + int i, * pArrays, nTruthWords; // get memory for the object pObj = (If_Obj_t *)Mem_FixedEntryFetch( p->pMem ); memset( pObj, 0, p->nEntryBase ); @@ -230,6 +230,13 @@ If_Obj_t * If_ManSetupObj( If_Man_t * p ) pObj->nCuts = 1; // set the required times pObj->Required = IF_FLOAT_LARGE; + // set up elementary truth table of the unit cut + if ( p->pPars->fTruth ) + { + nTruthWords = Extra_TruthWordNum( pCut->nLimit ); + for ( i = 0; i < nTruthWords; i++ ) + If_CutTruth(pCut)[i] = 0xAAAAAAAA; + } return pObj; } diff --git a/src/map/if/ifTruth.c b/src/map/if/ifTruth.c index 68affc4a..3f9f9f14 100644 --- a/src/map/if/ifTruth.c +++ b/src/map/if/ifTruth.c @@ -69,6 +69,8 @@ static inline unsigned Cut_TruthPhase( If_Cut_t * pCut, If_Cut_t * pCut1 ) ***********************************************************************/ void If_CutComputeTruth( If_Man_t * p, If_Cut_t * pCut, If_Cut_t * pCut0, If_Cut_t * pCut1, int fCompl0, int fCompl1 ) { + extern void Kit_FactorTest( unsigned * pTruth, int nVars ); + // permute the first table if ( fCompl0 ) Extra_TruthNot( p->puTemp[0], If_CutTruth(pCut0), pCut->nLimit ); @@ -86,6 +88,9 @@ void If_CutComputeTruth( If_Man_t * p, If_Cut_t * pCut, If_Cut_t * pCut0, If_Cut Extra_TruthNand( If_CutTruth(pCut), p->puTemp[2], p->puTemp[3], pCut->nLimit ); else Extra_TruthAnd( If_CutTruth(pCut), p->puTemp[2], p->puTemp[3], pCut->nLimit ); + + // perform +// Kit_FactorTest( If_CutTruth(pCut), pCut->nLimit ); } //////////////////////////////////////////////////////////////////////// -- cgit v1.2.3