diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-09-16 23:34:56 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-09-16 23:34:56 -0700 |
commit | 7e843d64a934e731943d5975bb9255ebc1cfc719 (patch) | |
tree | b4bb27b82430400d5050982969ead4079fe178e5 | |
parent | 6d05fde2dc046d16c0d04b06d1755b9c25e6ee1d (diff) | |
download | abc-7e843d64a934e731943d5975bb9255ebc1cfc719.tar.gz abc-7e843d64a934e731943d5975bb9255ebc1cfc719.tar.bz2 abc-7e843d64a934e731943d5975bb9255ebc1cfc719.zip |
Added delay multipliers to 'map'.
-rw-r--r-- | src/base/abci/abcMap.c | 20 | ||||
-rw-r--r-- | src/sat/cnf/cnfCore.c | 2 |
2 files changed, 14 insertions, 8 deletions
diff --git a/src/base/abci/abcMap.c b/src/base/abci/abcMap.c index 56348ee7..c9d743eb 100644 --- a/src/base/abci/abcMap.c +++ b/src/base/abci/abcMap.c @@ -59,6 +59,7 @@ static Abc_Obj_t * Abc_NodeFromMapSuperChoice_rec( Abc_Ntk_t * pNtkNew, Map_Sup ***********************************************************************/ Abc_Ntk_t * Abc_NtkMap( Abc_Ntk_t * pNtk, double DelayTarget, double AreaMulti, double DelayMulti, int fRecovery, int fSwitching, int fVerbose ) { + static int fUseMulti = 0; int fShowSwitching = 1; Abc_Ntk_t * pNtkNew; Map_Man_t * pMan; @@ -76,12 +77,19 @@ Abc_Ntk_t * Abc_NtkMap( Abc_Ntk_t * pNtk, double DelayTarget, double AreaMulti, return 0; } + if ( AreaMulti != 0.0 ) + fUseMulti = 1, printf( "The cell areas are multiplied by the factor: <num_fanins> ^ (%.2f).\n", AreaMulti ); + if ( DelayMulti != 0.0 ) + fUseMulti = 1, printf( "The cell delays are multiplied by the factor: <num_fanins> ^ (%.2f).\n", DelayMulti ); + // penalize large gates by increasing their area - Mio_LibraryMultiArea( pLib, AreaMulti ); - Mio_LibraryMultiDelay( pLib, DelayMulti ); + if ( AreaMulti != 0.0 ) + Mio_LibraryMultiArea( pLib, AreaMulti ); + if ( DelayMulti != 0.0 ) + Mio_LibraryMultiDelay( pLib, DelayMulti ); // derive the supergate library - if ( Abc_FrameReadLibSuper() == NULL && pLib ) + if ( fUseMulti || Abc_FrameReadLibSuper() == NULL ) { // printf( "A simple supergate library is derived from gate library \"%s\".\n", // Mio_LibraryReadName((Mio_Library_t *)Abc_FrameReadLibGen()) ); @@ -90,12 +98,10 @@ Abc_Ntk_t * Abc_NtkMap( Abc_Ntk_t * pNtk, double DelayTarget, double AreaMulti, } // return the library to normal - Mio_LibraryMultiArea( Abc_FrameReadLibGen(), -AreaMulti ); - Mio_LibraryMultiDelay( Abc_FrameReadLibGen(), -DelayMulti ); if ( AreaMulti != 0.0 ) - printf( "The cell areas are multiplied by the factor: <num_fanins> ^ (%.2f).\n", AreaMulti ); + Mio_LibraryMultiArea( Abc_FrameReadLibGen(), -AreaMulti ); if ( DelayMulti != 0.0 ) - printf( "The cell delay are multiplied by the factor: <num_fanins> ^ (%.2f).\n", DelayMulti ); + Mio_LibraryMultiDelay( Abc_FrameReadLibGen(), -DelayMulti ); // print a warning about choice nodes if ( Abc_NtkGetChoiceNum( pNtk ) ) diff --git a/src/sat/cnf/cnfCore.c b/src/sat/cnf/cnfCore.c index b32d0c7a..9a845007 100644 --- a/src/sat/cnf/cnfCore.c +++ b/src/sat/cnf/cnfCore.c @@ -47,7 +47,7 @@ void Cnf_ManPrepare() { if ( s_pManCnf == NULL ) { - printf( "\n\nCreating CNF manager!!!!!\n\n" ); +// printf( "\n\nCreating CNF manager!!!!!\n\n" ); s_pManCnf = Cnf_ManStart(); } } |