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
902a78ee
Commit
902a78ee
authored
Feb 28, 2017
by
Yen-Sheng Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added an option -r to %pdra: proof-based refinement only
parent
d95d51c4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
21 additions
and
8 deletions
+21
-8
src/base/wlc/wlc.h
+5
-4
src/base/wlc/wlcAbs.c
+10
-3
src/base/wlc/wlcCom.c
+5
-1
src/base/wlc/wlcNtk.c
+1
-0
No files found.
src/base/wlc/wlc.h
View file @
902a78ee
...
...
@@ -171,11 +171,12 @@ struct Wlc_Par_t_
int
nIterMax
;
// the max number of iterations
int
nLimit
;
// the max number of signals
int
fXorOutput
;
// XOR outputs of word-level miter
int
fCheckClauses
;
// Check clauses in the reloaded trace
int
fPushClauses
;
// Push clauses in the reloaded trace
int
fMFFC
;
// Refine the entire MFFC of a PPI
int
fPdra
;
// Use pdr -nct
int
fCheckClauses
;
// Check clauses in the reloaded trace
int
fPushClauses
;
// Push clauses in the reloaded trace
int
fMFFC
;
// Refine the entire MFFC of a PPI
int
fPdra
;
// Use pdr -nct
int
fProofRefine
;
// Use proof-based refinement
int
fHybrid
;
// Use a hybrid of CBR and PBR
int
fVerbose
;
// verbose output
int
fPdrVerbose
;
// verbose output
};
...
...
src/base/wlc/wlcAbs.c
View file @
902a78ee
...
...
@@ -1107,9 +1107,16 @@ int Wlc_NtkPdrAbs( Wlc_Ntk_t * p, Wlc_Par_t * pPars )
}
// perform refinement
clk2
=
Abc_Clock
();
vRefine
=
Wlc_NtkAbsRefinement
(
p
,
pGia
,
pCex
,
vPisNew
);
tCbr
+=
Abc_Clock
()
-
clk2
;
if
(
pPars
->
fHybrid
||
!
pPars
->
fProofRefine
)
{
clk2
=
Abc_Clock
();
vRefine
=
Wlc_NtkAbsRefinement
(
p
,
pGia
,
pCex
,
vPisNew
);
tCbr
+=
Abc_Clock
()
-
clk2
;
}
else
// proof-based only
{
vRefine
=
Vec_IntDup
(
vPisNew
);
}
if
(
pPars
->
fProofRefine
)
{
clk2
=
Abc_Clock
();
...
...
src/base/wlc/wlcCom.c
View file @
902a78ee
...
...
@@ -462,7 +462,7 @@ int Abc_CommandPdrAbs( Abc_Frame_t * pAbc, int argc, char ** argv )
int
c
;
Wlc_ManSetDefaultParams
(
pPars
);
Extra_UtilGetoptReset
();
while
(
(
c
=
Extra_UtilGetopt
(
argc
,
argv
,
"AMXFILabcpmxvwh"
)
)
!=
EOF
)
while
(
(
c
=
Extra_UtilGetopt
(
argc
,
argv
,
"AMXFILab
r
cpmxvwh"
)
)
!=
EOF
)
{
switch
(
c
)
{
...
...
@@ -538,6 +538,9 @@ int Abc_CommandPdrAbs( Abc_Frame_t * pAbc, int argc, char ** argv )
case
'b'
:
pPars
->
fProofRefine
^=
1
;
break
;
case
'r'
:
pPars
->
fHybrid
^=
1
;
break
;
case
'x'
:
pPars
->
fXorOutput
^=
1
;
break
;
...
...
@@ -581,6 +584,7 @@ usage:
Abc_Print
(
-
2
,
"
\t
-x : toggle XORing outputs of word-level miter [default = %s]
\n
"
,
pPars
->
fXorOutput
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-a : toggle running pdr with -nct [default = %s]
\n
"
,
pPars
->
fPdra
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-b : toggle using proof-based refinement [default = %s]
\n
"
,
pPars
->
fProofRefine
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-r : toggle using both cex-based and proof-based refinement [default = %s]
\n
"
,
pPars
->
fHybrid
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-c : toggle checking clauses in the reloaded trace [default = %s]
\n
"
,
pPars
->
fCheckClauses
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-p : toggle pushing clauses in the reloaded trace [default = %s]
\n
"
,
pPars
->
fPushClauses
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-m : toggle refining the whole MFFC of a PPI [default = %s]
\n
"
,
pPars
->
fMFFC
?
"yes"
:
"no"
);
...
...
src/base/wlc/wlcNtk.c
View file @
902a78ee
...
...
@@ -120,6 +120,7 @@ void Wlc_ManSetDefaultParams( Wlc_Par_t * pPars )
pPars
->
fMFFC
=
1
;
// Refine the entire MFFC of a PPI
pPars
->
fPdra
=
0
;
// Use pdr -nct
pPars
->
fProofRefine
=
0
;
// Use proof-based refinement
pPars
->
fHybrid
=
1
;
// Use a hybrid of CBR and PBR
pPars
->
fVerbose
=
0
;
// verbose output`
pPars
->
fPdrVerbose
=
0
;
// show verbose PDR output
}
...
...
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