module top_module (
input [3:0] x,
input [3:0] y,
output [4:0] sum);
wire cout,cout1,cout2;
full_adder d1(x[0],y[0],1'b0,cout,sum[0]);
full_adder d2(x[1],y[1],cout,cout1,sum[1]);
full_adder d3(x[2],y[2],cout1,cout2,sum[2]);
full_adder d4(x[3],y[3],cout2,sum[4],sum[3]);
endmodule
module full_adder( input a, input b, input cin, output cout, output sum);
assign {cout,sum}=a+b+cin;
endmodule