mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 03:32:29 +00:00 
			
		
		
		
	verilog: fix specify src attribute
This commit is contained in:
		
							parent
							
								
									584780d776
								
							
						
					
					
						commit
						eb5eb60fd4
					
				
					 2 changed files with 26 additions and 18 deletions
				
			
		|  | @ -885,6 +885,7 @@ specify_item: | ||||||
| 		cell->str = stringf("$specify$%d", autoidx++); | 		cell->str = stringf("$specify$%d", autoidx++); | ||||||
| 		cell->children.push_back(new AstNode(AST_CELLTYPE)); | 		cell->children.push_back(new AstNode(AST_CELLTYPE)); | ||||||
| 		cell->children.back()->str = target->dat ? "$specify3" : "$specify2"; | 		cell->children.back()->str = target->dat ? "$specify3" : "$specify2"; | ||||||
|  | 		SET_AST_NODE_LOC(cell, en_expr ? @1 : @2, @10); | ||||||
| 
 | 
 | ||||||
| 		char oper_polarity = 0; | 		char oper_polarity = 0; | ||||||
| 		char oper_type = oper->at(0); | 		char oper_type = oper->at(0); | ||||||
|  | @ -973,6 +974,7 @@ specify_item: | ||||||
| 		cell->str = stringf("$specify$%d", autoidx++); | 		cell->str = stringf("$specify$%d", autoidx++); | ||||||
| 		cell->children.push_back(new AstNode(AST_CELLTYPE)); | 		cell->children.push_back(new AstNode(AST_CELLTYPE)); | ||||||
| 		cell->children.back()->str = "$specrule"; | 		cell->children.back()->str = "$specrule"; | ||||||
|  | 		SET_AST_NODE_LOC(cell, @1, @14); | ||||||
| 
 | 
 | ||||||
| 		cell->children.push_back(new AstNode(AST_PARASET, AstNode::mkconst_str(*$1))); | 		cell->children.push_back(new AstNode(AST_PARASET, AstNode::mkconst_str(*$1))); | ||||||
| 		cell->children.back()->str = "\\TYPE"; | 		cell->children.back()->str = "\\TYPE"; | ||||||
|  | @ -1099,8 +1101,8 @@ specify_rise_fall: | ||||||
| 		$$->fall = *$4; | 		$$->fall = *$4; | ||||||
| 		delete $2; | 		delete $2; | ||||||
| 		delete $4; | 		delete $4; | ||||||
|         delete $6; | 		delete $6; | ||||||
|         log_file_warning(current_filename, get_line_num(), "Path delay expressions beyond rise/fall not currently supported. Ignoring.\n"); | 		log_file_warning(current_filename, get_line_num(), "Path delay expressions beyond rise/fall not currently supported. Ignoring.\n"); | ||||||
| 	} | | 	} | | ||||||
| 	'(' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ')' { | 	'(' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ')' { | ||||||
| 		$$ = new specify_rise_fall; | 		$$ = new specify_rise_fall; | ||||||
|  | @ -1108,11 +1110,11 @@ specify_rise_fall: | ||||||
| 		$$->fall = *$4; | 		$$->fall = *$4; | ||||||
| 		delete $2; | 		delete $2; | ||||||
| 		delete $4; | 		delete $4; | ||||||
|         delete $6; | 		delete $6; | ||||||
|         delete $8; | 		delete $8; | ||||||
|         delete $10; | 		delete $10; | ||||||
|         delete $12; | 		delete $12; | ||||||
|         log_file_warning(current_filename, get_line_num(), "Path delay expressions beyond rise/fall not currently supported. Ignoring.\n"); | 		log_file_warning(current_filename, get_line_num(), "Path delay expressions beyond rise/fall not currently supported. Ignoring.\n"); | ||||||
| 	} | | 	} | | ||||||
| 	'(' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ')' { | 	'(' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ',' specify_triple ')' { | ||||||
| 		$$ = new specify_rise_fall; | 		$$ = new specify_rise_fall; | ||||||
|  | @ -1120,17 +1122,17 @@ specify_rise_fall: | ||||||
| 		$$->fall = *$4; | 		$$->fall = *$4; | ||||||
| 		delete $2; | 		delete $2; | ||||||
| 		delete $4; | 		delete $4; | ||||||
|         delete $6; | 		delete $6; | ||||||
|         delete $8; | 		delete $8; | ||||||
|         delete $10; | 		delete $10; | ||||||
|         delete $12; | 		delete $12; | ||||||
|         delete $14; | 		delete $14; | ||||||
|         delete $16; | 		delete $16; | ||||||
|         delete $18; | 		delete $18; | ||||||
|         delete $20; | 		delete $20; | ||||||
|         delete $22; | 		delete $22; | ||||||
|         delete $24; | 		delete $24; | ||||||
|         log_file_warning(current_filename, get_line_num(), "Path delay expressions beyond rise/fall not currently supported. Ignoring.\n"); | 		log_file_warning(current_filename, get_line_num(), "Path delay expressions beyond rise/fall not currently supported. Ignoring.\n"); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| specify_triple: | specify_triple: | ||||||
|  |  | ||||||
|  | @ -4,10 +4,16 @@ cd test | ||||||
| select t:$specify2 -assert-count 0 | select t:$specify2 -assert-count 0 | ||||||
| select t:$specify3 -assert-count 1 | select t:$specify3 -assert-count 1 | ||||||
| select t:$specrule -assert-count 2 | select t:$specrule -assert-count 2 | ||||||
|  | select t:$specify3 a:src=specify.v:10.3-10.49 %i -assert-count 1 | ||||||
|  | select t:$specrule a:src=specify.v:11.3-11.36 %i -assert-count 1 | ||||||
|  | select t:$specrule a:src=specify.v:12.3-12.35 %i -assert-count 1 | ||||||
| cd test2 | cd test2 | ||||||
| select t:$specify2 -assert-count 2 | select t:$specify2 -assert-count 2 | ||||||
| select t:$specify3 -assert-count 0 | select t:$specify3 -assert-count 0 | ||||||
| select t:$specrule -assert-count 0 | select t:$specrule -assert-count 0 | ||||||
|  | select t:$specify2 a:src=specify.v:26.3-26.20 %i -assert-count 1 | ||||||
|  |                                          # ^^ Note use of macro | ||||||
|  | select t:$specify2 a:src=specify.v:28.3-28.18 %i -assert-count 1 | ||||||
| cd | cd | ||||||
| write_verilog specify.out | write_verilog specify.out | ||||||
| design -stash gold | design -stash gold | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue