Commit b50894ab by Alan Mishchenko

Removed obsolete code for sequential mapping.

parent b9274a07
...@@ -73,7 +73,6 @@ void Gia_ManSetIfParsDefault( void * pp ) ...@@ -73,7 +73,6 @@ void Gia_ManSetIfParsDefault( void * pp )
p->fEdge = 1; p->fEdge = 1;
p->fPower = 0; p->fPower = 0;
p->fCutMin = 0; p->fCutMin = 0;
p->fSeqMap = 0;
p->fVerbose = 0; p->fVerbose = 0;
p->pLutStruct = NULL; p->pLutStruct = NULL;
// internal parameters // internal parameters
......
...@@ -14791,7 +14791,6 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv ) ...@@ -14791,7 +14791,6 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv )
pPars->fEdge = 1; pPars->fEdge = 1;
pPars->fPower = 0; pPars->fPower = 0;
pPars->fCutMin = 0; pPars->fCutMin = 0;
pPars->fSeqMap = 0;
pPars->fBidec = 0; pPars->fBidec = 0;
pPars->fVerbose = 0; pPars->fVerbose = 0;
pPars->pLutStruct = NULL; pPars->pLutStruct = NULL;
...@@ -14962,7 +14961,7 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv ) ...@@ -14962,7 +14961,7 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv )
pPars->fCutMin ^= 1; pPars->fCutMin ^= 1;
break; break;
case 's': case 's':
pPars->fSeqMap ^= 1; pPars->fDelayOptLut ^= 1;
break; break;
case 'd': case 'd':
pPars->fBidec ^= 1; pPars->fBidec ^= 1;
...@@ -15008,26 +15007,11 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv ) ...@@ -15008,26 +15007,11 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv )
goto usage; goto usage;
} }
} }
if ( pNtk == NULL ) if ( pNtk == NULL )
{ {
Abc_Print( -1, "Empty network.\n" ); Abc_Print( -1, "Empty network.\n" );
return 1; return 1;
} }
/*
if ( pPars->fSeqMap )
{
Abc_Print( -1, "Sequential mapping is currently disabled.\n" );
return 1;
}
*/
if ( pPars->fSeqMap && (pPars->nLatchesCi == 0 || pPars->nLatchesCo == 0) )
{
Abc_Print( -1, "The network has no latches. Use combinational mapping instead of sequential.\n" );
return 1;
}
if ( pPars->nLutSize == -1 ) if ( pPars->nLutSize == -1 )
{ {
if ( pPars->pLutLib == NULL ) if ( pPars->pLutLib == NULL )
...@@ -15035,11 +15019,7 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv ) ...@@ -15035,11 +15019,7 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print( -1, "The LUT library is not given.\n" ); Abc_Print( -1, "The LUT library is not given.\n" );
return 1; return 1;
} }
// get LUT size from the library
pPars->nLutSize = pPars->pLutLib->LutMax; pPars->nLutSize = pPars->pLutLib->LutMax;
// if variable pin delay, force truth table computation
// if ( pPars->pLutLib->fVarPinDelays )
// pPars->fTruth = 1;
} }
if ( pPars->nLutSize < 2 || pPars->nLutSize > IF_MAX_LUTSIZE ) if ( pPars->nLutSize < 2 || pPars->nLutSize > IF_MAX_LUTSIZE )
...@@ -15286,7 +15266,7 @@ usage: ...@@ -15286,7 +15266,7 @@ usage:
Abc_Print( -2, "\t-e : uses edge-based cut selection heuristics [default = %s]\n", pPars->fEdge? "yes": "no" ); Abc_Print( -2, "\t-e : uses edge-based cut selection heuristics [default = %s]\n", pPars->fEdge? "yes": "no" );
Abc_Print( -2, "\t-p : uses power-aware cut selection heuristics [default = %s]\n", pPars->fPower? "yes": "no" ); Abc_Print( -2, "\t-p : uses power-aware cut selection heuristics [default = %s]\n", pPars->fPower? "yes": "no" );
Abc_Print( -2, "\t-m : enables cut minimization by removing vacuous variables [default = %s]\n", pPars->fCutMin? "yes": "no" ); Abc_Print( -2, "\t-m : enables cut minimization by removing vacuous variables [default = %s]\n", pPars->fCutMin? "yes": "no" );
Abc_Print( -2, "\t-s : toggles sequential mapping [default = %s]\n", pPars->fSeqMap? "yes": "no" ); Abc_Print( -2, "\t-s : toggles sequential mapping [default = %s]\n", pPars->fDelayOptLut? "yes": "no" );
Abc_Print( -2, "\t-d : toggles deriving local AIGs using bi-decomposition [default = %s]\n", pPars->fBidec? "yes": "no" ); Abc_Print( -2, "\t-d : toggles deriving local AIGs using bi-decomposition [default = %s]\n", pPars->fBidec? "yes": "no" );
Abc_Print( -2, "\t-b : toggles the use of one special feature [default = %s]\n", pPars->fUseBat? "yes": "no" ); Abc_Print( -2, "\t-b : toggles the use of one special feature [default = %s]\n", pPars->fUseBat? "yes": "no" );
Abc_Print( -2, "\t-u : toggles the use of MUXes along with LUTs [default = %s]\n", fLutMux? "yes": "no" ); Abc_Print( -2, "\t-u : toggles the use of MUXes along with LUTs [default = %s]\n", fLutMux? "yes": "no" );
...@@ -29705,7 +29685,7 @@ int Abc_CommandAbc9If( Abc_Frame_t * pAbc, int argc, char ** argv ) ...@@ -29705,7 +29685,7 @@ int Abc_CommandAbc9If( Abc_Frame_t * pAbc, int argc, char ** argv )
pPars->fCutMin ^= 1; pPars->fCutMin ^= 1;
break; break;
case 's': case 's':
pPars->fSeqMap ^= 1; pPars->fDelayOptLut ^= 1;
break; break;
case 'd': case 'd':
pPars->fBidec ^= 1; pPars->fBidec ^= 1;
...@@ -29998,7 +29978,7 @@ usage: ...@@ -29998,7 +29978,7 @@ usage:
Abc_Print( -2, "\t-e : uses edge-based cut selection heuristics [default = %s]\n", pPars->fEdge? "yes": "no" ); Abc_Print( -2, "\t-e : uses edge-based cut selection heuristics [default = %s]\n", pPars->fEdge? "yes": "no" );
Abc_Print( -2, "\t-p : uses power-aware cut selection heuristics [default = %s]\n", pPars->fPower? "yes": "no" ); Abc_Print( -2, "\t-p : uses power-aware cut selection heuristics [default = %s]\n", pPars->fPower? "yes": "no" );
Abc_Print( -2, "\t-m : enables cut minimization by removing vacuous variables [default = %s]\n", pPars->fCutMin? "yes": "no" ); Abc_Print( -2, "\t-m : enables cut minimization by removing vacuous variables [default = %s]\n", pPars->fCutMin? "yes": "no" );
Abc_Print( -2, "\t-s : toggles sequential mapping [default = %s]\n", pPars->fSeqMap? "yes": "no" ); Abc_Print( -2, "\t-s : toggles sequential mapping [default = %s]\n", pPars->fDelayOptLut? "yes": "no" );
Abc_Print( -2, "\t-d : toggles deriving local AIGs using bi-decomposition [default = %s]\n", pPars->fBidec? "yes": "no" ); Abc_Print( -2, "\t-d : toggles deriving local AIGs using bi-decomposition [default = %s]\n", pPars->fBidec? "yes": "no" );
Abc_Print( -2, "\t-b : toggles the use of one special feature [default = %s]\n", pPars->fUseBat? "yes": "no" ); Abc_Print( -2, "\t-b : toggles the use of one special feature [default = %s]\n", pPars->fUseBat? "yes": "no" );
Abc_Print( -2, "\t-g : toggles delay optimization by SOP balancing [default = %s]\n", pPars->fDelayOpt? "yes": "no" ); Abc_Print( -2, "\t-g : toggles delay optimization by SOP balancing [default = %s]\n", pPars->fDelayOpt? "yes": "no" );
...@@ -84,7 +84,6 @@ Abc_Ntk_t * Abc_NtkRenode( Abc_Ntk_t * pNtk, int nFaninMax, int nCubeMax, int nF ...@@ -84,7 +84,6 @@ Abc_Ntk_t * Abc_NtkRenode( Abc_Ntk_t * pNtk, int nFaninMax, int nCubeMax, int nF
pPars->fFancy = 0; pPars->fFancy = 0;
pPars->fExpRed = 0; // pPars->fExpRed = 0; //
pPars->fLatchPaths = 0; pPars->fLatchPaths = 0;
pPars->fSeqMap = 0;
pPars->fVerbose = fVerbose; pPars->fVerbose = fVerbose;
// internal parameters // internal parameters
pPars->fTruth = 1; pPars->fTruth = 1;
......
...@@ -117,7 +117,10 @@ struct If_Par_t_ ...@@ -117,7 +117,10 @@ struct If_Par_t_
int fEdge; // uses edge-based cut selection heuristics int fEdge; // uses edge-based cut selection heuristics
int fPower; // uses power-aware cut selection heuristics int fPower; // uses power-aware cut selection heuristics
int fCutMin; // performs cut minimization by removing functionally reducdant variables int fCutMin; // performs cut minimization by removing functionally reducdant variables
int fSeqMap; // sequential mapping int fDelayOpt; // special delay optimization
int fDelayOptLut; // delay optimization for LUTs
int fDsdBalance; // special delay optimization
int fUserRecLib; // use recorded library
int fBidec; // use bi-decomposition int fBidec; // use bi-decomposition
int fUseBat; // use one specialized feature int fUseBat; // use one specialized feature
int fUseBuffs; // use buffers to decouple outputs int fUseBuffs; // use buffers to decouple outputs
...@@ -134,9 +137,6 @@ struct If_Par_t_ ...@@ -134,9 +137,6 @@ struct If_Par_t_
char * pLutStruct; // LUT structure char * pLutStruct; // LUT structure
float WireDelay; // wire delay float WireDelay; // wire delay
// internal parameters // internal parameters
int fDelayOpt; // special delay optimization
int fDsdBalance; // special delay optimization
int fUserRecLib; // use recorded library
int fSkipCutFilter;// skip cut filter int fSkipCutFilter;// skip cut filter
int fAreaOnly; // area only mode int fAreaOnly; // area only mode
int fTruth; // truth table computation enabled int fTruth; // truth table computation enabled
......
...@@ -47,21 +47,12 @@ extern abctime s_MappingTime; ...@@ -47,21 +47,12 @@ extern abctime s_MappingTime;
int If_ManPerformMapping( If_Man_t * p ) int If_ManPerformMapping( If_Man_t * p )
{ {
p->pPars->fAreaOnly = p->pPars->fArea; // temporary p->pPars->fAreaOnly = p->pPars->fArea; // temporary
// create the CI cutsets // create the CI cutsets
If_ManSetupCiCutSets( p ); If_ManSetupCiCutSets( p );
// allocate memory for other cutsets // allocate memory for other cutsets
If_ManSetupSetAll( p, If_ManCrossCut(p) ); If_ManSetupSetAll( p, If_ManCrossCut(p) );
// derive reverse top order // derive reverse top order
p->vObjsRev = If_ManReverseOrder( p ); p->vObjsRev = If_ManReverseOrder( p );
// try sequential mapping
if ( p->pPars->fSeqMap )
{
// if ( p->pPars->fVerbose )
Abc_Print( 1, "Performing sequential mapping without retiming.\n" );
return If_ManPerformMappingSeq( p );
}
return If_ManPerformMappingComb( p ); return If_ManPerformMappingComb( p );
} }
......
...@@ -950,14 +950,11 @@ float If_CutAreaFlow( If_Man_t * p, If_Cut_t * pCut ) ...@@ -950,14 +950,11 @@ float If_CutAreaFlow( If_Man_t * p, If_Cut_t * pCut )
If_Obj_t * pLeaf; If_Obj_t * pLeaf;
float Flow; float Flow;
int i; int i;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
Flow = If_CutLutArea(p, pCut); Flow = If_CutLutArea(p, pCut);
If_CutForEachLeaf( p, pCut, pLeaf, i ) If_CutForEachLeaf( p, pCut, pLeaf, i )
{ {
if ( pLeaf->nRefs == 0 || If_ObjIsConst1(pLeaf) ) if ( pLeaf->nRefs == 0 || If_ObjIsConst1(pLeaf) )
Flow += If_ObjCutBest(pLeaf)->Area; Flow += If_ObjCutBest(pLeaf)->Area;
else if ( p->pPars->fSeqMap ) // seq
Flow += If_ObjCutBest(pLeaf)->Area / pLeaf->nRefs;
else else
{ {
assert( pLeaf->EstRefs > p->fEpsilon ); assert( pLeaf->EstRefs > p->fEpsilon );
...@@ -983,14 +980,11 @@ float If_CutEdgeFlow( If_Man_t * p, If_Cut_t * pCut ) ...@@ -983,14 +980,11 @@ float If_CutEdgeFlow( If_Man_t * p, If_Cut_t * pCut )
If_Obj_t * pLeaf; If_Obj_t * pLeaf;
float Flow; float Flow;
int i; int i;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
Flow = pCut->nLeaves; Flow = pCut->nLeaves;
If_CutForEachLeaf( p, pCut, pLeaf, i ) If_CutForEachLeaf( p, pCut, pLeaf, i )
{ {
if ( pLeaf->nRefs == 0 || If_ObjIsConst1(pLeaf) ) if ( pLeaf->nRefs == 0 || If_ObjIsConst1(pLeaf) )
Flow += If_ObjCutBest(pLeaf)->Edge; Flow += If_ObjCutBest(pLeaf)->Edge;
else if ( p->pPars->fSeqMap ) // seq
Flow += If_ObjCutBest(pLeaf)->Edge / pLeaf->nRefs;
else else
{ {
assert( pLeaf->EstRefs > p->fEpsilon ); assert( pLeaf->EstRefs > p->fEpsilon );
...@@ -1017,14 +1011,11 @@ float If_CutPowerFlow( If_Man_t * p, If_Cut_t * pCut, If_Obj_t * pRoot ) ...@@ -1017,14 +1011,11 @@ float If_CutPowerFlow( If_Man_t * p, If_Cut_t * pCut, If_Obj_t * pRoot )
float * pSwitching = (float *)p->vSwitching->pArray; float * pSwitching = (float *)p->vSwitching->pArray;
float Power = 0; float Power = 0;
int i; int i;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
If_CutForEachLeaf( p, pCut, pLeaf, i ) If_CutForEachLeaf( p, pCut, pLeaf, i )
{ {
Power += pSwitching[pLeaf->Id]; Power += pSwitching[pLeaf->Id];
if ( pLeaf->nRefs == 0 || If_ObjIsConst1(pLeaf) ) if ( pLeaf->nRefs == 0 || If_ObjIsConst1(pLeaf) )
Power += If_ObjCutBest(pLeaf)->Power; Power += If_ObjCutBest(pLeaf)->Power;
else if ( p->pPars->fSeqMap ) // seq
Power += If_ObjCutBest(pLeaf)->Power / pLeaf->nRefs;
else else
{ {
assert( pLeaf->EstRefs > p->fEpsilon ); assert( pLeaf->EstRefs > p->fEpsilon );
...@@ -1049,7 +1040,6 @@ float If_CutAverageRefs( If_Man_t * p, If_Cut_t * pCut ) ...@@ -1049,7 +1040,6 @@ float If_CutAverageRefs( If_Man_t * p, If_Cut_t * pCut )
{ {
If_Obj_t * pLeaf; If_Obj_t * pLeaf;
int nRefsTotal, i; int nRefsTotal, i;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
nRefsTotal = 0; nRefsTotal = 0;
If_CutForEachLeaf( p, pCut, pLeaf, i ) If_CutForEachLeaf( p, pCut, pLeaf, i )
nRefsTotal += pLeaf->nRefs; nRefsTotal += pLeaf->nRefs;
...@@ -1125,7 +1115,6 @@ float If_CutAreaRef( If_Man_t * p, If_Cut_t * pCut ) ...@@ -1125,7 +1115,6 @@ float If_CutAreaRef( If_Man_t * p, If_Cut_t * pCut )
float If_CutAreaDerefed( If_Man_t * p, If_Cut_t * pCut ) float If_CutAreaDerefed( If_Man_t * p, If_Cut_t * pCut )
{ {
float aResult, aResult2; float aResult, aResult2;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
if ( pCut->nLeaves < 2 ) if ( pCut->nLeaves < 2 )
return 0; return 0;
aResult2 = If_CutAreaRef( p, pCut ); aResult2 = If_CutAreaRef( p, pCut );
...@@ -1149,7 +1138,6 @@ float If_CutAreaDerefed( If_Man_t * p, If_Cut_t * pCut ) ...@@ -1149,7 +1138,6 @@ float If_CutAreaDerefed( If_Man_t * p, If_Cut_t * pCut )
float If_CutAreaRefed( If_Man_t * p, If_Cut_t * pCut ) float If_CutAreaRefed( If_Man_t * p, If_Cut_t * pCut )
{ {
float aResult, aResult2; float aResult, aResult2;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
if ( pCut->nLeaves < 2 ) if ( pCut->nLeaves < 2 )
return 0; return 0;
aResult2 = If_CutAreaDeref( p, pCut ); aResult2 = If_CutAreaDeref( p, pCut );
...@@ -1228,7 +1216,6 @@ float If_CutEdgeRef( If_Man_t * p, If_Cut_t * pCut ) ...@@ -1228,7 +1216,6 @@ float If_CutEdgeRef( If_Man_t * p, If_Cut_t * pCut )
float If_CutEdgeDerefed( If_Man_t * p, If_Cut_t * pCut ) float If_CutEdgeDerefed( If_Man_t * p, If_Cut_t * pCut )
{ {
float aResult, aResult2; float aResult, aResult2;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
if ( pCut->nLeaves < 2 ) if ( pCut->nLeaves < 2 )
return pCut->nLeaves; return pCut->nLeaves;
aResult2 = If_CutEdgeRef( p, pCut ); aResult2 = If_CutEdgeRef( p, pCut );
...@@ -1252,7 +1239,6 @@ float If_CutEdgeDerefed( If_Man_t * p, If_Cut_t * pCut ) ...@@ -1252,7 +1239,6 @@ float If_CutEdgeDerefed( If_Man_t * p, If_Cut_t * pCut )
float If_CutEdgeRefed( If_Man_t * p, If_Cut_t * pCut ) float If_CutEdgeRefed( If_Man_t * p, If_Cut_t * pCut )
{ {
float aResult, aResult2; float aResult, aResult2;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
if ( pCut->nLeaves < 2 ) if ( pCut->nLeaves < 2 )
return pCut->nLeaves; return pCut->nLeaves;
aResult2 = If_CutEdgeDeref( p, pCut ); aResult2 = If_CutEdgeDeref( p, pCut );
...@@ -1333,7 +1319,6 @@ float If_CutPowerRef( If_Man_t * p, If_Cut_t * pCut, If_Obj_t * pRoot ) ...@@ -1333,7 +1319,6 @@ float If_CutPowerRef( If_Man_t * p, If_Cut_t * pCut, If_Obj_t * pRoot )
float If_CutPowerDerefed( If_Man_t * p, If_Cut_t * pCut, If_Obj_t * pRoot ) float If_CutPowerDerefed( If_Man_t * p, If_Cut_t * pCut, If_Obj_t * pRoot )
{ {
float aResult, aResult2; float aResult, aResult2;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
if ( pCut->nLeaves < 2 ) if ( pCut->nLeaves < 2 )
return 0; return 0;
aResult2 = If_CutPowerRef( p, pCut, pRoot ); aResult2 = If_CutPowerRef( p, pCut, pRoot );
...@@ -1357,7 +1342,6 @@ float If_CutPowerDerefed( If_Man_t * p, If_Cut_t * pCut, If_Obj_t * pRoot ) ...@@ -1357,7 +1342,6 @@ float If_CutPowerDerefed( If_Man_t * p, If_Cut_t * pCut, If_Obj_t * pRoot )
float If_CutPowerRefed( If_Man_t * p, If_Cut_t * pCut, If_Obj_t * pRoot ) float If_CutPowerRefed( If_Man_t * p, If_Cut_t * pCut, If_Obj_t * pRoot )
{ {
float aResult, aResult2; float aResult, aResult2;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
if ( pCut->nLeaves < 2 ) if ( pCut->nLeaves < 2 )
return 0; return 0;
aResult2 = If_CutPowerDeref( p, pCut, pRoot ); aResult2 = If_CutPowerDeref( p, pCut, pRoot );
......
...@@ -100,17 +100,14 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep ...@@ -100,17 +100,14 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep
int fFunc0R, fFunc1R; int fFunc0R, fFunc1R;
int i, k, v, fChange; int i, k, v, fChange;
int fSave0 = p->pPars->fDelayOpt || p->pPars->fDsdBalance || p->pPars->fUserRecLib; int fSave0 = p->pPars->fDelayOpt || p->pPars->fDsdBalance || p->pPars->fUserRecLib;
assert( p->pPars->fSeqMap || !If_ObjIsAnd(pObj->pFanin0) || pObj->pFanin0->pCutSet->nCuts > 0 ); assert( !If_ObjIsAnd(pObj->pFanin0) || pObj->pFanin0->pCutSet->nCuts > 0 );
assert( p->pPars->fSeqMap || !If_ObjIsAnd(pObj->pFanin1) || pObj->pFanin1->pCutSet->nCuts > 0 ); assert( !If_ObjIsAnd(pObj->pFanin1) || pObj->pFanin1->pCutSet->nCuts > 0 );
// prepare // prepare
if ( !p->pPars->fSeqMap ) if ( Mode == 0 )
{ pObj->EstRefs = (float)pObj->nRefs;
if ( Mode == 0 ) else if ( Mode == 1 )
pObj->EstRefs = (float)pObj->nRefs; pObj->EstRefs = (float)((2.0 * pObj->EstRefs + pObj->nRefs) / 3.0);
else if ( Mode == 1 )
pObj->EstRefs = (float)((2.0 * pObj->EstRefs + pObj->nRefs) / 3.0);
}
// deref the selected cut // deref the selected cut
if ( Mode && pObj->nRefs > 0 ) if ( Mode && pObj->nRefs > 0 )
If_CutAreaDeref( p, If_ObjCutBest(pObj) ); If_CutAreaDeref( p, If_ObjCutBest(pObj) );
...@@ -376,7 +373,6 @@ void If_ObjPerformMappingChoice( If_Man_t * p, If_Obj_t * pObj, int Mode, int fP ...@@ -376,7 +373,6 @@ void If_ObjPerformMappingChoice( If_Man_t * p, If_Obj_t * pObj, int Mode, int fP
// go through the cuts of this node // go through the cuts of this node
If_ObjForEachCut( pTemp, pCutTemp, i ) If_ObjForEachCut( pTemp, pCutTemp, i )
{ {
assert( p->pPars->fSeqMap || pCutTemp->nLeaves > 1 );
if ( pCutTemp->fUseless ) if ( pCutTemp->fUseless )
continue; continue;
// get the next free cut // get the next free cut
...@@ -409,7 +405,6 @@ void If_ObjPerformMappingChoice( If_Man_t * p, If_Obj_t * pObj, int Mode, int fP ...@@ -409,7 +405,6 @@ void If_ObjPerformMappingChoice( If_Man_t * p, If_Obj_t * pObj, int Mode, int fP
// update the best cut // update the best cut
if ( !fPreprocess || pCutSet->ppCuts[0]->Delay <= pObj->Required + p->fEpsilon ) if ( !fPreprocess || pCutSet->ppCuts[0]->Delay <= pObj->Required + p->fEpsilon )
If_CutCopy( p, If_ObjCutBest(pObj), pCutSet->ppCuts[0] ); If_CutCopy( p, If_ObjCutBest(pObj), pCutSet->ppCuts[0] );
assert( p->pPars->fSeqMap || If_ObjCutBest(pObj)->nLeaves > 1 );
// add the trivial cut to the set // add the trivial cut to the set
if ( !pObj->fSkipCut && If_ObjCutBest(pObj)->nLeaves > 1 ) if ( !pObj->fSkipCut && If_ObjCutBest(pObj)->nLeaves > 1 )
{ {
......
...@@ -305,15 +305,9 @@ void If_ManPerformMappingSeqPost( If_Man_t * p ) ...@@ -305,15 +305,9 @@ void If_ManPerformMappingSeqPost( If_Man_t * p )
assert( p->pPars->pTimesReq == NULL ); assert( p->pPars->pTimesReq == NULL );
p->pPars->pTimesReq = ABC_ALLOC( float, If_ManCoNum(p) ); p->pPars->pTimesReq = ABC_ALLOC( float, If_ManCoNum(p) );
If_ManForEachPo( p, pObj, i ) If_ManForEachPo( p, pObj, i )
{
p->pPars->pTimesReq[i] = p->RequiredGlo2; p->pPars->pTimesReq[i] = p->RequiredGlo2;
// Abc_Print( 1, "Out %3d : %2d \n", i, (int)p->pPars->pTimesReq[i] );
}
If_ManForEachLatchInput( p, pObjLi, i ) If_ManForEachLatchInput( p, pObjLi, i )
{
p->pPars->pTimesReq[i] = If_ObjLValue(If_ObjFanin0(pObjLi)); p->pPars->pTimesReq[i] = If_ObjLValue(If_ObjFanin0(pObjLi));
// Abc_Print( 1, "Out %3d : %2d \n", i, (int)p->pPars->pTimesReq[i] );
}
// undo previous mapping // undo previous mapping
If_ManForEachObj( p, pObj, i ) If_ManForEachObj( p, pObj, i )
...@@ -321,9 +315,9 @@ void If_ManPerformMappingSeqPost( If_Man_t * p ) ...@@ -321,9 +315,9 @@ void If_ManPerformMappingSeqPost( If_Man_t * p )
If_ObjCutBest(pObj)->nLeaves = 0; If_ObjCutBest(pObj)->nLeaves = 0;
// map again combinationally // map again combinationally
p->pPars->fSeqMap = 0; // p->pPars->fSeqMap = 0;
If_ManPerformMappingComb( p ); If_ManPerformMappingComb( p );
p->pPars->fSeqMap = 1; // p->pPars->fSeqMap = 1;
} }
/**Function************************************************************* /**Function*************************************************************
......
...@@ -96,7 +96,6 @@ float If_CutDelay( If_Man_t * p, If_Obj_t * pObj, If_Cut_t * pCut ) ...@@ -96,7 +96,6 @@ float If_CutDelay( If_Man_t * p, If_Obj_t * pObj, If_Cut_t * pCut )
float Delay, DelayCur; float Delay, DelayCur;
float * pLutDelays; float * pLutDelays;
int i, Shift, Pin2PinDelay;//, iLeaf; int i, Shift, Pin2PinDelay;//, iLeaf;
// assert( p->pPars->fSeqMap || pCut->nLeaves > 1 );
Delay = -IF_FLOAT_LARGE; Delay = -IF_FLOAT_LARGE;
if ( p->pPars->pLutLib ) if ( p->pPars->pLutLib )
{ {
......
...@@ -63,7 +63,6 @@ void Lpk_IfManStart( Lpk_Man_t * p ) ...@@ -63,7 +63,6 @@ void Lpk_IfManStart( Lpk_Man_t * p )
pPars->fFancy = 0; pPars->fFancy = 0;
pPars->fExpRed = 0; // pPars->fExpRed = 0; //
pPars->fLatchPaths = 0; pPars->fLatchPaths = 0;
pPars->fSeqMap = 0;
pPars->fVerbose = 0; pPars->fVerbose = 0;
// internal parameters // internal parameters
pPars->fTruth = 1; pPars->fTruth = 1;
......
...@@ -64,7 +64,6 @@ void Nwk_ManSetIfParsDefault( If_Par_t * pPars ) ...@@ -64,7 +64,6 @@ void Nwk_ManSetIfParsDefault( If_Par_t * pPars )
pPars->fEdge = 1; pPars->fEdge = 1;
pPars->fPower = 0; pPars->fPower = 0;
pPars->fCutMin = 0; pPars->fCutMin = 0;
pPars->fSeqMap = 0;
pPars->fVerbose = 0; pPars->fVerbose = 0;
// internal parameters // internal parameters
pPars->fTruth = 0; pPars->fTruth = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment