sv2v/test/core/multipack_inline.sv

25 lines
593 B
Systemverilog

module top;
typedef struct packed {
logic [1:0][1:0][1:0] x;
} U;
typedef union packed {
logic [$bits(U) - 1:0][7:0] a;
logic [3:0][15:0] b;
U [7:0] c;
} T;
typedef struct packed {
logic [$bits(U) - 1:0][7:0] a;
logic [3:0][15:0] b;
U [7:0] c;
T [2:0] d;
} S;
if ($bits(U) != 8)
$error("invalid width U");
if ($bits(T) != 64)
$error("invalid width T");
if ($bits(S) != 64 * 6)
$error("invalid width S");
logic [31:0] x;
assign x[$bits(U) - 1:0] = '1;
endmodule