Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F19834640
bsat2.hpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Size
3 KB
Referenced Files
None
Subscribers
None
bsat2.hpp
View Options
#pragma once
#include
"solver_wrapper.hpp"
namespace
percy
{
class
bsat_wrapper
:
public
solver_wrapper
{
private
:
pabc
::
sat_solver
*
solver
=
NULL
;
public
:
bsat_wrapper
()
{
solver
=
pabc
::
sat_solver_new
();
}
~
bsat_wrapper
()
{
pabc
::
sat_solver_delete
(
solver
);
solver
=
NULL
;
}
void
restart
()
{
pabc
::
sat_solver_restart
(
solver
);
}
void
set_nr_vars
(
int
nr_vars
)
{
pabc
::
sat_solver_setnvars
(
solver
,
nr_vars
);
}
int
nr_vars
()
{
return
pabc
::
sat_solver_nvars
(
solver
);
}
int
nr_clauses
()
{
return
pabc
::
sat_solver_nclauses
(
solver
);
}
int
nr_conflicts
()
{
return
pabc
::
sat_solver_nconflicts
(
solver
);
}
int
add_clause
(
pabc
::
lit
*
begin
,
pabc
::
lit
*
end
)
{
return
pabc
::
sat_solver_addclause
(
solver
,
begin
,
end
);
}
/* mockturtle style clause */
int
add_clause
(
std
::
vector
<
uint32_t
>
const
&
clause
)
{
auto
lits
=
(
int
*
)(
const_cast
<
uint32_t
*>
(
clause
.
data
()));
return
pabc
::
sat_solver_addclause
(
solver
,
lits
,
lits
+
clause
.
size
());
}
void
add_var
()
{
pabc
::
sat_solver_addvar
(
solver
);
}
int
var_value
(
int
var
)
{
return
pabc
::
sat_solver_var_value
(
solver
,
var
);
}
synth_result
solve
(
int
cl
)
{
auto
res
=
pabc
::
sat_solver_solve
(
solver
,
0
,
0
,
cl
,
0
,
0
,
0
);
if
(
res
==
1
)
{
return
success
;
}
else
if
(
res
==
-1
)
{
return
failure
;
}
else
{
return
timeout
;
}
}
synth_result
solve
(
pabc
::
lit
*
begin
,
pabc
::
lit
*
end
,
int
cl
)
{
auto
res
=
pabc
::
sat_solver_solve
(
solver
,
begin
,
end
,
cl
,
0
,
0
,
0
);
if
(
res
==
1
)
{
return
success
;
}
else
if
(
res
==
-1
)
{
return
failure
;
}
else
{
return
timeout
;
}
}
void
set_nLearntMax
(
int
nLearntMax
)
{
solver
->
nLearntMax
=
nLearntMax
;
}
void
set_nLearntStart
(
int
nLearntStart
)
{
solver
->
nLearntStart
=
nLearntStart
;
}
void
set_nLearntDelta
(
int
nLearntDelta
)
{
solver
->
nLearntDelta
=
nLearntDelta
;
}
void
set_nLearntRatio
(
int
nLearntRatio
)
{
solver
->
nLearntRatio
=
nLearntRatio
;
}
void
set_random_seed
(
int
random_seed
)
{
solver
->
random_seed
=
random_seed
;
}
void
set_fSkipSimplify
(
int
fSkipSimplify
)
{
solver
->
fSkipSimplify
=
fSkipSimplify
;
}
void
set_fNoRestarts
(
int
fNoRestarts
)
{
solver
->
fNoRestarts
=
fNoRestarts
;
}
void
set_VarActType
(
int
VarActType
)
{
solver
->
VarActType
=
VarActType
;
}
void
set_ClaActType
(
int
ClaActType
)
{
solver
->
ClaActType
=
ClaActType
;
}
void
init_activities
()
{
solver_init_activities
(
solver
);
}
};
}
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Sun, Jul 12, 5:59 PM (6 m, 55 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
349314
Default Alt Text
bsat2.hpp (3 KB)
Attached To
Mode
R272 SoC_NEM_Synthesis
Attached
Detach File
Event Timeline
Log In to Comment