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 */
21
22/* Lookup table for program options */
23struct {
24 char *name;
25 enum keys key;
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
88struct {
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,
103
104
105struct {
106 char *name;
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,
#define TRUE
Definition abcBm.c:38
#define FALSE
Definition abcBm.c:37
ABC_NAMESPACE_IMPL_START typedef signed char value
#define ESSEN
Definition espresso.h:352
#define REDUCE1
Definition espresso.h:358
#define COMPL
Definition espresso.h:351
#define MINCOV
Definition espresso.h:362
bool recompute_onset
Definition globals.c:32
#define EXPAND1
Definition espresso.h:354
bool echo_unknown_commands
Definition globals.c:26
#define EXPAND
Definition espresso.h:353
#define GASP
Definition espresso.h:355
#define TAUT
Definition espresso.h:360
bool kiss
Definition globals.c:29
bool single_expand
Definition globals.c:34
#define REDUCE
Definition espresso.h:357
#define IRRED1
Definition espresso.h:365
#define MINCOV1
Definition espresso.h:363
bool remove_essential
Definition globals.c:33
bool use_super_gasp
Definition globals.c:39
#define SHARP
Definition espresso.h:364
bool force_irredundant
Definition globals.c:27
bool use_random_order
Definition globals.c:38
bool pos
Definition globals.c:30
bool unwrap_onset
Definition globals.c:37
#define SPARSE
Definition espresso.h:359
#define EXACT
Definition espresso.h:361
bool echo_comments
Definition globals.c:25
#define IRRED
Definition espresso.h:356
int num_plas
Definition main.h:26
bool needs_dcset
Definition main.h:28
int * variable
Definition main.h:107
keys
Definition main.h:10
@ KEY_stats
Definition main.h:16
@ KEY_essen
Definition main.h:12
@ KEY_gasp
Definition main.h:13
@ KEY_opoall
Definition main.h:14
@ KEY_exact
Definition main.h:12
@ KEY_mapdc
Definition main.h:14
@ KEY_taut
Definition main.h:16
@ KEY_super_gasp
Definition main.h:16
@ KEY_union
Definition main.h:17
@ KEY_test
Definition main.h:17
@ KEY_echo
Definition main.h:12
@ KEY_irred
Definition main.h:13
@ KEY_make_sparse
Definition main.h:13
@ KEY_intersect
Definition main.h:13
@ KEY_expand
Definition main.h:12
@ KEY_reduce
Definition main.h:15
@ KEY_so_both
Definition main.h:16
@ KEY_dsharp
Definition main.h:12
@ KEY_check
Definition main.h:11
@ KEY_d1merge_in
Definition main.h:18
@ KEY_unknown
Definition main.h:19
@ KEY_d1merge
Definition main.h:11
@ KEY_PLA_verify
Definition main.h:11
@ KEY_qm
Definition main.h:15
@ KEY_equiv
Definition main.h:17
@ KEY_so
Definition main.h:16
@ KEY_contain
Definition main.h:11
@ KEY_separate
Definition main.h:18
@ KEY_simplify
Definition main.h:16
@ KEY_sharp
Definition main.h:15
@ KEY_ESPRESSO
Definition main.h:11
@ KEY_map
Definition main.h:14
@ KEY_primes
Definition main.h:15
@ KEY_fsm
Definition main.h:18
@ KEY_verify
Definition main.h:17
@ KEY_lexsort
Definition main.h:13
@ KEY_disjoint
Definition main.h:12
@ KEY_xor
Definition main.h:18
@ KEY_pair
Definition main.h:15
@ KEY_MANY_ESPRESSO
Definition main.h:17
@ KEY_minterms
Definition main.h:14
@ KEY_opo
Definition main.h:14
@ KEY_pairall
Definition main.h:15
struct @060113036201364324367155034342073342004372134160 esp_opt_table[]
char * name
Definition main.h:24
struct @326027241050146061117104276160063134244164301102 debug_table[]
enum keys key
Definition main.h:25
bool needs_offset
Definition main.h:27
struct @343331366030336041362022230040300014147206137312 option_table[]