summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2015-09-23 18:44:07 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2015-09-23 18:44:07 -0700
commitf1bc34689459b984f4b2bbb269a098d7016d7e99 (patch)
treead537385630027a5b3ff1f621894965848349edf
parenta84c8174e73882f0cdd6433ca27b8222e87dbaa2 (diff)
downloadabc-f1bc34689459b984f4b2bbb269a098d7016d7e99.tar.gz
abc-f1bc34689459b984f4b2bbb269a098d7016d7e99.tar.bz2
abc-f1bc34689459b984f4b2bbb269a098d7016d7e99.zip
Several bug-fixed related to synthesis, library handling, and timimg info.
-rw-r--r--src/base/abc/abcDfs.c2
-rw-r--r--src/base/abci/abcRefactor.c2
-rw-r--r--src/map/mio/mioFunc.c6
3 files changed, 7 insertions, 3 deletions
diff --git a/src/base/abc/abcDfs.c b/src/base/abc/abcDfs.c
index e1b042b8..731d35f5 100644
--- a/src/base/abc/abcDfs.c
+++ b/src/base/abc/abcDfs.c
@@ -1456,7 +1456,7 @@ int Abc_NtkLevel( Abc_Ntk_t * pNtk )
pNode->Level = 0;
else
Abc_NtkForEachCi( pNtk, pNode, i )
- pNode->Level = (int)(Abc_NodeReadArrivalWorst(pNode) / pNtk->AndGateDelay);
+ pNode->Level = (int)(Abc_MaxFloat(0, Abc_NodeReadArrivalWorst(pNode)) / pNtk->AndGateDelay);
// perform the traversal
LevelsMax = 0;
Abc_NtkIncrementTravId( pNtk );
diff --git a/src/base/abci/abcRefactor.c b/src/base/abci/abcRefactor.c
index 4d0836f1..3cc6d793 100644
--- a/src/base/abci/abcRefactor.c
+++ b/src/base/abci/abcRefactor.c
@@ -169,6 +169,8 @@ Dec_Graph_t * Abc_NodeRefactor( Abc_ManRef_t * p, Abc_Obj_t * pNode, Vec_Ptr_t *
clk = Abc_Clock();
pTruth = Abc_NodeConeTruth( p->vVars, p->vFuncs, nWordsMax, pNode, vFanins, p->vVisited );
p->timeTru += Abc_Clock() - clk;
+ if ( pTruth == NULL )
+ return NULL;
// always accept the case of constant node
if ( Abc_NodeConeIsConst0(pTruth, nVars) || Abc_NodeConeIsConst1(pTruth, nVars) )
diff --git a/src/map/mio/mioFunc.c b/src/map/mio/mioFunc.c
index 59df45f5..536f5496 100644
--- a/src/map/mio/mioFunc.c
+++ b/src/map/mio/mioFunc.c
@@ -75,12 +75,13 @@ char * Mio_SopRegister( Mem_Flex_t * pMan, char * pName )
***********************************************************************/
int Mio_GateCollectNames( char * pFormula, char * pPinNames[] )
{
- char Buffer[1000];
+ char * Buffer;
char * pTemp;
int nPins, i;
// save the formula as it was
- strcpy( Buffer, pFormula );
+ //strcpy( Buffer, pFormula );
+ Buffer = Abc_UtilStrsav( pFormula );
// remove the non-name symbols
for ( pTemp = Buffer; *pTemp; pTemp++ )
@@ -106,6 +107,7 @@ int Mio_GateCollectNames( char * pFormula, char * pPinNames[] )
// get the next name
pTemp = strtok( NULL, " " );
}
+ ABC_FREE( Buffer );
return nPins;
}