Commit bcbc91c4 by Yen-Sheng Ho

merge

parents 70511b00 5fbe218f
...@@ -4659,6 +4659,10 @@ SOURCE=.\src\aig\gia\giaRex.c ...@@ -4659,6 +4659,10 @@ SOURCE=.\src\aig\gia\giaRex.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\src\aig\gia\giaSat3.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSatEdge.c SOURCE=.\src\aig\gia\giaSatEdge.c
# End Source File # End Source File
# Begin Source File # Begin Source File
...@@ -5399,6 +5403,10 @@ SOURCE=.\src\proof\pdr\pdrTsim2.c ...@@ -5399,6 +5403,10 @@ SOURCE=.\src\proof\pdr\pdrTsim2.c
# End Source File # End Source File
# Begin Source File # Begin Source File
SOURCE=.\src\proof\pdr\pdrTsim3.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrUtil.c SOURCE=.\src\proof\pdr\pdrUtil.c
# End Source File # End Source File
# End Group # End Group
......
...@@ -6,4 +6,5 @@ SRC += src/proof/pdr/pdrCnf.c \ ...@@ -6,4 +6,5 @@ SRC += src/proof/pdr/pdrCnf.c \
src/proof/pdr/pdrSat.c \ src/proof/pdr/pdrSat.c \
src/proof/pdr/pdrTsim.c \ src/proof/pdr/pdrTsim.c \
src/proof/pdr/pdrTsim2.c \ src/proof/pdr/pdrTsim2.c \
src/proof/pdr/pdrTsim3.c \
src/proof/pdr/pdrUtil.c src/proof/pdr/pdrUtil.c
...@@ -44,6 +44,7 @@ ABC_NAMESPACE_HEADER_START ...@@ -44,6 +44,7 @@ ABC_NAMESPACE_HEADER_START
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
typedef struct Txs_Man_t_ Txs_Man_t; typedef struct Txs_Man_t_ Txs_Man_t;
typedef struct Txs3_Man_t_ Txs3_Man_t;
typedef struct Pdr_Set_t_ Pdr_Set_t; typedef struct Pdr_Set_t_ Pdr_Set_t;
struct Pdr_Set_t_ struct Pdr_Set_t_
...@@ -99,7 +100,7 @@ struct Pdr_Man_t_ ...@@ -99,7 +100,7 @@ struct Pdr_Man_t_
int nCexes; int nCexes;
int nCexesTotal; int nCexesTotal;
// terminary simulation // terminary simulation
Txs_Man_t * pTxs; Txs3_Man_t * pTxs3;
// internal use // internal use
Vec_Int_t * vPrio; // priority flops Vec_Int_t * vPrio; // priority flops
Vec_Int_t * vLits; // array of literals Vec_Int_t * vLits; // array of literals
...@@ -206,6 +207,10 @@ extern Pdr_Set_t * Pdr_ManTernarySim( Pdr_Man_t * p, int k, Pdr_Set_t * pCub ...@@ -206,6 +207,10 @@ extern Pdr_Set_t * Pdr_ManTernarySim( Pdr_Man_t * p, int k, Pdr_Set_t * pCub
extern Txs_Man_t * Txs_ManStart( Pdr_Man_t * pMan, Aig_Man_t * pAig, Vec_Int_t * vPrio ); extern Txs_Man_t * Txs_ManStart( Pdr_Man_t * pMan, Aig_Man_t * pAig, Vec_Int_t * vPrio );
extern void Txs_ManStop( Txs_Man_t * ); extern void Txs_ManStop( Txs_Man_t * );
extern Pdr_Set_t * Txs_ManTernarySim( Txs_Man_t * p, int k, Pdr_Set_t * pCube ); extern Pdr_Set_t * Txs_ManTernarySim( Txs_Man_t * p, int k, Pdr_Set_t * pCube );
/*=== pdrTsim3.c ==========================================================*/
extern Txs3_Man_t * Txs3_ManStart( Pdr_Man_t * pMan, Aig_Man_t * pAig, Vec_Int_t * vPrio );
extern void Txs3_ManStop( Txs3_Man_t * );
extern Pdr_Set_t * Txs3_ManTernarySim( Txs3_Man_t * p, int k, Pdr_Set_t * pCube );
/*=== pdrUtil.c ==========================================================*/ /*=== pdrUtil.c ==========================================================*/
extern Pdr_Set_t * Pdr_SetAlloc( int nSize ); extern Pdr_Set_t * Pdr_SetAlloc( int nSize );
extern Pdr_Set_t * Pdr_SetCreate( Vec_Int_t * vLits, Vec_Int_t * vPiLits ); extern Pdr_Set_t * Pdr_SetCreate( Vec_Int_t * vLits, Vec_Int_t * vPiLits );
......
...@@ -265,8 +265,8 @@ Pdr_Man_t * Pdr_ManStart( Aig_Man_t * pAig, Pdr_Par_t * pPars, Vec_Int_t * vPrio ...@@ -265,8 +265,8 @@ Pdr_Man_t * Pdr_ManStart( Aig_Man_t * pAig, Pdr_Par_t * pPars, Vec_Int_t * vPrio
p->vPrio = vPrioInit; p->vPrio = vPrioInit;
else if ( pPars->fFlopPrio ) else if ( pPars->fFlopPrio )
p->vPrio = Pdr_ManDeriveFlopPriorities2(p->pGia, 1); p->vPrio = Pdr_ManDeriveFlopPriorities2(p->pGia, 1);
else if ( p->pPars->fNewXSim ) // else if ( p->pPars->fNewXSim )
p->vPrio = Vec_IntStartNatural( Aig_ManRegNum(pAig) ); // p->vPrio = Vec_IntStartNatural( Aig_ManRegNum(pAig) );
else else
p->vPrio = Vec_IntStart( Aig_ManRegNum(pAig) ); p->vPrio = Vec_IntStart( Aig_ManRegNum(pAig) );
p->vLits = Vec_IntAlloc( 100 ); // array of literals p->vLits = Vec_IntAlloc( 100 ); // array of literals
...@@ -281,7 +281,7 @@ Pdr_Man_t * Pdr_ManStart( Aig_Man_t * pAig, Pdr_Par_t * pPars, Vec_Int_t * vPrio ...@@ -281,7 +281,7 @@ Pdr_Man_t * Pdr_ManStart( Aig_Man_t * pAig, Pdr_Par_t * pPars, Vec_Int_t * vPrio
p->vRes = Vec_IntAlloc( 100 ); // final result p->vRes = Vec_IntAlloc( 100 ); // final result
p->pCnfMan = Cnf_ManStart(); p->pCnfMan = Cnf_ManStart();
// ternary simulation // ternary simulation
p->pTxs = pPars->fNewXSim ? Txs_ManStart( p, pAig, p->vPrio ) : NULL; p->pTxs3 = pPars->fNewXSim ? Txs3_ManStart( p, pAig, p->vPrio ) : NULL;
// additional AIG data-members // additional AIG data-members
if ( pAig->pFanData == NULL ) if ( pAig->pFanData == NULL )
Aig_ManFanoutStart( pAig ); Aig_ManFanoutStart( pAig );
...@@ -369,7 +369,7 @@ void Pdr_ManStop( Pdr_Man_t * p ) ...@@ -369,7 +369,7 @@ void Pdr_ManStop( Pdr_Man_t * p )
Vec_IntFreeP( &p->vMapPpi2Ff ); Vec_IntFreeP( &p->vMapPpi2Ff );
// terminary simulation // terminary simulation
if ( p->pPars->fNewXSim ) if ( p->pPars->fNewXSim )
Txs_ManStop( p->pTxs ); Txs3_ManStop( p->pTxs3 );
// internal use // internal use
Vec_IntFreeP( &p->vPrio ); // priority flops Vec_IntFreeP( &p->vPrio ); // priority flops
Vec_IntFree( p->vLits ); // array of literals Vec_IntFree( p->vLits ); // array of literals
......
...@@ -147,7 +147,7 @@ Vec_Int_t * Pdr_ManCubeToLits( Pdr_Man_t * p, int k, Pdr_Set_t * pCube, int fCom ...@@ -147,7 +147,7 @@ Vec_Int_t * Pdr_ManCubeToLits( Pdr_Man_t * p, int k, Pdr_Set_t * pCube, int fCom
int i, iVar, iVarMax = 0; int i, iVar, iVarMax = 0;
abctime clk = Abc_Clock(); abctime clk = Abc_Clock();
Vec_IntClear( p->vLits ); Vec_IntClear( p->vLits );
assert( !(fNext && fCompl) ); // assert( !(fNext && fCompl) );
for ( i = 0; i < pCube->nLits; i++ ) for ( i = 0; i < pCube->nLits; i++ )
{ {
if ( pCube->Lits[i] == -1 ) if ( pCube->Lits[i] == -1 )
...@@ -362,7 +362,7 @@ int Pdr_ManCheckCube( Pdr_Man_t * p, int k, Pdr_Set_t * pCube, Pdr_Set_t ** ppPr ...@@ -362,7 +362,7 @@ int Pdr_ManCheckCube( Pdr_Man_t * p, int k, Pdr_Set_t * pCube, Pdr_Set_t ** ppPr
{ {
abctime clk = Abc_Clock(); abctime clk = Abc_Clock();
if ( p->pPars->fNewXSim ) if ( p->pPars->fNewXSim )
*ppPred = Txs_ManTernarySim( p->pTxs, k, pCube ); *ppPred = Txs3_ManTernarySim( p->pTxs3, k, pCube );
else else
*ppPred = Pdr_ManTernarySim( p, k, pCube ); *ppPred = Pdr_ManTernarySim( p, k, pCube );
p->tTsim += Abc_Clock() - clk; p->tTsim += Abc_Clock() - clk;
......
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