sv2v/test/core/integer_array.sv

57 lines
1.9 KiB
Systemverilog
Raw Normal View History

2020-02-17 18:12:51 +01:00
module top;
parameter ONE = 1;
localparam integer A [4] = { 1, 2, 3, 4 };
localparam byte B [4] = { 1, 2, 3, 4 };
localparam bit C [4] = { 1, 2, 3, 4 };
localparam integer signed D [4] = { -1, -2, -3, -4 };
localparam byte signed E [4] = { -1, -2, -3, -4 };
localparam bit signed F [4] = { -1, -2, -3, -4 };
localparam integer G [4] = '{ 1, 2, 3, 4 };
localparam byte H [4] = '{ 1, 2, 3, 4 };
localparam bit I [4] = '{ 1, 2, 3, 4 };
localparam integer J [4] = { ONE * '0, ONE * '1, 5 * ONE, ONE * 6 };
localparam byte K [4] = { ONE * '0, ONE * '1, 5 * ONE, ONE * 6 };
localparam bit L [4] = { '0, ONE * '1, 5 * ONE, ONE * 6 };
localparam integer unsigned M [4] = { ONE * '0, ONE * '1, 5 * ONE, ONE * 6 };
localparam byte unsigned N [4] = { ONE * '0, ONE * '1, 5 * ONE, ONE * 6 };
localparam bit unsigned O [4] = { '0, ONE * '1, 5 * ONE, ONE * 6 };
2020-02-17 18:12:51 +01:00
initial begin
`define PRINT(X) \
$display("%b %2d %2d", {X[0], X[1], X[2], X[3]}, $bits(X), $bits(X[0]));
`PRINT(A);
2020-02-17 18:12:51 +01:00
`PRINT(B);
`PRINT(C);
`PRINT(D);
`PRINT(E);
`PRINT(F);
`PRINT(G);
`PRINT(H);
`PRINT(I);
`PRINT(J);
`PRINT(K);
`PRINT(L);
`PRINT(M);
`PRINT(N);
`PRINT(O);
2020-02-17 18:12:51 +01:00
end
localparam [1:0][0:1] P = '{'{default:'d1}, '{default:'d2}};
localparam bit [1:0][0:1] Q = '{'{default:'d2}, '{default:'d1}};
initial begin
$display("%b %b %b", P, P[0], P[1]);
$display("%b %b %b", Q, Q[0], Q[1]);
end
2020-07-24 02:23:40 +02:00
initial begin
logic [1:0][0:1][7:0] a;
a[0][0:1] = '{default: 1};
$display("a: %b", a);
a[1][0+:1] = '{default: 2};
$display("a: %b", a);
a[1][1-:1] = '{default: 3};
$display("a: %b", a);
a[1][1][3+:4] = '{default: '1};
$display("a: %b", a);
end
2020-02-17 18:12:51 +01:00
endmodule