module test; typedef struct packed { int w, x; byte y; logic z; } struct_a; struct_a a; initial begin $monitor("%2d: %b %b %b %b %b", $time, a, a.w, a.x, a.y, a.z); #1 a.w = 0; #1 a.x = 0; #1 a.y = 0; #1 a.z = 0; #1 a = '{default: 1}; #1 a = '{default: 2}; #1 a = '{default: 3}; #1 a = '{default: 0}; #1 a = '{default: -1}; #1 a = '{default: -2}; #1 a = '{int: 0, default: 1}; #1 a = '{byte: 0, default: 1}; #1 a = '{logic: 0, default: 1}; #1 a = '{logic: 1, int: 2, byte: 3}; #1 a = '{logic: 1, int: 2, byte: 3, default: -1}; #1 a = '{int: 3, byte: 2, default: 0}; #1 a = '{w: 8, int: 0, default: 1}; #1 a = '{w: 8, byte: 0, default: 1}; #1 a = '{w: 8, logic: 0, default: 1}; #1 a = '{w: 8, logic: 1, int: 2, byte: 3}; #1 a = '{w: 8, logic: 1, int: 2, byte: 3, default: -1}; #1 a = '{w: 8, int: 3, byte: 2, default: 0}; end typedef struct packed { int x; struct_a y; logic z; } struct_b; struct_b b; initial begin #100; $monitor("%2d: %b %b %b %b", $time, b, b.x, b.y, b.z); #1 b.x = 0; #1 b.y = 0; #1 b.z = 0; #1 b = '{default: 1}; #1 b = '{default: 2}; #1 b = '{default: 3}; #1 b = '{default: 0}; #1 b = '{default: -1}; #1 b = '{default: -2}; #1 b = '{int: 0, default: 1}; #1 b = '{byte: 0, default: 1}; #1 b = '{logic: 0, default: 1}; #1 b = '{logic: 1, int: 2, byte: 3}; #1 b = '{logic: 1, int: 2, byte: 3, default: -1}; #1 b = '{int: 3, byte: 2, default: 0}; end endmodule module top; endmodule