summaryrefslogtreecommitdiffstats
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/if/if.h1
-rw-r--r--src/map/if/ifMan.c9
-rw-r--r--src/map/if/ifTruth.c5
3 files changed, 14 insertions, 1 deletions
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 );
}
////////////////////////////////////////////////////////////////////////