cast_procedure.v 673 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
`define TEST(size) \
    localparam WIDTH = ONE * size; \
    localparam [WIDTH-1:0] short = ONES; \
    integer long; \
    long = short; \
    $display(`"size: %b %b %b %b`", short, long, long, short);

module top;
    parameter ONE = 1;
    parameter signed [0:0] ONES = 1'sb1;
    reg signed [0:0] ones;
    initial ones = 1'sb1;
    task t;
        begin : blk1
            `TEST(6)
        end
    endtask
    function f;
        input integer unused;
        begin : blk2
            `TEST(7)
        end
    endfunction
    initial t;
    initial begin : blk3
        integer a;
        a = f(0);
    end
    initial begin : blk4
        `TEST(8)
    end
endmodule