aboutsummaryrefslogtreecommitdiffstats
path: root/frontends
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2019-06-28 10:21:16 +0200
committerClifford Wolf <clifford@clifford.at>2019-06-28 10:21:16 +0200
commitaf744097496702926f4fbff5d6eb889ad82fa6cf (patch)
tree8edf7348a7867a6bf35f107146ac61918cd14ef7 /frontends
parent1c7ce251f383a2c6734fc7ca778c5234e0c97a2a (diff)
downloadyosys-af744097496702926f4fbff5d6eb889ad82fa6cf.tar.gz
yosys-af744097496702926f4fbff5d6eb889ad82fa6cf.tar.bz2
yosys-af744097496702926f4fbff5d6eb889ad82fa6cf.zip
Improve specify dummy parser, fixes #1144
Signed-off-by: Clifford Wolf <clifford@clifford.at>
Diffstat (limited to 'frontends')
-rw-r--r--frontends/verilog/verilog_parser.y11
1 files changed, 9 insertions, 2 deletions
diff --git a/frontends/verilog/verilog_parser.y b/frontends/verilog/verilog_parser.y
index d89b2dc88..dab5b5919 100644
--- a/frontends/verilog/verilog_parser.y
+++ b/frontends/verilog/verilog_parser.y
@@ -1068,11 +1068,18 @@ list_of_path_delay_extra_expressions :
path_delay_expression ',' path_delay_expression ',' path_delay_expression
;
+specify_edge_identifier :
+ TOK_POSEDGE | TOK_NEGEDGE ;
+
parallel_path_description :
- '(' specify_input_terminal_descriptor opt_polarity_operator '=' '>' specify_output_terminal_descriptor ')' ;
+ '(' specify_input_terminal_descriptor opt_polarity_operator '=' '>' specify_output_terminal_descriptor ')' |
+ '(' specify_edge_identifier specify_input_terminal_descriptor '=' '>' '(' specify_output_terminal_descriptor opt_polarity_operator ':' ignspec_expr ')' ')' |
+ '(' specify_edge_identifier specify_input_terminal_descriptor '=' '>' '(' specify_output_terminal_descriptor TOK_POS_INDEXED ignspec_expr ')' ')' ;
full_path_description :
- '(' list_of_path_inputs '*' '>' list_of_path_outputs ')' ;
+ '(' list_of_path_inputs '*' '>' list_of_path_outputs ')' |
+ '(' specify_edge_identifier list_of_path_inputs '*' '>' '(' list_of_path_outputs opt_polarity_operator ':' ignspec_expr ')' ')' |
+ '(' specify_edge_identifier list_of_path_inputs '*' '>' '(' list_of_path_outputs TOK_POS_INDEXED ignspec_expr ')' ')' ;
// This was broken into 2 rules to solve shift/reduce conflicts
list_of_path_inputs :