ABC: A System for Sequential Synthesis and Verification
Loading...
Searching...
No Matches
main.h
Go to the documentation of this file.
1
/*
2
* Revision Control Information
3
*
4
* $Source$
5
* $Author$
6
* $Revision$
7
* $Date$
8
*
9
*/
10
enum
keys
{
11
KEY_ESPRESSO
,
KEY_PLA_verify
,
KEY_check
,
KEY_contain
,
KEY_d1merge
,
12
KEY_disjoint
,
KEY_dsharp
,
KEY_echo
,
KEY_essen
,
KEY_exact
,
KEY_expand
,
13
KEY_gasp
,
KEY_intersect
,
KEY_irred
,
KEY_lexsort
,
KEY_make_sparse
,
14
KEY_map
,
KEY_mapdc
,
KEY_minterms
,
KEY_opo
,
KEY_opoall
,
15
KEY_pair
,
KEY_pairall
,
KEY_primes
,
KEY_qm
,
KEY_reduce
,
KEY_sharp
,
16
KEY_simplify
,
KEY_so
,
KEY_so_both
,
KEY_stats
,
KEY_super_gasp
,
KEY_taut
,
17
KEY_test
,
KEY_equiv
,
KEY_union
,
KEY_verify
,
KEY_MANY_ESPRESSO
,
18
KEY_separate
,
KEY_xor
,
KEY_d1merge_in
,
KEY_fsm
,
19
KEY_unknown
20
};
21
22
/* Lookup table for program options */
23
struct
{
24
char
*
name
;
25
enum
keys
key
;
26
int
num_plas
;
27
bool
needs_offset
;
28
bool
needs_dcset
;
29
}
option_table
[] = {
30
/* ways to minimize functions */
31
"ESPRESSO"
,
KEY_ESPRESSO
, 1,
TRUE
,
TRUE
,
/* must be first */
32
"many"
,
KEY_MANY_ESPRESSO
, 1,
TRUE
,
TRUE
,
33
"exact"
,
KEY_exact
, 1,
TRUE
,
TRUE
,
34
"qm"
,
KEY_qm
, 1,
TRUE
,
TRUE
,
35
"single_output"
,
KEY_so
, 1,
TRUE
,
TRUE
,
36
"so"
,
KEY_so
, 1,
TRUE
,
TRUE
,
37
"so_both"
,
KEY_so_both
, 1,
TRUE
,
TRUE
,
38
"simplify"
,
KEY_simplify
, 1,
FALSE
,
FALSE
,
39
"echo"
,
KEY_echo
, 1,
FALSE
,
FALSE
,
40
41
/* output phase assignment and assignment of inputs to two-bit decoders */
42
"opo"
,
KEY_opo
, 1,
TRUE
,
TRUE
,
43
"opoall"
,
KEY_opoall
, 1,
TRUE
,
TRUE
,
44
"pair"
,
KEY_pair
, 1,
TRUE
,
TRUE
,
45
"pairall"
,
KEY_pairall
, 1,
TRUE
,
TRUE
,
46
47
/* Ways to check covers */
48
"check"
,
KEY_check
, 1,
TRUE
,
TRUE
,
49
"stats"
,
KEY_stats
, 1,
FALSE
,
FALSE
,
50
"verify"
,
KEY_verify
, 2,
FALSE
,
TRUE
,
51
"PLAverify"
,
KEY_PLA_verify
, 2,
FALSE
,
TRUE
,
52
53
/* hacks */
54
"equiv"
,
KEY_equiv
, 1,
TRUE
,
TRUE
,
55
"map"
,
KEY_map
, 1,
FALSE
,
FALSE
,
56
"mapdc"
,
KEY_mapdc
, 1,
FALSE
,
FALSE
,
57
"fsm"
,
KEY_fsm
, 1,
FALSE
,
TRUE
,
58
59
/* the basic boolean operations on covers */
60
"contain"
,
KEY_contain
, 1,
FALSE
,
FALSE
,
61
"d1merge"
,
KEY_d1merge
, 1,
FALSE
,
FALSE
,
62
"d1merge_in"
,
KEY_d1merge_in
, 1,
FALSE
,
FALSE
,
63
"disjoint"
,
KEY_disjoint
, 1,
TRUE
,
FALSE
,
64
"dsharp"
,
KEY_dsharp
, 2,
FALSE
,
FALSE
,
65
"intersect"
,
KEY_intersect
, 2,
FALSE
,
FALSE
,
66
"minterms"
,
KEY_minterms
, 1,
FALSE
,
FALSE
,
67
"primes"
,
KEY_primes
, 1,
FALSE
,
TRUE
,
68
"separate"
,
KEY_separate
, 1,
TRUE
,
TRUE
,
69
"sharp"
,
KEY_sharp
, 2,
FALSE
,
FALSE
,
70
"union"
,
KEY_union
, 2,
FALSE
,
FALSE
,
71
"xor"
,
KEY_xor
, 2,
TRUE
,
TRUE
,
72
73
/* debugging only -- call each step of the espresso algorithm */
74
"essen"
,
KEY_essen
, 1,
FALSE
,
TRUE
,
75
"expand"
,
KEY_expand
, 1,
TRUE
,
FALSE
,
76
"gasp"
,
KEY_gasp
, 1,
TRUE
,
TRUE
,
77
"irred"
,
KEY_irred
, 1,
FALSE
,
TRUE
,
78
"make_sparse"
,
KEY_make_sparse
, 1,
TRUE
,
TRUE
,
79
"reduce"
,
KEY_reduce
, 1,
FALSE
,
TRUE
,
80
"taut"
,
KEY_taut
, 1,
FALSE
,
FALSE
,
81
"super_gasp"
,
KEY_super_gasp
, 1,
TRUE
,
TRUE
,
82
"lexsort"
,
KEY_lexsort
, 1,
FALSE
,
FALSE
,
83
"test"
,
KEY_test
, 1,
TRUE
,
TRUE
,
84
0,
KEY_unknown
, 0,
FALSE
,
FALSE
/* must be last */
85
};
86
87
88
struct
{
89
char
*
name
;
90
int
value
;
91
}
debug_table
[] = {
92
""
,
EXPAND
+
ESSEN
+
IRRED
+
REDUCE
+
SPARSE
+
GASP
+
SHARP
+
MINCOV
,
93
"compl"
,
COMPL
,
"essen"
,
ESSEN
,
94
"expand"
,
EXPAND
,
"expand1"
,
EXPAND1
|
EXPAND
,
95
"irred"
,
IRRED
,
"irred1"
,
IRRED1
|
IRRED
,
96
"reduce"
,
REDUCE
,
"reduce1"
,
REDUCE1
|
REDUCE
,
97
"mincov"
,
MINCOV
,
"mincov1"
,
MINCOV1
|
MINCOV
,
98
"sparse"
,
SPARSE
,
"sharp"
,
SHARP
,
99
"taut"
,
TAUT
,
"gasp"
,
GASP
,
100
"exact"
,
EXACT
,
101
0,
102
};
103
104
105
struct
{
106
char
*
name
;
107
int
*
variable
;
108
int
value
;
109
}
esp_opt_table
[] = {
110
"eat"
, &
echo_comments
,
FALSE
,
111
"eatdots"
, &
echo_unknown_commands
,
FALSE
,
112
"fast"
, &
single_expand
,
TRUE
,
113
"kiss"
, &
kiss
,
TRUE
,
114
"ness"
, &
remove_essential
,
FALSE
,
115
"nirr"
, &
force_irredundant
,
FALSE
,
116
"nunwrap"
, &
unwrap_onset
,
FALSE
,
117
"onset"
, &
recompute_onset
,
TRUE
,
118
"pos"
, &
pos
,
TRUE
,
119
"random"
, &
use_random_order
,
TRUE
,
120
"strong"
, &
use_super_gasp
,
TRUE
,
121
0,
122
};
TRUE
#define TRUE
Definition
abcBm.c:38
FALSE
#define FALSE
Definition
abcBm.c:37
value
ABC_NAMESPACE_IMPL_START typedef signed char value
Definition
cadical_kitten.c:19
ESSEN
#define ESSEN
Definition
espresso.h:352
REDUCE1
#define REDUCE1
Definition
espresso.h:358
COMPL
#define COMPL
Definition
espresso.h:351
MINCOV
#define MINCOV
Definition
espresso.h:362
recompute_onset
bool recompute_onset
Definition
globals.c:32
EXPAND1
#define EXPAND1
Definition
espresso.h:354
echo_unknown_commands
bool echo_unknown_commands
Definition
globals.c:26
EXPAND
#define EXPAND
Definition
espresso.h:353
GASP
#define GASP
Definition
espresso.h:355
TAUT
#define TAUT
Definition
espresso.h:360
kiss
bool kiss
Definition
globals.c:29
single_expand
bool single_expand
Definition
globals.c:34
REDUCE
#define REDUCE
Definition
espresso.h:357
IRRED1
#define IRRED1
Definition
espresso.h:365
MINCOV1
#define MINCOV1
Definition
espresso.h:363
remove_essential
bool remove_essential
Definition
globals.c:33
use_super_gasp
bool use_super_gasp
Definition
globals.c:39
SHARP
#define SHARP
Definition
espresso.h:364
force_irredundant
bool force_irredundant
Definition
globals.c:27
use_random_order
bool use_random_order
Definition
globals.c:38
pos
bool pos
Definition
globals.c:30
unwrap_onset
bool unwrap_onset
Definition
globals.c:37
SPARSE
#define SPARSE
Definition
espresso.h:359
EXACT
#define EXACT
Definition
espresso.h:361
echo_comments
bool echo_comments
Definition
globals.c:25
IRRED
#define IRRED
Definition
espresso.h:356
num_plas
int num_plas
Definition
main.h:26
needs_dcset
bool needs_dcset
Definition
main.h:28
variable
int * variable
Definition
main.h:107
keys
keys
Definition
main.h:10
KEY_stats
@ KEY_stats
Definition
main.h:16
KEY_essen
@ KEY_essen
Definition
main.h:12
KEY_gasp
@ KEY_gasp
Definition
main.h:13
KEY_opoall
@ KEY_opoall
Definition
main.h:14
KEY_exact
@ KEY_exact
Definition
main.h:12
KEY_mapdc
@ KEY_mapdc
Definition
main.h:14
KEY_taut
@ KEY_taut
Definition
main.h:16
KEY_super_gasp
@ KEY_super_gasp
Definition
main.h:16
KEY_union
@ KEY_union
Definition
main.h:17
KEY_test
@ KEY_test
Definition
main.h:17
KEY_echo
@ KEY_echo
Definition
main.h:12
KEY_irred
@ KEY_irred
Definition
main.h:13
KEY_make_sparse
@ KEY_make_sparse
Definition
main.h:13
KEY_intersect
@ KEY_intersect
Definition
main.h:13
KEY_expand
@ KEY_expand
Definition
main.h:12
KEY_reduce
@ KEY_reduce
Definition
main.h:15
KEY_so_both
@ KEY_so_both
Definition
main.h:16
KEY_dsharp
@ KEY_dsharp
Definition
main.h:12
KEY_check
@ KEY_check
Definition
main.h:11
KEY_d1merge_in
@ KEY_d1merge_in
Definition
main.h:18
KEY_unknown
@ KEY_unknown
Definition
main.h:19
KEY_d1merge
@ KEY_d1merge
Definition
main.h:11
KEY_PLA_verify
@ KEY_PLA_verify
Definition
main.h:11
KEY_qm
@ KEY_qm
Definition
main.h:15
KEY_equiv
@ KEY_equiv
Definition
main.h:17
KEY_so
@ KEY_so
Definition
main.h:16
KEY_contain
@ KEY_contain
Definition
main.h:11
KEY_separate
@ KEY_separate
Definition
main.h:18
KEY_simplify
@ KEY_simplify
Definition
main.h:16
KEY_sharp
@ KEY_sharp
Definition
main.h:15
KEY_ESPRESSO
@ KEY_ESPRESSO
Definition
main.h:11
KEY_map
@ KEY_map
Definition
main.h:14
KEY_primes
@ KEY_primes
Definition
main.h:15
KEY_fsm
@ KEY_fsm
Definition
main.h:18
KEY_verify
@ KEY_verify
Definition
main.h:17
KEY_lexsort
@ KEY_lexsort
Definition
main.h:13
KEY_disjoint
@ KEY_disjoint
Definition
main.h:12
KEY_xor
@ KEY_xor
Definition
main.h:18
KEY_pair
@ KEY_pair
Definition
main.h:15
KEY_MANY_ESPRESSO
@ KEY_MANY_ESPRESSO
Definition
main.h:17
KEY_minterms
@ KEY_minterms
Definition
main.h:14
KEY_opo
@ KEY_opo
Definition
main.h:14
KEY_pairall
@ KEY_pairall
Definition
main.h:15
esp_opt_table
struct @060113036201364324367155034342073342004372134160 esp_opt_table[]
name
char * name
Definition
main.h:24
debug_table
struct @326027241050146061117104276160063134244164301102 debug_table[]
key
enum keys key
Definition
main.h:25
needs_offset
bool needs_offset
Definition
main.h:27
option_table
struct @343331366030336041362022230040300014147206137312 option_table[]
src
misc
espresso
main.h
Generated by Doxygen 1.13.2 © 2025 EPTansuo. All rights reserved.
鲁ICP备2021046540号