`timescale 1ns/100ps module adder_16bit(sum, cout, in1, in2, cin); input [15:0] in1; input [15:0] in2; input cin; output [15:0] sum; output cout; wire [15:0] cvect; adder_1bit u0(sum[0], cvect[0], in1[0], in2[0], cin); adder_1bit u1(sum[1], cvect[1], in1[1], in2[1], cvect[0]); adder_1bit u2(sum[2], cvect[2], in1[2], in2[2], cvect[1]); adder_1bit u3(sum[3], cvect[3], in1[3], in2[3], cvect[2]); adder_1bit u4(sum[4], cvect[4], in1[4], in2[4], cvect[3]); adder_1bit u5(sum[5], cvect[5], in1[5], in2[5], cvect[4]); adder_1bit u6(sum[6], cvect[6], in1[6], in2[6], cvect[5]); adder_1bit u7(sum[7], cvect[7], in1[7], in2[7], cvect[6]); adder_1bit u8(sum[8], cvect[8], in1[8], in2[8], cvect[7]); adder_1bit u9(sum[9], cvect[9], in1[9], in2[9], cvect[8]); adder_1bit u10(sum[10], cvect[10], in1[10], in2[10], cvect[9]); adder_1bit u11(sum[11], cvect[11], in1[11], in2[11], cvect[10]); adder_1bit u12(sum[12], cvect[12], in1[12], in2[12], cvect[11]); adder_1bit u13(sum[13], cvect[13], in1[13], in2[13], cvect[12]); adder_1bit u14(sum[14], cvect[14], in1[14], in2[14], cvect[13]); adder_1bit u15(sum[15], cvect[15], in1[15], in2[15], cvect[14]); assign cout = cvect[15]; endmodule