Added gsystem-verilog gen flag and 4 additional keywords
For future system-verilog additions
This commit is contained in:
parent
4f26c62207
commit
bd5c48eccd
|
|
@ -139,6 +139,7 @@ enum { GN_KEYWORDS_1364_1995 = 0x0001,
|
||||||
GN_KEYWORDS_1364_2001_CONFIG = 0x0004,
|
GN_KEYWORDS_1364_2001_CONFIG = 0x0004,
|
||||||
GN_KEYWORDS_1364_2005 = 0x0008,
|
GN_KEYWORDS_1364_2005 = 0x0008,
|
||||||
GN_KEYWORDS_VAMS_2_3 = 0x0010,
|
GN_KEYWORDS_VAMS_2_3 = 0x0010,
|
||||||
|
GN_KEYWORDS_1800_2005 = 0x0020,
|
||||||
GN_KEYWORDS_ICARUS = 0x8000
|
GN_KEYWORDS_ICARUS = 0x8000
|
||||||
};
|
};
|
||||||
extern int lexor_keyword_mask;
|
extern int lexor_keyword_mask;
|
||||||
|
|
|
||||||
|
|
@ -115,6 +115,7 @@ const char*gen_icarus = "icarus-misc";
|
||||||
const char*gen_io_range_error = "io-range-error";
|
const char*gen_io_range_error = "io-range-error";
|
||||||
const char*gen_strict_ca_eval = "no-strict-ca-eval";
|
const char*gen_strict_ca_eval = "no-strict-ca-eval";
|
||||||
const char*gen_verilog_ams = "no-verilog-ams";
|
const char*gen_verilog_ams = "no-verilog-ams";
|
||||||
|
const char*gen_system_verilog = "no-system-verilog";
|
||||||
|
|
||||||
/* Boolean: true means use a default include dir, false means don't */
|
/* Boolean: true means use a default include dir, false means don't */
|
||||||
int gen_std_include = 1;
|
int gen_std_include = 1;
|
||||||
|
|
@ -612,6 +613,9 @@ int process_generation(const char*name)
|
||||||
else if (strcmp(name,"no-verilog-ams") == 0)
|
else if (strcmp(name,"no-verilog-ams") == 0)
|
||||||
gen_verilog_ams = "no-verilog-ams";
|
gen_verilog_ams = "no-verilog-ams";
|
||||||
|
|
||||||
|
else if (strcmp(name,"system-verilog") == 0)
|
||||||
|
gen_system_verilog = "system-verilog";
|
||||||
|
|
||||||
else {
|
else {
|
||||||
fprintf(stderr, "Unknown/Unsupported Language generation "
|
fprintf(stderr, "Unknown/Unsupported Language generation "
|
||||||
"%s\n\n", name);
|
"%s\n\n", name);
|
||||||
|
|
@ -626,7 +630,8 @@ int process_generation(const char*name)
|
||||||
" xtypes | no-xtypes\n"
|
" xtypes | no-xtypes\n"
|
||||||
" icarus-misc | no-icarus-misc\n"
|
" icarus-misc | no-icarus-misc\n"
|
||||||
" io-range-error | no-io-range-error\n"
|
" io-range-error | no-io-range-error\n"
|
||||||
" strict-ca-eval | no-strict-ca-eval\n");
|
" strict-ca-eval | no-strict-ca-eval\n"
|
||||||
|
" system-verilog\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -899,6 +904,7 @@ int main(int argc, char **argv)
|
||||||
fprintf(iconfig_file, "generation:%s\n", gen_strict_ca_eval);
|
fprintf(iconfig_file, "generation:%s\n", gen_strict_ca_eval);
|
||||||
fprintf(iconfig_file, "generation:%s\n", gen_verilog_ams);
|
fprintf(iconfig_file, "generation:%s\n", gen_verilog_ams);
|
||||||
fprintf(iconfig_file, "generation:%s\n", gen_icarus);
|
fprintf(iconfig_file, "generation:%s\n", gen_icarus);
|
||||||
|
fprintf(iconfig_file, "generation:%s\n", gen_system_verilog);
|
||||||
fprintf(iconfig_file, "warnings:%s\n", warning_flags);
|
fprintf(iconfig_file, "warnings:%s\n", warning_flags);
|
||||||
fprintf(iconfig_file, "out:%s\n", opath);
|
fprintf(iconfig_file, "out:%s\n", opath);
|
||||||
if (depfile) fprintf(iconfig_file, "depfile:%s\n", depfile);
|
if (depfile) fprintf(iconfig_file, "depfile:%s\n", depfile);
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,14 @@ access, GN_KEYWORDS_VAMS_2_3, K_access
|
||||||
acos, GN_KEYWORDS_VAMS_2_3, K_acos
|
acos, GN_KEYWORDS_VAMS_2_3, K_acos
|
||||||
acosh, GN_KEYWORDS_VAMS_2_3, K_acosh
|
acosh, GN_KEYWORDS_VAMS_2_3, K_acosh
|
||||||
always, GN_KEYWORDS_1364_1995, K_always
|
always, GN_KEYWORDS_1364_1995, K_always
|
||||||
|
always_comb, GN_KEYWORDS_1800_2005, K_always_comb
|
||||||
|
always_ff, GN_KEYWORDS_1800_2005, K_always_ff
|
||||||
|
always_latch, GN_KEYWORDS_1800_2005, K_always_latch
|
||||||
analog, GN_KEYWORDS_VAMS_2_3, K_analog
|
analog, GN_KEYWORDS_VAMS_2_3, K_analog
|
||||||
and, GN_KEYWORDS_1364_1995, K_and
|
and, GN_KEYWORDS_1364_1995, K_and
|
||||||
asin, GN_KEYWORDS_VAMS_2_3, K_asin
|
asin, GN_KEYWORDS_VAMS_2_3, K_asin
|
||||||
asinh, GN_KEYWORDS_VAMS_2_3, K_asinh
|
asinh, GN_KEYWORDS_VAMS_2_3, K_asinh
|
||||||
|
assert, GN_KEYWORDS_1800_2005, K_assert
|
||||||
assign, GN_KEYWORDS_1364_1995, K_assign
|
assign, GN_KEYWORDS_1364_1995, K_assign
|
||||||
atan, GN_KEYWORDS_VAMS_2_3, K_atan
|
atan, GN_KEYWORDS_VAMS_2_3, K_atan
|
||||||
atan2, GN_KEYWORDS_VAMS_2_3, K_atan2
|
atan2, GN_KEYWORDS_VAMS_2_3, K_atan2
|
||||||
|
|
|
||||||
7
main.cc
7
main.cc
|
|
@ -91,6 +91,7 @@ bool gn_specify_blocks_flag = true;
|
||||||
bool gn_io_range_error_flag = true;
|
bool gn_io_range_error_flag = true;
|
||||||
bool gn_strict_ca_eval_flag = false;
|
bool gn_strict_ca_eval_flag = false;
|
||||||
bool gn_verilog_ams_flag = false;
|
bool gn_verilog_ams_flag = false;
|
||||||
|
bool gn_system_verilog_flag = false;
|
||||||
|
|
||||||
map<string,const char*> flags;
|
map<string,const char*> flags;
|
||||||
char*vpi_module_list = 0;
|
char*vpi_module_list = 0;
|
||||||
|
|
@ -252,6 +253,9 @@ static void process_generation_flag(const char*gen)
|
||||||
} else if (strcmp(gen,"no-strict-ca-eval") == 0) {
|
} else if (strcmp(gen,"no-strict-ca-eval") == 0) {
|
||||||
gn_strict_ca_eval_flag = false;
|
gn_strict_ca_eval_flag = false;
|
||||||
|
|
||||||
|
} else if (strcmp(gen,"system-verilog") == 0) {
|
||||||
|
gn_system_verilog_flag = true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -661,6 +665,9 @@ int main(int argc, char*argv[])
|
||||||
if (gn_cadence_types_flag)
|
if (gn_cadence_types_flag)
|
||||||
lexor_keyword_mask |= GN_KEYWORDS_ICARUS;
|
lexor_keyword_mask |= GN_KEYWORDS_ICARUS;
|
||||||
|
|
||||||
|
if (gn_system_verilog_flag)
|
||||||
|
lexor_keyword_mask |= GN_KEYWORDS_1800_2005;
|
||||||
|
|
||||||
if (gn_verilog_ams_flag)
|
if (gn_verilog_ams_flag)
|
||||||
lexor_keyword_mask |= GN_KEYWORDS_VAMS_2_3;
|
lexor_keyword_mask |= GN_KEYWORDS_VAMS_2_3;
|
||||||
|
|
||||||
|
|
|
||||||
2
parse.y
2
parse.y
|
|
@ -241,6 +241,8 @@ static PECallFunction*make_call_function(perm_string tn, PExpr*arg1, PExpr*arg2)
|
||||||
%token K_wone K_wor K_xnor K_xor
|
%token K_wone K_wor K_xnor K_xor
|
||||||
%token K_Shold K_Speriod K_Srecovery K_Srecrem K_Ssetup K_Swidth K_Ssetuphold
|
%token K_Shold K_Speriod K_Srecovery K_Srecrem K_Ssetup K_Swidth K_Ssetuphold
|
||||||
|
|
||||||
|
%token K_always_comb K_always_ff K_always_latch K_assert
|
||||||
|
|
||||||
%token KK_attribute
|
%token KK_attribute
|
||||||
|
|
||||||
%type <flag> from_exclude
|
%type <flag> from_exclude
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue