summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaIf.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-08-25 16:55:39 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-08-25 16:55:39 -0700
commit47dde4e4789c4c068f3c8ebe77a5a629da48936b (patch)
treebf6af774173dedb5470dd376af14883ee2868e71 /src/aig/gia/giaIf.c
parentcbbf78e6f4d8acd32b0afcdc0e4e87bc318a2590 (diff)
downloadabc-47dde4e4789c4c068f3c8ebe77a5a629da48936b.tar.gz
abc-47dde4e4789c4c068f3c8ebe77a5a629da48936b.tar.bz2
abc-47dde4e4789c4c068f3c8ebe77a5a629da48936b.zip
Correcting incorrect handling of timing in several &-commands.
Diffstat (limited to 'src/aig/gia/giaIf.c')
-rw-r--r--src/aig/gia/giaIf.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/aig/gia/giaIf.c b/src/aig/gia/giaIf.c
index 6e04efd4..4ed46e96 100644
--- a/src/aig/gia/giaIf.c
+++ b/src/aig/gia/giaIf.c
@@ -1619,12 +1619,13 @@ void Gia_ManTransferPacking( Gia_Man_t * pGia, Gia_Man_t * p )
}
void Gia_ManTransferTiming( Gia_Man_t * pGia, Gia_Man_t * p )
{
+ if ( pGia->pManTime == NULL )
+ return;
p->pManTime = pGia->pManTime; pGia->pManTime = NULL;
p->pAigExtra = pGia->pAigExtra; pGia->pAigExtra = NULL;
p->nAnd2Delay = pGia->nAnd2Delay; pGia->nAnd2Delay = 0;
}
-
/**Function*************************************************************
Synopsis [Interface of LUT mapping package.]
@@ -1741,6 +1742,7 @@ Gia_Man_t * Gia_ManPerformSopBalance( Gia_Man_t * p, int nCutNum, int nRelaxRati
If_ManPerformMapping( pIfMan );
pNew = Gia_ManFromIfAig( pIfMan );
If_ManStop( pIfMan );
+ Gia_ManTransferTiming( p, pNew );
// transfer name
assert( pNew->pName == NULL );
pNew->pName = Abc_UtilStrsav( p->pName );
@@ -1748,7 +1750,7 @@ Gia_Man_t * Gia_ManPerformSopBalance( Gia_Man_t * p, int nCutNum, int nRelaxRati
Gia_ManSetRegNum( pNew, Gia_ManRegNum(p) );
return pNew;
}
-Gia_Man_t * Gia_ManPerformDsdBalance( Gia_Man_t * p, int nCutNum, int nRelaxRatio, int fVerbose )
+Gia_Man_t * Gia_ManPerformDsdBalance( Gia_Man_t * p, int nLutSize, int nCutNum, int nRelaxRatio, int fVerbose )
{
Gia_Man_t * pNew;
If_Man_t * pIfMan;
@@ -1757,7 +1759,7 @@ Gia_Man_t * Gia_ManPerformDsdBalance( Gia_Man_t * p, int nCutNum, int nRelaxRati
pPars->nCutsMax = nCutNum;
pPars->nRelaxRatio = nRelaxRatio;
pPars->fVerbose = fVerbose;
- pPars->nLutSize = 6;
+ pPars->nLutSize = nLutSize;
pPars->fDsdBalance = 1;
pPars->fUseDsd = 1;
pPars->fCutMin = 1;
@@ -1773,6 +1775,7 @@ Gia_Man_t * Gia_ManPerformDsdBalance( Gia_Man_t * p, int nCutNum, int nRelaxRati
If_ManPerformMapping( pIfMan );
pNew = Gia_ManFromIfAig( pIfMan );
If_ManStop( pIfMan );
+ Gia_ManTransferTiming( p, pNew );
// transfer name
assert( pNew->pName == NULL );
pNew->pName = Abc_UtilStrsav( p->pName );