aboutsummaryrefslogtreecommitdiffstats
path: root/tests/verilog/genvar_loop_decl_1.sv
diff options
context:
space:
mode:
authorZachary Snow <zach@zachjs.com>2021-08-31 11:45:02 -0600
committerZachary Snow <zachary.j.snow@gmail.com>2021-08-31 12:34:55 -0600
commitb2e9717419e9a852f4e64f12891b8e9742900917 (patch)
tree3a989a50c1f9beef9068b423f202d4918dcf3d6a /tests/verilog/genvar_loop_decl_1.sv
parentb20bb653ce0bfe452f8a1ff4a7a9b64262acced3 (diff)
downloadyosys-b2e9717419e9a852f4e64f12891b8e9742900917.tar.gz
yosys-b2e9717419e9a852f4e64f12891b8e9742900917.tar.bz2
yosys-b2e9717419e9a852f4e64f12891b8e9742900917.zip
sv: support declaration in generate for initialization
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.
Diffstat (limited to 'tests/verilog/genvar_loop_decl_1.sv')
-rw-r--r--tests/verilog/genvar_loop_decl_1.sv18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/verilog/genvar_loop_decl_1.sv b/tests/verilog/genvar_loop_decl_1.sv
new file mode 100644
index 000000000..b503f75da
--- /dev/null
+++ b/tests/verilog/genvar_loop_decl_1.sv
@@ -0,0 +1,18 @@
+`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