mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	Merge pull request #2257 from antmicro/fix-conflicts
Restore #2203 and #2244 and fix parser conflicts
This commit is contained in:
		
						commit
						021ce8e596
					
				
					 5 changed files with 59 additions and 9 deletions
				
			
		|  | @ -742,6 +742,7 @@ module_body: | |||
| 	module_body module_body_stmt | | ||||
| 	/* the following line makes the generate..endgenrate keywords optional */ | ||||
| 	module_body gen_stmt | | ||||
| 	module_body ';' | | ||||
| 	/* empty */; | ||||
| 
 | ||||
| module_body_stmt: | ||||
|  | @ -1331,36 +1332,36 @@ ignspec_id: | |||
| param_signed: | ||||
| 	TOK_SIGNED { | ||||
| 		astbuf1->is_signed = true; | ||||
| 	} | TOK_UNSIGNED { | ||||
| 		astbuf1->is_signed = false; | ||||
| 	} | /* empty */; | ||||
| 
 | ||||
| param_integer: | ||||
| 	TOK_INTEGER { | ||||
| 		if (astbuf1->children.size() != 1) | ||||
| 			frontend_verilog_yyerror("Internal error in param_integer - should not happen?"); | ||||
| 		astbuf1->children.push_back(new AstNode(AST_RANGE)); | ||||
| 		astbuf1->children.back()->children.push_back(AstNode::mkconst_int(31, true)); | ||||
| 		astbuf1->children.back()->children.push_back(AstNode::mkconst_int(0, true)); | ||||
| 		astbuf1->is_signed = true; | ||||
| 	} | /* empty */; | ||||
| 	}; | ||||
| 
 | ||||
| param_real: | ||||
| 	TOK_REAL { | ||||
| 		if (astbuf1->children.size() != 1) | ||||
| 			frontend_verilog_yyerror("Parameter already declared as integer, cannot set to real."); | ||||
| 		astbuf1->children.push_back(new AstNode(AST_REALVALUE)); | ||||
| 	} | /* empty */; | ||||
| 	}; | ||||
| 
 | ||||
| param_range: | ||||
| 	range { | ||||
| 		if ($1 != NULL) { | ||||
| 			if (astbuf1->children.size() != 1) | ||||
| 				frontend_verilog_yyerror("integer/real parameters should not have a range."); | ||||
| 			astbuf1->children.push_back($1); | ||||
| 		} | ||||
| 	}; | ||||
| 
 | ||||
| param_integer_type: param_integer param_signed; | ||||
| param_range_type: type_vec param_signed param_range; | ||||
| param_implicit_type: param_signed param_range; | ||||
| 
 | ||||
| param_type: | ||||
| 	param_signed param_integer param_real param_range | | ||||
| 	param_integer_type | param_real | param_range_type | param_implicit_type | | ||||
| 	hierarchical_type_id { | ||||
| 		astbuf1->is_custom_type = true; | ||||
| 		astbuf1->children.push_back(new AstNode(AST_WIRETYPE)); | ||||
|  |  | |||
							
								
								
									
										6
									
								
								tests/various/integer_range_bad_syntax.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								tests/various/integer_range_bad_syntax.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| logger -expect error "syntax error, unexpected" 1 | ||||
| read_verilog -sv <<EOT | ||||
| module test_integer_range(); | ||||
| parameter integer [31:0] a = 0; | ||||
| endmodule | ||||
| EOT | ||||
							
								
								
									
										6
									
								
								tests/various/integer_real_bad_syntax.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								tests/various/integer_real_bad_syntax.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| logger -expect error "syntax error, unexpected TOK_REAL" 1 | ||||
| read_verilog -sv <<EOT | ||||
| module test_integer_real(); | ||||
| parameter integer real a = 0; | ||||
| endmodule | ||||
| EOT | ||||
							
								
								
									
										9
									
								
								tests/various/logic_param_simple.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								tests/various/logic_param_simple.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | |||
| read_verilog -sv <<EOT | ||||
| module test_logic_param(); | ||||
| parameter logic                 a = 0; | ||||
| parameter logic [31:0]          e = 0; | ||||
| parameter logic signed          b = 0; | ||||
| parameter logic unsigned        c = 0; | ||||
| parameter logic unsigned [31:0] d = 0; | ||||
| endmodule | ||||
| EOT | ||||
							
								
								
									
										28
									
								
								tests/various/signed.ys
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								tests/various/signed.ys
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,28 @@ | |||
| # SV LRM A2.2.1 | ||||
| 
 | ||||
| read_verilog -sv <<EOT | ||||
| module test_signed(); | ||||
| parameter integer signed  a = 0; | ||||
| parameter integer unsigned  b = 0; | ||||
| 
 | ||||
| endmodule | ||||
| EOT | ||||
| 
 | ||||
| design -reset | ||||
| read_verilog -sv <<EOT | ||||
| module test_signed(); | ||||
| parameter logic signed [7:0] a = 0; | ||||
| parameter logic unsigned [7:0] b = 0; | ||||
| 
 | ||||
| endmodule | ||||
| EOT | ||||
| 
 | ||||
| design -reset | ||||
| logger -expect error "syntax error, unexpected TOK_INTEGER" 1 | ||||
| read_verilog -sv <<EOT | ||||
| module test_signed(); | ||||
| parameter signed integer a = 0; | ||||
| parameter unsigned integer b = 0; | ||||
| 
 | ||||
| endmodule | ||||
| EOT | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue