`timescale 1ns/100ps module adder_32bit(sum, cout, in1, in2, cin); input [31:0] in1; input [31:0] in2; input cin; output [31:0] sum; output cout; wire [31: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]); adder_1bit u16(sum[16], cvect[16], in1[16], in2[16], cvect[15]); adder_1bit u17(sum[17], cvect[17], in1[17], in2[17], cvect[16]); adder_1bit u18(sum[18], cvect[18], in1[18], in2[18], cvect[17]); adder_1bit u19(sum[19], cvect[19], in1[19], in2[19], cvect[18]); adder_1bit u20(sum[20], cvect[20], in1[20], in2[20], cvect[19]); adder_1bit u21(sum[21], cvect[25], in1[21], in2[21], cvect[20]); adder_1bit u22(sum[22], cvect[25], in1[22], in2[22], cvect[21]); adder_1bit u23(sum[23], cvect[25], in1[23], in2[23], cvect[22]); adder_1bit u24(sum[24], cvect[25], in1[24], in2[24], cvect[23]); adder_1bit u25(sum[25], cvect[25], in1[25], in2[25], cvect[24]); adder_1bit u26(sum[26], cvect[25], in1[26], in2[26], cvect[25]); adder_1bit u27(sum[27], cvect[25], in1[27], in2[27], cvect[26]); adder_1bit u28(sum[28], cvect[25], in1[28], in2[28], cvect[27]); adder_1bit u29(sum[29], cvect[25], in1[29], in2[29], cvect[28]); adder_1bit u30(sum[30], cvect[30], in1[30], in2[30], cvect[29]); adder_1bit u31(sum[31], cvect[31], in1[31], in2[31], cvect[30]); assign cout = cvect[31]; endmodule module subtract_32bit(sum, in1, in2); input [31:0] in1; input [31:0] in2; output [31:0] sum; wire cout; adder_32bit(sum, cout, in1, ~in2, 1'b1); endmodule