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_2005 = 0x0008,
|
||||
GN_KEYWORDS_VAMS_2_3 = 0x0010,
|
||||
GN_KEYWORDS_1800_2005 = 0x0020,
|
||||
GN_KEYWORDS_ICARUS = 0x8000
|
||||
};
|
||||
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_strict_ca_eval = "no-strict-ca-eval";
|
||||
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 */
|
||||
int gen_std_include = 1;
|
||||
|
|
@ -611,6 +612,9 @@ int process_generation(const char*name)
|
|||
|
||||
else if (strcmp(name,"no-verilog-ams") == 0)
|
||||
gen_verilog_ams = "no-verilog-ams";
|
||||
|
||||
else if (strcmp(name,"system-verilog") == 0)
|
||||
gen_system_verilog = "system-verilog";
|
||||
|
||||
else {
|
||||
fprintf(stderr, "Unknown/Unsupported Language generation "
|
||||
|
|
@ -626,7 +630,8 @@ int process_generation(const char*name)
|
|||
" xtypes | no-xtypes\n"
|
||||
" icarus-misc | no-icarus-misc\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;
|
||||
}
|
||||
|
||||
|
|
@ -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_verilog_ams);
|
||||
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, "out:%s\n", opath);
|
||||
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
|
||||
acosh, GN_KEYWORDS_VAMS_2_3, K_acosh
|
||||
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
|
||||
and, GN_KEYWORDS_1364_1995, K_and
|
||||
asin, GN_KEYWORDS_VAMS_2_3, K_asin
|
||||
asinh, GN_KEYWORDS_VAMS_2_3, K_asinh
|
||||
assert, GN_KEYWORDS_1800_2005, K_assert
|
||||
assign, GN_KEYWORDS_1364_1995, K_assign
|
||||
atan, GN_KEYWORDS_VAMS_2_3, K_atan
|
||||
atan2, GN_KEYWORDS_VAMS_2_3, K_atan2
|
||||
|
|
|
|||
9
main.cc
9
main.cc
|
|
@ -91,6 +91,7 @@ bool gn_specify_blocks_flag = true;
|
|||
bool gn_io_range_error_flag = true;
|
||||
bool gn_strict_ca_eval_flag = false;
|
||||
bool gn_verilog_ams_flag = false;
|
||||
bool gn_system_verilog_flag = false;
|
||||
|
||||
map<string,const char*> flags;
|
||||
char*vpi_module_list = 0;
|
||||
|
|
@ -252,7 +253,10 @@ static void process_generation_flag(const char*gen)
|
|||
} else if (strcmp(gen,"no-strict-ca-eval") == 0) {
|
||||
gn_strict_ca_eval_flag = false;
|
||||
|
||||
} else {
|
||||
} else if (strcmp(gen,"system-verilog") == 0) {
|
||||
gn_system_verilog_flag = true;
|
||||
|
||||
} else {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -660,6 +664,9 @@ int main(int argc, char*argv[])
|
|||
|
||||
if (gn_cadence_types_flag)
|
||||
lexor_keyword_mask |= GN_KEYWORDS_ICARUS;
|
||||
|
||||
if (gn_system_verilog_flag)
|
||||
lexor_keyword_mask |= GN_KEYWORDS_1800_2005;
|
||||
|
||||
if (gn_verilog_ams_flag)
|
||||
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_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
|
||||
|
||||
%type <flag> from_exclude
|
||||
|
|
|
|||
Loading…
Reference in New Issue