mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-30 19:22:31 +00:00 
			
		
		
		
	If a local variable is always assigned before it is used, then adding nosync prevents latches from being needlessly generated.
		
			
				
	
	
		
			17 lines
		
	
	
	
		
			359 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
	
		
			359 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| read_verilog -sv <<EOF
 | |
| module top;
 | |
| parameter AVOID_LATCH = 0;
 | |
| logic x, z;
 | |
| assign z = 1'b1;
 | |
| always_comb begin
 | |
|     logic y;
 | |
|     if (z)
 | |
|         y = 0;
 | |
|     for (int i = 1; i == AVOID_LATCH; i++)
 | |
|         y = 1;
 | |
|     x = z ? y : 1'b0;
 | |
| end
 | |
| endmodule
 | |
| EOF
 | |
| logger -expect error "^Latch inferred for signal `\\top\.\$unnamed_block\$3\.y' from always_comb process" 1
 | |
| proc
 |