Commit a06234e8 by Alan Mishchenko

New technology mapper.

parent dd29ca30
...@@ -76,10 +76,12 @@ Gia_Man_t * Mpm_ManPerformTest( Mig_Man_t * pMig, Mpm_Par_t * pPars ) ...@@ -76,10 +76,12 @@ Gia_Man_t * Mpm_ManPerformTest( Mig_Man_t * pMig, Mpm_Par_t * pPars )
Gia_Man_t * pNew; Gia_Man_t * pNew;
Mpm_Man_t * p; Mpm_Man_t * p;
p = Mpm_ManStart( pMig, pPars ); p = Mpm_ManStart( pMig, pPars );
Mpm_ManPrintStatsInit( p ); if ( p->pPars->fVerbose )
Mpm_ManPrintStatsInit( p );
Mpm_ManPrepare( p ); Mpm_ManPrepare( p );
Mpm_ManPerform( p ); Mpm_ManPerform( p );
Mpm_ManPrintStats( p ); if ( p->pPars->fVerbose )
Mpm_ManPrintStats( p );
pNew = (Gia_Man_t *)Mpm_ManFromIfLogic( p ); pNew = (Gia_Man_t *)Mpm_ManFromIfLogic( p );
Mpm_ManStop( p ); Mpm_ManStop( p );
return pNew; return pNew;
......
...@@ -113,7 +113,7 @@ Mpm_Man_t * Mpm_ManStart( Mig_Man_t * pMig, Mpm_Par_t * pPars ) ...@@ -113,7 +113,7 @@ Mpm_Man_t * Mpm_ManStart( Mig_Man_t * pMig, Mpm_Par_t * pPars )
***********************************************************************/ ***********************************************************************/
void Mpm_ManStop( Mpm_Man_t * p ) void Mpm_ManStop( Mpm_Man_t * p )
{ {
if ( p->pPars->fUseTruth ) if ( p->pPars->fUseTruth && p->pPars->fVeryVerbose )
{ {
char * pFileName = "truths.txt"; char * pFileName = "truths.txt";
FILE * pFile = fopen( pFileName, "wb" ); FILE * pFile = fopen( pFileName, "wb" );
...@@ -123,7 +123,7 @@ void Mpm_ManStop( Mpm_Man_t * p ) ...@@ -123,7 +123,7 @@ void Mpm_ManStop( Mpm_Man_t * p )
Vec_MemEntryNum(p->vTtMem), p->nLutSize, pFileName, Vec_MemEntryNum(p->vTtMem), p->nLutSize, pFileName,
(16.0 * p->nTruWords + 1.0) * Vec_MemEntryNum(p->vTtMem) / (1 << 20) ); (16.0 * p->nTruWords + 1.0) * Vec_MemEntryNum(p->vTtMem) / (1 << 20) );
} }
if ( p->pPars->fUseDsd ) if ( p->pPars->fUseDsd && p->pPars->fVerbose )
Mpm_ManPrintDsdStats( p ); Mpm_ManPrintDsdStats( p );
if ( p->vTtMem ) if ( p->vTtMem )
{ {
......
...@@ -808,11 +808,15 @@ void Mpm_ManPerformRound( Mpm_Man_t * p ) ...@@ -808,11 +808,15 @@ void Mpm_ManPerformRound( Mpm_Man_t * p )
Mpm_ManDeriveCuts( p, pObj ); Mpm_ManDeriveCuts( p, pObj );
assert( Mig_ManCandNum(p->pMig) == p->pManCuts->nEntries ); assert( Mig_ManCandNum(p->pMig) == p->pManCuts->nEntries );
Mpm_ManFinalizeRound( p ); Mpm_ManFinalizeRound( p );
// report results
if ( p->pPars->fVerbose )
{
printf( "Del =%5d. Ar =%8d. Edge =%8d. Cut =%10d. Max =%8d. Tru =%8d. Small =%6d. ", printf( "Del =%5d. Ar =%8d. Edge =%8d. Cut =%10d. Max =%8d. Tru =%8d. Small =%6d. ",
p->GloRequired, p->GloArea, p->GloEdge, p->GloRequired, p->GloArea, p->GloEdge,
p->nCutsMerged, p->pManCuts->nEntriesMax, p->nCutsMerged, p->pManCuts->nEntriesMax,
p->vTtMem ? p->vTtMem->nEntries : 0, p->nSmallSupp ); p->vTtMem ? p->vTtMem->nEntries : 0, p->nSmallSupp );
Abc_PrintTime( 1, "Time", Abc_Clock() - clk ); Abc_PrintTime( 1, "Time", Abc_Clock() - clk );
}
} }
void Mpm_ManPerform( Mpm_Man_t * p ) void Mpm_ManPerform( Mpm_Man_t * p )
{ {
......
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