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
16ef095f
Commit
16ef095f
authored
Mar 30, 2017
by
Yen-Sheng Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
%pdra: fixed bugs
parent
1cb140bb
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
23 additions
and
8 deletions
+23
-8
src/base/wlc/wlcAbs.c
+22
-7
src/base/wlc/wlcPth.c
+1
-1
No files found.
src/base/wlc/wlcAbs.c
View file @
16ef095f
...
...
@@ -213,7 +213,7 @@ void Wlc_NtkAbsAnalyzeRefine( Wlc_Ntk_t * p, Vec_Int_t * vBlacks, Vec_Bit_t * vU
Vec_IntFree
(
vSuppRefs
);
}
static
Vec_Int_t
*
Wlc_NtkGetCoreSels
(
Gia_Man_t
*
pFrames
,
int
nFrames
,
int
first_sel_pi
,
int
num_sel_pis
,
Vec_Bit_t
*
vMark
,
int
nConfLimit
,
Wlc_Par_t
*
pPars
,
int
fSetPO
)
static
Vec_Int_t
*
Wlc_NtkGetCoreSels
(
Gia_Man_t
*
pFrames
,
int
nFrames
,
int
first_sel_pi
,
int
num_sel_pis
,
Vec_Bit_t
*
vMark
,
int
nConfLimit
,
Wlc_Par_t
*
pPars
,
int
fSetPO
,
int
RunId
)
{
Vec_Int_t
*
vCores
=
NULL
;
Aig_Man_t
*
pAigFrames
=
Gia_ManToAigSimple
(
pFrames
);
...
...
@@ -222,6 +222,11 @@ static Vec_Int_t * Wlc_NtkGetCoreSels( Gia_Man_t * pFrames, int nFrames, int fir
int
i
;
sat_solver_setnvars
(
pSat
,
pCnf
->
nVars
);
if
(
RunId
>=
0
)
{
pSat
->
RunId
=
RunId
;
pSat
->
pFuncStop
=
Wla_CallBackToStop
;
}
for
(
i
=
0
;
i
<
pCnf
->
nClauses
;
i
++
)
{
...
...
@@ -666,7 +671,7 @@ static Wlc_Ntk_t * Wlc_NtkAbs2( Wlc_Ntk_t * pNtk, Vec_Int_t * vBlacks, Vec_Int_t
return
pNew
;
}
static
Vec_Bit_t
*
Wlc_NtkProofReduce
(
Wlc_Ntk_t
*
p
,
Wlc_Par_t
*
pPars
,
int
nFrames
,
Vec_Int_t
*
vWhites
,
Vec_Int_t
*
vBlacks
)
static
Vec_Bit_t
*
Wlc_NtkProofReduce
(
Wlc_Ntk_t
*
p
,
Wlc_Par_t
*
pPars
,
int
nFrames
,
Vec_Int_t
*
vWhites
,
Vec_Int_t
*
vBlacks
,
int
RunId
)
{
Gia_Man_t
*
pGiaFrames
;
Wlc_Ntk_t
*
pNtkWithChoices
=
NULL
;
...
...
@@ -683,10 +688,13 @@ static Vec_Bit_t * Wlc_NtkProofReduce( Wlc_Ntk_t * p, Wlc_Par_t * pPars, int nFr
pGiaFrames
=
Wlc_NtkUnrollWoCex
(
pNtkWithChoices
,
nFrames
,
first_sel_pi
,
Vec_IntSize
(
vWhites
)
);
vChoiceMark
=
Vec_BitStartFull
(
Vec_IntSize
(
vWhites
)
);
vCoreSels
=
Wlc_NtkGetCoreSels
(
pGiaFrames
,
nFrames
,
first_sel_pi
,
Vec_IntSize
(
vWhites
),
vChoiceMark
,
0
,
pPars
,
0
);
vCoreSels
=
Wlc_NtkGetCoreSels
(
pGiaFrames
,
nFrames
,
first_sel_pi
,
Vec_IntSize
(
vWhites
),
vChoiceMark
,
0
,
pPars
,
0
,
RunId
);
Wlc_NtkFree
(
pNtkWithChoices
);
Gia_ManStop
(
pGiaFrames
);
if
(
vCoreSels
==
NULL
)
return
NULL
;
Vec_BitReset
(
vChoiceMark
);
Vec_IntForEachEntry
(
vCoreSels
,
Entry
,
i
)
...
...
@@ -729,9 +737,9 @@ static int Wlc_NtkProofRefine( Wlc_Ntk_t * p, Wlc_Par_t * pPars, Abc_Cex_t * pCe
pGiaFrames
=
Wlc_NtkUnrollWithCex
(
pNtkWithChoices
,
pCex
,
Wlc_NtkNumPiBits
(
p
),
Vec_IntSize
(
vBlacks
),
&
num_ppis
,
0
,
pPars
->
fProofUsePPI
);
if
(
!
pPars
->
fProofUsePPI
)
vCoreSels
=
Wlc_NtkGetCoreSels
(
pGiaFrames
,
pCex
->
iFrame
+
1
,
num_ppis
,
Vec_IntSize
(
vBlacks
),
vChoiceMark
,
0
,
pPars
,
0
);
vCoreSels
=
Wlc_NtkGetCoreSels
(
pGiaFrames
,
pCex
->
iFrame
+
1
,
num_ppis
,
Vec_IntSize
(
vBlacks
),
vChoiceMark
,
0
,
pPars
,
0
,
-
1
);
else
vCoreSels
=
Wlc_NtkGetCoreSels
(
pGiaFrames
,
pCex
->
iFrame
+
1
,
0
,
Vec_IntSize
(
vBlacks
),
vChoiceMark
,
0
,
pPars
,
0
);
vCoreSels
=
Wlc_NtkGetCoreSels
(
pGiaFrames
,
pCex
->
iFrame
+
1
,
0
,
Vec_IntSize
(
vBlacks
),
vChoiceMark
,
0
,
pPars
,
0
,
-
1
);
Wlc_NtkFree
(
pNtkWithChoices
);
Gia_ManStop
(
pGiaFrames
);
...
...
@@ -1331,14 +1339,21 @@ Vec_Int_t * Wla_ManCollectNodes( Wla_Man_t * pWla, int fBlack )
return
vNodes
;
}
int
Wla_ManShrinkAbs
(
Wla_Man_t
*
pWla
,
int
nFrames
)
int
Wla_ManShrinkAbs
(
Wla_Man_t
*
pWla
,
int
nFrames
,
int
RunId
)
{
int
i
,
Entry
;
int
RetValue
=
0
;
Vec_Int_t
*
vWhites
=
Wla_ManCollectNodes
(
pWla
,
0
);
Vec_Int_t
*
vBlacks
=
Wla_ManCollectNodes
(
pWla
,
1
);
Vec_Bit_t
*
vCoreMarks
=
Wlc_NtkProofReduce
(
pWla
->
p
,
pWla
->
pPars
,
nFrames
,
vWhites
,
vBlacks
);
Vec_Bit_t
*
vCoreMarks
=
Wlc_NtkProofReduce
(
pWla
->
p
,
pWla
->
pPars
,
nFrames
,
vWhites
,
vBlacks
,
RunId
);
if
(
vCoreMarks
==
NULL
)
{
Vec_IntFree
(
vWhites
);
Vec_IntFree
(
vBlacks
);
return
-
1
;
}
RetValue
=
Vec_IntSize
(
vWhites
)
!=
Vec_BitCount
(
vCoreMarks
);
...
...
src/base/wlc/wlcPth.c
View file @
16ef095f
...
...
@@ -122,7 +122,7 @@ void * Wla_Bmc3Thread ( void * pArg )
RetValue
=
Wla_ManShrinkAbs
(
pData
->
pWla
,
pData
->
pWla
->
iCexFrame
+
nFramesNoChangeLim
);
pData
->
pWla
->
iCexFrame
+=
nFramesNoChangeLim
;
if
(
RetValue
)
if
(
RetValue
==
1
)
{
pData
->
pWla
->
fNewAbs
=
1
;
status
=
pthread_mutex_lock
(
&
g_mutex
);
assert
(
status
==
0
);
...
...
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