module test(input [31:0] a, b, c, output [31:0] x, y, z, w); unit_x unit_x_inst (.a(a), .b(b), .c(c), .x(x)); unit_y unit_y_inst (.a(a), .b(b), .c(c), .y(y)); assign z = a ^ b ^ c, w = z; endmodule module unit_x(input [31:0] a, b, c, output [31:0] x); assign x = (a & b) | c; endmodule module unit_y(input [31:0] a, b, c, output [31:0] y); assign y = a & (b | c); endmodule