diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-09-19 20:21:27 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-09-19 20:21:27 -0700 |
commit | 723f85ef1b4ad35bc7708f7b8208dafe0406078c (patch) | |
tree | b9aa1461ec4ddbe53ee7b1ac45518e8659fe8ebf /src | |
parent | 5dc50744f0604173293be81f013834db59ea0142 (diff) | |
download | abc-723f85ef1b4ad35bc7708f7b8208dafe0406078c.tar.gz abc-723f85ef1b4ad35bc7708f7b8208dafe0406078c.tar.bz2 abc-723f85ef1b4ad35bc7708f7b8208dafe0406078c.zip |
Extending Liberty parser to handle multi-output cells.
Diffstat (limited to 'src')
-rw-r--r-- | src/base/ver/verCore.c | 2 | ||||
-rw-r--r-- | src/map/amap/amapLiberty.c | 2 | ||||
-rw-r--r-- | src/map/mio/mioParse.c | 8 | ||||
-rw-r--r-- | src/map/mio/mioRead.c | 4 |
4 files changed, 8 insertions, 8 deletions
diff --git a/src/base/ver/verCore.c b/src/base/ver/verCore.c index 47d30b5a..d9af5401 100644 --- a/src/base/ver/verCore.c +++ b/src/base/ver/verCore.c @@ -2372,7 +2372,7 @@ void Ver_ParseReportUndefBoxes( Ver_Man_t * pMan ) if ( pBox->pData && !Ver_NtkIsDefined((Abc_Ntk_t *)pBox->pData) ) ((Abc_Ntk_t *)pBox->pData)->fHiePath++; // print the stats - printf( "Warning: The design contains %d undefined objects interpreted as blackboxes:\n", nBoxes ); + printf( "Warning: The design contains %d undefined object types interpreted as blackboxes:\n", nBoxes ); Vec_PtrForEachEntry( Abc_Ntk_t *, pMan->pDesign->vModules, pNtk, i ) if ( !Ver_NtkIsDefined(pNtk) ) printf( "%s (%d) ", Abc_NtkName(pNtk), pNtk->fHiePath ); diff --git a/src/map/amap/amapLiberty.c b/src/map/amap/amapLiberty.c index e961b68c..b8232024 100644 --- a/src/map/amap/amapLiberty.c +++ b/src/map/amap/amapLiberty.c @@ -454,7 +454,7 @@ int Amap_LibertyPrintGenlib( Amap_Tree_t * p, char * pFileName, int fVerbose ) fprintf( pFile, "%s=", Amap_LibertyGetString(p, pOutput->Head) ); fprintf( pFile, "%s;\n", Amap_LibertyGetStringFormula(p, pFunc->Head) ); Amap_ItemForEachChild( p, pCell, pPin ) - if ( pPin != pOutput && !Amap_LibertyCompare(p, pPin->Key, "pin") ) + if ( Vec_PtrFind(vOutputs, pPin) == -1 && !Amap_LibertyCompare(p, pPin->Key, "pin") ) fprintf( pFile, " PIN %13s UNKNOWN 1 999 1.00 0.00 1.00 0.00\n", Amap_LibertyGetString(p, pPin->Head) ); } Vec_PtrFree( vOutputs ); diff --git a/src/map/mio/mioParse.c b/src/map/mio/mioParse.c index a3dfa435..21348498 100644 --- a/src/map/mio/mioParse.c +++ b/src/map/mio/mioParse.c @@ -410,7 +410,7 @@ int Mio_ParseCheckFormula( Mio_Gate_t * pGate, char * pForm ) Mio_Pin_t * pPin; char * pStr; int i, iPin, fVisit[32] = {0}; - if ( Mio_GateReadPins(pGate) == NULL ) + if ( Mio_GateReadPins(pGate) == NULL || !strcmp(Mio_PinReadName(Mio_GateReadPins(pGate)), "*") ) return 1; /* // find the equality sign @@ -421,9 +421,9 @@ int Mio_ParseCheckFormula( Mio_Gate_t * pGate, char * pForm ) return 0; } */ -printf( "Checking gate %s\n", pGate->pName ); +//printf( "Checking gate %s\n", pGate->pName ); - for ( pStr = pForm + 1; *pStr; pStr++ ) + for ( pStr = pForm; *pStr; pStr++ ) { if ( *pStr == ' ' || *pStr == MIO_EQN_SYM_OPEN || @@ -443,7 +443,7 @@ printf( "Checking gate %s\n", pGate->pName ); iPin = Mio_ParseCheckName( pGate, &pStr ); if ( iPin == -1 ) { - printf( "Skipping gate \"%s\" because substring \"%s\" does not match with a pin name.\n", pGate->pName, *pStr ); + printf( "Skipping gate \"%s\" because substring \"%s\" does not match with a pin name.\n", pGate->pName, pStr ); return 0; } assert( iPin < 32 ); diff --git a/src/map/mio/mioRead.c b/src/map/mio/mioRead.c index 2d1a747f..9a46ac8a 100644 --- a/src/map/mio/mioRead.c +++ b/src/map/mio/mioRead.c @@ -209,14 +209,14 @@ int Mio_LibraryReadInternal( Mio_Library_t * pLib, char * pBuffer, int fExtended pGate = Mio_LibraryReadGate( &pToken, fExtendedFormat ); if ( pGate == NULL ) return 1; -/* + // skip the gate if its formula has problems if ( !Mio_ParseCheckFormula(pGate, pGate->pForm) ) { Mio_GateDelete( pGate ); continue; } -*/ + // set the library pGate->pLib = pLib; |