Structural full adder
module full_addr (A, B, Cin, S, Cout);
assign {Cout, S} = A + B + Cin;
module adder4 (A, B, Cin, S, Cout);
full_addr fa0 (A[0], B[0], Cin, S[0], C1);
full_addr fa1 (A[1], B[1], C1, S[1], C2);
full_addr fa2 (A[2], B[2], C2, S[2], C3);
full_addr fa3 (A[3], B[3], C3, S[3], Cout);