jump.sv 3.72 KB
Newer Older
1 2 3 4 5
module top;

    task skip1;
        $display("HELLO skip1");
        return;
6
        $display("UNREACHABLE ", `__LINE__);
7 8 9 10
    endtask
    function void skip2;
        $display("HELLO skip2");
        return;
11
        $display("UNREACHABLE ", `__LINE__);
12 13 14 15
    endfunction
    function int skip3;
        $display("HELLO skip3");
        return 1;
16
        $display("UNREACHABLE ", `__LINE__);
17 18 19 20 21
    endfunction
    task skip4;
        for (int i = 0; i < 10; ++i) begin
            $display("HELLO skip4");
            return;
22
            $display("UNREACHABLE ", `__LINE__);
23
        end
24
        $display("UNREACHABLE ", `__LINE__);
25 26 27 28 29 30 31
    endtask
    task skip5;
        for (int i = 0; i < 10; ++i) begin
            $display("HELLO skip5-1");
            for (int j = 0; j < 10; ++j) begin
                $display("HELLO skip5-2");
                return;
32
                $display("UNREACHABLE ", `__LINE__);
33
            end
34
            $display("UNREACHABLE ", `__LINE__);
35
        end
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
        $display("UNREACHABLE ", `__LINE__);
    endtask
    task skip6;
        for (int i = 0; i < 0; ++i) begin
            $display("UNREACHABLE ", `__LINE__);
            return;
        end
        $display("HELLO skip6");
    endtask
    task skip7;
        begin
            parameter x = 1;
            $display("HELLO skip7");
            if (x == 1) return;
            $display("UNREACHABLE ", `__LINE__);
        end
        $display("UNREACHABLE ", `__LINE__);
    endtask
    task skip8;
        begin
            parameter x = 1;
            $display("HELLO skip8-1");
            if (x == 2) return;
            $display("HELLO skip8-2");
        end
        $display("HELLO skip8-3");
62 63 64 65 66 67 68
    endtask
    initial begin
        skip1;
        skip2;
        $display(skip3());
        skip4;
        skip5;
69 70 71
        skip6;
        skip7;
        skip8;
72 73 74 75 76 77
    end

    initial
        for (int i = 0; i < 10; ++i) begin
            $display("Loop Y:", i);
            continue;
78
            $display("UNREACHABLE ", `__LINE__);
79 80 81 82 83 84
        end

    initial
        for (int i = 0; i < 10; ++i) begin
            $display("Loop Z:", i);
            break;
85
            $display("UNREACHABLE ", `__LINE__);
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
        end

    initial
        for (int i = 0; i < 10; ++i)
            if (i < 5)
                $display("Loop A:", i);
            else
                break;

    initial
        for (int i = 0; i < 10; ++i) begin
            if (i < 3)
                $display("Loop B-1:", i);
            else if (i < 7)
                $display("Loop B-2:", i);
            else begin
                $display("Loop B-3:", i);
                continue;
104
                $display("UNREACHABLE ", `__LINE__);
105 106 107 108
            end
            $display("Loop B:", i);
        end

109 110 111 112 113 114 115 116
    always #1
        for (int i = 0; i < 10; ++i) begin
            $display("Loop C-1:", i);
            break;
            $display("UNREACHABLE ", `__LINE__);
        end
    initial #5 $finish;

117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
    initial begin
        for (int unsigned i = 0; i < 5; ++i) begin
            $display("Loop D-1:", i);
            if (i == 3) begin
                $display("Loop D-2:", i);
                break;
                $display("UNREACHABLE ", `__LINE__);
            end
            $display("Loop D-3:", i);
        end
        for (int unsigned i = 0; i < 5; i++) begin
            $display("Loop E-1:", i);
            if (i == 2) begin
                $display("Loop E-2:", i);
                break;
                $display("UNREACHABLE ", `__LINE__);
            end
            $display("Loop E-3:", i);
        end
        $display("Block F-1");
    end

139 140 141 142 143 144 145 146 147
    initial begin
        int i;
        for (i = 0; i < 10; ++i)
            if (i < 5)
                $display("Loop F:", i);
            else
                break;
    end

148
endmodule