File tree Expand file tree Collapse file tree 7 files changed +27
-3
lines changed
regression/verilog/force-system-verilog Expand file tree Collapse file tree 7 files changed +27
-3
lines changed Original file line number Diff line number Diff line change
1
+ CORE
2
+ main1.v
3
+ --system-verilog
4
+ ^EXIT=10$
5
+ ^SIGNAL=0$
6
+ ^no properties$
7
+ --
8
+ ^warning: ignoring
Original file line number Diff line number Diff line change
1
+ module main ;
2
+ // 'logic' is a SystemVerilog keyword
3
+ logic some_logic;
4
+ initial some_logic = 1 ;
5
+ endmodule
Original file line number Diff line number Diff line change @@ -363,6 +363,7 @@ void ebmc_parse_optionst::help()
363
363
" {y--show-properties} \t list the properties in the model\n "
364
364
" {y--property} {uid} \t check the property with given ID\n "
365
365
" {y-I} {upath} \t set include path\n "
366
+ " {y--system-verilog} \t force SystemVerilog instead of Verilog\n "
366
367
" {y--reset} {uexpr} \t set up module reset\n "
367
368
" {y--liveness-to-safety} \t translate liveness properties to safety properties\n "
368
369
" \n "
Original file line number Diff line number Diff line change @@ -46,7 +46,7 @@ class ebmc_parse_optionst:public parse_options_baset
46
46
" (random-traces)(trace-steps):(random-seed):(number-of-traces):"
47
47
" (random-trace)(random-waveform)"
48
48
" (liveness-to-safety)"
49
- " I:(preprocess)" ,
49
+ " I:(preprocess)(system-verilog) " ,
50
50
argc,
51
51
argv,
52
52
std::string (" EBMC " ) + EBMC_VERSION),
Original file line number Diff line number Diff line change 21
21
#include < langapi/mode.h>
22
22
#include < trans-word-level/show_module_hierarchy.h>
23
23
#include < trans-word-level/show_modules.h>
24
+ #include < verilog/verilog_language.h>
24
25
25
26
#include " ebmc_error.h"
26
27
#include " ebmc_version.h"
@@ -221,6 +222,10 @@ int get_transition_system(
221
222
if (cmdline.isset (' I' ))
222
223
config.verilog .include_paths = cmdline.get_values (' I' );
223
224
225
+ // do --system-verilog
226
+ if (cmdline.isset (" system-verilog" ))
227
+ verilog_languaget::force_systemverilog = true ;
228
+
224
229
if (cmdline.isset (" preprocess" ))
225
230
return preprocess (cmdline, message_handler);
226
231
Original file line number Diff line number Diff line change 18
18
#include " verilog_parser.h"
19
19
#include " verilog_preprocessor.h"
20
20
21
+ bool verilog_languaget::force_systemverilog = false ;
22
+
21
23
/* ******************************************************************\
22
24
23
25
Function: verilog_languaget::parse
@@ -46,8 +48,8 @@ bool verilog_languaget::parse(
46
48
verilog_parser.in =&str;
47
49
verilog_parser.log .set_message_handler (message_handler);
48
50
verilog_parser.grammar =verilog_parsert::LANGUAGE;
49
-
50
- if (has_suffix (path, " .sv" ))
51
+
52
+ if (has_suffix (path, " .sv" ) || force_systemverilog )
51
53
verilog_parser.mode =verilog_parsert::SYSTEM_VERILOG;
52
54
53
55
verilog_scanner_init ();
Original file line number Diff line number Diff line change @@ -91,6 +91,9 @@ class verilog_languaget:public languaget
91
91
options.set_option (" flatten_hierarchy" , true );
92
92
}
93
93
94
+ // static configuration, gobal
95
+ static bool force_systemverilog;
96
+
94
97
protected:
95
98
verilog_parse_treet parse_tree;
96
99
};
You can’t perform that action at this time.
0 commit comments