aboutsummaryrefslogtreecommitdiffstats
path: root/tests/verilog/unbased_unsized_shift.sv
blob: 475e9a75dfe3d22e791315e3d56206e5ec38d18d (plain)
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
module pass_through(
    input [63:0] inp,
    output [63:0] out
);
    assign out = inp;
endmodule

module top;
    logic [63:0] s0c, s1c, sxc, s0d, s1d, sxd, d;

    pass_through pt(8, d);

    assign s0c = '0 << 8;
    assign s1c = '1 << 8;
    assign sxc = 'x << 8;
    assign s0d = '0 << d;
    assign s1d = '1 << d;
    assign sxd = 'x << d;

    always @* begin
        assert (s0c === 64'h0000_0000_0000_0000);
        assert (s1c === 64'hFFFF_FFFF_FFFF_FF00);
        assert (sxc === 64'hxxxx_xxxx_xxxx_xx00);
        assert (s0d === 64'h0000_0000_0000_0000);
        assert (s1d === 64'hFFFF_FFFF_FFFF_FF00);
        assert (sxd === 64'hxxxx_xxxx_xxxx_xx00);
    end
endmodule