Source file options.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
(** Compiler options *)
type target = Dot | Sim | CTask | SystemC | Vhdl
let main_prefix = ref "main"
let target = ref None
let use_old_syntax = ref false
let target_dir = ref "."
let main_name = ref ""
let print_version = ref false
let do_run = ref false
let dump_tenv = ref false
let dump_typed = ref false
let dump_static = ref false
let dot_abbrev_types = ref false
let normalize = ref false
let dump_backtrace = ref false
let server_mode = ref false
let verbose = ref false
let socket_port = ref 12345
let set_main_prefix p = main_prefix := p
let set_old_syntax () = use_old_syntax := true
let set_sim () = target := Some Sim
let set_dot () = target := Some Dot
let set_ctask () = target := Some CTask
let set_systemc () = target := Some SystemC
let set_vhdl () = target := Some Vhdl
let set_print_version () = print_version := true
let set_dump_typed () = dump_typed := true
let set_dump_tenv () = dump_tenv := true
let set_dump_static () = dump_static := true
let set_target_dir name = target_dir := name
let set_main_name name = main_name := name
let set_normalize () = normalize := true
let set_server_mode () = server_mode := true
let set_verbose () = verbose := true
let set_socket_port path = socket_port := path
let set_synchronous_actions () =
Dynamic.cfg.act_semantics <- Misc.Synchronous;
Systemc.cfg.sc_act_semantics <- Misc.Synchronous;
Vhdl.cfg.vhdl_act_semantics <- Misc.Synchronous
let set_sequential_actions () =
Dynamic.cfg.act_semantics <- Misc.Sequential;
Systemc.cfg.sc_act_semantics <- Misc.Sequential;
Vhdl.cfg.vhdl_act_semantics <- Misc.Sequential
let set_sim_trace level = Dynamic.cfg.verbose_level <- level
let set_dot_captions () = Dot.cfg.show_captions <- true
let set_dot_short_trans () = Dot.cfg.Dot.trans_vlayout <- false
let set_show_models () =
Dot.cfg.show_models <- true;
Ctask.cfg.show_models <- true;
Systemc.cfg.show_models <- true
let set_dot_abbrev_types () = Dot.cfg.Dot.abbrev_types <- true
let set_dot_qual_ids () = Dot.cfg.Dot.qual_ids <- true
let set_dot_boxed () = Dot.cfg.Dot.boxed <- true
let set_vcd_default_int_size s = Vcd.cfg.Vcd.default_int_size <- s
let set_lib_dir d =
Systemc.cfg.Systemc.sc_lib_dir <- d;
Vhdl.cfg.Vhdl.vhdl_lib_dir <- d
let set_stop_time d =
Systemc.cfg.Systemc.sc_stop_time <- d;
Vhdl.cfg.Vhdl.vhdl_stop_time <- d
let set_systemc_time_unit u = Systemc.cfg.Systemc.sc_time_unit <- u
let set_sc_trace () = Systemc.cfg.Systemc.sc_trace <- true
let set_sc_double_float () = Systemc.cfg.Systemc.sc_double_float <- true
let set_vhdl_time_unit u = Vhdl.cfg.Vhdl.vhdl_time_unit <- u
let set_vhdl_ev_duration d = Vhdl.cfg.Vhdl.vhdl_ev_duration <- d
let set_vhdl_rst_duration d = Vhdl.cfg.Vhdl.vhdl_reset_duration <- d
let set_vhdl_use_numeric_std () = Vhdl_types.cfg.vhdl_use_numeric_std <- true
let set_vhdl_bool_as_bool () = Vhdl_types.cfg.vhdl_bool_as_bool <- true
let set_vhdl_trace () = Vhdl.cfg.Vhdl.vhdl_trace <- true
let set_vhdl_dump_ghw () = Vhdl.cfg.Vhdl.vhdl_dump_format <- Vhdl.Ghw
let spec = [
"-main", Arg.String set_main_prefix, "set prefix for the generated main files";
"-dump_typed", Arg.Unit set_dump_typed, "dump typed representation of model(s)/program to stdout";
"-dump_static", Arg.Unit set_dump_static, "dump static representation of model(s)/program to stdout";
"-target_dir", Arg.String set_target_dir, "set target directory (default: .)";
"-lib", Arg.String set_lib_dir, "set location of the support library (default: <opam_prefix>/share/rfsm)";
"-dot", Arg.Unit set_dot, "generate .dot representation of model(s)/program";
"-sim", Arg.Unit set_sim, "run simulation (generating .vcd file)";
"-ctask", Arg.Unit set_ctask, "generate CTask code";
"-systemc", Arg.Unit set_systemc, "generate SystemC code";
"-vhdl", Arg.Unit set_vhdl, "generate VHDL code";
"-version", Arg.Unit set_print_version, "print version of the compiler and quit";
"-show_models", Arg.Unit set_show_models, "generate separate representations for uninstanciated FSM models ";
"-server_mode", Arg.Unit set_server_mode, "run the compiler in server mode (to be used by the grasp app)";
"-verbose", Arg.Unit set_verbose, "run the compiler in verbose mode (including server)";
"-socket_port", Arg.Int set_socket_port, "set socket port when running in server mode";
"-dot_qual_ids", Arg.Unit set_dot_qual_ids, "print qualified identifiers in DOT representations";
"-dot_captions", Arg.Unit set_dot_captions, "Add captions in .dot representation(s)";
"-dot_short_trans", Arg.Unit set_dot_short_trans, "Print single-line transition labels (default is multi-lines)";
"-dot_abbrev_types", Arg.Unit set_dot_abbrev_types, "Print abbreviated types (default is to print definitions)";
"-dot_boxed", Arg.Unit set_dot_boxed, "Draw FSM instances in boxes";
"-sim_trace", Arg.Int set_sim_trace, "set trace level for simulation (default: 0)";
"-vcd_int_size", Arg.Int set_vcd_default_int_size, "set default int size for VCD traces (default: 8)";
"-synchronous_actions", Arg.Unit set_synchronous_actions, "interpret actions synchronously";
"-sc_time_unit", Arg.String set_systemc_time_unit, "set time unit for the SystemC test-bench (default: SC_NS)";
"-sc_trace", Arg.Unit set_sc_trace, "set trace mode for SystemC backend (default: false)";
"-stop_time", Arg.Int set_stop_time, "set stop time for the SystemC and VHDL test-bench (default: 100)";
"-sc_double_float", Arg.Unit set_sc_double_float, "implement float type as C++ double instead of float (default: false)";
"-vhdl_trace", Arg.Unit set_vhdl_trace, "set trace mode for VHDL backend (default: false)";
"-vhdl_time_unit", Arg.String set_vhdl_time_unit, "set time unit for the VHDL test-bench";
"-vhdl_ev_duration", Arg.Int set_vhdl_ev_duration, "set duration of event signals (default: 1 ns)";
"-vhdl_rst_duration", Arg.Int set_vhdl_ev_duration, "set duration of reset signals (default: 1 ns)";
"-vhdl_numeric_std", Arg.Unit set_vhdl_use_numeric_std, "translate integers as numeric_std [un]signed (default: false)";
"-vhdl_bool_as_bool", Arg.Unit set_vhdl_bool_as_bool, "translate all booleans as boolean (default: false)";
"-vhdl_dump_ghw", Arg.Unit set_vhdl_dump_ghw, "make GHDL generate trace files in .ghw format instead of .vcd";
];