mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-11-03 21:09:12 +00:00 
			
		
		
		
	This is accomplished by generating a unique name for the genvar, renaming references to the genvar only in the loop's initialization, guard, and incrementation, and finally adding a localparam inside the loop body with the original name so that the genvar can be shadowed as expected.
		
			
				
	
	
		
			18 lines
		
	
	
	
		
			354 B
		
	
	
	
		
			Systemverilog
		
	
	
	
	
	
			
		
		
	
	
			18 lines
		
	
	
	
		
			354 B
		
	
	
	
		
			Systemverilog
		
	
	
	
	
	
`default_nettype none
 | 
						|
 | 
						|
module gate(a);
 | 
						|
	for (genvar i = 0; i < 2; i++)
 | 
						|
		wire [i:0] x = '1;
 | 
						|
 | 
						|
	output wire [32:0] a;
 | 
						|
	assign a = {1'b0, genblk1[0].x, 1'b0, genblk1[1].x, 1'b0};
 | 
						|
endmodule
 | 
						|
 | 
						|
module gold(a);
 | 
						|
	genvar i;
 | 
						|
	for (i = 0; i < 2; i++)
 | 
						|
		wire [i:0] x = '1;
 | 
						|
 | 
						|
	output wire [32:0] a;
 | 
						|
	assign a = {1'b0, genblk1[0].x, 1'b0, genblk1[1].x, 1'b0};
 | 
						|
endmodule
 |