summaryrefslogtreecommitdiffstats
path: root/src/base/abci/abc.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-07-18 13:03:01 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-07-18 13:03:01 -0700
commita35599960b1fc7ba3a94c0ac562ec0ad217230a2 (patch)
tree8b374b398f2d29d59f8e78d20558117b3b98fb8b /src/base/abci/abc.c
parent4decece2c73d826c49c5bbca3df3364da94357bc (diff)
downloadabc-a35599960b1fc7ba3a94c0ac562ec0ad217230a2.tar.gz
abc-a35599960b1fc7ba3a94c0ac562ec0ad217230a2.tar.bz2
abc-a35599960b1fc7ba3a94c0ac562ec0ad217230a2.zip
New technology mapper.
Diffstat (limited to 'src/base/abci/abc.c')
-rw-r--r--src/base/abci/abc.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c
index 6fc53c34..548745dd 100644
--- a/src/base/abci/abc.c
+++ b/src/base/abci/abc.c
@@ -29555,8 +29555,6 @@ int Abc_CommandAbc9If2( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print( -1, "LUT size %d is not supported.\n", nLutSize );
goto usage;
}
- assert( pPars->pLib == NULL );
- pPars->pLib = Mpm_LibLutSetSimple( nLutSize );
break;
case 'C':
if ( globalUtilOptind >= argc )
@@ -29612,8 +29610,6 @@ int Abc_CommandAbc9If2( Abc_Frame_t * pAbc, int argc, char ** argv )
goto usage;
}
}
- if ( pPars->pLib == NULL )
- pPars->pLib = Mpm_LibLutSetSimple( nLutSize );
if ( pPars->fMap4Cnf )
pPars->fUseDsd = 1;
if ( pPars->fCutMin )
@@ -29631,7 +29627,13 @@ int Abc_CommandAbc9If2( Abc_Frame_t * pAbc, int argc, char ** argv )
}
if ( pPars->fUseDsd || pPars->fUseTruth )
pPars->fDeriveLuts = 1;
+ if ( pPars->fUseDsd && nLutSize != 6 )
+ {
+ Abc_Print( -1, "Currently DSD can only be used with 6-input cuts.\n" );
+ return 1;
+ }
// perform mapping
+ assert( pPars->pLib == NULL );
if ( pPars->fMap4Gates )
{
if ( Abc_FrameReadLibGen() == NULL )
@@ -29639,6 +29641,7 @@ int Abc_CommandAbc9If2( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print( -1, "There is no GENLIB library available.\n" );
return 1;
}
+ pPars->pLib = Mpm_LibLutSetSimple( nLutSize );
pTemp = Mpm_ManCellMapping( pAbc->pGia, pPars, Abc_FrameReadLibGen() );
Mpm_LibLutFree( pPars->pLib );
if ( pTemp == NULL )
@@ -29650,6 +29653,7 @@ int Abc_CommandAbc9If2( Abc_Frame_t * pAbc, int argc, char ** argv )
}
else
{
+ pPars->pLib = Mpm_LibLutSetSimple( nLutSize );
pNew = Mpm_ManLutMapping( pAbc->pGia, pPars );
Mpm_LibLutFree( pPars->pLib );
if ( pNew == NULL )