summaryrefslogtreecommitdiffstats
path: root/src/aig/gia/giaIf.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-08-20 22:12:51 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-08-20 22:12:51 -0700
commitc344f3e38c60147cacd8a5d414625b832192ccee (patch)
tree390f8d38d7fc5c601099e08a471c327ac3dc5c7a /src/aig/gia/giaIf.c
parent6dbaa4d0f85d8e9ba08b06192aac6013c6461147 (diff)
downloadabc-c344f3e38c60147cacd8a5d414625b832192ccee.tar.gz
abc-c344f3e38c60147cacd8a5d414625b832192ccee.tar.bz2
abc-c344f3e38c60147cacd8a5d414625b832192ccee.zip
Propagating timing support to the new synthesis/mapping commands.
Diffstat (limited to 'src/aig/gia/giaIf.c')
-rw-r--r--src/aig/gia/giaIf.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/src/aig/gia/giaIf.c b/src/aig/gia/giaIf.c
index 61b40117..6e04efd4 100644
--- a/src/aig/gia/giaIf.c
+++ b/src/aig/gia/giaIf.c
@@ -1583,18 +1583,6 @@ void Gia_ManTransferMapping( Gia_Man_t * pGia, Gia_Man_t * p )
}
Gia_ManMappingVerify( p );
}
-
-/**Function*************************************************************
-
- Synopsis [Transfers packing from hie GIA to normalized GIA.]
-
- Description [Hie GIA (pGia) points to normalized GIA (p).]
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
void Gia_ManTransferPacking( Gia_Man_t * pGia, Gia_Man_t * p )
{
Vec_Int_t * vPackingNew;
@@ -1629,6 +1617,12 @@ void Gia_ManTransferPacking( Gia_Man_t * pGia, Gia_Man_t * p )
assert( p->vPacking == NULL );
p->vPacking = vPackingNew;
}
+void Gia_ManTransferTiming( Gia_Man_t * pGia, Gia_Man_t * p )
+{
+ p->pManTime = pGia->pManTime; pGia->pManTime = NULL;
+ p->pAigExtra = pGia->pAigExtra; pGia->pAigExtra = NULL;
+ p->nAnd2Delay = pGia->nAnd2Delay; pGia->nAnd2Delay = 0;
+}
/**Function*************************************************************
@@ -1699,7 +1693,7 @@ Gia_Man_t * Gia_ManPerformMapping( Gia_Man_t * p, void * pp, int fNormalized )
Abc_Print( 0, "Switching activity computation for designs with boxes is disabled.\n" );
}
if ( p->pManTime )
- pIfMan->pManTim = Tim_ManDup( (Tim_Man_t *)p->pManTime, 0 );
+ pIfMan->pManTim = Tim_ManDup( (Tim_Man_t *)p->pManTime, pPars->fDelayOpt || pPars->fDelayOptLut || pPars->fDsdBalance || pPars->fUserRecLib );
if ( !If_ManPerformMapping( pIfMan ) )
{
If_ManStop( pIfMan );
@@ -1718,17 +1712,13 @@ Gia_Man_t * Gia_ManPerformMapping( Gia_Man_t * p, void * pp, int fNormalized )
pNew->pSpec = Abc_UtilStrsav( p->pSpec );
Gia_ManSetRegNum( pNew, Gia_ManRegNum(p) );
// return the original (unmodified by the mapper) timing manager
- pNew->pManTime = p->pManTime; p->pManTime = NULL;
- pNew->pAigExtra = p->pAigExtra; p->pAigExtra = NULL;
- pNew->nAnd2Delay = p->nAnd2Delay; p->nAnd2Delay = 0;
+ Gia_ManTransferTiming( p, pNew );
Gia_ManStop( p );
// normalize and transfer mapping
pNew = Gia_ManDupNormalize( p = pNew );
Gia_ManTransferMapping( p, pNew );
Gia_ManTransferPacking( p, pNew );
- pNew->pManTime = p->pManTime; p->pManTime = NULL;
- pNew->pAigExtra = p->pAigExtra; p->pAigExtra = NULL;
- pNew->nAnd2Delay = p->nAnd2Delay; p->nAnd2Delay = 0;
+ Gia_ManTransferTiming( p, pNew );
Gia_ManStop( p );
return pNew;
}