module top; wire t; initial $display("A t %0d", 1); initial $display("A top.t %0d", 1); generate if (1) begin : X wire [1:0] t; initial $display("B t %0d", 2); initial $display("B top.t %0d", 1); initial $display("B X.t %0d", 2); initial $display("B top.X.t %0d", 2); if (1) begin : Y wire [2:0] t; initial $display("C t %0d", 3); initial $display("C top.t %0d", 1); initial $display("C X.t %0d", 2); initial $display("C top.X.t %0d", 2); initial $display("C Y.t %0d", 3); initial $display("C X.Y.t %0d", 3); initial $display("C top.X.Y.t %0d", 3); end end genvar i; for (i = 0; i < 3; i = i + 1) begin : Z wire [i:0] t; end endgenerate initial $display("A t %0d", 1); initial $display("A top.t %0d", 1); initial $display("A X.t %0d", 2); initial $display("A top.X.t %0d", 2); initial $display("A X.Y.t %0d", 3); initial $display("A top.X.Y.t %0d", 3); initial $display("A top.Z[0].t %0d", 1); initial $display("A Z[0].t %0d", 1); initial $display("A Z[1].t %0d", 2); initial $display("A Z[2].t %0d", 3); wire x; initial begin : name reg [1:0] x; reg [5:0] y; $display("size of x = %0d", $bits(x)); $display("size of y = %0d", $bits(y)); end wire [11:0] arr; generate if (1) begin : M wire [19:0] arr; initial $display("M arr[0] = %b", arr[4:0]); initial $display("M M.arr[0] = %b", M.arr[4:0]); initial $display("M top.arr[0] = %b", top.arr[3:0]); end endgenerate initial $display("arr[0] = %b", arr[3:0]); initial $display("M.arr[0] = %b", M.arr[4:0]); initial $display("top.arr[0] = %b", top.arr[3:0]); localparam [0:5] arr2 = 6'b011100; generate genvar j; for (i = 0 ; i < 2 ; i = i + 1) begin for (j = 0 ; j < 3 ; j = j + 1) begin localparam value = arr2[i * 3 + j]; initial $display("%0d %0d %0d", i, j, value); end end endgenerate endmodule