module add_cond2_64(a,b,cin,co,s);

input signed [63:0] a,b;
input signed cin;
output co;
output signed [63:0] s;

wire [63:0] ps;
wire [63:0] t, phn, h6,h5,h4,h3,h2,h1,t5,t4,t3,t2,t1;
wire psb,cinb;
wire [63:0] psn,s0,s1;


// partial sum

partialsum ixpsum(ps[63:0], a[63:0], b[63:0]);

// conditional sum

cond2l ic21 (a[1:0],b[1:0],ps[2:1],s0[2:1],s1[2:1]);
cond2l ic22 (a[3:2],b[3:2],ps[4:3],s0[4:3],s1[4:3]);
cond2l ic23 (a[5:4],b[5:4],ps[6:5],s0[6:5],s1[6:5]);
cond2l ic24 (a[7:6],b[7:6],ps[8:7],s0[8:7],s1[8:7]);
cond2l ic25 (a[9:8],b[9:8],ps[10:9],s0[10:9],s1[10:9]);
cond2l ic26 (a[11:10],b[11:10],ps[12:11],s0[12:11],s1[12:11]);
cond2l ic27 (a[13:12],b[13:12],ps[14:13],s0[14:13],s1[14:13]);
cond2l ic28 (a[15:14],b[15:14],ps[16:15],s0[16:15],s1[16:15]);
cond2l ic29 (a[17:16],b[17:16],ps[18:17],s0[18:17],s1[18:17]);
cond2l ic210 (a[19:18],b[19:18],ps[20:19],s0[20:19],s1[20:19]);
cond2l ic211 (a[21:20],b[21:20],ps[22:21],s0[22:21],s1[22:21]);
cond2l ic212 (a[23:22],b[23:22],ps[24:23],s0[24:23],s1[24:23]);
cond2l ic213 (a[25:24],b[25:24],ps[26:25],s0[26:25],s1[26:25]);
cond2l ic214 (a[27:26],b[27:26],ps[28:27],s0[28:27],s1[28:27]);
cond2l ic215 (a[29:28],b[29:28],ps[30:29],s0[30:29],s1[30:29]);
cond2l ic216 (a[31:30],b[31:30],ps[32:31],s0[32:31],s1[32:31]);
cond2l ic217 (a[33:32],b[33:32],ps[34:33],s0[34:33],s1[34:33]);
cond2l ic218 (a[35:34],b[35:34],ps[36:35],s0[36:35],s1[36:35]);
cond2l ic219 (a[37:36],b[37:36],ps[38:37],s0[38:37],s1[38:37]);
cond2l ic220 (a[39:38],b[39:38],ps[40:39],s0[40:39],s1[40:39]);
cond2l ic221 (a[41:40],b[41:40],ps[42:41],s0[42:41],s1[42:41]);
cond2l ic222 (a[43:42],b[43:42],ps[44:43],s0[44:43],s1[44:43]);
cond2l ic223 (a[45:44],b[45:44],ps[46:45],s0[46:45],s1[46:45]);
cond2l ic224 (a[47:46],b[47:46],ps[48:47],s0[48:47],s1[48:47]);
cond2l ic225 (a[49:48],b[49:48],ps[50:49],s0[50:49],s1[50:49]);
cond2l ic226 (a[51:50],b[51:50],ps[52:51],s0[52:51],s1[52:51]);
cond2l ic227 (a[53:52],b[53:52],ps[54:53],s0[54:53],s1[54:53]);
cond2l ic228 (a[57:56],b[57:56],ps[58:57],s0[58:57],s1[58:57]);
cond2l ic229 (a[59:58],b[59:58],ps[60:59],s0[60:59],s1[60:59]);
cond2l ic230 (a[61:60],b[61:60],ps[62:61],s0[62:61],s1[62:61]);

nor it62 (t[62],a[62],b[62]);
not ixb63 (psn[63],ps[63]);
xorb ins1_63 (s1[63],psn[63],t[62]);


// 1st level H# and T#

h1 ih1i0(a[0],b[0],cin,cin,h1[0]);
h1 ih1i2(a[2],b[2],a[1],b[1],h1[2]);
h1 ih1i4(a[4],b[4],a[3],b[3],h1[4]);
h1 ih1i6(a[6],b[6],a[5],b[5],h1[6]);
h1 ih1i8(a[8],b[8],a[7],b[7],h1[8]);
h1 ih1i10(a[10],b[10],a[9],b[9],h1[10]);
h1 ih1i12(a[12],b[12],a[11],b[11],h1[12]);
h1 ih1i14(a[14],b[14],a[13],b[13],h1[14]);
h1 ih1i16(a[16],b[16],a[15],b[15],h1[16]);
h1 ih1i18(a[18],b[18],a[17],b[17],h1[18]);
h1 ih1i20(a[20],b[20],a[19],b[19],h1[20]);
h1 ih1i22(a[22],b[22],a[21],b[21],h1[22]);
h1 ih1i24(a[24],b[24],a[23],b[23],h1[24]);
h1 ih1i26(a[26],b[26],a[25],b[25],h1[26]);
h1 ih1i28(a[28],b[28],a[27],b[27],h1[28]);
h1 ih1i30(a[30],b[30],a[29],b[29],h1[30]);
h1 ih1i32(a[32],b[32],a[31],b[31],h1[32]);
h1 ih1i34(a[34],b[34],a[33],b[33],h1[34]);
h1 ih1i36(a[36],b[36],a[35],b[35],h1[36]);
h1 ih1i38(a[38],b[38],a[37],b[37],h1[38]);
h1 ih1i40(a[40],b[40],a[39],b[39],h1[40]);
h1 ih1i42(a[42],b[42],a[41],b[41],h1[42]);
h1 ih1i44(a[44],b[44],a[43],b[43],h1[44]);
h1 ih1i46(a[46],b[46],a[45],b[45],h1[46]);
h1 ih1i48(a[48],b[48],a[47],b[47],h1[48]);
h1 ih1i50(a[50],b[50],a[49],b[49],h1[50]);
h1 ih1i52(a[52],b[52],a[51],b[51],h1[52]);
h1 ih1i54(a[54],b[54],a[53],b[53],h1[54]);
h1 ih1i56(a[56],b[56],a[55],b[55],h1[56]);
h1 ih1i58(a[58],b[58],a[57],b[57],h1[58]);
h1 ih1i60(a[60],b[60],a[59],b[59],h1[60]);
h1 ih1i62(a[62],b[62],a[61],b[61],h1[62]);

t1 it1i1(a[1],b[1],a[0],b[0],t1[1]);
t1 it1i3(a[3],b[3],a[2],b[2],t1[3]);
t1 it1i5(a[5],b[5],a[4],b[4],t1[5]);
t1 it1i7(a[7],b[7],a[6],b[6],t1[7]);
t1 it1i9(a[9],b[9],a[8],b[8],t1[9]);
t1 it1i11(a[11],b[11],a[10],b[10],t1[11]);
t1 it1i13(a[13],b[13],a[12],b[12],t1[13]);
t1 it1i15(a[15],b[15],a[14],b[14],t1[15]);
t1 it1i17(a[17],b[17],a[16],b[16],t1[17]);
t1 it1i19(a[19],b[19],a[18],b[18],t1[19]);
t1 it1i21(a[21],b[21],a[20],b[20],t1[21]);
t1 it1i23(a[23],b[23],a[22],b[22],t1[23]);
t1 it1i25(a[25],b[25],a[24],b[24],t1[25]);
t1 it1i27(a[27],b[27],a[26],b[26],t1[27]);
t1 it1i29(a[29],b[29],a[28],b[28],t1[29]);
t1 it1i31(a[31],b[31],a[30],b[30],t1[31]);
t1 it1i33(a[33],b[33],a[32],b[32],t1[33]);
t1 it1i35(a[35],b[35],a[34],b[34],t1[35]);
t1 it1i37(a[37],b[37],a[36],b[36],t1[37]);
t1 it1i39(a[39],b[39],a[38],b[38],t1[39]);
t1 it1i41(a[41],b[41],a[40],b[40],t1[41]);
t1 it1i43(a[43],b[43],a[42],b[42],t1[43]);
t1 it1i45(a[45],b[45],a[44],b[44],t1[45]);
t1 it1i47(a[47],b[47],a[46],b[46],t1[47]);
t1 it1i49(a[49],b[49],a[48],b[48],t1[49]);
t1 it1i51(a[51],b[51],a[50],b[50],t1[51]);
t1 it1i53(a[53],b[53],a[52],b[52],t1[53]);
t1 it1i55(a[55],b[55],a[54],b[54],t1[55]);
t1 it1i57(a[57],b[57],a[56],b[56],t1[57]);
t1 it1i59(a[59],b[59],a[58],b[58],t1[59]);
t1 it1i61(a[61],b[61],a[60],b[60],t1[61]);

// 2nd level H and T

not ih2i0(h2[0],h1[0]);
oai ih2i2(h2[2],h1[0],t1[1],h1[2]);
oai ih2i4(h2[4],h1[2],t1[3],h1[4]);
oai ih2i6(h2[6],h1[4],t1[5],h1[6]);
oai ih2i8(h2[8],h1[6],t1[7],h1[8]);
oai ih2i10(h2[10],h1[8],t1[9],h1[10]);
oai ih2i12(h2[12],h1[10],t1[11],h1[12]);
oai ih2i14(h2[14],h1[12],t1[13],h1[14]);
oai ih2i16(h2[16],h1[14],t1[15],h1[16]);
oai ih2i18(h2[18],h1[16],t1[17],h1[18]);
oai ih2i20(h2[20],h1[18],t1[19],h1[20]);
oai ih2i22(h2[22],h1[20],t1[21],h1[22]);
oai ih2i24(h2[24],h1[22],t1[23],h1[24]);
oai ih2i26(h2[26],h1[24],t1[25],h1[26]);
oai ih2i28(h2[28],h1[26],t1[27],h1[28]);
oai ih2i30(h2[30],h1[28],t1[29],h1[30]);
oai ih2i32(h2[32],h1[30],t1[31],h1[32]);
oai ih2i34(h2[34],h1[32],t1[33],h1[34]);
oai ih2i36(h2[36],h1[34],t1[35],h1[36]);
oai ih2i38(h2[38],h1[36],t1[37],h1[38]);
oai ih2i40(h2[40],h1[38],t1[39],h1[40]);
oai ih2i42(h2[42],h1[40],t1[41],h1[42]);
oai ih2i44(h2[44],h1[42],t1[43],h1[44]);
oai ih2i46(h2[46],h1[44],t1[45],h1[46]);
oai ih2i48(h2[48],h1[46],t1[47],h1[48]);
oai ih2i50(h2[50],h1[48],t1[49],h1[50]);
oai ih2i52(h2[52],h1[50],t1[51],h1[52]);
oai ih2i54(h2[54],h1[52],t1[53],h1[54]);
oai ih2i56(h2[56],h1[54],t1[55],h1[56]);
oai ih2i58(h2[58],h1[56],t1[57],h1[58]);
oai ih2i60(h2[60],h1[58],t1[59],h1[60]);
oai ih2i62(h2[62],h1[60],t1[61],h1[62]);

nor it2i3(t2[3],t1[1],t1[3]);
nor it2i5(t2[5],t1[3],t1[5]);
nor it2i7(t2[7],t1[5],t1[7]);
nor it2i9(t2[9],t1[7],t1[9]);
nor it2i11(t2[11],t1[9],t1[11]);
nor it2i13(t2[13],t1[11],t1[13]);
nor it2i15(t2[15],t1[13],t1[15]);
nor it2i17(t2[17],t1[15],t1[17]);
nor it2i19(t2[19],t1[17],t1[19]);
nor it2i21(t2[21],t1[19],t1[21]);
nor it2i23(t2[23],t1[21],t1[23]);
nor it2i25(t2[25],t1[23],t1[25]);
nor it2i27(t2[27],t1[25],t1[27]);
nor it2i29(t2[29],t1[27],t1[29]);
nor it2i31(t2[31],t1[29],t1[31]);
nor it2i33(t2[33],t1[31],t1[33]);
nor it2i35(t2[35],t1[33],t1[35]);
nor it2i37(t2[37],t1[35],t1[37]);
nor it2i39(t2[39],t1[37],t1[39]);
nor it2i41(t2[41],t1[39],t1[41]);
nor it2i43(t2[43],t1[41],t1[43]);
nor it2i45(t2[45],t1[43],t1[45]);
nor it2i47(t2[47],t1[45],t1[47]);
nor it2i49(t2[49],t1[47],t1[49]);
nor it2i51(t2[51],t1[49],t1[51]);
nor it2i53(t2[53],t1[51],t1[53]);
nor it2i55(t2[55],t1[53],t1[55]);
nor it2i57(t2[57],t1[55],t1[57]);
nor it2i59(t2[59],t1[57],t1[59]);
nor it2i61(t2[61],t1[59],t1[61]);

// Level 3 H# and T#

not ih3i0(h3[0],h2[0]);
not ih3i2(h3[2],h2[2]);
aoi ih3i4(h3[4],h2[0],t2[3],h2[4]);
aoi ih3i6(h3[6],h2[2],t2[5],h2[6]);
aoi ih3i8(h3[8],h2[4],t2[7],h2[8]);
aoi ih3i10(h3[10],h2[6],t2[9],h2[10]);
aoi ih3i12(h3[12],h2[8],t2[11],h2[12]);
aoi ih3i14(h3[14],h2[10],t2[13],h2[14]);
aoi ih3i16(h3[16],h2[12],t2[15],h2[16]);
aoi ih3i18(h3[18],h2[14],t2[17],h2[18]);
aoi ih3i20(h3[20],h2[16],t2[19],h2[20]);
aoi ih3i22(h3[22],h2[18],t2[21],h2[22]);
aoi ih3i24(h3[24],h2[20],t2[23],h2[24]);
aoi ih3i26(h3[26],h2[22],t2[25],h2[26]);
aoi ih3i28(h3[28],h2[24],t2[27],h2[28]);
aoi ih3i30(h3[30],h2[26],t2[29],h2[30]);
aoi ih3i32(h3[32],h2[28],t2[31],h2[32]);
aoi ih3i34(h3[34],h2[30],t2[33],h2[34]);
aoi ih3i36(h3[36],h2[32],t2[35],h2[36]);
aoi ih3i38(h3[38],h2[34],t2[37],h2[38]);
aoi ih3i40(h3[40],h2[36],t2[39],h2[40]);
aoi ih3i42(h3[42],h2[38],t2[41],h2[42]);
aoi ih3i44(h3[44],h2[40],t2[43],h2[44]);
aoi ih3i46(h3[46],h2[42],t2[45],h2[46]);
aoi ih3i48(h3[48],h2[44],t2[47],h2[48]);
aoi ih3i50(h3[50],h2[46],t2[49],h2[50]);
aoi ih3i52(h3[52],h2[48],t2[51],h2[52]);
aoi ih3i54(h3[54],h2[50],t2[53],h2[54]);
aoi ih3i56(h3[56],h2[52],t2[55],h2[56]);
aoi ih3i58(h3[58],h2[54],t2[57],h2[58]);
aoi ih3i60(h3[60],h2[56],t2[59],h2[60]);
aoi ih3i62(h3[62],h2[58],t2[61],h2[62]);

nand it3i7(t3[7],t2[3],t2[7]);
nand it3i9(t3[9],t2[5],t2[9]);
nand it3i11(t3[11],t2[7],t2[11]);
nand it3i13(t3[13],t2[9],t2[13]);
nand it3i15(t3[15],t2[11],t2[15]);
nand it3i17(t3[17],t2[13],t2[17]);
nand it3i19(t3[19],t2[15],t2[19]);
nand it3i21(t3[21],t2[17],t2[21]);
nand it3i23(t3[23],t2[19],t2[23]);
nand it3i25(t3[25],t2[21],t2[25]);
nand it3i27(t3[27],t2[23],t2[27]);
nand it3i29(t3[29],t2[25],t2[29]);
nand it3i31(t3[31],t2[27],t2[31]);
nand it3i33(t3[33],t2[29],t2[33]);
nand it3i35(t3[35],t2[31],t2[35]);
nand it3i37(t3[37],t2[33],t2[37]);
nand it3i39(t3[39],t2[35],t2[39]);
nand it3i41(t3[41],t2[37],t2[41]);
nand it3i43(t3[43],t2[39],t2[43]);
nand it3i45(t3[45],t2[41],t2[45]);
nand it3i47(t3[47],t2[43],t2[47]);
nand it3i49(t3[49],t2[45],t2[49]);
nand it3i51(t3[51],t2[47],t2[51]);
nand it3i53(t3[53],t2[49],t2[53]);
nand it3i55(t3[55],t2[51],t2[55]);
nand it3i57(t3[57],t2[53],t2[57]);
nand it3i59(t3[59],t2[55],t2[59]);
nand it3i61(t3[61],t2[57],t2[61]);

// Level 4 H and T

not ih4i0(h4[0],h3[0]);
not ih4i2(h4[2],h3[2]);
not ih4i4(h4[4],h3[4]);
not ih4i6(h4[6],h3[6]);
oai ih4i8(h4[8],h3[0],t3[7],h3[8]);
oai ih4i10(h4[10],h3[2],t3[9],h3[10]);
oai ih4i12(h4[12],h3[4],t3[11],h3[12]);
oai ih4i14(h4[14],h3[6],t3[13],h3[14]);
oai ih4i16(h4[16],h3[8],t3[15],h3[16]);
oai ih4i18(h4[18],h3[10],t3[17],h3[18]);
oai ih4i20(h4[20],h3[12],t3[19],h3[20]);
oai ih4i22(h4[22],h3[14],t3[21],h3[22]);
oai ih4i24(h4[24],h3[16],t3[23],h3[24]);
oai ih4i26(h4[26],h3[18],t3[25],h3[26]);
oai ih4i28(h4[28],h3[20],t3[27],h3[28]);
oai ih4i30(h4[30],h3[22],t3[29],h3[30]);
oai ih4i32(h4[32],h3[24],t3[31],h3[32]);
oai ih4i34(h4[34],h3[26],t3[33],h3[34]);
oai ih4i36(h4[36],h3[28],t3[35],h3[36]);
oai ih4i38(h4[38],h3[30],t3[37],h3[38]);
oai ih4i40(h4[40],h3[32],t3[39],h3[40]);
oai ih4i42(h4[42],h3[34],t3[41],h3[42]);
oai ih4i44(h4[44],h3[36],t3[43],h3[44]);
oai ih4i46(h4[46],h3[38],t3[45],h3[46]);
oai ih4i48(h4[48],h3[40],t3[47],h3[48]);
oai ih4i50(h4[50],h3[42],t3[49],h3[50]);
oai ih4i52(h4[52],h3[44],t3[51],h3[52]);
oai ih4i54(h4[54],h3[46],t3[53],h3[54]);
oai ih4i56(h4[56],h3[48],t3[55],h3[56]);
oai ih4i58(h4[58],h3[50],t3[57],h3[58]);
oai ih4i60(h4[60],h3[52],t3[59],h3[60]);
oai ih4i62(h4[62],h3[54],t3[61],h3[62]);

nor it4i15(t4[15],t3[7],t3[15]);
nor it4i17(t4[17],t3[9],t3[17]);
nor it4i19(t4[19],t3[11],t3[19]);
nor it4i21(t4[21],t3[13],t3[21]);
nor it4i23(t4[23],t3[15],t3[23]);
nor it4i25(t4[25],t3[17],t3[25]);
nor it4i27(t4[27],t3[19],t3[27]);
nor it4i29(t4[29],t3[21],t3[29]);
nor it4i31(t4[31],t3[23],t3[31]);
nor it4i33(t4[33],t3[25],t3[33]);
nor it4i35(t4[35],t3[27],t3[35]);
nor it4i37(t4[37],t3[29],t3[37]);
nor it4i39(t4[39],t3[31],t3[39]);
nor it4i41(t4[41],t3[33],t3[41]);
nor it4i43(t4[43],t3[35],t3[43]);
nor it4i45(t4[45],t3[37],t3[45]);
nor it4i47(t4[47],t3[39],t3[47]);
nor it4i49(t4[49],t3[41],t3[49]);
nor it4i51(t4[51],t3[43],t3[51]);
nor it4i53(t4[53],t3[45],t3[53]);
nor it4i55(t4[55],t3[47],t3[55]);
nor it4i57(t4[57],t3[49],t3[57]);
nor it4i59(t4[59],t3[51],t3[59]);
nor it4i61(t4[61],t3[53],t3[61]);

// Level 5 H# 

not ih5i0(h5[0],h4[0]);
not ih5i2(h5[2],h4[2]);
not ih5i4(h5[4],h4[4]);
not ih5i6(h5[6],h4[6]);
not ih5i8(h5[8],h4[8]);
not ih5i10(h5[10],h4[10]);
not ih5i12(h5[12],h4[12]);
not ih5i14(h5[14],h4[14]);
aoi ih5i16(h5[16],h4[0],t4[15],h4[16]);
aoi ih5i18(h5[18],h4[2],t4[17],h4[18]);
aoi ih5i20(h5[20],h4[4],t4[19],h4[20]);
aoi ih5i22(h5[22],h4[6],t4[21],h4[22]);
aoi ih5i24(h5[24],h4[8],t4[23],h4[24]);
aoi ih5i26(h5[26],h4[10],t4[25],h4[26]);
aoi ih5i28(h5[28],h4[12],t4[27],h4[28]);
aoi ih5i30(h5[30],h4[14],t4[29],h4[30]);
aoi ih5i32(h5[32],h4[16],t4[31],h4[32]);
aoi ih5i34(h5[34],h4[18],t4[33],h4[34]);
aoi ih5i36(h5[36],h4[20],t4[35],h4[36]);
aoi ih5i38(h5[38],h4[22],t4[37],h4[38]);
aoi ih5i40(h5[40],h4[24],t4[39],h4[40]);
aoi ih5i42(h5[42],h4[26],t4[41],h4[42]);
aoi ih5i44(h5[44],h4[28],t4[43],h4[44]);
aoi ih5i46(h5[46],h4[30],t4[45],h4[46]);
aoi ih5i48(h5[48],h4[32],t4[47],h4[48]);
aoi ih5i50(h5[50],h4[34],t4[49],h4[50]);
aoi ih5i52(h5[52],h4[36],t4[51],h4[52]);
aoi ih5i54(h5[54],h4[38],t4[53],h4[54]);
aoi ih5i56(h5[56],h4[40],t4[55],h4[56]);
aoi ih5i58(h5[58],h4[42],t4[57],h4[58]);
aoi ih5i60(h5[60],h4[44],t4[59],h4[60]);
aoi ih5i62(h5[62],h4[46],t4[61],h4[62]);

nand it5i33(t5[33],t4[17],t4[33]);
nand it5i35(t5[35],t4[19],t4[35]);
nand it5i37(t5[37],t4[21],t4[37]);
nand it5i39(t5[39],t4[23],t4[39]);
nand it5i41(t5[41],t4[25],t4[41]);
nand it5i43(t5[43],t4[27],t4[43]);
nand it5i45(t5[45],t4[29],t4[45]);
nand it5i47(t5[47],t4[31],t4[47]);
nand it5i49(t5[49],t4[33],t4[49]);
nand it5i51(t5[51],t4[35],t4[51]);
nand it5i53(t5[53],t4[37],t4[53]);
nand it5i55(t5[55],t4[39],t4[55]);
nand it5i57(t5[57],t4[41],t4[57]);
nand it5i59(t5[59],t4[43],t4[59]);
nand it5i61(t5[61],t4[45],t4[61]);

// Level 6 H
not ih6i0(h6[0],h5[0]);
not ih6i2(h6[2],h5[2]);
not ih6i4(h6[4],h5[4]);
not ih6i6(h6[6],h5[6]);
not ih6i8(h6[8],h5[8]);
not ih6i10(h6[10],h5[10]);
not ih6i12(h6[12],h5[12]);
not ih6i14(h6[14],h5[14]);
not ih6i16(h6[16],h5[16]);
not ih6i18(h6[18],h5[18]);
not ih6i20(h6[20],h5[20]);
not ih6i22(h6[22],h5[22]);
not ih6i24(h6[24],h5[24]);
not ih6i26(h6[26],h5[26]);
not ih6i28(h6[28],h5[28]);
not ih6i30(h6[30],h5[30]);
oai ih6i32(h6[32],h5[0],t5[31],h5[32]);
oai ih6i34(h6[34],h5[2],t5[33],h5[34]);
oai ih6i36(h6[36],h5[4],t5[35],h5[36]);
oai ih6i38(h6[38],h5[6],t5[37],h5[38]);
oai ih6i40(h6[40],h5[8],t5[39],h5[40]);
oai ih6i42(h6[42],h5[10],t5[41],h5[42]);
oai ih6i44(h6[44],h5[12],t5[43],h5[44]);
oai ih6i46(h6[46],h5[14],t5[45],h5[46]);
oai ih6i48(h6[48],h5[16],t5[47],h5[48]);
oai ih6i50(h6[50],h5[18],t5[49],h5[50]);
oai ih6i52(h6[52],h5[20],t5[51],h5[52]);
oai ih6i54(h6[54],h5[22],t5[53],h5[54]);
oai ih6i56(h6[56],h5[24],t5[55],h5[56]);
oai ih6i58(h6[58],h5[26],t5[57],h5[58]);
oai ih6i60(h6[60],h5[28],t5[59],h5[60]);
oai ih6i62(h6[62],h5[30],t5[61],h5[62]);

// SUM SELECT
not ibbb0(psb,ps[0]);
not ibbb1(cinb,cin);
mux21 im0(s[0],psb,ps[0],cin);
mux21 im1(s[1],s1[1],ps[1],h6[0]);
mux21 im2(s[2],s1[2],s0[2],h6[0]);
mux21 im3(s[3],s1[3],ps[3],h6[2]);
mux21 im4(s[4],s1[4],s0[4],h6[2]);
mux21 im5(s[5],s1[5],ps[5],h6[4]);
mux21 im6(s[6],s1[6],s0[6],h6[4]);
mux21 im7(s[7],s1[7],ps[7],h6[6]);
mux21 im8(s[8],s1[8],s0[8],h6[6]);
mux21 im9(s[9],s1[9],ps[9],h6[8]);
mux21 im10(s[10],s1[10],s0[10],h6[8]);
mux21 im11(s[11],s1[11],ps[11],h6[10]);
mux21 im12(s[12],s1[12],s0[12],h6[10]);
mux21 im13(s[13],s1[13],ps[13],h6[12]);
mux21 im14(s[14],s1[14],s0[14],h6[12]);
mux21 im15(s[15],s1[15],ps[15],h6[14]);
mux21 im16(s[16],s1[16],s0[16],h6[14]);
mux21 im17(s[17],s1[17],ps[17],h6[16]);
mux21 im18(s[18],s1[18],s0[18],h6[16]);
mux21 im19(s[19],s1[19],ps[19],h6[18]);
mux21 im20(s[20],s1[20],s0[20],h6[18]);
mux21 im21(s[21],s1[21],ps[21],h6[20]);
mux21 im22(s[22],s1[22],s0[22],h6[20]);
mux21 im23(s[23],s1[23],ps[23],h6[22]);
mux21 im24(s[24],s1[24],s0[24],h6[22]);
mux21 im25(s[25],s1[25],ps[25],h6[24]);
mux21 im26(s[26],s1[26],s0[26],h6[24]);
mux21 im27(s[27],s1[27],ps[27],h6[26]);
mux21 im28(s[28],s1[28],s0[28],h6[26]);
mux21 im29(s[29],s1[29],ps[29],h6[28]);
mux21 im30(s[30],s1[30],s0[30],h6[28]);
mux21 im31(s[31],s1[31],ps[31],h6[30]);
mux21 im32(s[32],s1[32],s0[32],h6[30]);
mux21 im33(s[33],s1[33],ps[33],h6[32]);
mux21 im34(s[34],s1[34],s0[34],h6[32]);
mux21 im35(s[35],s1[35],ps[35],h6[34]);
mux21 im36(s[36],s1[36],s0[36],h6[34]);
mux21 im37(s[37],s1[37],ps[37],h6[36]);
mux21 im38(s[38],s1[38],s0[38],h6[36]);
mux21 im39(s[39],s1[39],ps[39],h6[38]);
mux21 im40(s[40],s1[40],s0[40],h6[38]);
mux21 im41(s[41],s1[41],ps[41],h6[40]);
mux21 im42(s[42],s1[42],s0[42],h6[40]);
mux21 im43(s[43],s1[43],ps[43],h6[42]);
mux21 im44(s[44],s1[44],s0[44],h6[42]);
mux21 im45(s[45],s1[45],ps[45],h6[44]);
mux21 im46(s[46],s1[46],s0[46],h6[44]);
mux21 im47(s[47],s1[47],ps[47],h6[46]);
mux21 im48(s[48],s1[48],s0[48],h6[46]);
mux21 im49(s[49],s1[49],ps[49],h6[48]);
mux21 im50(s[50],s1[50],s0[50],h6[48]);
mux21 im51(s[51],s1[51],ps[51],h6[50]);
mux21 im52(s[52],s1[52],s0[52],h6[50]);
mux21 im53(s[53],s1[53],ps[53],h6[52]);
mux21 im54(s[54],s1[54],s0[54],h6[52]);
mux21 im55(s[55],s1[55],ps[55],h6[54]);
mux21 im56(s[56],s1[56],s0[56],h6[54]);
mux21 im57(s[57],s1[57],ps[57],h6[56]);
mux21 im58(s[58],s1[58],s0[58],h6[56]);
mux21 im59(s[59],s1[59],ps[59],h6[58]);
mux21 im60(s[60],s1[60],s0[60],h6[58]);
mux21 im61(s[61],s1[61],ps[61],h6[60]);
mux21 im62(s[62],s1[62],s0[62],h6[60]);
mux21 im63(s[63],s1[63],ps[63],h6[62]);

endmodule
