mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 11:42:30 +00:00 
			
		
		
		
	fix(#4402):missing sign while for loop iteration variable is signed
This commit is contained in:
		
							parent
							
								
									5579685673
								
							
						
					
					
						commit
						4c48fc283b
					
				
					 3 changed files with 10 additions and 4 deletions
				
			
		|  | @ -414,12 +414,15 @@ void dump_wire(std::ostream &f, std::string indent, RTLIL::Wire *wire) | |||
| #else | ||||
| 	// do not use Verilog-2k "output reg" syntax in Verilog export
 | ||||
| 	std::string range = ""; | ||||
| 	std::string sign = ""; | ||||
| 	if (wire->width != 1) { | ||||
| 		if (wire->upto) | ||||
| 			range = stringf(" [%d:%d]", wire->start_offset, wire->width - 1 + wire->start_offset); | ||||
| 		else | ||||
| 			range = stringf(" [%d:%d]", wire->width - 1 + wire->start_offset, wire->start_offset); | ||||
| 	} | ||||
| 	if (wire->is_signed) | ||||
| 		sign = " signed "; | ||||
| 	if (wire->port_input && !wire->port_output) | ||||
| 		f << stringf("%s" "input%s %s;\n", indent.c_str(), range.c_str(), id(wire->name).c_str()); | ||||
| 	if (!wire->port_input && wire->port_output) | ||||
|  | @ -427,14 +430,14 @@ void dump_wire(std::ostream &f, std::string indent, RTLIL::Wire *wire) | |||
| 	if (wire->port_input && wire->port_output) | ||||
| 		f << stringf("%s" "inout%s %s;\n", indent.c_str(), range.c_str(), id(wire->name).c_str()); | ||||
| 	if (reg_wires.count(wire->name)) { | ||||
| 		f << stringf("%s" "reg%s %s", indent.c_str(), range.c_str(), id(wire->name).c_str()); | ||||
| 		f << stringf("%s" "reg%s%s %s", indent.c_str(), sign.c_str(), range.c_str(), id(wire->name).c_str()); | ||||
| 		if (wire->attributes.count(ID::init)) { | ||||
| 			f << stringf(" = "); | ||||
| 			dump_const(f, wire->attributes.at(ID::init)); | ||||
| 		} | ||||
| 		f << stringf(";\n"); | ||||
| 	} else | ||||
| 		f << stringf("%s" "wire%s %s;\n", indent.c_str(), range.c_str(), id(wire->name).c_str()); | ||||
| 		f << stringf("%s" "wire%s%s %s;\n", indent.c_str(), sign.c_str(), range.c_str(), id(wire->name).c_str()); | ||||
| #endif | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue