cast.v 2.07 KB
Newer Older
1
module top;
2

3
    generate
4
        if (1) begin : A
5 6 7
            reg signed [31:0] x;
        end
    endgenerate
8 9 10 11 12
    initial begin : foo_block
        reg [31:0] w;
        reg signed [31:0] y;
        reg [4:0] z;
        w = 1234;
13
        A.x = -235;
14 15 16
        y = 1234;
        z = y;
        $display("%0d %0d", w, w[4:0]);
17
        $display("%0d %0d", A.x, $signed(A.x[4:0]));
18 19 20
        $display("%0d %0d", y, $signed(y[4:0]));
        $display("%0d %0d", z, z[4:0]);
        $display("%0d %0d", w+1, w[4:0]+1);
21
        $display("%0d %0d", A.x+1, $signed(A.x[4:0])+1);
22 23 24
        $display("%0d %0d", y+1, $signed(y[4:0])+1);
        $display("%0d %0d", z+1, z[4:0]+1);
        $display("%b %b", w, {8'b0, w});
25
        $display("%b %b", A.x, {8'hFF, A.x});
26 27
        $display("%b %b", y, {8'b0, y});
        $display("%b %b", z, {35'b0, z});
28
        $display("%0d %0d", w, w[4:0]);
29
        $display("%0d %0d", A.x, $signed(A.x[4:0]));
30 31
        $display("%0d %0d", y, $signed(y[4:0]));
        $display("%0d %0d", z, z[4:0]);
32
        $display("%b", 32'd4);
33 34 35 36 37 38
        $display("%b", 33'd4);
        $display("%b", 33'h1_FFFF_FFFF);
        $display("%b", 32'd0);
        $display("%b", 33'd4294967296);
        $display("%b", 32'd1);
        $display("%b", 33'd4294967297);
39
    end
40

41
    localparam [0:0] foo = 0;
42 43
    localparam [31:0] bar = 32'b0;
    initial $display("%b %b", foo, bar);
44 45 46 47 48 49

    initial begin
        $display("%b", 5'sb11111);
        $display("%b", 5'sb11111);
    end

50 51 52 53 54 55 56 57 58 59 60 61 62 63
    parameter W = 9;
    initial begin : block
        reg signed [7:0] i;
        reg [7:0] j;
        reg [8:0] i_extended;
        reg [8:0] j_extended;
        i = -1;
        j = -1;
        i_extended = i;
        j_extended = j;
        $display("%b", i_extended);
        $display("%b", j_extended);
    end

64 65 66 67 68 69 70 71 72 73 74 75
    initial begin
        $display("T1 %0d", -1);
        $display("T2 %0d", -1);
        $display("T3 %0d", 32'hFFFF_FFFF);
        $display("T1 %0d", 1);
        $display("T2 %0d", 1);
        $display("T3 %0d", 1);
        $display("T1 %0d", 1);
        $display("T2 %0d", 1);
        $display("T3 %0d", 1);
    end

76
endmodule