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
ce6e6551
Commit
ce6e6551
authored
Jul 04, 2012
by
Alan Mishchenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Other improvements to &vta and &gla.
parent
9ebcd9ec
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
7 deletions
+28
-7
src/aig/gia/gia.h
+2
-1
src/aig/gia/giaAbsGla.c
+0
-0
src/aig/gia/giaAbsVta.c
+13
-1
src/base/abci/abc.c
+13
-5
No files found.
src/aig/gia/gia.h
View file @
ce6e6551
...
@@ -212,6 +212,7 @@ struct Gia_ParVta_t_
...
@@ -212,6 +212,7 @@ struct Gia_ParVta_t_
int
nRatioMin
;
// stop when less than this % of object is abstracted
int
nRatioMin
;
// stop when less than this % of object is abstracted
int
fUseTermVars
;
// use terminal variables
int
fUseTermVars
;
// use terminal variables
int
fUseRollback
;
// use rollback to the starting number of frames
int
fUseRollback
;
// use rollback to the starting number of frames
int
fPropFanout
;
// propagate fanout implications
int
fDumpVabs
;
// dumps the abstracted model
int
fDumpVabs
;
// dumps the abstracted model
char
*
pFileVabs
;
// dumps the abstracted model into this file
char
*
pFileVabs
;
// dumps the abstracted model into this file
int
fVerbose
;
// verbose flag
int
fVerbose
;
// verbose flag
...
@@ -698,7 +699,7 @@ extern int Gia_ManCbaPerform( Gia_Man_t * pGia, void * pPars );
...
@@ -698,7 +699,7 @@ extern int Gia_ManCbaPerform( Gia_Man_t * pGia, void * pPars );
extern
int
Gia_ManGlaCbaPerform
(
Gia_Man_t
*
pGia
,
void
*
pPars
,
int
fNaiveCnf
);
extern
int
Gia_ManGlaCbaPerform
(
Gia_Man_t
*
pGia
,
void
*
pPars
,
int
fNaiveCnf
);
extern
int
Gia_ManGlaPbaPerform
(
Gia_Man_t
*
pGia
,
void
*
pPars
,
int
fNewSolver
);
extern
int
Gia_ManGlaPbaPerform
(
Gia_Man_t
*
pGia
,
void
*
pPars
,
int
fNewSolver
);
/*=== giaAbsGla.c ===========================================================*/
/*=== giaAbsGla.c ===========================================================*/
extern
int
Gia_GlaPerform
(
Gia_Man_t
*
p
,
Gia_ParVta_t
*
pPars
);
extern
int
Gia_GlaPerform
(
Gia_Man_t
*
p
,
Gia_ParVta_t
*
pPars
,
int
fStartVta
);
/*=== giaAbsVta.c ===========================================================*/
/*=== giaAbsVta.c ===========================================================*/
extern
void
Gia_VtaSetDefaultParams
(
Gia_ParVta_t
*
p
);
extern
void
Gia_VtaSetDefaultParams
(
Gia_ParVta_t
*
p
);
extern
Vec_Ptr_t
*
Gia_VtaAbsToFrames
(
Vec_Int_t
*
vAbs
);
extern
Vec_Ptr_t
*
Gia_VtaAbsToFrames
(
Vec_Int_t
*
vAbs
);
...
...
src/aig/gia/giaAbsGla.c
View file @
ce6e6551
This diff is collapsed.
Click to expand it.
src/aig/gia/giaAbsVta.c
View file @
ce6e6551
...
@@ -126,7 +126,7 @@ static inline int Vta_ObjId( Vta_Man_t * p, Vta_Obj_t * pObj ) { assert
...
@@ -126,7 +126,7 @@ static inline int Vta_ObjId( Vta_Man_t * p, Vta_Obj_t * pObj ) { assert
// - the first entry is the number of timeframes (F)
// - the first entry is the number of timeframes (F)
// - the next (F+1) entries give the beginning position of each timeframe
// - the next (F+1) entries give the beginning position of each timeframe
// - the following entries give the object IDs
// - the following entries give the object IDs
// invariant: assert( vec[vec[0]+
2
] == size(vec) );
// invariant: assert( vec[vec[0]+
1
] == size(vec) );
extern
void
Vga_ManAddClausesOne
(
Vta_Man_t
*
p
,
int
iObj
,
int
iFrame
);
extern
void
Vga_ManAddClausesOne
(
Vta_Man_t
*
p
,
int
iObj
,
int
iFrame
);
...
@@ -1624,6 +1624,18 @@ int Gia_VtaPerformInt( Gia_Man_t * pAig, Gia_ParVta_t * pPars )
...
@@ -1624,6 +1624,18 @@ int Gia_VtaPerformInt( Gia_Man_t * pAig, Gia_ParVta_t * pPars )
// preconditions
// preconditions
assert
(
Gia_ManPoNum
(
pAig
)
==
1
);
assert
(
Gia_ManPoNum
(
pAig
)
==
1
);
assert
(
pPars
->
nFramesMax
==
0
||
pPars
->
nFramesStart
<=
pPars
->
nFramesMax
);
assert
(
pPars
->
nFramesMax
==
0
||
pPars
->
nFramesStart
<=
pPars
->
nFramesMax
);
/*
// compute intial abstraction
if ( pAig->vObjClasses == NULL )
{
pAig->vObjClasses = Vec_IntAlloc( 5 );
Vec_IntPush( pAig->vObjClasses, 1 );
Vec_IntPush( pAig->vObjClasses, 3 );
Vec_IntPush( pAig->vObjClasses, 4 );
Vec_IntPush( pAig->vObjClasses, Gia_ObjFaninId0p(pAig, Gia_ManPo(pAig, 0)) );
}
*/
// start the manager
// start the manager
p
=
Vga_ManStart
(
pAig
,
pPars
);
p
=
Vga_ManStart
(
pAig
,
pPars
);
p
->
pSat
->
fVerbose
=
p
->
pPars
->
fVerbose
;
p
->
pSat
->
fVerbose
=
p
->
pPars
->
fVerbose
;
...
...
src/base/abci/abc.c
View file @
ce6e6551
...
@@ -27382,12 +27382,12 @@ usage:
...
@@ -27382,12 +27382,12 @@ usage:
int
Abc_CommandAbc9Gla
(
Abc_Frame_t
*
pAbc
,
int
argc
,
char
**
argv
)
int
Abc_CommandAbc9Gla
(
Abc_Frame_t
*
pAbc
,
int
argc
,
char
**
argv
)
{
{
Gia_ParVta_t
Pars
,
*
pPars
=
&
Pars
;
Gia_ParVta_t
Pars
,
*
pPars
=
&
Pars
;
int
c
;
int
c
,
fStartVta
=
0
;
Gia_VtaSetDefaultParams
(
pPars
);
Gia_VtaSetDefaultParams
(
pPars
);
pPars
->
nFramesStart
=
30
;
pPars
->
nFramesStart
=
30
;
pPars
->
nLearntMax
=
100000
;
pPars
->
nLearntMax
=
100000
;
Extra_UtilGetoptReset
();
Extra_UtilGetoptReset
();
while
(
(
c
=
Extra_UtilGetopt
(
argc
,
argv
,
"FSPCLTRAtr
d
vh"
)
)
!=
EOF
)
while
(
(
c
=
Extra_UtilGetopt
(
argc
,
argv
,
"FSPCLTRAtr
fda
vh"
)
)
!=
EOF
)
{
{
switch
(
c
)
switch
(
c
)
{
{
...
@@ -27483,9 +27483,15 @@ int Abc_CommandAbc9Gla( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -27483,9 +27483,15 @@ int Abc_CommandAbc9Gla( Abc_Frame_t * pAbc, int argc, char ** argv )
case
'r'
:
case
'r'
:
pPars
->
fUseRollback
^=
1
;
pPars
->
fUseRollback
^=
1
;
break
;
break
;
case
'f'
:
pPars
->
fPropFanout
^=
1
;
break
;
case
'd'
:
case
'd'
:
pPars
->
fDumpVabs
^=
1
;
pPars
->
fDumpVabs
^=
1
;
break
;
break
;
case
'a'
:
fStartVta
^=
1
;
break
;
case
'v'
:
case
'v'
:
pPars
->
fVerbose
^=
1
;
pPars
->
fVerbose
^=
1
;
break
;
break
;
...
@@ -27525,14 +27531,14 @@ int Abc_CommandAbc9Gla( Abc_Frame_t * pAbc, int argc, char ** argv )
...
@@ -27525,14 +27531,14 @@ int Abc_CommandAbc9Gla( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print
(
1
,
"The starting frame should be 1 or larger.
\n
"
);
Abc_Print
(
1
,
"The starting frame should be 1 or larger.
\n
"
);
return
0
;
return
0
;
}
}
pAbc
->
Status
=
Gia_GlaPerform
(
pAbc
->
pGia
,
pPars
);
pAbc
->
Status
=
Gia_GlaPerform
(
pAbc
->
pGia
,
pPars
,
fStartVta
);
pAbc
->
nFrames
=
pPars
->
iFrame
;
pAbc
->
nFrames
=
pPars
->
iFrame
;
Abc_FrameReplaceCex
(
pAbc
,
&
pAbc
->
pGia
->
pCexSeq
);
Abc_FrameReplaceCex
(
pAbc
,
&
pAbc
->
pGia
->
pCexSeq
);
return
0
;
return
0
;
usage:
usage:
Abc_Print
(
-
2
,
"usage: &gla [-FSCLTR num] [-A file] [-
d
vh]
\n
"
);
Abc_Print
(
-
2
,
"usage: &gla [-FSCLTR num] [-A file] [-
fda
vh]
\n
"
);
Abc_Print
(
-
2
,
"
\t
refines abstracted object map with proof-based abstraction
\n
"
);
Abc_Print
(
-
2
,
"
\t
performs gate-level abstraction of a sequential miter
\n
"
);
Abc_Print
(
-
2
,
"
\t
-F num : the max number of timeframes to unroll [default = %d]
\n
"
,
pPars
->
nFramesMax
);
Abc_Print
(
-
2
,
"
\t
-F num : the max number of timeframes to unroll [default = %d]
\n
"
,
pPars
->
nFramesMax
);
Abc_Print
(
-
2
,
"
\t
-S num : the starting time frame (0=unused) [default = %d]
\n
"
,
pPars
->
nFramesStart
);
Abc_Print
(
-
2
,
"
\t
-S num : the starting time frame (0=unused) [default = %d]
\n
"
,
pPars
->
nFramesStart
);
// Abc_Print( -2, "\t-P num : the number of previous frames for UNSAT core [default = %d]\n", pPars->nFramesPast );
// Abc_Print( -2, "\t-P num : the number of previous frames for UNSAT core [default = %d]\n", pPars->nFramesPast );
...
@@ -27543,7 +27549,9 @@ usage:
...
@@ -27543,7 +27549,9 @@ usage:
Abc_Print
(
-
2
,
"
\t
-A file : file name for dumping abstrated model [default =
\"
glabs.aig
\"
]
\n
"
);
Abc_Print
(
-
2
,
"
\t
-A file : file name for dumping abstrated model [default =
\"
glabs.aig
\"
]
\n
"
);
// Abc_Print( -2, "\t-t : toggle using terminal variables [default = %s]\n", pPars->fUseTermVars? "yes": "no" );
// Abc_Print( -2, "\t-t : toggle using terminal variables [default = %s]\n", pPars->fUseTermVars? "yes": "no" );
// Abc_Print( -2, "\t-r : toggle using rollback after the starting frames [default = %s]\n", pPars->fUseRollback? "yes": "no" );
// Abc_Print( -2, "\t-r : toggle using rollback after the starting frames [default = %s]\n", pPars->fUseRollback? "yes": "no" );
Abc_Print
(
-
2
,
"
\t
-f : toggle propagating fanout implications [default = %s]
\n
"
,
pPars
->
fPropFanout
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-d : toggle dumping abstracted model into a file [default = %s]
\n
"
,
pPars
->
fDumpVabs
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-d : toggle dumping abstracted model into a file [default = %s]
\n
"
,
pPars
->
fDumpVabs
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-a : toggle using VTA to kick start GLA [default = %s]
\n
"
,
fStartVta
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-v : toggle printing verbose information [default = %s]
\n
"
,
pPars
->
fVerbose
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-v : toggle printing verbose information [default = %s]
\n
"
,
pPars
->
fVerbose
?
"yes"
:
"no"
);
Abc_Print
(
-
2
,
"
\t
-h : print the command usage
\n
"
);
Abc_Print
(
-
2
,
"
\t
-h : print the command usage
\n
"
);
return
1
;
return
1
;
...
...
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