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 }; initial begin `define PRINT(X) \ $display("%b %2d %2d", {X[0], X[1], X[2], X[3]}, $bits(X), $bits(X[0])); `PRINT(A); `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); 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 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 endmodule