Commit 805eb96d by Alan Mishchenko

Integrating synthesis into the new BMC engine.

parent cfa7be1a
...@@ -713,7 +713,7 @@ word If_Dec5Perform( word t, int fDerive ) ...@@ -713,7 +713,7 @@ word If_Dec5Perform( word t, int fDerive )
{ {
int Pla2Var[7], Var2Pla[7]; int Pla2Var[7], Var2Pla[7];
int i, j, v; int i, j, v;
word t0 = t; // word t0 = t;
word c0, c1, c00, c01, c10, c11; word c0, c1, c00, c01, c10, c11;
for ( i = 0; i < 5; i++ ) for ( i = 0; i < 5; i++ )
{ {
......
...@@ -429,7 +429,7 @@ void Mio_ParseFormulaTruthTest( char * pFormInit, char ** ppVarNames, int nVars ...@@ -429,7 +429,7 @@ void Mio_ParseFormulaTruthTest( char * pFormInit, char ** ppVarNames, int nVars
int Mio_ParseCheckName( Mio_Gate_t * pGate, char ** ppStr ) int Mio_ParseCheckName( Mio_Gate_t * pGate, char ** ppStr )
{ {
Mio_Pin_t * pPin; Mio_Pin_t * pPin;
int i, iBest; int i, iBest = -1;
// find the longest pin name that matches substring // find the longest pin name that matches substring
char * pNameBest = NULL; char * pNameBest = NULL;
for ( pPin = Mio_GateReadPins(pGate), i = 0; pPin; pPin = Mio_PinReadNext(pPin), i++ ) for ( pPin = Mio_GateReadPins(pGate), i = 0; pPin; pPin = Mio_PinReadNext(pPin), i++ )
...@@ -437,9 +437,8 @@ int Mio_ParseCheckName( Mio_Gate_t * pGate, char ** ppStr ) ...@@ -437,9 +437,8 @@ int Mio_ParseCheckName( Mio_Gate_t * pGate, char ** ppStr )
if ( pNameBest == NULL || strlen(pNameBest) < strlen(Mio_PinReadName(pPin)) ) if ( pNameBest == NULL || strlen(pNameBest) < strlen(Mio_PinReadName(pPin)) )
pNameBest = Mio_PinReadName(pPin), iBest = i; pNameBest = Mio_PinReadName(pPin), iBest = i;
// if pin is not found, return -1 // if pin is not found, return -1
if ( pNameBest == NULL ) if ( pNameBest )
return -1; *ppStr += strlen(pNameBest) - 1;
*ppStr += strlen(pNameBest) - 1;
return iBest; return iBest;
} }
int Mio_ParseCheckFormula( Mio_Gate_t * pGate, char * pForm ) int Mio_ParseCheckFormula( Mio_Gate_t * pGate, char * pForm )
......
...@@ -775,12 +775,6 @@ int Gia_ManBmcPerform( Gia_Man_t * pGia, Bmc_AndPar_t * pPars ) ...@@ -775,12 +775,6 @@ int Gia_ManBmcPerform( Gia_Man_t * pGia, Bmc_AndPar_t * pPars )
abctime clk = Abc_Clock(); abctime clk = Abc_Clock();
p = Bmc_MnaAlloc(); p = Bmc_MnaAlloc();
p->pFrames = Gia_ManBmcUnroll( pGia, pPars->nFramesMax, pPars->nFramesAdd, pPars->fVeryVerbose, &p->vPiMap ); p->pFrames = Gia_ManBmcUnroll( pGia, pPars->nFramesMax, pPars->nFramesAdd, pPars->fVeryVerbose, &p->vPiMap );
if ( pPars->fUseSynth )
{
Gia_Man_t * pTemp = p->pFrames;
p->pFrames = Dam_ManAigSyn( pTemp, pPars->fVerbose, 0 );
Gia_ManStop( pTemp );
}
nFramesMax = Gia_ManPoNum(p->pFrames) / Gia_ManPoNum(pGia); nFramesMax = Gia_ManPoNum(p->pFrames) / Gia_ManPoNum(pGia);
if ( pPars->fVerbose ) if ( pPars->fVerbose )
{ {
...@@ -789,6 +783,14 @@ int Gia_ManBmcPerform( Gia_Man_t * pGia, Bmc_AndPar_t * pPars ) ...@@ -789,6 +783,14 @@ int Gia_ManBmcPerform( Gia_Man_t * pGia, Bmc_AndPar_t * pPars )
} }
if ( pPars->fVerbose ) if ( pPars->fVerbose )
Gia_ManPrintStats( p->pFrames, NULL ); Gia_ManPrintStats( p->pFrames, NULL );
if ( pPars->fUseSynth )
{
Gia_Man_t * pTemp = p->pFrames;
p->pFrames = Dam_ManAigSyn( pTemp, pPars->fVerbose, 0 );
Gia_ManStop( pTemp );
if ( pPars->fVerbose )
Gia_ManPrintStats( p->pFrames, NULL );
}
if ( pPars->fDumpFrames ) if ( pPars->fDumpFrames )
{ {
Gia_AigerWrite( p->pFrames, "frames.aig", 0, 0 ); Gia_AigerWrite( p->pFrames, "frames.aig", 0, 0 );
......
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