diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-07-22 23:11:04 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-07-22 23:11:04 -0700 |
commit | 038f2964531fc3e1e59ad3d98eebf8722edbef72 (patch) | |
tree | cbd0a56f51cfbe963bd7f171013ffadd64da9dc0 | |
parent | 054caacb3c196efb1a76ce6aa1b9eb894e3eef53 (diff) | |
download | abc-038f2964531fc3e1e59ad3d98eebf8722edbef72.tar.gz abc-038f2964531fc3e1e59ad3d98eebf8722edbef72.tar.bz2 abc-038f2964531fc3e1e59ad3d98eebf8722edbef72.zip |
Bug fix and warning print.
-rw-r--r-- | src/base/abci/abcMap.c | 44 | ||||
-rw-r--r-- | src/map/scl/scl.c | 1 | ||||
-rw-r--r-- | src/map/scl/sclUtil.c | 6 |
3 files changed, 47 insertions, 4 deletions
diff --git a/src/base/abci/abcMap.c b/src/base/abci/abcMap.c index 8ceb463e..9a97b35f 100644 --- a/src/base/abci/abcMap.c +++ b/src/base/abci/abcMap.c @@ -167,6 +167,46 @@ ABC_PRT( "Total runtime", Abc_Clock() - clkTotal ); SeeAlso [] ***********************************************************************/ +Map_Time_t * Abc_NtkMapCopyCiArrival( Abc_Ntk_t * pNtk, Abc_Time_t * ppTimes ) +{ + Map_Time_t * p; + int i; + p = ABC_CALLOC( Map_Time_t, Abc_NtkCiNum(pNtk) ); + for ( i = 0; i < Abc_NtkCiNum(pNtk); i++ ) + { + p->Fall = ppTimes[i].Fall; + p->Rise = ppTimes[i].Rise; + p->Worst = Abc_MaxFloat( p->Fall, p->Rise ); + } + ABC_FREE( ppTimes ); + return p; +} +Map_Time_t * Abc_NtkMapCopyCoRequired( Abc_Ntk_t * pNtk, Abc_Time_t * ppTimes ) +{ + Map_Time_t * p; + int i; + p = ABC_CALLOC( Map_Time_t, Abc_NtkCoNum(pNtk) ); + for ( i = 0; i < Abc_NtkCoNum(pNtk); i++ ) + { + p->Fall = ppTimes[i].Fall; + p->Rise = ppTimes[i].Rise; + p->Worst = Abc_MaxFloat( p->Fall, p->Rise ); + } + ABC_FREE( ppTimes ); + return p; +} + +/**Function************************************************************* + + Synopsis [Load the network into manager.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ Map_Man_t * Abc_NtkToMap( Abc_Ntk_t * pNtk, double DelayTarget, int fRecovery, float * pSwitching, int fVerbose ) { Map_Man_t * pMan; @@ -185,8 +225,8 @@ Map_Man_t * Abc_NtkToMap( Abc_Ntk_t * pNtk, double DelayTarget, int fRecovery, f Map_ManSetAreaRecovery( pMan, fRecovery ); Map_ManSetOutputNames( pMan, Abc_NtkCollectCioNames(pNtk, 1) ); Map_ManSetDelayTarget( pMan, (float)DelayTarget ); - Map_ManSetInputArrivals( pMan, (Map_Time_t *)Abc_NtkGetCiArrivalTimes(pNtk) ); - Map_ManSetOutputRequireds( pMan, (Map_Time_t *)Abc_NtkGetCoRequiredTimes(pNtk) ); + Map_ManSetInputArrivals( pMan, Abc_NtkMapCopyCiArrival(pNtk, Abc_NtkGetCiArrivalTimes(pNtk)) ); + Map_ManSetOutputRequireds( pMan, Abc_NtkMapCopyCoRequired(pNtk, Abc_NtkGetCoRequiredTimes(pNtk)) ); // create PIs and remember them in the old nodes Abc_NtkCleanCopy( pNtk ); diff --git a/src/map/scl/scl.c b/src/map/scl/scl.c index 16923f8e..cd0d3154 100644 --- a/src/map/scl/scl.c +++ b/src/map/scl/scl.c @@ -992,7 +992,6 @@ usage: ***********************************************************************/ int Scl_CommandDumpGen( Abc_Frame_t * pAbc, int argc, char **argv ) { - Abc_Ntk_t * pNtk = Abc_FrameReadNtk(pAbc); char * pFileName; float Slew = 100; float Gain = 2; diff --git a/src/map/scl/sclUtil.c b/src/map/scl/sclUtil.c index 4da1dd03..a28ef0cd 100644 --- a/src/map/scl/sclUtil.c +++ b/src/map/scl/sclUtil.c @@ -63,15 +63,19 @@ Vec_Int_t * Abc_SclManFindGates( SC_Lib * pLib, Abc_Ntk_t * p ) void Abc_SclManSetGates( SC_Lib * pLib, Abc_Ntk_t * p, Vec_Int_t * vGates ) { Abc_Obj_t * pObj; - int i; + int i, Counter = 0, CounterAll = 0; Abc_NtkForEachNode1( p, pObj, i ) { SC_Cell * pCell = SC_LibCell( pLib, Vec_IntEntry(vGates, Abc_ObjId(pObj)) ); assert( pCell->n_inputs == Abc_ObjFaninNum(pObj) ); pObj->pData = Mio_LibraryReadGateByName( (Mio_Library_t *)p->pManFunc, pCell->pName, NULL ); + Counter += (pObj->pData == NULL); assert( pObj->fMarkA == 0 && pObj->fMarkB == 0 ); + CounterAll++; //printf( "Found gate %s\n", pCell->name ); } + if ( Counter ) + printf( "Could not find %d (out of %d) gates in the current library.\n", Counter, CounterAll ); } /**Function************************************************************* |