// Define a 1-bit full adder module fulladd(sum, c_out, a, b, c_in, clk); // I/O port declarations output sum, c_out; input a, b, c_in, clk; reg sum, c_out; wire a, b, c_in, clk; reg s, co; always @( a or b or c_in ) begin s = a ^ b ^ c_in; co = (a & b) | (b & c_in) |(c_in & a); end always @(posedge clk) begin sum = s; c_out = co; end endmodule // Define a 128-bit full adder module fulladder128(sum, c_out, a, b, clk); // I/O port declarations output[127:0] sum; output c_out; input[127:0] a, b; input c_in, clk; // Internal nets wire[126:0] c; // Instantiate 128 1-bit full adders. fulladd fulladd_0 (sum[0], c[0], a[0], b[0], c_in, clk); fulladd fulladd_1 (sum[1], c[1], a[1], b[1], c[0], clk); fulladd fulladd_2 (sum[2], c[2], a[2], b[2], c[1], clk); fulladd fulladd_3 (sum[3], c[3], a[3], b[3], c[2], clk); fulladd fulladd_4 (sum[4], c[4], a[4], b[4], c[3], clk); fulladd fulladd_5 (sum[5], c[5], a[5], b[5], c[4], clk); fulladd fulladd_6 (sum[6], c[6], a[6], b[6], c[5], clk); fulladd fulladd_7 (sum[7], c[7], a[7], b[7], c[6], clk); fulladd fulladd_8 (sum[8], c[8], a[8], b[8], c[7], clk); fulladd fulladd_9 (sum[9], c[9], a[9], b[9], c[8], clk); fulladd fulladd_10 (sum[10], c[10], a[10], b[10], c[9], clk); fulladd fulladd_11 (sum[11], c[11], a[11], b[11], c[10], clk); fulladd fulladd_12 (sum[12], c[12], a[12], b[12], c[11], clk); fulladd fulladd_13 (sum[13], c[13], a[13], b[13], c[12], clk); fulladd fulladd_14 (sum[14], c[14], a[14], b[14], c[13], clk); fulladd fulladd_15 (sum[15], c[15], a[15], b[15], c[14], clk); fulladd fulladd_16 (sum[16], c[16], a[16], b[16], c[15], clk); fulladd fulladd_17 (sum[17], c[17], a[17], b[17], c[16], clk); fulladd fulladd_18 (sum[18], c[18], a[18], b[18], c[17], clk); fulladd fulladd_19 (sum[19], c[19], a[19], b[19], c[18], clk); fulladd fulladd_20 (sum[20], c[20], a[20], b[20], c[19], clk); fulladd fulladd_21 (sum[21], c[21], a[21], b[21], c[20], clk); fulladd fulladd_22 (sum[22], c[22], a[22], b[22], c[21], clk); fulladd fulladd_23 (sum[23], c[23], a[23], b[23], c[22], clk); fulladd fulladd_24 (sum[24], c[24], a[24], b[24], c[23], clk); fulladd fulladd_25 (sum[25], c[25], a[25], b[25], c[24], clk); fulladd fulladd_26 (sum[26], c[26], a[26], b[26], c[25], clk); fulladd fulladd_27 (sum[27], c[27], a[27], b[27], c[26], clk); fulladd fulladd_28 (sum[28], c[28], a[28], b[28], c[27], clk); fulladd fulladd_29 (sum[29], c[29], a[29], b[29], c[28], clk); fulladd fulladd_30 (sum[30], c[30], a[30], b[30], c[29], clk); fulladd fulladd_31 (sum[31], c[31], a[31], b[31], c[30], clk); fulladd fulladd_32 (sum[32], c[32], a[32], b[32], c[31], clk); fulladd fulladd_33 (sum[33], c[33], a[33], b[33], c[32], clk); fulladd fulladd_34 (sum[34], c[34], a[34], b[34], c[33], clk); fulladd fulladd_35 (sum[35], c[35], a[35], b[35], c[34], clk); fulladd fulladd_36 (sum[36], c[36], a[36], b[36], c[35], clk); fulladd fulladd_37 (sum[37], c[37], a[37], b[37], c[36], clk); fulladd fulladd_38 (sum[38], c[38], a[38], b[38], c[37], clk); fulladd fulladd_39 (sum[39], c[39], a[39], b[39], c[38], clk); fulladd fulladd_40 (sum[40], c[40], a[40], b[40], c[39], clk); fulladd fulladd_41 (sum[41], c[41], a[41], b[41], c[40], clk); fulladd fulladd_42 (sum[42], c[42], a[42], b[42], c[41], clk); fulladd fulladd_43 (sum[43], c[43], a[43], b[43], c[42], clk); fulladd fulladd_44 (sum[44], c[44], a[44], b[44], c[43], clk); fulladd fulladd_45 (sum[45], c[45], a[45], b[45], c[44], clk); fulladd fulladd_46 (sum[46], c[46], a[46], b[46], c[45], clk); fulladd fulladd_47 (sum[47], c[47], a[47], b[47], c[46], clk); fulladd fulladd_48 (sum[48], c[48], a[48], b[48], c[47], clk); fulladd fulladd_49 (sum[49], c[49], a[49], b[49], c[48], clk); fulladd fulladd_50 (sum[50], c[50], a[50], b[50], c[49], clk); fulladd fulladd_51 (sum[51], c[51], a[51], b[51], c[50], clk); fulladd fulladd_52 (sum[52], c[52], a[52], b[52], c[51], clk); fulladd fulladd_53 (sum[53], c[53], a[53], b[53], c[52], clk); fulladd fulladd_54 (sum[54], c[54], a[54], b[54], c[53], clk); fulladd fulladd_55 (sum[55], c[55], a[55], b[55], c[54], clk); fulladd fulladd_56 (sum[56], c[56], a[56], b[56], c[55], clk); fulladd fulladd_57 (sum[57], c[57], a[57], b[57], c[56], clk); fulladd fulladd_58 (sum[58], c[58], a[58], b[58], c[57], clk); fulladd fulladd_59 (sum[59], c[59], a[59], b[59], c[58], clk); fulladd fulladd_60 (sum[60], c[60], a[60], b[60], c[59], clk); fulladd fulladd_61 (sum[61], c[61], a[61], b[61], c[60], clk); fulladd fulladd_62 (sum[62], c[62], a[62], b[62], c[61], clk); fulladd fulladd_63 (sum[63], c[63], a[63], b[63], c[62], clk); fulladd fulladd_64 (sum[64], c[64], a[64], b[64], c[63], clk); fulladd fulladd_65 (sum[65], c[65], a[65], b[65], c[64], clk); fulladd fulladd_66 (sum[66], c[66], a[66], b[66], c[65], clk); fulladd fulladd_67 (sum[67], c[67], a[67], b[67], c[66], clk); fulladd fulladd_68 (sum[68], c[68], a[68], b[68], c[67], clk); fulladd fulladd_69 (sum[69], c[69], a[69], b[69], c[68], clk); fulladd fulladd_70 (sum[70], c[70], a[70], b[70], c[69], clk); fulladd fulladd_71 (sum[71], c[71], a[71], b[71], c[70], clk); fulladd fulladd_72 (sum[72], c[72], a[72], b[72], c[71], clk); fulladd fulladd_73 (sum[73], c[73], a[73], b[73], c[72], clk); fulladd fulladd_74 (sum[74], c[74], a[74], b[74], c[73], clk); fulladd fulladd_75 (sum[75], c[75], a[75], b[75], c[74], clk); fulladd fulladd_76 (sum[76], c[76], a[76], b[76], c[75], clk); fulladd fulladd_77 (sum[77], c[77], a[77], b[77], c[76], clk); fulladd fulladd_78 (sum[78], c[78], a[78], b[78], c[77], clk); fulladd fulladd_79 (sum[79], c[79], a[79], b[79], c[78], clk); fulladd fulladd_80 (sum[80], c[80], a[80], b[80], c[79], clk); fulladd fulladd_81 (sum[81], c[81], a[81], b[81], c[80], clk); fulladd fulladd_82 (sum[82], c[82], a[82], b[82], c[81], clk); fulladd fulladd_83 (sum[83], c[83], a[83], b[83], c[82], clk); fulladd fulladd_84 (sum[84], c[84], a[84], b[84], c[83], clk); fulladd fulladd_85 (sum[85], c[85], a[85], b[85], c[84], clk); fulladd fulladd_86 (sum[86], c[86], a[86], b[86], c[85], clk); fulladd fulladd_87 (sum[87], c[87], a[87], b[87], c[86], clk); fulladd fulladd_88 (sum[88], c[88], a[88], b[88], c[87], clk); fulladd fulladd_89 (sum[89], c[89], a[89], b[89], c[88], clk); fulladd fulladd_90 (sum[90], c[90], a[90], b[90], c[89], clk); fulladd fulladd_91 (sum[91], c[91], a[91], b[91], c[90], clk); fulladd fulladd_92 (sum[92], c[92], a[92], b[92], c[91], clk); fulladd fulladd_93 (sum[93], c[93], a[93], b[93], c[92], clk); fulladd fulladd_94 (sum[94], c[94], a[94], b[94], c[93], clk); fulladd fulladd_95 (sum[95], c[95], a[95], b[95], c[94], clk); fulladd fulladd_96 (sum[96], c[96], a[96], b[96], c[95], clk); fulladd fulladd_97 (sum[97], c[97], a[97], b[97], c[96], clk); fulladd fulladd_98 (sum[98], c[98], a[98], b[98], c[97], clk); fulladd fulladd_99 (sum[99], c[99], a[99], b[99], c[98], clk); fulladd fulladd_100 (sum[100], c[100], a[100], b[100], c[99], clk); fulladd fulladd_101 (sum[101], c[101], a[101], b[101], c[100], clk); fulladd fulladd_102 (sum[102], c[102], a[102], b[102], c[101], clk); fulladd fulladd_103 (sum[103], c[103], a[103], b[103], c[102], clk); fulladd fulladd_104 (sum[104], c[104], a[104], b[104], c[103], clk); fulladd fulladd_105 (sum[105], c[105], a[105], b[105], c[104], clk); fulladd fulladd_106 (sum[106], c[106], a[106], b[106], c[105], clk); fulladd fulladd_107 (sum[107], c[107], a[107], b[107], c[106], clk); fulladd fulladd_108 (sum[108], c[108], a[108], b[108], c[107], clk); fulladd fulladd_109 (sum[109], c[109], a[109], b[109], c[108], clk); fulladd fulladd_110 (sum[110], c[110], a[110], b[110], c[109], clk); fulladd fulladd_111 (sum[111], c[111], a[111], b[111], c[110], clk); fulladd fulladd_112 (sum[112], c[112], a[112], b[112], c[111], clk); fulladd fulladd_113 (sum[113], c[113], a[113], b[113], c[112], clk); fulladd fulladd_114 (sum[114], c[114], a[114], b[114], c[113], clk); fulladd fulladd_115 (sum[115], c[115], a[115], b[115], c[114], clk); fulladd fulladd_116 (sum[116], c[116], a[116], b[116], c[115], clk); fulladd fulladd_117 (sum[117], c[117], a[117], b[117], c[116], clk); fulladd fulladd_118 (sum[118], c[118], a[118], b[118], c[117], clk); fulladd fulladd_119 (sum[119], c[119], a[119], b[119], c[118], clk); fulladd fulladd_120 (sum[120], c[120], a[120], b[120], c[119], clk); fulladd fulladd_121 (sum[121], c[121], a[121], b[121], c[120], clk); fulladd fulladd_122 (sum[122], c[122], a[122], b[122], c[121], clk); fulladd fulladd_123 (sum[123], c[123], a[123], b[123], c[122], clk); fulladd fulladd_124 (sum[124], c[124], a[124], b[124], c[123], clk); fulladd fulladd_125 (sum[125], c[125], a[125], b[125], c[124], clk); fulladd fulladd_126 (sum[126], c[126], a[126], b[126], c[125], clk); fulladd fulladd_127 (sum[127], c_out, a[127], b[127], c[126], clk); endmodule