mirror of
				https://github.com/YosysHQ/yosys
				synced 2025-10-31 19:52:31 +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
 |