diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2014-08-20 22:12:51 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2014-08-20 22:12:51 -0700 |
commit | c344f3e38c60147cacd8a5d414625b832192ccee (patch) | |
tree | 390f8d38d7fc5c601099e08a471c327ac3dc5c7a /src/aig/gia/giaIf.c | |
parent | 6dbaa4d0f85d8e9ba08b06192aac6013c6461147 (diff) | |
download | abc-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.c | 28 |
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; } |