summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-07-25 08:58:20 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-07-25 08:58:20 -0700
commit9bfe2ad73aaa4d03bb1273950f873e3adb83fb29 (patch)
tree301020b1e835854b9c7f52d71c5c0b7329d8fc53
parente6db0f1142197460a3b5a8d8207eb2fc7371cbfe (diff)
downloadabc-9bfe2ad73aaa4d03bb1273950f873e3adb83fb29.tar.gz
abc-9bfe2ad73aaa4d03bb1273950f873e3adb83fb29.tar.bz2
abc-9bfe2ad73aaa4d03bb1273950f873e3adb83fb29.zip
Fixing option 'if -G <num>' after changes.
-rw-r--r--src/map/if/ifDelay.c14
-rw-r--r--src/map/if/ifMan.c4
-rw-r--r--src/map/if/ifTime.c2
3 files changed, 10 insertions, 10 deletions
diff --git a/src/map/if/ifDelay.c b/src/map/if/ifDelay.c
index f75c42df..7fbcd2af 100644
--- a/src/map/if/ifDelay.c
+++ b/src/map/if/ifDelay.c
@@ -78,16 +78,16 @@ int If_CutDelaySop( If_Man_t * p, If_Cut_t * pCut )
if ( Vec_IntSize(vCover) == 0 )
return -1;
// mark the output as complemented
-// vAnds = If_CutDelaySopAnds( p, pCut, p->vCover, RetValue ^ pCut->fCompl );
- if ( Vec_IntSize(p->vCover) > p->pPars->nGateSize )
- return ABC_INFINITY;
+// vAnds = If_CutDelaySopAnds( p, pCut, vCover, RetValue ^ pCut->fCompl );
+ if ( Vec_IntSize(vCover) > p->pPars->nGateSize )
+ return -1;
// set the area cost
assert( If_CutLeaveNum(pCut) >= 0 && If_CutLeaveNum(pCut) <= 16 );
// compute the gate delay
- nLitMax = If_CutMaxCubeSize( p->vCover, If_CutLeaveNum(pCut) );
- if ( Vec_IntSize(p->vCover) < 2 )
+ nLitMax = If_CutMaxCubeSize( vCover, If_CutLeaveNum(pCut) );
+ if ( Vec_IntSize(vCover) < 2 )
{
- pCut->Cost = Vec_IntSize(p->vCover);
+ pCut->Cost = Vec_IntSize(vCover);
Delay = (int)(GateDelays[If_CutLeaveNum(pCut)] + 0.5);
DelayMax = 0;
If_CutForEachLeaf( p, pCut, pLeaf, i )
@@ -95,7 +95,7 @@ int If_CutDelaySop( If_Man_t * p, If_Cut_t * pCut )
}
else
{
- pCut->Cost = Vec_IntSize(p->vCover) + 1;
+ pCut->Cost = Vec_IntSize(vCover) + 1;
Delay = (int)(GateDelays[If_CutLeaveNum(pCut)] + GateDelays[nLitMax] + 0.5);
DelayMax = 0;
If_CutForEachLeaf( p, pCut, pLeaf, i )
diff --git a/src/map/if/ifMan.c b/src/map/if/ifMan.c
index 443822ac..26989420 100644
--- a/src/map/if/ifMan.c
+++ b/src/map/if/ifMan.c
@@ -70,7 +70,7 @@ If_Man_t * If_ManStart( If_Par_t * pPars )
p->vTtMem[v] = Vec_MemAllocForTT( v, pPars->fUseTtPerm );
for ( v = 0; v < 6; v++ )
p->vTtMem[v] = p->vTtMem[6];
- if ( p->pPars->fDelayOpt )
+ if ( p->pPars->fDelayOpt || pPars->nGateSize > 0 )
{
for ( v = 6; v <= Abc_MaxInt(6,p->pPars->nLutSize); v++ )
p->vTtIsops[v] = Vec_WecAlloc( 1000 );
@@ -79,7 +79,7 @@ If_Man_t * If_ManStart( If_Par_t * pPars )
for ( v = 0; v < 6; v++ )
p->vTtIsops[v] = p->vTtIsops[6];
}
- if ( p->pPars->fDelayOpt || p->pPars->fDsdBalance );
+ if ( p->pPars->fDelayOpt || pPars->nGateSize > 0 || p->pPars->fDsdBalance );
{
p->vCover = Vec_IntAlloc( 0 );
p->vArray = Vec_IntAlloc( 1000 );
diff --git a/src/map/if/ifTime.c b/src/map/if/ifTime.c
index ca53776d..4211b385 100644
--- a/src/map/if/ifTime.c
+++ b/src/map/if/ifTime.c
@@ -218,7 +218,7 @@ void If_CutPropagateRequired( If_Man_t * p, If_Obj_t * pObj, If_Cut_t * pCut, fl
int Delay = If_CutDsdBalancePinDelays( p, pCut, pPerm );
assert( Delay == (int)pCut->Delay );
}
- else
+ else
pPerm = If_CutPerm(pCut);
If_CutForEachLeaf( p, pCut, pLeaf, i )
{