typedef struct packed { reg w; bit x; logic y; } StructA; typedef struct packed { reg w; logic y; bit x; } StructB; typedef struct packed { bit x; reg w; logic y; } StructC; typedef struct packed { logic y; reg w; bit x; } StructD; typedef struct packed { bit x; logic y; reg w; } StructE; typedef struct packed { logic y; bit x; reg w; } StructF; module top; integer i, j, k; StructA a; StructB b; StructC c; StructD d; StructE e; StructF f; initial begin for (i = 0; i < 2; i++) begin for (j = 0; j < 2; j++) begin for (k = 0; k < 2; k++) begin a = '{ w:i, x:j, y:k }; b = '{ w:i, x:j, y:k }; c = '{ w:i, x:j, y:k }; d = '{ w:i, x:j, y:k }; e = '{ w:i, x:j, y:k }; f = '{ w:i, x:j, y:k }; $display("A: %1d%1d%1d -> ", i,j,k, a,b,c,d,e,f); end end end end initial begin integer i, j, k; StructB a; StructC b; StructD c; StructE d; StructF e; StructA f; for (i = 0; i < 2; i++) begin for (j = 0; j < 2; j++) begin for (k = 0; k < 2; k++) begin a = '{ w:i, x:j, y:k }; b = '{ w:i, x:j, y:k }; c = '{ w:i, x:j, y:k }; d = '{ w:i, x:j, y:k }; e = '{ w:i, x:j, y:k }; f = '{ w:i, x:j, y:k }; $display("B: %1d%1d%1d -> ", i,j,k, a,b,c,d,e,f); end end end begin integer i, j, k; StructC a; StructD b; StructE c; StructF d; StructA e; StructB f; for (i = 0; i < 2; i++) begin for (j = 0; j < 2; j++) begin for (k = 0; k < 2; k++) begin a = '{ w:i, x:j, y:k }; b = '{ w:i, x:j, y:k }; c = '{ w:i, x:j, y:k }; d = '{ w:i, x:j, y:k }; e = '{ w:i, x:j, y:k }; f = '{ w:i, x:j, y:k }; $display("C: %1d%1d%1d -> ", i,j,k, a,b,c,d,e,f); end end end end end task foo; integer i, j, k; StructD a; StructE b; StructF c; StructA d; StructB e; StructC f; for (i = 0; i < 2; i++) begin for (j = 0; j < 2; j++) begin for (k = 0; k < 2; k++) begin a = '{ w:i, x:j, y:k }; b = '{ w:i, x:j, y:k }; c = '{ w:i, x:j, y:k }; d = '{ w:i, x:j, y:k }; e = '{ w:i, x:j, y:k }; f = '{ w:i, x:j, y:k }; $display("D: %1d%1d%1d -> ", i,j,k, a,b,c,d,e,f); end end end endtask initial foo(); task bar; input integer i, j, k; input StructE a; input StructF b; input StructA c; input StructB d; input StructC e; input StructD f; $display("E: %1d%1d%1d -> ", i,j,k, a,b,c,d,e,f); endtask initial begin integer i, j, k; for (i = 0; i < 2; i++) begin for (j = 0; j < 2; j++) begin for (k = 0; k < 2; k++) begin bar(i,j,k , '{ w:i, x:j, y:k } , '{ w:i, x:j, y:k } , '{ w:i, x:j, y:k } , '{ w:i, x:j, y:k } , '{ w:i, x:j, y:k } , '{ w:i, x:j, y:k } ); end end end end function baz; input integer i, j, k; input StructF a; input StructA b; input StructB c; input StructC d; input StructD e; input StructE f; $display("F: %1d%1d%1d -> ", i,j,k, a,b,c,d,e,f); baz = 0; endfunction initial begin integer i, j, k; integer unused; for (i = 0; i < 2; i++) begin for (j = 0; j < 2; j++) begin for (k = 0; k < 2; k++) begin unused = baz(i,j,k , '{ w:i, x:j, y:k } , '{ w:i, x:j, y:k } , '{ w:i, x:j, y:k } , '{ w:i, x:j, y:k } , '{ w:i, x:j, y:k } , '{ w:i, x:j, y:k } ); end end end end endmodule