for_decl.v 1.88 KB
Newer Older
1 2 3 4 5 6 7
module top;

    wire [0:31] a;
    generate
        genvar n;
        for (n = 0; n < 32; n = n + 1) begin : gen_filter
            assign a[n] = n & 1;
8 9
            wire x;
            assign x = a[n];
10 11 12
        end
    endgenerate

13 14 15 16
    wire [0:31] b;
    generate
        genvar other_n;
        for (other_n = 0; other_n < 32; other_n = other_n + 1) begin : gen_filter_other
17
            assign b[other_n] = ~gen_filter[other_n].x;
18 19 20
        end
    endgenerate

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
    integer i;
    initial begin : foo_1
        for (i = 0; i < 32; i = i + 1)
            $display("1: ", a[i]);
    end

    initial begin : foo_2
        integer i;
        for (i = 0; i < 32; i = i + 1)
            $display("2: ", ~a[i]);
    end

    initial begin : foo_3
        integer i;
        integer j;
        j = 42;
        for (i = 0; i < 32; i = i + 1)
            $display("3: ", ~a[i] + 5, " j=", j);
    end

    initial begin : foo_4
        integer i, j;
        j = 97;
        for (i = 0; i < 32; i = i + 1)
            $display("4: ", ~a[i] + 10, " j=", j);
    end

    integer j, k;
    initial begin
        for (j = 0; j < 4; j++)
            for (k = 0; k < 8; k++)
                $display("5: ", ~a[j * 8 + k] + 11);
    end

55 56 57 58 59 60 61 62 63 64 65 66 67
    initial begin : foo_6
        integer i;
        for (i = 0; i < 32; i = i + 1)
            $display("6: ", ~a[i]);
    end

    initial begin : foo_7
        integer j, k;
        for (j = 0; j < 4; j++)
            for (k = 0; k < 8; k++)
                $display("7: ", ~a[j * 8 + k] + 11);
    end

68 69 70 71 72 73
    initial begin : foo_8
        integer i;
        for (i = 0; i < 32; i = i + 1)
            $display("8: ", a[i], b[i]);
    end

74 75 76 77
    wire start;
    assign start = gen_filter[0].x;
    initial $display(start);

78 79 80 81
    wire [0:31] c;
    generate
        for (n = 0; n < 32; n = n + 1)
            assign c[n] = n & 1;
82
        for (n = 0; n < 32; n = n + 1) begin end
83 84
    endgenerate

85
endmodule