Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
abc
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
abc
Commits
c3168ba6
Commit
c3168ba6
authored
Oct 29, 2012
by
Niklas Een
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Replaced printfs with Abc_Print
parent
1e8565ee
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
156 additions
and
141 deletions
+156
-141
Makefile
+1
-1
src/proof/pdr/pdrTsim.c
+33
-1
src/proof/ssw/sswAig.c
+1
-2
src/proof/ssw/sswBmc.c
+4
-5
src/proof/ssw/sswCnf.c
+1
-2
src/proof/ssw/sswConstr.c
+8
-9
src/proof/ssw/sswDyn.c
+1
-2
src/proof/ssw/sswFilter.c
+12
-13
src/proof/ssw/sswIslands.c
+13
-14
src/proof/ssw/sswLcorr.c
+1
-2
src/proof/ssw/sswMan.c
+9
-10
src/proof/ssw/sswPairs.c
+24
-25
src/proof/ssw/sswPart.c
+4
-5
src/proof/ssw/sswRarity.c
+0
-0
src/proof/ssw/sswRarity2.c
+24
-25
src/proof/ssw/sswSemi.c
+4
-5
src/proof/ssw/sswSim.c
+3
-4
src/proof/ssw/sswSimSat.c
+4
-5
src/proof/ssw/sswSweep.c
+4
-5
src/proof/ssw/sswUnique.c
+5
-6
No files found.
Makefile
View file @
c3168ba6
...
...
@@ -86,7 +86,7 @@ clean:
@
rm
-rvf
$(PROG)
lib
$(PROG)
.a
$(OBJ)
$(GARBAGE)
$
(
OBJ:.o
=
.d
)
tags
:
ctags
-R
.
etags
`
find
.
-type
f
-regex
'.*\.\(c\|h\)'
`
$(PROG)
:
$(OBJ)
@
echo
"
\`\`
Building binary:"
$
(
notdir
$@
)
...
...
src/proof/pdr/pdrTsim.c
View file @
c3168ba6
...
...
@@ -400,6 +400,7 @@ Pdr_ManPrintCex( p->pAig, vCiObjs, vCiVals, NULL );
RetValue
=
Pdr_ManSimDataInit
(
p
->
pAig
,
vCiObjs
,
vCiVals
,
vNodes
,
vCoObjs
,
vCoVals
,
NULL
);
assert
(
RetValue
);
#if 1
// try removing high-priority flops
Vec_IntClear
(
vCi2Rem
);
Aig_ManForEachObjVec
(
vCiObjs
,
p
->
pAig
,
pObj
,
i
)
...
...
@@ -429,6 +430,38 @@ Pdr_ManPrintCex( p->pAig, vCiObjs, vCiVals, NULL );
else
Pdr_ManExtendUndo
(
p
->
pAig
,
vUndo
);
}
#else
// try removing low-priority flops
Aig_ManForEachObjVec
(
vCiObjs
,
p
->
pAig
,
pObj
,
i
)
{
if
(
!
Saig_ObjIsLo
(
p
->
pAig
,
pObj
)
)
continue
;
Entry
=
Aig_ObjCioId
(
pObj
)
-
Saig_ManPiNum
(
p
->
pAig
);
if
(
vPrio
==
NULL
||
Vec_IntEntry
(
vPrio
,
Entry
)
==
0
)
continue
;
Vec_IntClear
(
vUndo
);
if
(
Pdr_ManExtendOne
(
p
->
pAig
,
pObj
,
vUndo
,
vVisits
)
)
Vec_IntPush
(
vCi2Rem
,
Aig_ObjId
(
pObj
)
);
else
Pdr_ManExtendUndo
(
p
->
pAig
,
vUndo
);
}
// try removing high-priority flops
Vec_IntClear
(
vCi2Rem
);
Aig_ManForEachObjVec
(
vCiObjs
,
p
->
pAig
,
pObj
,
i
)
{
if
(
!
Saig_ObjIsLo
(
p
->
pAig
,
pObj
)
)
continue
;
Entry
=
Aig_ObjCioId
(
pObj
)
-
Saig_ManPiNum
(
p
->
pAig
);
if
(
vPrio
!=
NULL
&&
Vec_IntEntry
(
vPrio
,
Entry
)
!=
0
)
continue
;
Vec_IntClear
(
vUndo
);
if
(
Pdr_ManExtendOne
(
p
->
pAig
,
pObj
,
vUndo
,
vVisits
)
)
Vec_IntPush
(
vCi2Rem
,
Aig_ObjId
(
pObj
)
);
else
Pdr_ManExtendUndo
(
p
->
pAig
,
vUndo
);
}
#endif
if
(
p
->
pPars
->
fVeryVerbose
)
Pdr_ManPrintCex
(
p
->
pAig
,
vCiObjs
,
vCiVals
,
vCi2Rem
);
RetValue
=
Pdr_ManSimDataInit
(
p
->
pAig
,
vCiObjs
,
vCiVals
,
vNodes
,
vCoObjs
,
vCoVals
,
vCi2Rem
);
...
...
@@ -447,4 +480,3 @@ Pdr_ManPrintCex( p->pAig, vCiObjs, vCiVals, vCi2Rem );
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswAig.c
View file @
c3168ba6
...
...
@@ -245,7 +245,7 @@ Aig_Man_t * Ssw_SpeculativeReduction( Ssw_Man_t * p )
// remove dangling nodes
Aig_ManCleanup
(
pFrames
);
Aig_ManSetRegNum
(
pFrames
,
Aig_ManRegNum
(
p
->
pAig
)
);
//
printf(
"SpecRed: Total constraints = %d. Reduced constraints = %d.\n",
//
Abc_Print( 1,
"SpecRed: Total constraints = %d. Reduced constraints = %d.\n",
// p->nConstrTotal, p->nConstrReduced );
return
pFrames
;
}
...
...
@@ -256,4 +256,3 @@ Aig_Man_t * Ssw_SpeculativeReduction( Ssw_Man_t * p )
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswBmc.c
View file @
c3168ba6
...
...
@@ -140,7 +140,7 @@ int Ssw_BmcDynamic( Aig_Man_t * pAig, int nFramesMax, int nConfLimit, int fVerbo
// report statistics
if
(
fVerbose
)
{
printf
(
"AIG: PI/PO/Reg = %d/%d/%d. Node = %6d. Lev = %5d.
\n
"
,
Abc_Print
(
1
,
"AIG: PI/PO/Reg = %d/%d/%d. Node = %6d. Lev = %5d.
\n
"
,
Saig_ManPiNum
(
pAig
),
Saig_ManPoNum
(
pAig
),
Saig_ManRegNum
(
pAig
),
Aig_ManNodeNum
(
pAig
),
Aig_ManLevelNum
(
pAig
)
);
fflush
(
stdout
);
...
...
@@ -162,7 +162,7 @@ int Ssw_BmcDynamic( Aig_Man_t * pAig, int nFramesMax, int nConfLimit, int fVerbo
Lit
=
toLitCond
(
Ssw_ObjSatNum
(
pSat
,
pObjFrame
),
Aig_IsComplement
(
pObjFrame
)
);
if
(
fVerbose
)
{
printf
(
"Solving output %2d of frame %3d ...
\r
"
,
Abc_Print
(
1
,
"Solving output %2d of frame %3d ...
\r
"
,
i
%
Saig_ManPoNum
(
pAig
),
i
/
Saig_ManPoNum
(
pAig
)
);
}
status
=
sat_solver_solve
(
pSat
->
pSat
,
&
Lit
,
&
Lit
+
1
,
(
ABC_INT64_T
)
nConfLimit
,
(
ABC_INT64_T
)
0
,
(
ABC_INT64_T
)
0
,
(
ABC_INT64_T
)
0
);
...
...
@@ -199,8 +199,8 @@ int Ssw_BmcDynamic( Aig_Man_t * pAig, int nFramesMax, int nConfLimit, int fVerbo
}
if
(
fVerbose
)
{
printf
(
"Solved %2d outputs of frame %3d. "
,
Saig_ManPoNum
(
pAig
),
f
);
printf
(
"Conf =%8.0f. Var =%8d. AIG=%9d. "
,
Abc_Print
(
1
,
"Solved %2d outputs of frame %3d. "
,
Saig_ManPoNum
(
pAig
),
f
);
Abc_Print
(
1
,
"Conf =%8.0f. Var =%8d. AIG=%9d. "
,
(
double
)
pSat
->
pSat
->
stats
.
conflicts
,
pSat
->
nSatVars
,
Aig_ManNodeNum
(
pFrm
->
pFrames
)
);
ABC_PRT
(
"T"
,
clock
()
-
clkPart
);
...
...
@@ -222,4 +222,3 @@ int Ssw_BmcDynamic( Aig_Man_t * pAig, int nFramesMax, int nConfLimit, int fVerbo
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswCnf.c
View file @
c3168ba6
...
...
@@ -80,7 +80,7 @@ Ssw_Sat_t * Ssw_SatStart( int fPolarFlip )
***********************************************************************/
void
Ssw_SatStop
(
Ssw_Sat_t
*
p
)
{
//
printf(
"Recycling SAT solver with %d vars and %d restarts.\n",
//
Abc_Print( 1,
"Recycling SAT solver with %d vars and %d restarts.\n",
// p->pSat->size, p->pSat->stats.starts );
if
(
p
->
pSat
)
sat_solver_delete
(
p
->
pSat
);
...
...
@@ -425,4 +425,3 @@ int Ssw_CnfGetNodeValue( Ssw_Sat_t * p, Aig_Obj_t * pObj )
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswConstr.c
View file @
c3168ba6
...
...
@@ -129,8 +129,8 @@ int Ssw_ManSetConstrPhases( Aig_Man_t * p, int nFrames, Vec_Int_t ** pvInits )
Vec_IntPush
(
*
pvInits
,
sat_solver_var_value
(
pSat
,
pCnf
->
pVarNums
[
Aig_ObjId
(
pObj
)])
);
// Aig_ManForEachCi( pFrames, pObj, i )
//
printf(
"%d", Vec_IntEntry(*pvInits, i) );
//
printf(
"\n" );
//
Abc_Print( 1,
"%d", Vec_IntEntry(*pvInits, i) );
//
Abc_Print( 1,
"\n" );
}
sat_solver_delete
(
pSat
);
Cnf_DataFree
(
pCnf
);
...
...
@@ -229,8 +229,8 @@ void Ssw_ManPrintPolarity( Aig_Man_t * p )
Aig_Obj_t
*
pObj
;
int
i
;
Aig_ManForEachObj
(
p
,
pObj
,
i
)
printf
(
"%d"
,
pObj
->
fPhase
);
printf
(
"
\n
"
);
Abc_Print
(
1
,
"%d"
,
pObj
->
fPhase
);
Abc_Print
(
1
,
"
\n
"
);
}
/**Function*************************************************************
...
...
@@ -276,12 +276,12 @@ void Ssw_ManRefineByConstrSim( Ssw_Man_t * p )
if
(
i
<
Saig_ManPoNum
(
p
->
pAig
)
-
Saig_ManConstrNum
(
p
->
pAig
)
)
{
if
(
pObj
->
fMarkB
)
printf
(
"output %d failed in frame %d.
\n
"
,
i
,
f
);
Abc_Print
(
1
,
"output %d failed in frame %d.
\n
"
,
i
,
f
);
}
else
{
if
(
pObj
->
fMarkB
)
printf
(
"constraint %d failed in frame %d.
\n
"
,
i
,
f
);
Abc_Print
(
1
,
"constraint %d failed in frame %d.
\n
"
,
i
,
f
);
}
}
// transfer
...
...
@@ -351,7 +351,7 @@ int Ssw_ManSweepNodeConstr( Ssw_Man_t * p, Aig_Obj_t * pObj, int f, int fBmc )
assert
(
Aig_ObjRepr
(
p
->
pAig
,
pObj
)
!=
pObjRepr
);
if
(
Aig_ObjRepr
(
p
->
pAig
,
pObj
)
==
pObjRepr
)
{
printf
(
"Ssw_ManSweepNodeConstr(): Failed to refine representative.
\n
"
);
Abc_Print
(
1
,
"Ssw_ManSweepNodeConstr(): Failed to refine representative.
\n
"
);
}
return
1
;
}
...
...
@@ -672,7 +672,7 @@ p->timeReduce += clock() - clk;
assert
(
Ssw_ObjChild0Fra
(
p
,
pObj
,
f
)
!=
Aig_ManConst1
(
p
->
pFrames
)
);
if
(
Ssw_ObjChild0Fra
(
p
,
pObj
,
f
)
==
Aig_ManConst1
(
p
->
pFrames
)
)
{
printf
(
"Polarity violation.
\n
"
);
Abc_Print
(
1
,
"Polarity violation.
\n
"
);
continue
;
}
Ssw_NodesAreConstrained
(
p
,
Ssw_ObjChild0Fra
(
p
,
pObj
,
f
),
Aig_ManConst0
(
p
->
pFrames
)
);
...
...
@@ -714,4 +714,3 @@ p->timeReduce += clock() - clk;
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswDyn.c
View file @
c3168ba6
...
...
@@ -435,7 +435,7 @@ p->timeReduce += clock() - clk;
Ssw_ManSweepResimulateDyn
(
p
,
f
);
p
->
iNodeStart
=
i
+
1
;
}
//
printf(
"Recycling SAT solver with %d vars and %d calls.\n",
//
Abc_Print( 1,
"Recycling SAT solver with %d vars and %d calls.\n",
// p->pMSat->nSatVars, p->nRecycleCalls );
// Aig_ManCleanMarkAB( p->pAig );
Aig_ManCleanMarkAB
(
p
->
pFrames
);
...
...
@@ -489,4 +489,3 @@ p->timeReduce += clock() - clk;
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswFilter.c
View file @
c3168ba6
...
...
@@ -164,7 +164,7 @@ void Ssw_ManFindStartingState( Ssw_Man_t * p, Abc_Cex_t * pCex )
// check that the output failed as expected -- cannot check because it is not an SRM!
// pObj = Aig_ManCo( p->pAig, pCex->iPo );
// if ( pObj->fMarkB != 1 )
//
printf(
"The counter-example does not refine the output.\n" );
//
Abc_Print( 1,
"The counter-example does not refine the output.\n" );
// record the new pattern
Saig_ManForEachLo
(
p
->
pAig
,
pObj
,
i
)
if
(
pObj
->
fMarkB
^
Abc_InfoHasBit
(
p
->
pPatWords
,
Saig_ManPiNum
(
p
->
pAig
)
+
i
)
)
...
...
@@ -222,7 +222,7 @@ int Ssw_ManSweepNodeFilter( Ssw_Man_t * p, Aig_Obj_t * pObj, int f )
assert
(
Aig_ObjRepr
(
p
->
pAig
,
pObj
)
!=
pObjRepr
);
if
(
Aig_ObjRepr
(
p
->
pAig
,
pObj
)
==
pObjRepr
)
{
printf
(
"Ssw_ManSweepNodeFilter(): Failed to refine representative.
\n
"
);
Abc_Print
(
1
,
"Ssw_ManSweepNodeFilter(): Failed to refine representative.
\n
"
);
}
return
0
;
}
...
...
@@ -287,15 +287,15 @@ int Ssw_ManSweepBmcFilter( Ssw_Man_t * p, int TimeLimit )
if
(
Abc_InfoHasBit
(
p
->
pPatWords
,
Saig_ManPiNum
(
p
->
pAig
)
+
i
)
)
{
Ssw_ObjSetFrame
(
p
,
pObj
,
0
,
Aig_ManConst1
(
p
->
pFrames
)
);
//
printf(
"1" );
//
Abc_Print( 1,
"1" );
}
else
{
Ssw_ObjSetFrame
(
p
,
pObj
,
0
,
Aig_ManConst0
(
p
->
pFrames
)
);
//
printf(
"0" );
//
Abc_Print( 1,
"0" );
}
}
//
printf(
"\n" );
//
Abc_Print( 1,
"\n" );
// sweep internal nodes
for
(
f
=
0
;
f
<
p
->
pPars
->
nFramesK
;
f
++
)
...
...
@@ -332,20 +332,20 @@ int Ssw_ManSweepBmcFilter( Ssw_Man_t * p, int TimeLimit )
// printout
if
(
p
->
pPars
->
fVerbose
)
{
printf
(
"Frame %4d : "
,
f
);
Abc_Print
(
1
,
"Frame %4d : "
,
f
);
Ssw_ClassesPrint
(
p
->
ppClasses
,
0
);
}
if
(
i
<
Vec_PtrSize
(
p
->
pAig
->
vObjs
)
)
{
if
(
p
->
pPars
->
fVerbose
)
printf
(
"Exceeded the resource limits (%d conflicts). Quitting...
\n
"
,
p
->
pPars
->
nBTLimit
);
Abc_Print
(
1
,
"Exceeded the resource limits (%d conflicts). Quitting...
\n
"
,
p
->
pPars
->
nBTLimit
);
break
;
}
// quit if this is the last timeframe
if
(
f
==
p
->
pPars
->
nFramesK
-
1
)
{
if
(
p
->
pPars
->
fVerbose
)
printf
(
"Exceeded the time frame limit (%d time frames). Quitting...
\n
"
,
p
->
pPars
->
nFramesK
);
Abc_Print
(
1
,
"Exceeded the time frame limit (%d time frames). Quitting...
\n
"
,
p
->
pPars
->
nFramesK
);
break
;
}
// check timeout
...
...
@@ -415,18 +415,18 @@ void Ssw_SignalFilter( Aig_Man_t * pAig, int nFramesMax, int nConfMax, int nRoun
for
(
r
=
0
;
r
<
nRounds
;
r
++
)
{
if
(
p
->
pPars
->
fVerbose
)
printf
(
"Round %3d:
\n
"
,
r
);
Abc_Print
(
1
,
"Round %3d:
\n
"
,
r
);
// start filtering equivalence classes
Ssw_ManRefineByFilterSim
(
p
,
p
->
pPars
->
nFramesK
);
if
(
Ssw_ClassesCand1Num
(
p
->
ppClasses
)
==
0
&&
Ssw_ClassesClassNum
(
p
->
ppClasses
)
==
0
)
{
printf
(
"All equivalences are refined away.
\n
"
);
Abc_Print
(
1
,
"All equivalences are refined away.
\n
"
);
break
;
}
// printout
if
(
p
->
pPars
->
fVerbose
)
{
printf
(
"Initial : "
);
Abc_Print
(
1
,
"Initial : "
);
Ssw_ClassesPrint
(
p
->
ppClasses
,
0
);
}
p
->
pMSat
=
Ssw_SatStart
(
0
);
...
...
@@ -447,7 +447,7 @@ void Ssw_SignalFilter( Aig_Man_t * pAig, int nFramesMax, int nConfMax, int nRoun
// check timeout
if
(
TimeLimit
&&
clock
()
>
nTimeToStop
)
{
printf
(
"Reached timeout (%d seconds).
\n
"
,
TimeLimit
);
Abc_Print
(
1
,
"Reached timeout (%d seconds).
\n
"
,
TimeLimit
);
break
;
}
}
...
...
@@ -491,4 +491,3 @@ void Ssw_SignalFilterGia( Gia_Man_t * p, int nFramesMax, int nConfMax, int nRoun
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswIslands.c
View file @
c3168ba6
...
...
@@ -104,7 +104,7 @@ void Ssw_MatchingStart( Aig_Man_t * p0, Aig_Man_t * p1, Vec_Int_t * vPairs )
continue
;
pObj1
=
(
Aig_Obj_t
*
)
pObj0
->
pData
;
if
(
!
Saig_ObjIsLo
(
p1
,
pObj1
)
)
printf
(
"Mismatch between LO pairs.
\n
"
);
Abc_Print
(
1
,
"Mismatch between LO pairs.
\n
"
);
}
Saig_ManForEachLo
(
p1
,
pObj1
,
i
)
{
...
...
@@ -112,7 +112,7 @@ void Ssw_MatchingStart( Aig_Man_t * p0, Aig_Man_t * p1, Vec_Int_t * vPairs )
continue
;
pObj0
=
(
Aig_Obj_t
*
)
pObj1
->
pData
;
if
(
!
Saig_ObjIsLo
(
p0
,
pObj0
)
)
printf
(
"Mismatch between LO pairs.
\n
"
);
Abc_Print
(
1
,
"Mismatch between LO pairs.
\n
"
);
}
}
...
...
@@ -228,8 +228,8 @@ void Ssw_MatchingExtend( Aig_Man_t * p0, Aig_Man_t * p1, int nDist, int fVerbose
if
(
fVerbose
)
{
int
nUnmached
=
Ssw_MatchingCountUnmached
(
p0
);
printf
(
"Extending islands by %d steps:
\n
"
,
nDist
);
printf
(
"%2d : Total = %6d. Unmatched = %6d. Ratio = %6.2f %%
\n
"
,
Abc_Print
(
1
,
"Extending islands by %d steps:
\n
"
,
nDist
);
Abc_Print
(
1
,
"%2d : Total = %6d. Unmatched = %6d. Ratio = %6.2f %%
\n
"
,
0
,
Aig_ManCiNum
(
p0
)
+
Aig_ManNodeNum
(
p0
),
nUnmached
,
100
.
0
*
nUnmached
/
(
Aig_ManCiNum
(
p0
)
+
Aig_ManNodeNum
(
p0
))
);
}
...
...
@@ -262,7 +262,7 @@ void Ssw_MatchingExtend( Aig_Man_t * p0, Aig_Man_t * p1, int nDist, int fVerbose
if
(
fVerbose
)
{
int
nUnmached
=
Ssw_MatchingCountUnmached
(
p0
);
printf
(
"%2d : Total = %6d. Unmatched = %6d. Ratio = %6.2f %%
\n
"
,
Abc_Print
(
1
,
"%2d : Total = %6d. Unmatched = %6d. Ratio = %6.2f %%
\n
"
,
d
+
1
,
Aig_ManCiNum
(
p0
)
+
Aig_ManNodeNum
(
p0
),
nUnmached
,
100
.
0
*
nUnmached
/
(
Aig_ManCiNum
(
p0
)
+
Aig_ManNodeNum
(
p0
))
);
}
...
...
@@ -446,10 +446,10 @@ Aig_Man_t * Ssw_SecWithSimilaritySweep( Aig_Man_t * p0, Aig_Man_t * p1, Vec_Int_
Aig_Man_t
*
pSRed
=
Ssw_SpeculativeReduction
(
p
);
Aig_ManDumpBlif
(
pSRed
,
"srm_part.blif"
,
NULL
,
NULL
);
Aig_ManStop
(
pSRed
);
printf
(
"Speculatively reduced miter is saved in file
\"
%s
\"
.
\n
"
,
"srm_part.blif"
);
Abc_Print
(
1
,
"Speculatively reduced miter is saved in file
\"
%s
\"
.
\n
"
,
"srm_part.blif"
);
}
else
printf
(
"Dumping speculative miter is possible only for partial signal correspondence (switch
\"
-c
\"
).
\n
"
);
Abc_Print
(
1
,
"Dumping speculative miter is possible only for partial signal correspondence (switch
\"
-c
\"
).
\n
"
);
}
p
->
pSml
=
Ssw_SmlStart
(
pMiter
,
0
,
1
+
p
->
pPars
->
nFramesAddSim
,
1
);
Ssw_ClassesSetData
(
p
->
ppClasses
,
p
->
pSml
,
(
unsigned
(
*
)(
void
*
,
Aig_Obj_t
*
))
Ssw_SmlObjHashWord
,
(
int
(
*
)(
void
*
,
Aig_Obj_t
*
))
Ssw_SmlObjIsConstWord
,
(
int
(
*
)(
void
*
,
Aig_Obj_t
*
,
Aig_Obj_t
*
))
Ssw_SmlObjsAreEqualWord
);
...
...
@@ -489,11 +489,11 @@ int Ssw_SecWithSimilarityPairs( Aig_Man_t * p0, Aig_Man_t * p1, Vec_Int_t * vPai
// report the result of verification
RetValue
=
Ssw_MiterStatus
(
pAigRes
,
1
);
if
(
RetValue
==
1
)
printf
(
"Verification successful. "
);
Abc_Print
(
1
,
"Verification successful. "
);
else
if
(
RetValue
==
0
)
printf
(
"Verification failed with a counter-example. "
);
Abc_Print
(
1
,
"Verification failed with a counter-example. "
);
else
printf
(
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). "
,
Abc_Print
(
1
,
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). "
,
Aig_ManRegNum
(
pAigRes
),
Aig_ManRegNum
(
p0
)
+
Aig_ManRegNum
(
p1
)
);
ABC_PRT
(
"Time"
,
clock
()
-
clk
);
Aig_ManStop
(
pAigRes
);
...
...
@@ -545,7 +545,7 @@ int Ssw_SecWithSimilarity( Aig_Man_t * p0, Aig_Man_t * p1, Ssw_Pars_t * pPars )
Aig_Man_t
*
pPart0
,
*
pPart1
;
int
RetValue
;
if
(
pPars
->
fVerbose
)
printf
(
"Performing sequential verification using structural similarity.
\n
"
);
Abc_Print
(
1
,
"Performing sequential verification using structural similarity.
\n
"
);
// consider the case when a miter is given
if
(
p1
==
NULL
)
{
...
...
@@ -556,7 +556,7 @@ int Ssw_SecWithSimilarity( Aig_Man_t * p0, Aig_Man_t * p1, Ssw_Pars_t * pPars )
// demiter the miter
if
(
!
Saig_ManDemiterSimpleDiff
(
p0
,
&
pPart0
,
&
pPart1
)
)
{
printf
(
"Demitering has failed.
\n
"
);
Abc_Print
(
1
,
"Demitering has failed.
\n
"
);
return
-
1
;
}
}
...
...
@@ -573,7 +573,7 @@ int Ssw_SecWithSimilarity( Aig_Man_t * p0, Aig_Man_t * p1, Ssw_Pars_t * pPars )
{
// Aig_ManDumpBlif( pPart0, "part0.blif", NULL, NULL );
// Aig_ManDumpBlif( pPart1, "part1.blif", NULL, NULL );
//
printf(
"The result of demitering is written into files \"%s\" and \"%s\".\n", "part0.blif", "part1.blif" );
//
Abc_Print( 1,
"The result of demitering is written into files \"%s\" and \"%s\".\n", "part0.blif", "part1.blif" );
}
}
assert
(
Aig_ManRegNum
(
pPart0
)
>
0
);
...
...
@@ -596,4 +596,3 @@ int Ssw_SecWithSimilarity( Aig_Man_t * p0, Aig_Man_t * p1, Ssw_Pars_t * pPars )
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswLcorr.c
View file @
c3168ba6
...
...
@@ -315,7 +315,7 @@ int Ssw_ManSweepLatch( Ssw_Man_t * p )
}
// ABC_PRT( "reduce", p->timeReduce );
// Aig_TableProfile( p->pFrames );
//
printf(
"And gates = %d\n", Aig_ManNodeNum(p->pFrames) );
//
Abc_Print( 1,
"And gates = %d\n", Aig_ManNodeNum(p->pFrames) );
// resimulate
if
(
p
->
nPatterns
>
0
)
Ssw_ManSweepResimulate
(
p
);
...
...
@@ -335,4 +335,3 @@ int Ssw_ManSweepLatch( Ssw_Man_t * p )
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswMan.c
View file @
c3168ba6
...
...
@@ -105,16 +105,16 @@ void Ssw_ManPrintStats( Ssw_Man_t * p )
{
double
nMemory
=
1
.
0
*
Aig_ManObjNumMax
(
p
->
pAig
)
*
p
->
nFrames
*
(
2
*
sizeof
(
int
)
+
2
*
sizeof
(
void
*
))
/
(
1
<<
20
);
printf
(
"Parameters: F = %d. AddF = %d. C-lim = %d. Constr = %d. MaxLev = %d. Mem = %0.2f MB.
\n
"
,
Abc_Print
(
1
,
"Parameters: F = %d. AddF = %d. C-lim = %d. Constr = %d. MaxLev = %d. Mem = %0.2f MB.
\n
"
,
p
->
pPars
->
nFramesK
,
p
->
pPars
->
nFramesAddSim
,
p
->
pPars
->
nBTLimit
,
Saig_ManConstrNum
(
p
->
pAig
),
p
->
pPars
->
nMaxLevs
,
nMemory
);
printf
(
"AIG : PI = %d. PO = %d. Latch = %d. Node = %d. Ave SAT vars = %d.
\n
"
,
Abc_Print
(
1
,
"AIG : PI = %d. PO = %d. Latch = %d. Node = %d. Ave SAT vars = %d.
\n
"
,
Saig_ManPiNum
(
p
->
pAig
),
Saig_ManPoNum
(
p
->
pAig
),
Saig_ManRegNum
(
p
->
pAig
),
Aig_ManNodeNum
(
p
->
pAig
),
0
/
(
p
->
pPars
->
nIters
+
1
)
);
printf
(
"SAT calls : Proof = %d. Cex = %d. Fail = %d. Lits proved = %d.
\n
"
,
Abc_Print
(
1
,
"SAT calls : Proof = %d. Cex = %d. Fail = %d. Lits proved = %d.
\n
"
,
p
->
nSatProof
,
p
->
nSatCallsSat
,
p
->
nSatFailsReal
,
Ssw_ManCountEquivs
(
p
)
);
printf
(
"SAT solver: Vars max = %d. Calls max = %d. Recycles = %d. Sim rounds = %d.
\n
"
,
Abc_Print
(
1
,
"SAT solver: Vars max = %d. Calls max = %d. Recycles = %d. Sim rounds = %d.
\n
"
,
p
->
nVarsMax
,
p
->
nCallsMax
,
p
->
nRecyclesTotal
,
p
->
nSimRounds
);
printf
(
"NBeg = %d. NEnd = %d. (Gain = %6.2f %%). RBeg = %d. REnd = %d. (Gain = %6.2f %%).
\n
"
,
Abc_Print
(
1
,
"NBeg = %d. NEnd = %d. (Gain = %6.2f %%). RBeg = %d. REnd = %d. (Gain = %6.2f %%).
\n
"
,
p
->
nNodesBeg
,
p
->
nNodesEnd
,
100
.
0
*
(
p
->
nNodesBeg
-
p
->
nNodesEnd
)
/
(
p
->
nNodesBeg
?
p
->
nNodesBeg
:
1
),
p
->
nRegsBeg
,
p
->
nRegsEnd
,
100
.
0
*
(
p
->
nRegsBeg
-
p
->
nRegsEnd
)
/
(
p
->
nRegsBeg
?
p
->
nRegsBeg
:
1
)
);
...
...
@@ -133,12 +133,12 @@ void Ssw_ManPrintStats( Ssw_Man_t * p )
// report the reductions
if
(
p
->
pAig
->
nConstrs
)
{
printf
(
"Statistics reflecting the use of constraints:
\n
"
);
printf
(
"Total cones = %6d. Constraint cones = %6d. (%6.2f %%)
\n
"
,
Abc_Print
(
1
,
"Statistics reflecting the use of constraints:
\n
"
);
Abc_Print
(
1
,
"Total cones = %6d. Constraint cones = %6d. (%6.2f %%)
\n
"
,
p
->
nConesTotal
,
p
->
nConesConstr
,
100
.
0
*
p
->
nConesConstr
/
p
->
nConesTotal
);
printf
(
"Total equivs = %6d. Removed equivs = %6d. (%6.2f %%)
\n
"
,
Abc_Print
(
1
,
"Total equivs = %6d. Removed equivs = %6d. (%6.2f %%)
\n
"
,
p
->
nEquivsTotal
,
p
->
nEquivsConstr
,
100
.
0
*
p
->
nEquivsConstr
/
p
->
nEquivsTotal
);
printf
(
"NBeg = %d. NEnd = %d. (Gain = %6.2f %%). RBeg = %d. REnd = %d. (Gain = %6.2f %%).
\n
"
,
Abc_Print
(
1
,
"NBeg = %d. NEnd = %d. (Gain = %6.2f %%). RBeg = %d. REnd = %d. (Gain = %6.2f %%).
\n
"
,
p
->
nNodesBegC
,
p
->
nNodesEndC
,
100
.
0
*
(
p
->
nNodesBegC
-
p
->
nNodesEndC
)
/
(
p
->
nNodesBegC
?
p
->
nNodesBegC
:
1
),
p
->
nRegsBegC
,
p
->
nRegsEndC
,
100
.
0
*
(
p
->
nRegsBegC
-
p
->
nRegsEndC
)
/
(
p
->
nRegsBegC
?
p
->
nRegsBegC
:
1
)
);
}
...
...
@@ -215,4 +215,3 @@ void Ssw_ManStop( Ssw_Man_t * p )
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswPairs.c
View file @
c3168ba6
...
...
@@ -80,11 +80,11 @@ int Ssw_MiterStatus( Aig_Man_t * p, int fVerbose )
if
(
fVerbose
)
{
printf
(
"Miter has %d outputs. "
,
Saig_ManPoNum
(
p
)
);
printf
(
"Const0 = %d. "
,
CountConst0
);
printf
(
"NonConst0 = %d. "
,
CountNonConst0
);
printf
(
"Undecided = %d. "
,
CountUndecided
);
printf
(
"
\n
"
);
Abc_Print
(
1
,
"Miter has %d outputs. "
,
Saig_ManPoNum
(
p
)
);
Abc_Print
(
1
,
"Const0 = %d. "
,
CountConst0
);
Abc_Print
(
1
,
"NonConst0 = %d. "
,
CountNonConst0
);
Abc_Print
(
1
,
"Undecided = %d. "
,
CountUndecided
);
Abc_Print
(
1
,
"
\n
"
);
}
if
(
CountNonConst0
)
...
...
@@ -337,16 +337,16 @@ Aig_Man_t * Ssw_SignalCorrespondeceTestPairs( Aig_Man_t * pAig )
continue
;
/*
if ( Aig_ObjIsNode(pObj) )
printf(
"n " );
Abc_Print( 1,
"n " );
else if ( Saig_ObjIsPi(pAig, pObj) )
printf(
"pi " );
Abc_Print( 1,
"pi " );
else if ( Saig_ObjIsLo(pAig, pObj) )
printf(
"lo " );
Abc_Print( 1,
"lo " );
*/
Vec_IntPush
(
vIds1
,
Aig_ObjId
(
pObj
)
);
Vec_IntPush
(
vIds2
,
Aig_ObjId
(
pRepr
)
);
}
printf
(
"Recorded %d pairs (before: %d after: %d).
\n
"
,
Vec_IntSize
(
vIds1
),
Aig_ManObjNumMax
(
pAig
),
Aig_ManObjNumMax
(
pAigNew
)
);
Abc_Print
(
1
,
"Recorded %d pairs (before: %d after: %d).
\n
"
,
Vec_IntSize
(
vIds1
),
Aig_ManObjNumMax
(
pAig
),
Aig_ManObjNumMax
(
pAigNew
)
);
// try the new AIGs
pAigRes
=
Ssw_SignalCorrespondenceWithPairs
(
pAig
,
pAigNew
,
vIds1
,
vIds2
,
pPars
);
Vec_IntFree
(
vIds1
);
...
...
@@ -354,11 +354,11 @@ Aig_Man_t * Ssw_SignalCorrespondeceTestPairs( Aig_Man_t * pAig )
// report the results
RetValue
=
Ssw_MiterStatus
(
pAigRes
,
1
);
if
(
RetValue
==
1
)
printf
(
"Verification successful. "
);
Abc_Print
(
1
,
"Verification successful. "
);
else
if
(
RetValue
==
0
)
printf
(
"Verification failed with the counter-example. "
);
Abc_Print
(
1
,
"Verification failed with the counter-example. "
);
else
printf
(
"Verification UNDECIDED. Remaining registers %d (total %d). "
,
Abc_Print
(
1
,
"Verification UNDECIDED. Remaining registers %d (total %d). "
,
Aig_ManRegNum
(
pAigRes
),
Aig_ManRegNum
(
pAig
)
+
Aig_ManRegNum
(
pAigNew
)
);
ABC_PRT
(
"Time"
,
clock
()
-
clk
);
// cleanup
...
...
@@ -384,16 +384,16 @@ int Ssw_SecWithPairs( Aig_Man_t * pAig1, Aig_Man_t * pAig2, Vec_Int_t * vIds1, V
clock_t
clk
=
clock
();
assert
(
vIds1
!=
NULL
&&
vIds2
!=
NULL
);
// try the new AIGs
printf
(
"Performing specialized verification with node pairs.
\n
"
);
Abc_Print
(
1
,
"Performing specialized verification with node pairs.
\n
"
);
pAigRes
=
Ssw_SignalCorrespondenceWithPairs
(
pAig1
,
pAig2
,
vIds1
,
vIds2
,
pPars
);
// report the results
RetValue
=
Ssw_MiterStatus
(
pAigRes
,
1
);
if
(
RetValue
==
1
)
printf
(
"Verification successful. "
);
Abc_Print
(
1
,
"Verification successful. "
);
else
if
(
RetValue
==
0
)
printf
(
"Verification failed with a counter-example. "
);
Abc_Print
(
1
,
"Verification failed with a counter-example. "
);
else
printf
(
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). "
,
Abc_Print
(
1
,
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). "
,
Aig_ManRegNum
(
pAigRes
),
Aig_ManRegNum
(
pAig1
)
+
Aig_ManRegNum
(
pAig2
)
);
ABC_PRT
(
"Time"
,
clock
()
-
clk
);
// cleanup
...
...
@@ -418,7 +418,7 @@ int Ssw_SecGeneral( Aig_Man_t * pAig1, Aig_Man_t * pAig2, Ssw_Pars_t * pPars )
int
RetValue
;
clock_t
clk
=
clock
();
// try the new AIGs
printf
(
"Performing general verification without node pairs.
\n
"
);
Abc_Print
(
1
,
"Performing general verification without node pairs.
\n
"
);
pMiter
=
Saig_ManCreateMiter
(
pAig1
,
pAig2
,
0
);
Aig_ManCleanup
(
pMiter
);
pAigRes
=
Ssw_SignalCorrespondence
(
pMiter
,
pPars
);
...
...
@@ -426,11 +426,11 @@ int Ssw_SecGeneral( Aig_Man_t * pAig1, Aig_Man_t * pAig2, Ssw_Pars_t * pPars )
// report the results
RetValue
=
Ssw_MiterStatus
(
pAigRes
,
1
);
if
(
RetValue
==
1
)
printf
(
"Verification successful. "
);
Abc_Print
(
1
,
"Verification successful. "
);
else
if
(
RetValue
==
0
)
printf
(
"Verification failed with a counter-example. "
);
Abc_Print
(
1
,
"Verification failed with a counter-example. "
);
else
printf
(
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). "
,
Abc_Print
(
1
,
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). "
,
Aig_ManRegNum
(
pAigRes
),
Aig_ManRegNum
(
pAig1
)
+
Aig_ManRegNum
(
pAig2
)
);
ABC_PRT
(
"Time"
,
clock
()
-
clk
);
// cleanup
...
...
@@ -455,16 +455,16 @@ int Ssw_SecGeneralMiter( Aig_Man_t * pMiter, Ssw_Pars_t * pPars )
int
RetValue
;
clock_t
clk
=
clock
();
// try the new AIGs
//
printf(
"Performing general verification without node pairs.\n" );
//
Abc_Print( 1,
"Performing general verification without node pairs.\n" );
pAigRes
=
Ssw_SignalCorrespondence
(
pMiter
,
pPars
);
// report the results
RetValue
=
Ssw_MiterStatus
(
pAigRes
,
1
);
if
(
RetValue
==
1
)
printf
(
"Verification successful. "
);
Abc_Print
(
1
,
"Verification successful. "
);
else
if
(
RetValue
==
0
)
printf
(
"Verification failed with a counter-example. "
);
Abc_Print
(
1
,
"Verification failed with a counter-example. "
);
else
printf
(
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). "
,
Abc_Print
(
1
,
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). "
,
Aig_ManRegNum
(
pAigRes
),
Aig_ManRegNum
(
pMiter
)
);
ABC_PRT
(
"Time"
,
clock
()
-
clk
);
// cleanup
...
...
@@ -478,4 +478,3 @@ int Ssw_SecGeneralMiter( Aig_Man_t * pMiter, Ssw_Pars_t * pPars )
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswPart.c
View file @
c3168ba6
...
...
@@ -56,7 +56,7 @@ Aig_Man_t * Ssw_SignalCorrespondencePart( Aig_Man_t * pAig, Ssw_Pars_t * pPars )
clock_t
clk
=
clock
();
if
(
pPars
->
fConstrs
)
{
printf
(
"Cannot use partitioned computation with constraints.
\n
"
);
Abc_Print
(
1
,
"Cannot use partitioned computation with constraints.
\n
"
);
return
NULL
;
}
// save parameters
...
...
@@ -82,14 +82,14 @@ Aig_Man_t * Ssw_SignalCorrespondencePart( Aig_Man_t * pAig, Ssw_Pars_t * pPars )
if
(
fPrintParts
)
{
// print partitions
printf
(
"Simple partitioning. %d partitions are saved:
\n
"
,
Vec_PtrSize
(
vResult
)
);
Abc_Print
(
1
,
"Simple partitioning. %d partitions are saved:
\n
"
,
Vec_PtrSize
(
vResult
)
);
Vec_PtrForEachEntry
(
Vec_Int_t
*
,
vResult
,
vPart
,
i
)
{
// extern void Ioa_WriteAiger( Aig_Man_t * pMan, char * pFileName, int fWriteSymbols, int fCompact );
sprintf
(
Buffer
,
"part%03d.aig"
,
i
);
pTemp
=
Aig_ManRegCreatePart
(
pAig
,
vPart
,
&
nCountPis
,
&
nCountRegs
,
NULL
);
Ioa_WriteAiger
(
pTemp
,
Buffer
,
0
,
0
);
printf
(
"part%03d.aig : Reg = %4d. PI = %4d. (True = %4d. Regs = %4d.) And = %5d.
\n
"
,
Abc_Print
(
1
,
"part%03d.aig : Reg = %4d. PI = %4d. (True = %4d. Regs = %4d.) And = %5d.
\n
"
,
i
,
Vec_IntSize
(
vPart
),
Aig_ManCiNum
(
pTemp
)
-
Vec_IntSize
(
vPart
),
nCountPis
,
nCountRegs
,
Aig_ManNodeNum
(
pTemp
)
);
Aig_ManStop
(
pTemp
);
}
...
...
@@ -109,7 +109,7 @@ Aig_Man_t * Ssw_SignalCorrespondencePart( Aig_Man_t * pAig, Ssw_Pars_t * pPars )
pNew
=
Ssw_SignalCorrespondence
(
pTemp
,
pPars
);
nClasses
=
Aig_TransferMappedClasses
(
pAig
,
pTemp
,
pMapBack
);
if
(
fVerbose
)
printf
(
"%3d : Reg = %4d. PI = %4d. (True = %4d. Regs = %4d.) And = %5d. It = %3d. Cl = %5d.
\n
"
,
Abc_Print
(
1
,
"%3d : Reg = %4d. PI = %4d. (True = %4d. Regs = %4d.) And = %5d. It = %3d. Cl = %5d.
\n
"
,
i
,
Vec_IntSize
(
vPart
),
Aig_ManCiNum
(
pTemp
)
-
Vec_IntSize
(
vPart
),
nCountPis
,
nCountRegs
,
Aig_ManNodeNum
(
pTemp
),
pPars
->
nIters
,
nClasses
);
Aig_ManStop
(
pNew
);
}
...
...
@@ -138,4 +138,3 @@ Aig_Man_t * Ssw_SignalCorrespondencePart( Aig_Man_t * pAig, Ssw_Pars_t * pPars )
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswRarity.c
View file @
c3168ba6
This diff is collapsed.
Click to expand it.
src/proof/ssw/sswRarity2.c
View file @
c3168ba6
...
...
@@ -148,7 +148,7 @@ static void Ssw_RarUpdateCounters( Ssw_RarMan_t * p )
Saig_ManForEachLi( p->pAig, pObj, i )
{
pData = (unsigned *)Vec_PtrEntry( p->vSimInfo, Aig_ObjId(pObj) ) + p->nWords * (p->nFrames - 1);
Extra_PrintBinary( stdout, pData, 32 );
printf(
"\n" );
Extra_PrintBinary( stdout, pData, 32 );
Abc_Print( 1,
"\n" );
}
*/
for
(
k
=
0
;
k
<
p
->
nWords
*
32
;
k
++
)
...
...
@@ -168,8 +168,8 @@ static void Ssw_RarUpdateCounters( Ssw_RarMan_t * p )
for ( i = 0; i < p->nGroups; i++ )
{
for ( k = 0; k < (1 << p->nBinSize); k++ )
printf(
"%d ", Ssw_RarGetBinPat(p, i, k) );
printf(
"\n" );
Abc_Print( 1,
"%d ", Ssw_RarGetBinPat(p, i, k) );
Abc_Print( 1,
"\n" );
}
*/
}
...
...
@@ -212,7 +212,7 @@ static void Ssw_RarTransferPatterns( Ssw_RarMan_t * p, Vec_Int_t * vInits )
p
->
pPatCosts
[
k
]
+=
1
.
0
/
(
Value
*
Value
);
}
// print the result
//
printf(
"%3d : %9.6f\n", k, p->pPatCosts[k] );
//
Abc_Print( 1,
"%3d : %9.6f\n", k, p->pPatCosts[k] );
}
// choose as many as there are words
...
...
@@ -237,7 +237,7 @@ static void Ssw_RarTransferPatterns( Ssw_RarMan_t * p, Vec_Int_t * vInits )
pData
=
(
unsigned
*
)
Vec_PtrEntry
(
p
->
vSimInfo
,
Aig_ObjId
(
pObj
)
)
+
p
->
nWords
*
(
p
->
nFrames
-
1
);
Vec_IntPush
(
vInits
,
Abc_InfoHasBit
(
pData
,
iPatBest
)
);
}
//
printf(
"Best pattern %5d\n", iPatBest );
//
Abc_Print( 1,
"Best pattern %5d\n", iPatBest );
}
assert
(
Vec_IntSize
(
vInits
)
==
Aig_ManRegNum
(
p
->
pAig
)
*
p
->
nWords
);
}
...
...
@@ -284,7 +284,7 @@ static Vec_Int_t * Ssw_RarFindStartingState( Aig_Man_t * pAig, Abc_Cex_t * pCex
// check that the output failed as expected -- cannot check because it is not an SRM!
// pObj = Aig_ManCo( pAig, pCex->iPo );
// if ( pObj->fMarkB != 1 )
//
printf(
"The counter-example does not refine the output.\n" );
//
Abc_Print( 1,
"The counter-example does not refine the output.\n" );
// record the new pattern
vInit
=
Vec_IntAlloc
(
Saig_ManRegNum
(
pAig
)
);
Saig_ManForEachLo
(
pAig
,
pObj
,
i
)
...
...
@@ -318,7 +318,7 @@ int Ssw_RarSimulate2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSize, i
if
(
Aig_ManNodeNum
(
pAig
)
==
0
)
return
-
1
;
if
(
fVerbose
)
printf
(
"Simulating %d words through %d frames with %d binsize, %d rounds, and %d sec timeout.
\n
"
,
Abc_Print
(
1
,
"Simulating %d words through %d frames with %d binsize, %d rounds, and %d sec timeout.
\n
"
,
nWords
,
nFrames
,
nBinSize
,
nRounds
,
TimeOut
);
// reset random numbers
Aig_ManRandom
(
1
);
...
...
@@ -336,8 +336,8 @@ int Ssw_RarSimulate2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSize, i
Ssw_SmlSimulateOne
(
p
->
pSml
);
if
(
fMiter
&&
Ssw_SmlCheckNonConstOutputs
(
p
->
pSml
)
)
{
if
(
fVerbose
)
printf
(
"
\n
"
);
printf
(
"Simulation asserted a PO in frame f: %d <= f < %d.
\n
"
,
r
*
nFrames
,
(
r
+
1
)
*
nFrames
);
if
(
fVerbose
)
Abc_Print
(
1
,
"
\n
"
);
Abc_Print
(
1
,
"Simulation asserted a PO in frame f: %d <= f < %d.
\n
"
,
r
*
nFrames
,
(
r
+
1
)
*
nFrames
);
RetValue
=
0
;
break
;
}
...
...
@@ -348,22 +348,22 @@ int Ssw_RarSimulate2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSize, i
// printout
if
(
fVerbose
)
{
//
printf(
"Round %3d: ", r );
//
Abc_Print( 1,
"Round %3d: ", r );
// Abc_PrintTime( 1, "Time", clock() - clk );
printf
(
"."
);
Abc_Print
(
1
,
"."
);
}
// check timeout
if
(
TimeOut
&&
clock
()
>
nTimeToStop
)
{
if
(
fVerbose
)
printf
(
"
\n
"
);
printf
(
"Reached timeout (%d seconds).
\n
"
,
TimeOut
);
if
(
fVerbose
)
Abc_Print
(
1
,
"
\n
"
);
Abc_Print
(
1
,
"Reached timeout (%d seconds).
\n
"
,
TimeOut
);
break
;
}
}
if
(
r
==
nRounds
)
{
if
(
fVerbose
)
printf
(
"
\n
"
);
printf
(
"Simulation did not assert POs in the first %d frames. "
,
nRounds
*
nFrames
);
if
(
fVerbose
)
Abc_Print
(
1
,
"
\n
"
);
Abc_Print
(
1
,
"Simulation did not assert POs in the first %d frames. "
,
nRounds
*
nFrames
);
Abc_PrintTime
(
1
,
"Time"
,
clock
()
-
clkTotal
);
}
// cleanup
...
...
@@ -397,7 +397,7 @@ int Ssw_RarSignalFilter2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSiz
if
(
Aig_ManNodeNum
(
pAig
)
==
0
)
return
-
1
;
if
(
fVerbose
)
printf
(
"Filtering equivs with %d words through %d frames with %d binsize, %d rounds, and %d sec timeout.
\n
"
,
Abc_Print
(
1
,
"Filtering equivs with %d words through %d frames with %d binsize, %d rounds, and %d sec timeout.
\n
"
,
nWords
,
nFrames
,
nBinSize
,
nRounds
,
TimeOut
);
// reset random numbers
Aig_ManRandom
(
1
);
...
...
@@ -427,7 +427,7 @@ int Ssw_RarSignalFilter2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSiz
// print the stats
if
(
fVerbose
)
{
printf
(
"Initial : "
);
Abc_Print
(
1
,
"Initial : "
);
Ssw_ClassesPrint
(
p
->
ppClasses
,
0
);
}
// refine classes using BMC
...
...
@@ -436,15 +436,15 @@ int Ssw_RarSignalFilter2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSiz
// start filtering equivalence classes
if
(
Ssw_ClassesCand1Num
(
p
->
ppClasses
)
==
0
&&
Ssw_ClassesClassNum
(
p
->
ppClasses
)
==
0
)
{
printf
(
"All equivalences are refined away.
\n
"
);
Abc_Print
(
1
,
"All equivalences are refined away.
\n
"
);
break
;
}
// simulate
Ssw_SmlSimulateOne
(
p
->
pSml
);
if
(
fMiter
&&
Ssw_SmlCheckNonConstOutputs
(
p
->
pSml
)
)
{
if
(
fVerbose
)
printf
(
"
\n
"
);
printf
(
"Simulation asserted a PO in frame f: %d <= f < %d.
\n
"
,
r
*
nFrames
,
(
r
+
1
)
*
nFrames
);
if
(
fVerbose
)
Abc_Print
(
1
,
"
\n
"
);
Abc_Print
(
1
,
"Simulation asserted a PO in frame f: %d <= f < %d.
\n
"
,
r
*
nFrames
,
(
r
+
1
)
*
nFrames
);
RetValue
=
0
;
break
;
}
...
...
@@ -454,7 +454,7 @@ int Ssw_RarSignalFilter2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSiz
// printout
if
(
fVerbose
)
{
printf
(
"Round %3d: "
,
r
);
Abc_Print
(
1
,
"Round %3d: "
,
r
);
Ssw_ClassesPrint
(
p
->
ppClasses
,
0
);
}
// get initialization patterns
...
...
@@ -464,14 +464,14 @@ int Ssw_RarSignalFilter2( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSiz
// check timeout
if
(
TimeOut
&&
clock
()
>
nTimeToStop
)
{
if
(
fVerbose
)
printf
(
"
\n
"
);
printf
(
"Reached timeout (%d seconds).
\n
"
,
TimeOut
);
if
(
fVerbose
)
Abc_Print
(
1
,
"
\n
"
);
Abc_Print
(
1
,
"Reached timeout (%d seconds).
\n
"
,
TimeOut
);
break
;
}
}
if
(
r
==
nRounds
)
{
printf
(
"Simulation did not assert POs in the first %d frames. "
,
nRounds
*
nFrames
);
Abc_Print
(
1
,
"Simulation did not assert POs in the first %d frames. "
,
nRounds
*
nFrames
);
Abc_PrintTime
(
1
,
"Time"
,
clock
()
-
clkTotal
);
}
// cleanup
...
...
@@ -516,4 +516,3 @@ int Ssw_RarSignalFilterGia2( Gia_Man_t * p, int nFrames, int nWords, int nBinSiz
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswSemi.c
View file @
c3168ba6
...
...
@@ -236,7 +236,7 @@ clk = clock();
Ssw_ObjSetFrame
(
p
,
pObjLo
,
f
+
1
,
pObjNew
);
Ssw_CnfNodeAddToSolver
(
p
->
pMSat
,
Aig_Regular
(
pObjNew
)
);
}
//
printf(
"Frame %2d : Conflicts = %6d. \n", f, p->pSat->stats.conflicts );
//
Abc_Print( 1,
"Frame %2d : Conflicts = %6d. \n", f, p->pSat->stats.conflicts );
}
if
(
fFirst
)
pBmc
->
nConfMax
/=
10
;
...
...
@@ -272,7 +272,7 @@ int Ssw_FilterUsingSemi( Ssw_Man_t * pMan, int fCheckTargets, int nConfMax, int
}
if
(
fVerbose
)
{
printf
(
"AIG : C = %6d. Cl = %6d. Nodes = %6d. ConfMax = %6d. FramesMax = %6d.
\n
"
,
Abc_Print
(
1
,
"AIG : C = %6d. Cl = %6d. Nodes = %6d. ConfMax = %6d. FramesMax = %6d.
\n
"
,
Ssw_ClassesCand1Num
(
p
->
pMan
->
ppClasses
),
Ssw_ClassesClassNum
(
p
->
pMan
->
ppClasses
),
Aig_ManNodeNum
(
p
->
pMan
->
pAig
),
p
->
nConfMax
,
p
->
nFramesSweep
);
}
...
...
@@ -284,7 +284,7 @@ clk = clock();
Frames
=
Ssw_ManFilterBmc
(
p
,
Iter
,
fCheckTargets
);
if
(
fVerbose
)
{
printf
(
"%3d : C = %6d. Cl = %6d. NR = %6d. F = %3d. C = %5d. P = %3d. %s "
,
Abc_Print
(
1
,
"%3d : C = %6d. Cl = %6d. NR = %6d. F = %3d. C = %5d. P = %3d. %s "
,
Iter
,
Ssw_ClassesCand1Num
(
p
->
pMan
->
ppClasses
),
Ssw_ClassesClassNum
(
p
->
pMan
->
ppClasses
),
Aig_ManNodeNum
(
p
->
pMan
->
pFrames
),
Frames
,
(
int
)
p
->
pMan
->
pMSat
->
pSat
->
stats
.
conflicts
,
p
->
nPatterns
,
p
->
pMan
->
nSatFailsReal
?
"f"
:
" "
);
...
...
@@ -293,7 +293,7 @@ clk = clock();
Ssw_ManCleanup
(
p
->
pMan
);
if
(
fCheckTargets
&&
Ssw_SemCheckTargets
(
p
)
)
{
printf
(
"Target is hit!!!
\n
"
);
Abc_Print
(
1
,
"Target is hit!!!
\n
"
);
RetValue
=
1
;
}
if
(
p
->
nPatterns
>=
p
->
nPatternsAlloc
)
...
...
@@ -321,4 +321,3 @@ clk = clock();
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswSim.c
View file @
c3168ba6
...
...
@@ -461,10 +461,10 @@ int * Ssw_SmlCheckOutputSavePattern( Ssw_Sml_t * p, Aig_Obj_t * pObjPo )
Aig_ManForEachCi
(
p
->
pAig
,
pObjPi
,
i
)
{
pModel
[
i
]
=
Abc_InfoHasBit
(
Ssw_ObjSim
(
p
,
pObjPi
->
Id
),
BestPat
);
//
printf(
"%d", pModel[i] );
//
Abc_Print( 1,
"%d", pModel[i] );
}
pModel
[
Aig_ManCiNum
(
p
->
pAig
)]
=
pObjPo
->
Id
;
//
printf(
"\n" );
//
Abc_Print( 1,
"\n" );
return
pModel
;
}
...
...
@@ -1391,7 +1391,7 @@ Abc_Cex_t * Ssw_SmlGetCounterExample( Ssw_Sml_t * p )
// verify the counter example
if
(
!
Saig_ManVerifyCex
(
p
->
pAig
,
pCex
)
)
{
printf
(
"Ssw_SmlGetCounterExample(): Counter-example is invalid.
\n
"
);
Abc_Print
(
1
,
"Ssw_SmlGetCounterExample(): Counter-example is invalid.
\n
"
);
Abc_CexFree
(
pCex
);
pCex
=
NULL
;
}
...
...
@@ -1404,4 +1404,3 @@ Abc_Cex_t * Ssw_SmlGetCounterExample( Ssw_Sml_t * p )
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswSimSat.c
View file @
c3168ba6
...
...
@@ -66,13 +66,13 @@ void Ssw_ManResimulateBit( Ssw_Man_t * p, Aig_Obj_t * pCand, Aig_Obj_t * pRepr )
{
assert
(
RetValue1
);
if
(
RetValue1
==
0
)
printf
(
"
\n
Ssw_ManResimulateBit() Error: RetValue1 does not hold.
\n
"
);
Abc_Print
(
1
,
"
\n
Ssw_ManResimulateBit() Error: RetValue1 does not hold.
\n
"
);
}
else
{
assert
(
RetValue2
);
if
(
RetValue2
==
0
)
printf
(
"
\n
Ssw_ManResimulateBit() Error: RetValue2 does not hold.
\n
"
);
Abc_Print
(
1
,
"
\n
Ssw_ManResimulateBit() Error: RetValue2 does not hold.
\n
"
);
}
}
p
->
timeSimSat
+=
clock
()
-
clk
;
...
...
@@ -105,13 +105,13 @@ void Ssw_ManResimulateWord( Ssw_Man_t * p, Aig_Obj_t * pCand, Aig_Obj_t * pRepr,
{
assert
(
RetValue1
);
if
(
RetValue1
==
0
)
printf
(
"
\n
Ssw_ManResimulateWord() Error: RetValue1 does not hold.
\n
"
);
Abc_Print
(
1
,
"
\n
Ssw_ManResimulateWord() Error: RetValue1 does not hold.
\n
"
);
}
else
{
assert
(
RetValue2
);
if
(
RetValue2
==
0
)
printf
(
"
\n
Ssw_ManResimulateWord() Error: RetValue2 does not hold.
\n
"
);
Abc_Print
(
1
,
"
\n
Ssw_ManResimulateWord() Error: RetValue2 does not hold.
\n
"
);
}
p
->
timeSimSat
+=
clock
()
-
clk
;
}
...
...
@@ -122,4 +122,3 @@ p->timeSimSat += clock() - clk;
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswSweep.c
View file @
c3168ba6
...
...
@@ -98,7 +98,7 @@ void Ssw_CheckConstraints( Ssw_Man_t * p )
Counter
++
;
}
}
printf
(
"Total constraints = %d. Added constraints = %d.
\n
"
,
nConstrPairs
/
2
,
Counter
);
Abc_Print
(
1
,
"Total constraints = %d. Added constraints = %d.
\n
"
,
nConstrPairs
/
2
,
Counter
);
}
/**Function*************************************************************
...
...
@@ -248,7 +248,7 @@ p->timeMarkCones += clock() - clk;
assert
(
Aig_ObjRepr
(
p
->
pAig
,
pObj
)
!=
pObjRepr
);
if
(
Aig_ObjRepr
(
p
->
pAig
,
pObj
)
==
pObjRepr
)
{
printf
(
"Ssw_ManSweepNode(): Failed to refine representative.
\n
"
);
Abc_Print
(
1
,
"Ssw_ManSweepNode(): Failed to refine representative.
\n
"
);
}
return
1
;
}
...
...
@@ -340,14 +340,14 @@ void Ssw_ManDumpEquivMiter( Aig_Man_t * p, Vec_Int_t * vPairs, int Num )
pFile
=
fopen
(
pBuffer
,
"w"
);
if
(
pFile
==
NULL
)
{
printf
(
"Cannot open file %s for writing.
\n
"
,
pBuffer
);
Abc_Print
(
1
,
"Cannot open file %s for writing.
\n
"
,
pBuffer
);
return
;
}
fclose
(
pFile
);
pNew
=
Saig_ManCreateEquivMiter
(
p
,
vPairs
);
Ioa_WriteAiger
(
pNew
,
pBuffer
,
0
,
0
);
Aig_ManStop
(
pNew
);
printf
(
"AIG with %4d disproved equivs is dumped into file
\"
%s
\"
.
\n
"
,
Vec_IntSize
(
vPairs
)
/
2
,
pBuffer
);
Abc_Print
(
1
,
"AIG with %4d disproved equivs is dumped into file
\"
%s
\"
.
\n
"
,
Vec_IntSize
(
vPairs
)
/
2
,
pBuffer
);
}
...
...
@@ -435,4 +435,3 @@ p->timeReduce += clock() - clk;
ABC_NAMESPACE_IMPL_END
src/proof/ssw/sswUnique.c
View file @
c3168ba6
...
...
@@ -72,7 +72,7 @@ void Ssw_UniqueRegisterPairInfo( Ssw_Man_t * p )
Counter
=
0
;
Vec_IntForEachEntry
(
p
->
vDiffPairs
,
RetValue
,
i
)
Counter
+=
RetValue
;
//
printf(
"The number of different register pairs = %d.\n", Counter );
//
Abc_Print( 1,
"The number of different register pairs = %d.\n", Counter );
}
...
...
@@ -116,7 +116,7 @@ int Ssw_ManUniqueOne( Ssw_Man_t * p, Aig_Obj_t * pRepr, Aig_Obj_t * pObj, int fV
Vec_PtrShrink
(
p
->
vCommon
,
k
);
if
(
fVerbose
)
printf
(
"Node = %5d : Supp = %3d. Regs = %3d. Feasible = %s. "
,
Abc_Print
(
1
,
"Node = %5d : Supp = %3d. Regs = %3d. Feasible = %s. "
,
Aig_ObjId
(
pObj
),
RetValue
,
Vec_PtrSize
(
p
->
vCommon
),
fFeasible
?
"yes"
:
"no "
);
...
...
@@ -129,10 +129,10 @@ int Ssw_ManUniqueOne( Ssw_Man_t * p, Aig_Obj_t * pRepr, Aig_Obj_t * pObj, int fV
if
(
Value0
!=
Value1
)
RetValue
=
0
;
if
(
fVerbose
)
printf
(
"%d"
,
Value0
^
Value1
);
Abc_Print
(
1
,
"%d"
,
Value0
^
Value1
);
}
if
(
fVerbose
)
printf
(
"
\n
"
);
Abc_Print
(
1
,
"
\n
"
);
return
RetValue
&&
fFeasible
;
}
...
...
@@ -166,7 +166,7 @@ int Ssw_ManUniqueAddConstraint( Ssw_Man_t * p, Vec_Ptr_t * vCommon, int f1, int
}
if
(
Aig_ObjIsConst1
(
Aig_Regular
(
pTotal
))
)
{
//
printf(
"Skipped\n" );
//
Abc_Print( 1,
"Skipped\n" );
return
0
;
}
// create CNF
...
...
@@ -194,4 +194,3 @@ int Ssw_ManUniqueAddConstraint( Ssw_Man_t * p, Vec_Ptr_t * vCommon, int f1, int
ABC_NAMESPACE_IMPL_END
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment