Commit 37b6b5f1 by Alan Mishchenko

Making sure 0-input LUTs are supported by the DSD matching code.

parent a39ef307
...@@ -642,7 +642,7 @@ int Abc_NtkCheckRecursive( Abc_Ntk_t * pNtk ) ...@@ -642,7 +642,7 @@ int Abc_NtkCheckRecursive( Abc_Ntk_t * pNtk )
Abc_NtkForEachObj( pModel, pObj, k ) Abc_NtkForEachObj( pModel, pObj, k )
if ( Abc_ObjIsBox(pObj) && pObj->pData == (void *)pModel ) if ( Abc_ObjIsBox(pObj) && pObj->pData == (void *)pModel )
{ {
printf( "WARNING: Model \"%s\" contains a recursive defition.\n", Abc_NtkName(pModel) ); printf( "WARNING: Model \"%s\" contains a recursive definition.\n", Abc_NtkName(pModel) );
RetValue = 1; RetValue = 1;
break; break;
} }
......
...@@ -676,7 +676,7 @@ int Au_NtkCheckRecursive( Au_Ntk_t * pNtk ) ...@@ -676,7 +676,7 @@ int Au_NtkCheckRecursive( Au_Ntk_t * pNtk )
Au_NtkForEachObj( pModel, pObj, k ) Au_NtkForEachObj( pModel, pObj, k )
if ( Au_ObjIsBox(pObj) && Au_ObjModel(pObj) == pModel ) if ( Au_ObjIsBox(pObj) && Au_ObjModel(pObj) == pModel )
{ {
printf( "WARNING: Model \"%s\" contains a recursive defition.\n", Au_NtkName(pModel) ); printf( "WARNING: Model \"%s\" contains a recursive definition.\n", Au_NtkName(pModel) );
RetValue = 1; RetValue = 1;
break; break;
} }
......
...@@ -400,15 +400,15 @@ int Ifn_NtkParseInt2( char * pStr, Ifn_Ntk_t * p ) ...@@ -400,15 +400,15 @@ int Ifn_NtkParseInt2( char * pStr, Ifn_Ntk_t * p )
else if ( pStr[k+2] == '{' ) else if ( pStr[k+2] == '{' )
p->Nodes[i].Type = IFN_DSD_PRIME, Next = '}'; p->Nodes[i].Type = IFN_DSD_PRIME, Next = '}';
else else
return Ifn_ErrorMessage( "Cannot find openning operation symbol in the defition of of signal \'%c\'.\n", 'a' + i ); return Ifn_ErrorMessage( "Cannot find openning operation symbol in the definition of signal \'%c\'.\n", 'a' + i );
for ( n = k + 3; pStr[n]; n++ ) for ( n = k + 3; pStr[n]; n++ )
if ( pStr[n] == Next ) if ( pStr[n] == Next )
break; break;
if ( pStr[n] == 0 ) if ( pStr[n] == 0 )
return Ifn_ErrorMessage( "Cannot find closing operation symbol in the defition of of signal \'%c\'.\n", 'a' + i ); return Ifn_ErrorMessage( "Cannot find closing operation symbol in the definition of signal \'%c\'.\n", 'a' + i );
nFans = n - k - 3; nFans = n - k - 3;
if ( nFans < 1 || nFans > 8 ) if ( nFans > 8 )
return Ifn_ErrorMessage( "Cannot find matching operation symbol in the defition of of signal \'%c\'.\n", 'a' + i ); return Ifn_ErrorMessage( "Cannot find matching operation symbol in the definition of signal \'%c\'.\n", 'a' + i );
for ( f = 0; f < nFans; f++ ) for ( f = 0; f < nFans; f++ )
{ {
iFan = pStr[k + 3 + f] - 'a'; iFan = pStr[k + 3 + f] - 'a';
...@@ -524,7 +524,7 @@ Gia_Man_t * Ifn_ManStrFindModel( Ifn_Ntk_t * p ) ...@@ -524,7 +524,7 @@ Gia_Man_t * Ifn_ManStrFindModel( Ifn_Ntk_t * p )
{ {
int n, Step, pVarsData[256]; int n, Step, pVarsData[256];
int nMints = (1 << nFans); int nMints = (1 << nFans);
assert( nFans >= 1 && nFans <= 8 ); assert( nFans >= 0 && nFans <= 8 );
for ( k = 0; k < nMints; k++ ) for ( k = 0; k < nMints; k++ )
pVarsData[k] = pVarMap[iFanin + k]; pVarsData[k] = pVarMap[iFanin + k];
for ( Step = 1, k = 0; k < nFans; k++, Step <<= 1 ) for ( Step = 1, k = 0; k < nFans; k++, Step <<= 1 )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment