sudp_add32.v
30.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
// Module instances modified by /home/rws/workarea/rf/sw/bbplayer/tools/necprimfix
//
// 32 instances of an02d2 changed to j_an02.
// 189 instances of mx21d1h changed to j_mx21.
// 5 instances of ni01d4 changed to j_ni01.
// 32 instances of or02d2 changed to j_or02.
// 32 instances of xn02d2 changed to j_xn02.
// 32 instances of xo02d2 changed to j_xo02.
//
////////////////////////////////////////////////////////////////////////
//
// Project Reality
//
// module: sudp_add32
// description: 32 bit carry-propagating adder for use in replacing
// datapath adder with standard cells. Requires carry
// in to lsb, carry out from msb, and carry in to msb.
// Conditional sum adder.
//
// designer: Phil Gossett
// date: 4/9/95
//
////////////////////////////////////////////////////////////////////////
// $Id: sudp_add32.v,v 1.2 2002/11/13 02:11:41 rws Exp $
module sudp_add32 (a, b, ci, s, co, co30) ;
input [31:0] a;
input [31:0] b;
input ci;
output [31:0] s;
output co; // carry out for bit 31
output co30; // carry out for bit 30 used to generate overflow
wire [31:0] s0; // sum out assuming carry in 0
wire [31:0] s1; // sum out assuming carry in 1
wire [31:0] c0; // carry out assuming carry in 0
wire [31:0] c1; // carry out assuming carry in 1
// conditional cells:
j_xo02 s00 (.a1(a[0]), .a2(b[0]), .z(s0[0]));
j_xn02 s10 (.a1(a[0]), .a2(b[0]), .zn(s1[0]));
j_an02 c00 (.a1(a[0]), .a2(b[0]), .z(c0[0]));
j_or02 c10 (.a1(a[0]), .a2(b[0]), .z(c1[0]));
j_xo02 s01 (.a1(a[1]), .a2(b[1]), .z(s0[1]));
j_xn02 s11 (.a1(a[1]), .a2(b[1]), .zn(s1[1]));
j_an02 c01 (.a1(a[1]), .a2(b[1]), .z(c0[1]));
j_or02 c11 (.a1(a[1]), .a2(b[1]), .z(c1[1]));
j_xo02 s02 (.a1(a[2]), .a2(b[2]), .z(s0[2]));
j_xn02 s12 (.a1(a[2]), .a2(b[2]), .zn(s1[2]));
j_an02 c02 (.a1(a[2]), .a2(b[2]), .z(c0[2]));
j_or02 c12 (.a1(a[2]), .a2(b[2]), .z(c1[2]));
j_xo02 s03 (.a1(a[3]), .a2(b[3]), .z(s0[3]));
j_xn02 s13 (.a1(a[3]), .a2(b[3]), .zn(s1[3]));
j_an02 c03 (.a1(a[3]), .a2(b[3]), .z(c0[3]));
j_or02 c13 (.a1(a[3]), .a2(b[3]), .z(c1[3]));
j_xo02 s04 (.a1(a[4]), .a2(b[4]), .z(s0[4]));
j_xn02 s14 (.a1(a[4]), .a2(b[4]), .zn(s1[4]));
j_an02 c04 (.a1(a[4]), .a2(b[4]), .z(c0[4]));
j_or02 c14 (.a1(a[4]), .a2(b[4]), .z(c1[4]));
j_xo02 s05 (.a1(a[5]), .a2(b[5]), .z(s0[5]));
j_xn02 s15 (.a1(a[5]), .a2(b[5]), .zn(s1[5]));
j_an02 c05 (.a1(a[5]), .a2(b[5]), .z(c0[5]));
j_or02 c15 (.a1(a[5]), .a2(b[5]), .z(c1[5]));
j_xo02 s06 (.a1(a[6]), .a2(b[6]), .z(s0[6]));
j_xn02 s16 (.a1(a[6]), .a2(b[6]), .zn(s1[6]));
j_an02 c06 (.a1(a[6]), .a2(b[6]), .z(c0[6]));
j_or02 c16 (.a1(a[6]), .a2(b[6]), .z(c1[6]));
j_xo02 s07 (.a1(a[7]), .a2(b[7]), .z(s0[7]));
j_xn02 s17 (.a1(a[7]), .a2(b[7]), .zn(s1[7]));
j_an02 c07 (.a1(a[7]), .a2(b[7]), .z(c0[7]));
j_or02 c17 (.a1(a[7]), .a2(b[7]), .z(c1[7]));
j_xo02 s08 (.a1(a[8]), .a2(b[8]), .z(s0[8]));
j_xn02 s18 (.a1(a[8]), .a2(b[8]), .zn(s1[8]));
j_an02 c08 (.a1(a[8]), .a2(b[8]), .z(c0[8]));
j_or02 c18 (.a1(a[8]), .a2(b[8]), .z(c1[8]));
j_xo02 s09 (.a1(a[9]), .a2(b[9]), .z(s0[9]));
j_xn02 s19 (.a1(a[9]), .a2(b[9]), .zn(s1[9]));
j_an02 c09 (.a1(a[9]), .a2(b[9]), .z(c0[9]));
j_or02 c19 (.a1(a[9]), .a2(b[9]), .z(c1[9]));
j_xo02 s010 (.a1(a[10]), .a2(b[10]), .z(s0[10]));
j_xn02 s110 (.a1(a[10]), .a2(b[10]), .zn(s1[10]));
j_an02 c010 (.a1(a[10]), .a2(b[10]), .z(c0[10]));
j_or02 c110 (.a1(a[10]), .a2(b[10]), .z(c1[10]));
j_xo02 s011 (.a1(a[11]), .a2(b[11]), .z(s0[11]));
j_xn02 s111 (.a1(a[11]), .a2(b[11]), .zn(s1[11]));
j_an02 c011 (.a1(a[11]), .a2(b[11]), .z(c0[11]));
j_or02 c111 (.a1(a[11]), .a2(b[11]), .z(c1[11]));
j_xo02 s012 (.a1(a[12]), .a2(b[12]), .z(s0[12]));
j_xn02 s112 (.a1(a[12]), .a2(b[12]), .zn(s1[12]));
j_an02 c012 (.a1(a[12]), .a2(b[12]), .z(c0[12]));
j_or02 c112 (.a1(a[12]), .a2(b[12]), .z(c1[12]));
j_xo02 s013 (.a1(a[13]), .a2(b[13]), .z(s0[13]));
j_xn02 s113 (.a1(a[13]), .a2(b[13]), .zn(s1[13]));
j_an02 c013 (.a1(a[13]), .a2(b[13]), .z(c0[13]));
j_or02 c113 (.a1(a[13]), .a2(b[13]), .z(c1[13]));
j_xo02 s014 (.a1(a[14]), .a2(b[14]), .z(s0[14]));
j_xn02 s114 (.a1(a[14]), .a2(b[14]), .zn(s1[14]));
j_an02 c014 (.a1(a[14]), .a2(b[14]), .z(c0[14]));
j_or02 c114 (.a1(a[14]), .a2(b[14]), .z(c1[14]));
j_xo02 s015 (.a1(a[15]), .a2(b[15]), .z(s0[15]));
j_xn02 s115 (.a1(a[15]), .a2(b[15]), .zn(s1[15]));
j_an02 c015 (.a1(a[15]), .a2(b[15]), .z(c0[15]));
j_or02 c115 (.a1(a[15]), .a2(b[15]), .z(c1[15]));
j_xo02 s016 (.a1(a[16]), .a2(b[16]), .z(s0[16]));
j_xn02 s116 (.a1(a[16]), .a2(b[16]), .zn(s1[16]));
j_an02 c016 (.a1(a[16]), .a2(b[16]), .z(c0[16]));
j_or02 c116 (.a1(a[16]), .a2(b[16]), .z(c1[16]));
j_xo02 s017 (.a1(a[17]), .a2(b[17]), .z(s0[17]));
j_xn02 s117 (.a1(a[17]), .a2(b[17]), .zn(s1[17]));
j_an02 c017 (.a1(a[17]), .a2(b[17]), .z(c0[17]));
j_or02 c117 (.a1(a[17]), .a2(b[17]), .z(c1[17]));
j_xo02 s018 (.a1(a[18]), .a2(b[18]), .z(s0[18]));
j_xn02 s118 (.a1(a[18]), .a2(b[18]), .zn(s1[18]));
j_an02 c018 (.a1(a[18]), .a2(b[18]), .z(c0[18]));
j_or02 c118 (.a1(a[18]), .a2(b[18]), .z(c1[18]));
j_xo02 s019 (.a1(a[19]), .a2(b[19]), .z(s0[19]));
j_xn02 s119 (.a1(a[19]), .a2(b[19]), .zn(s1[19]));
j_an02 c019 (.a1(a[19]), .a2(b[19]), .z(c0[19]));
j_or02 c119 (.a1(a[19]), .a2(b[19]), .z(c1[19]));
j_xo02 s020 (.a1(a[20]), .a2(b[20]), .z(s0[20]));
j_xn02 s120 (.a1(a[20]), .a2(b[20]), .zn(s1[20]));
j_an02 c020 (.a1(a[20]), .a2(b[20]), .z(c0[20]));
j_or02 c120 (.a1(a[20]), .a2(b[20]), .z(c1[20]));
j_xo02 s021 (.a1(a[21]), .a2(b[21]), .z(s0[21]));
j_xn02 s121 (.a1(a[21]), .a2(b[21]), .zn(s1[21]));
j_an02 c021 (.a1(a[21]), .a2(b[21]), .z(c0[21]));
j_or02 c121 (.a1(a[21]), .a2(b[21]), .z(c1[21]));
j_xo02 s022 (.a1(a[22]), .a2(b[22]), .z(s0[22]));
j_xn02 s122 (.a1(a[22]), .a2(b[22]), .zn(s1[22]));
j_an02 c022 (.a1(a[22]), .a2(b[22]), .z(c0[22]));
j_or02 c122 (.a1(a[22]), .a2(b[22]), .z(c1[22]));
j_xo02 s023 (.a1(a[23]), .a2(b[23]), .z(s0[23]));
j_xn02 s123 (.a1(a[23]), .a2(b[23]), .zn(s1[23]));
j_an02 c023 (.a1(a[23]), .a2(b[23]), .z(c0[23]));
j_or02 c123 (.a1(a[23]), .a2(b[23]), .z(c1[23]));
j_xo02 s024 (.a1(a[24]), .a2(b[24]), .z(s0[24]));
j_xn02 s124 (.a1(a[24]), .a2(b[24]), .zn(s1[24]));
j_an02 c024 (.a1(a[24]), .a2(b[24]), .z(c0[24]));
j_or02 c124 (.a1(a[24]), .a2(b[24]), .z(c1[24]));
j_xo02 s025 (.a1(a[25]), .a2(b[25]), .z(s0[25]));
j_xn02 s125 (.a1(a[25]), .a2(b[25]), .zn(s1[25]));
j_an02 c025 (.a1(a[25]), .a2(b[25]), .z(c0[25]));
j_or02 c125 (.a1(a[25]), .a2(b[25]), .z(c1[25]));
j_xo02 s026 (.a1(a[26]), .a2(b[26]), .z(s0[26]));
j_xn02 s126 (.a1(a[26]), .a2(b[26]), .zn(s1[26]));
j_an02 c026 (.a1(a[26]), .a2(b[26]), .z(c0[26]));
j_or02 c126 (.a1(a[26]), .a2(b[26]), .z(c1[26]));
j_xo02 s027 (.a1(a[27]), .a2(b[27]), .z(s0[27]));
j_xn02 s127 (.a1(a[27]), .a2(b[27]), .zn(s1[27]));
j_an02 c027 (.a1(a[27]), .a2(b[27]), .z(c0[27]));
j_or02 c127 (.a1(a[27]), .a2(b[27]), .z(c1[27]));
j_xo02 s028 (.a1(a[28]), .a2(b[28]), .z(s0[28]));
j_xn02 s128 (.a1(a[28]), .a2(b[28]), .zn(s1[28]));
j_an02 c028 (.a1(a[28]), .a2(b[28]), .z(c0[28]));
j_or02 c128 (.a1(a[28]), .a2(b[28]), .z(c1[28]));
j_xo02 s029 (.a1(a[29]), .a2(b[29]), .z(s0[29]));
j_xn02 s129 (.a1(a[29]), .a2(b[29]), .zn(s1[29]));
j_an02 c029 (.a1(a[29]), .a2(b[29]), .z(c0[29]));
j_or02 c129 (.a1(a[29]), .a2(b[29]), .z(c1[29]));
j_xo02 s030 (.a1(a[30]), .a2(b[30]), .z(s0[30]));
j_xn02 s130 (.a1(a[30]), .a2(b[30]), .zn(s1[30]));
j_an02 c030 (.a1(a[30]), .a2(b[30]), .z(c0[30]));
j_or02 c130 (.a1(a[30]), .a2(b[30]), .z(c1[30]));
j_xo02 s031 (.a1(a[31]), .a2(b[31]), .z(s0[31]));
j_xn02 s131 (.a1(a[31]), .a2(b[31]), .zn(s1[31]));
j_an02 c031 (.a1(a[31]), .a2(b[31]), .z(c0[31]));
j_or02 c131 (.a1(a[31]), .a2(b[31]), .z(c1[31]));
// first rank of muxes (all muxes should be high performance):
wire m1c0b0; // carry out from bit 0
wire m1s0b2; // sum bit 2 assuming carry out bit 1 is 0
wire m1s1b2; // sum bit 2 assuming carry out bit 1 is 1
wire m1c0b2; // carry in to bit 3 assuming carry out bit 1 is 0
wire m1c1b2; // carry in to bit 3 assuming carry out bit 1 is 1
wire m1s0b4; // sum bit 4 assuming carry out bit 1 is 0
wire m1s1b4; // sum bit 4 assuming carry out bit 1 is 1
wire m1c0b4; // carry in to bit 5 assuming carry out bit 1 is 0
wire m1c1b4; // carry in to bit 5 assuming carry out bit 1 is 1
wire m1s0b6; // sum bit 6 assuming carry out bit 1 is 0
wire m1s1b6; // sum bit 6 assuming carry out bit 1 is 1
wire m1c0b6; // carry in to bit 7 assuming carry out bit 1 is 0
wire m1c1b6; // carry in to bit 7 assuming carry out bit 1 is 1
wire m1s0b8; // sum bit 8 assuming carry out bit 1 is 0
wire m1s1b8; // sum bit 8 assuming carry out bit 1 is 1
wire m1c0b8; // carry in to bit 9 assuming carry out bit 1 is 0
wire m1c1b8; // carry in to bit 9 assuming carry out bit 1 is 1
wire m1s0b10; // sum bit 10 assuming carry out bit 1 is 0
wire m1s1b10; // sum bit 10 assuming carry out bit 1 is 1
wire m1c0b10; // carry in to bit 11 assuming carry out bit 1 is 0
wire m1c1b10; // carry in to bit 11 assuming carry out bit 1 is 1
wire m1s0b12; // sum bit 12 assuming carry out bit 1 is 0
wire m1s1b12; // sum bit 12 assuming carry out bit 1 is 1
wire m1c0b12; // carry in to bit 13 assuming carry out bit 1 is 0
wire m1c1b12; // carry in to bit 13 assuming carry out bit 1 is 1
wire m1s0b14; // sum bit 14 assuming carry out bit 1 is 0
wire m1s1b14; // sum bit 14 assuming carry out bit 1 is 1
wire m1c0b14; // carry in to bit 15 assuming carry out bit 1 is 0
wire m1c1b14; // carry in to bit 15 assuming carry out bit 1 is 1
wire m1s0b16; // sum bit 16 assuming carry out bit 1 is 0
wire m1s1b16; // sum bit 16 assuming carry out bit 1 is 1
wire m1c0b16; // carry in to bit 17 assuming carry out bit 1 is 0
wire m1c1b16; // carry in to bit 17 assuming carry out bit 1 is 1
wire m1s0b18; // sum bit 18 assuming carry out bit 1 is 0
wire m1s1b18; // sum bit 18 assuming carry out bit 1 is 1
wire m1c0b18; // carry in to bit 19 assuming carry out bit 1 is 0
wire m1c1b18; // carry in to bit 19 assuming carry out bit 1 is 1
wire m1s0b20; // sum bit 20 assuming carry out bit 1 is 0
wire m1s1b20; // sum bit 20 assuming carry out bit 1 is 1
wire m1c0b20; // carry in to bit 21 assuming carry out bit 1 is 0
wire m1c1b20; // carry in to bit 21 assuming carry out bit 1 is 1
wire m1s0b22; // sum bit 22 assuming carry out bit 1 is 0
wire m1s1b22; // sum bit 22 assuming carry out bit 1 is 1
wire m1c0b22; // carry in to bit 23 assuming carry out bit 1 is 0
wire m1c1b22; // carry in to bit 23 assuming carry out bit 1 is 1
wire m1s0b24; // sum bit 24 assuming carry out bit 1 is 0
wire m1s1b24; // sum bit 24 assuming carry out bit 1 is 1
wire m1c0b24; // carry in to bit 24 assuming carry out bit 1 is 0
wire m1c1b24; // carry in to bit 24 assuming carry out bit 1 is 1
wire m1s0b26; // sum bit 26 assuming carry out bit 1 is 0
wire m1s1b26; // sum bit 26 assuming carry out bit 1 is 1
wire m1c0b26; // carry in to bit 27 assuming carry out bit 1 is 0
wire m1c1b26; // carry in to bit 27 assuming carry out bit 1 is 1
wire m1s0b28; // sum bit 28 assuming carry out bit 1 is 0
wire m1s1b28; // sum bit 28 assuming carry out bit 1 is 1
wire m1c0b28; // carry in to bit 29 assuming carry out bit 1 is 0
wire m1c1b28; // carry in to bit 29 assuming carry out bit 1 is 1
wire m1s0b30; // sum bit 30 assuming carry out bit 1 is 0
wire m1s1b30; // sum bit 30 assuming carry out bit 1 is 1
wire m1c0b30; // carry in to bit 31 assuming carry out bit 1 is 0
wire m1c1b30; // carry in to bit 31 assuming carry out bit 1 is 1
j_mx21 mx1s0b0 (.s(ci), .i0(s0[0]), .i1(s1[0]), .z(s[0]));
j_mx21 mx1c0b0 (.s(ci), .i0(c0[0]), .i1(c1[0]), .z(m1c0b0));
j_mx21 mx1s0b2 (.s(c0[1]), .i0(s0[2]), .i1(s1[2]), .z(m1s0b2));
j_mx21 mx1s1b2 (.s(c1[1]), .i0(s0[2]), .i1(s1[2]), .z(m1s1b2));
j_mx21 mx1c0b2 (.s(c0[1]), .i0(c0[2]), .i1(c1[2]), .z(m1c0b2));
j_mx21 mx1c1b2 (.s(c1[1]), .i0(c0[2]), .i1(c1[2]), .z(m1c1b2));
j_mx21 mx1s0b4 (.s(c0[3]), .i0(s0[4]), .i1(s1[4]), .z(m1s0b4));
j_mx21 mx1s1b4 (.s(c1[3]), .i0(s0[4]), .i1(s1[4]), .z(m1s1b4));
j_mx21 mx1c0b4 (.s(c0[3]), .i0(c0[4]), .i1(c1[4]), .z(m1c0b4));
j_mx21 mx1c1b4 (.s(c1[3]), .i0(c0[4]), .i1(c1[4]), .z(m1c1b4));
j_mx21 mx1s0b6 (.s(c0[5]), .i0(s0[6]), .i1(s1[6]), .z(m1s0b6));
j_mx21 mx1s1b6 (.s(c1[5]), .i0(s0[6]), .i1(s1[6]), .z(m1s1b6));
j_mx21 mx1c0b6 (.s(c0[5]), .i0(c0[6]), .i1(c1[6]), .z(m1c0b6));
j_mx21 mx1c1b6 (.s(c1[5]), .i0(c0[6]), .i1(c1[6]), .z(m1c1b6));
j_mx21 mx1s0b8 (.s(c0[7]), .i0(s0[8]), .i1(s1[8]), .z(m1s0b8));
j_mx21 mx1s1b8 (.s(c1[7]), .i0(s0[8]), .i1(s1[8]), .z(m1s1b8));
j_mx21 mx1c0b8 (.s(c0[7]), .i0(c0[8]), .i1(c1[8]), .z(m1c0b8));
j_mx21 mx1c1b8 (.s(c1[7]), .i0(c0[8]), .i1(c1[8]), .z(m1c1b8));
j_mx21 mx1s0b10 (.s(c0[9]), .i0(s0[10]), .i1(s1[10]), .z(m1s0b10));
j_mx21 mx1s1b10 (.s(c1[9]), .i0(s0[10]), .i1(s1[10]), .z(m1s1b10));
j_mx21 mx1c0b10 (.s(c0[9]), .i0(c0[10]), .i1(c1[10]), .z(m1c0b10));
j_mx21 mx1c1b10 (.s(c1[9]), .i0(c0[10]), .i1(c1[10]), .z(m1c1b10));
j_mx21 mx1s0b12 (.s(c0[11]), .i0(s0[12]), .i1(s1[12]), .z(m1s0b12));
j_mx21 mx1s1b12 (.s(c1[11]), .i0(s0[12]), .i1(s1[12]), .z(m1s1b12));
j_mx21 mx1c0b12 (.s(c0[11]), .i0(c0[12]), .i1(c1[12]), .z(m1c0b12));
j_mx21 mx1c1b12 (.s(c1[11]), .i0(c0[12]), .i1(c1[12]), .z(m1c1b12));
j_mx21 mx1s0b14 (.s(c0[13]), .i0(s0[14]), .i1(s1[14]), .z(m1s0b14));
j_mx21 mx1s1b14 (.s(c1[13]), .i0(s0[14]), .i1(s1[14]), .z(m1s1b14));
j_mx21 mx1c0b14 (.s(c0[13]), .i0(c0[14]), .i1(c1[14]), .z(m1c0b14));
j_mx21 mx1c1b14 (.s(c1[13]), .i0(c0[14]), .i1(c1[14]), .z(m1c1b14));
j_mx21 mx1s0b16 (.s(c0[15]), .i0(s0[16]), .i1(s1[16]), .z(m1s0b16));
j_mx21 mx1s1b16 (.s(c1[15]), .i0(s0[16]), .i1(s1[16]), .z(m1s1b16));
j_mx21 mx1c0b16 (.s(c0[15]), .i0(c0[16]), .i1(c1[16]), .z(m1c0b16));
j_mx21 mx1c1b16 (.s(c1[15]), .i0(c0[16]), .i1(c1[16]), .z(m1c1b16));
j_mx21 mx1s0b18 (.s(c0[17]), .i0(s0[18]), .i1(s1[18]), .z(m1s0b18));
j_mx21 mx1s1b18 (.s(c1[17]), .i0(s0[18]), .i1(s1[18]), .z(m1s1b18));
j_mx21 mx1c0b18 (.s(c0[17]), .i0(c0[18]), .i1(c1[18]), .z(m1c0b18));
j_mx21 mx1c1b18 (.s(c1[17]), .i0(c0[18]), .i1(c1[18]), .z(m1c1b18));
j_mx21 mx1s0b20 (.s(c0[19]), .i0(s0[20]), .i1(s1[20]), .z(m1s0b20));
j_mx21 mx1s1b20 (.s(c1[19]), .i0(s0[20]), .i1(s1[20]), .z(m1s1b20));
j_mx21 mx1c0b20 (.s(c0[19]), .i0(c0[20]), .i1(c1[20]), .z(m1c0b20));
j_mx21 mx1c1b20 (.s(c1[19]), .i0(c0[20]), .i1(c1[20]), .z(m1c1b20));
j_mx21 mx1s0b22 (.s(c0[21]), .i0(s0[22]), .i1(s1[22]), .z(m1s0b22));
j_mx21 mx1s1b22 (.s(c1[21]), .i0(s0[22]), .i1(s1[22]), .z(m1s1b22));
j_mx21 mx1c0b22 (.s(c0[21]), .i0(c0[22]), .i1(c1[22]), .z(m1c0b22));
j_mx21 mx1c1b22 (.s(c1[21]), .i0(c0[22]), .i1(c1[22]), .z(m1c1b22));
j_mx21 mx1s0b24 (.s(c0[23]), .i0(s0[24]), .i1(s1[24]), .z(m1s0b24));
j_mx21 mx1s1b24 (.s(c1[23]), .i0(s0[24]), .i1(s1[24]), .z(m1s1b24));
j_mx21 mx1c0b24 (.s(c0[23]), .i0(c0[24]), .i1(c1[24]), .z(m1c0b24));
j_mx21 mx1c1b24 (.s(c1[23]), .i0(c0[24]), .i1(c1[24]), .z(m1c1b24));
j_mx21 mx1s0b26 (.s(c0[25]), .i0(s0[26]), .i1(s1[26]), .z(m1s0b26));
j_mx21 mx1s1b26 (.s(c1[25]), .i0(s0[26]), .i1(s1[26]), .z(m1s1b26));
j_mx21 mx1c0b26 (.s(c0[25]), .i0(c0[26]), .i1(c1[26]), .z(m1c0b26));
j_mx21 mx1c1b26 (.s(c1[25]), .i0(c0[26]), .i1(c1[26]), .z(m1c1b26));
j_mx21 mx1s0b28 (.s(c0[27]), .i0(s0[28]), .i1(s1[28]), .z(m1s0b28));
j_mx21 mx1s1b28 (.s(c1[27]), .i0(s0[28]), .i1(s1[28]), .z(m1s1b28));
j_mx21 mx1c0b28 (.s(c0[27]), .i0(c0[28]), .i1(c1[28]), .z(m1c0b28));
j_mx21 mx1c1b28 (.s(c1[27]), .i0(c0[28]), .i1(c1[28]), .z(m1c1b28));
j_mx21 mx1s0b30 (.s(c0[29]), .i0(s0[30]), .i1(s1[30]), .z(m1s0b30));
j_mx21 mx1s1b30 (.s(c1[29]), .i0(s0[30]), .i1(s1[30]), .z(m1s1b30));
j_mx21 mx1c0b30 (.s(c0[29]), .i0(c0[30]), .i1(c1[30]), .z(m1c0b30));
j_mx21 mx1c1b30 (.s(c1[29]), .i0(c0[30]), .i1(c1[30]), .z(m1c1b30));
// second rank of muxes:
wire m2c0b2; // carry out from bit 2
wire m2s0b5; // sum bit 5 assuming carry out bit 4 is 0
wire m2s1b5; // sum bit 5 assuming carry out bit 4 is 1
wire m2s0b6; // sum bit 6 assuming carry out bit 4 is 0
wire m2s1b6; // sum bit 6 assuming carry out bit 4 is 1
wire m2c0b6; // carry in to bit 6 assuming carry out bit 4 is 0
wire m2c1b6; // carry in to bit 6 assuming carry out bit 4 is 1
wire m2s0b9; // sum bit 9 assuming carry out bit 8 is 0
wire m2s1b9; // sum bit 9 assuming carry out bit 8 is 1
wire m2s0b10; // sum bit 10 assuming carry out bit 8 is 0
wire m2s1b10; // sum bit 10 assuming carry out bit 8 is 1
wire m2c0b10; // carry in to bit 10 assuming carry out bit 8 is 0
wire m2c1b10; // carry in to bit 10 assuming carry out bit 8 is 1
wire m2s0b13; // sum bit 13 assuming carry out bit 12 is 0
wire m2s1b13; // sum bit 13 assuming carry out bit 12 is 1
wire m2s0b14; // sum bit 14 assuming carry out bit 12 is 0
wire m2s1b14; // sum bit 14 assuming carry out bit 12 is 1
wire m2c0b14; // carry in to bit 14 assuming carry out bit 12 is 0
wire m2c1b14; // carry in to bit 14 assuming carry out bit 12 is 1
wire m2s0b17; // sum bit 17 assuming carry out bit 16 is 0
wire m2s1b17; // sum bit 17 assuming carry out bit 16 is 1
wire m2s0b18; // sum bit 18 assuming carry out bit 16 is 0
wire m2s1b18; // sum bit 18 assuming carry out bit 16 is 1
wire m2c0b18; // carry in to bit 18 assuming carry out bit 16 is 0
wire m2c1b18; // carry in to bit 18 assuming carry out bit 16 is 1
wire m2s0b21; // sum bit 21 assuming carry out bit 20 is 0
wire m2s1b21; // sum bit 21 assuming carry out bit 20 is 1
wire m2s0b22; // sum bit 22 assuming carry out bit 20 is 0
wire m2s1b22; // sum bit 22 assuming carry out bit 20 is 1
wire m2c0b22; // carry in to bit 22 assuming carry out bit 20 is 0
wire m2c1b22; // carry in to bit 22 assuming carry out bit 20 is 1
wire m2s0b25; // sum bit 25 assuming carry out bit 24 is 0
wire m2s1b25; // sum bit 25 assuming carry out bit 24 is 1
wire m2s0b26; // sum bit 26 assuming carry out bit 24 is 0
wire m2s1b26; // sum bit 26 assuming carry out bit 24 is 1
wire m2c0b26; // carry in to bit 26 assuming carry out bit 24 is 0
wire m2c1b26; // carry in to bit 26 assuming carry out bit 24 is 1
wire m2s0b29; // sum bit 29 assuming carry out bit 28 is 0
wire m2s1b29; // sum bit 29 assuming carry out bit 28 is 1
wire m2s0b30; // sum bit 30 assuming carry out bit 28 is 0
wire m2s1b30; // sum bit 30 assuming carry out bit 28 is 1
wire m2c0b30; // carry in to bit 30 assuming carry out bit 28 is 0
wire m2c1b30; // carry in to bit 30 assuming carry out bit 28 is 1
j_mx21 mx2s0b1 (.s(m1c0b0), .i0(s0[1]), .i1(s1[1]), .z(s[1]));
j_mx21 mx2s0b2 (.s(m1c0b0), .i0(m1s0b2), .i1(m1s1b2), .z(s[2]));
j_mx21 mx2c0b2 (.s(m1c0b0), .i0(m1c0b2), .i1(m1c1b2), .z(m2c0b2));
j_mx21 mx2s0b5 (.s(m1c0b4), .i0(s0[5]), .i1(s1[5]), .z(m2s0b5));
j_mx21 mx2s1b5 (.s(m1c1b4), .i0(s0[5]), .i1(s1[5]), .z(m2s1b5));
j_mx21 mx2s0b6 (.s(m1c0b4), .i0(m1s0b6), .i1(m1s1b6), .z(m2s0b6));
j_mx21 mx2s1b6 (.s(m1c1b4), .i0(m1s0b6), .i1(m1s1b6), .z(m2s1b6));
j_mx21 mx2c0b6 (.s(m1c0b4), .i0(m1c0b6), .i1(m1c1b6), .z(m2c0b6));
j_mx21 mx2c1b6 (.s(m1c1b4), .i0(m1c0b6), .i1(m1c1b6), .z(m2c1b6));
j_mx21 mx2s0b9 (.s(m1c0b8), .i0(s0[9]), .i1(s1[9]), .z(m2s0b9));
j_mx21 mx2s1b9 (.s(m1c1b8), .i0(s0[9]), .i1(s1[9]), .z(m2s1b9));
j_mx21 mx2s0b10 (.s(m1c0b8), .i0(m1s0b10), .i1(m1s1b10), .z(m2s0b10));
j_mx21 mx2s1b10 (.s(m1c1b8), .i0(m1s0b10), .i1(m1s1b10), .z(m2s1b10));
j_mx21 mx2c0b10 (.s(m1c0b8), .i0(m1c0b10), .i1(m1c1b10), .z(m2c0b10));
j_mx21 mx2c1b10 (.s(m1c1b8), .i0(m1c0b10), .i1(m1c1b10), .z(m2c1b10));
j_mx21 mx2s0b13 (.s(m1c0b12), .i0(s0[13]), .i1(s1[13]), .z(m2s0b13));
j_mx21 mx2s1b13 (.s(m1c1b12), .i0(s0[13]), .i1(s1[13]), .z(m2s1b13));
j_mx21 mx2s0b14 (.s(m1c0b12), .i0(m1s0b14), .i1(m1s1b14), .z(m2s0b14));
j_mx21 mx2s1b14 (.s(m1c1b12), .i0(m1s0b14), .i1(m1s1b14), .z(m2s1b14));
j_mx21 mx2c0b14 (.s(m1c0b12), .i0(m1c0b14), .i1(m1c1b14), .z(m2c0b14));
j_mx21 mx2c1b14 (.s(m1c1b12), .i0(m1c0b14), .i1(m1c1b14), .z(m2c1b14));
j_mx21 mx2s0b17 (.s(m1c0b16), .i0(s0[17]), .i1(s1[17]), .z(m2s0b17));
j_mx21 mx2s1b17 (.s(m1c1b16), .i0(s0[17]), .i1(s1[17]), .z(m2s1b17));
j_mx21 mx2s0b18 (.s(m1c0b16), .i0(m1s0b18), .i1(m1s1b18), .z(m2s0b18));
j_mx21 mx2s1b18 (.s(m1c1b16), .i0(m1s0b18), .i1(m1s1b18), .z(m2s1b18));
j_mx21 mx2c0b18 (.s(m1c0b16), .i0(m1c0b18), .i1(m1c1b18), .z(m2c0b18));
j_mx21 mx2c1b18 (.s(m1c1b16), .i0(m1c0b18), .i1(m1c1b18), .z(m2c1b18));
j_mx21 mx2s0b21 (.s(m1c0b20), .i0(s0[21]), .i1(s1[21]), .z(m2s0b21));
j_mx21 mx2s1b21 (.s(m1c1b20), .i0(s0[21]), .i1(s1[21]), .z(m2s1b21));
j_mx21 mx2s0b22 (.s(m1c0b20), .i0(m1s0b22), .i1(m1s1b22), .z(m2s0b22));
j_mx21 mx2s1b22 (.s(m1c1b20), .i0(m1s0b22), .i1(m1s1b22), .z(m2s1b22));
j_mx21 mx2c0b22 (.s(m1c0b20), .i0(m1c0b22), .i1(m1c1b22), .z(m2c0b22));
j_mx21 mx2c1b22 (.s(m1c1b20), .i0(m1c0b22), .i1(m1c1b22), .z(m2c1b22));
j_mx21 mx2s0b25 (.s(m1c0b24), .i0(s0[25]), .i1(s1[25]), .z(m2s0b25));
j_mx21 mx2s1b25 (.s(m1c1b24), .i0(s0[25]), .i1(s1[25]), .z(m2s1b25));
j_mx21 mx2s0b26 (.s(m1c0b24), .i0(m1s0b26), .i1(m1s1b26), .z(m2s0b26));
j_mx21 mx2s1b26 (.s(m1c1b24), .i0(m1s0b26), .i1(m1s1b26), .z(m2s1b26));
j_mx21 mx2c0b26 (.s(m1c0b24), .i0(m1c0b26), .i1(m1c1b26), .z(m2c0b26));
j_mx21 mx2c1b26 (.s(m1c1b24), .i0(m1c0b26), .i1(m1c1b26), .z(m2c1b26));
j_mx21 mx2s0b29 (.s(m1c0b28), .i0(s0[29]), .i1(s1[29]), .z(m2s0b29));
j_mx21 mx2s1b29 (.s(m1c1b28), .i0(s0[29]), .i1(s1[29]), .z(m2s1b29));
j_mx21 mx2s0b30 (.s(m1c0b28), .i0(m1s0b30), .i1(m1s1b30), .z(m2s0b30));
j_mx21 mx2s1b30 (.s(m1c1b28), .i0(m1s0b30), .i1(m1s1b30), .z(m2s1b30));
j_mx21 mx2c0b30 (.s(m1c0b28), .i0(m1c0b30), .i1(m1c1b30), .z(m2c0b30));
j_mx21 mx2c1b30 (.s(m1c1b28), .i0(m1c0b30), .i1(m1c1b30), .z(m2c1b30));
// third rank of muxes:
wire m3c0b6; // carry out from bit 6
wire m3c0b6b; // carry out from bit 6, buffered version
wire m3s0b11; // sum bit 11 assuming carry out bit 10 is 0
wire m3s1b11; // sum bit 11 assuming carry out bit 10 is 1
wire m3s0b12; // sum bit 12 assuming carry out bit 10 is 0
wire m3s1b12; // sum bit 12 assuming carry out bit 10 is 1
wire m3s0b13; // sum bit 13 assuming carry out bit 10 is 0
wire m3s1b13; // sum bit 13 assuming carry out bit 10 is 1
wire m3s0b14; // sum bit 14 assuming carry out bit 10 is 0
wire m3s1b14; // sum bit 14 assuming carry out bit 10 is 1
wire m3c0b14; // carry out of bit 14 assuming carry out bit 10 is 0
wire m3c1b14; // carry out of bit 14 assuming carry out bit 10 is 1
wire m3s0b19; // sum bit 19 assuming carry out bit 18 is 0
wire m3s1b19; // sum bit 19 assuming carry out bit 18 is 1
wire m3s0b20; // sum bit 20 assuming carry out bit 18 is 0
wire m3s1b20; // sum bit 20 assuming carry out bit 18 is 1
wire m3s0b21; // sum bit 21 assuming carry out bit 18 is 0
wire m3s1b21; // sum bit 21 assuming carry out bit 18 is 1
wire m3s0b22; // sum bit 22 assuming carry out bit 18 is 0
wire m3s1b22; // sum bit 22 assuming carry out bit 18 is 1
wire m3c0b22; // carry out of bit 22 assuming carry out bit 18 is 0
wire m3c1b22; // carry out of bit 22 assuming carry out bit 18 is 1
wire m3c0b22b; // carry out of bit 22 assuming carry out bit 18 is 0, buffered
wire m3c1b22b; // carry out of bit 22 assuming carry out bit 18 is 1, buffered
wire m3s0b27; // sum bit 27 assuming carry out bit 26 is 0
wire m3s1b27; // sum bit 27 assuming carry out bit 26 is 1
wire m3s0b28; // sum bit 28 assuming carry out bit 26 is 0
wire m3s1b28; // sum bit 28 assuming carry out bit 26 is 1
wire m3s0b29; // sum bit 29 assuming carry out bit 26 is 0
wire m3s1b29; // sum bit 29 assuming carry out bit 26 is 1
wire m3s0b30; // sum bit 30 assuming carry out bit 26 is 0
wire m3s1b30; // sum bit 30 assuming carry out bit 26 is 1
wire m3c0b30; // carry out of bit 30 assuming carry out bit 26 is 0
wire m3c1b30; // carry out of bit 30 assuming carry out bit 26 is 1
j_mx21 mx3s0b3 (.s(m2c0b2 ), .i0(s0[3]), .i1(s1[3]), .z(s[3]));
j_mx21 mx3s0b4 (.s(m2c0b2 ), .i0(m1s0b4), .i1(m1s1b4), .z(s[4]));
j_mx21 mx3s0b5 (.s(m2c0b2 ), .i0(m2s0b5), .i1(m2s1b5), .z(s[5]));
j_mx21 mx3s0b6 (.s(m2c0b2 ), .i0(m2s0b6), .i1(m2s1b6), .z(s[6]));
j_mx21 mx3c0b6 (.s(m2c0b2 ), .i0(m2c0b6), .i1(m2c1b6), .z(m3c0b6));
j_ni01 ni3c0b6 (.i(m3c0b6 ), .z(m3c0b6b));
j_mx21 mx3s0b11 (.s(m2c0b10), .i0(s0[11]), .i1(s1[11]), .z(m3s0b11));
j_mx21 mx3s1b11 (.s(m2c1b10), .i0(s0[11]), .i1(s1[11]), .z(m3s1b11));
j_mx21 mx3s0b12 (.s(m2c0b10), .i0(m1s0b12), .i1(m1s1b12), .z(m3s0b12));
j_mx21 mx3s1b12 (.s(m2c1b10), .i0(m1s0b12), .i1(m1s1b12), .z(m3s1b12));
j_mx21 mx3s0b13 (.s(m2c0b10), .i0(m2s0b13), .i1(m2s1b13), .z(m3s0b13));
j_mx21 mx3s1b13 (.s(m2c1b10), .i0(m2s0b13), .i1(m2s1b13), .z(m3s1b13));
j_mx21 mx3s0b14 (.s(m2c0b10), .i0(m2s0b14), .i1(m2s1b14), .z(m3s0b14));
j_mx21 mx3s1b14 (.s(m2c1b10), .i0(m2s0b14), .i1(m2s1b14), .z(m3s1b14));
j_mx21 mx3c0b14 (.s(m2c0b10), .i0(m2c0b14), .i1(m2c1b14), .z(m3c0b14));
j_mx21 mx3c1b14 (.s(m2c1b10), .i0(m2c0b14), .i1(m2c1b14), .z(m3c1b14));
j_mx21 mx3s0b19 (.s(m2c0b18), .i0(s0[19]), .i1(s1[19]), .z(m3s0b19));
j_mx21 mx3s1b19 (.s(m2c1b18), .i0(s0[19]), .i1(s1[19]), .z(m3s1b19));
j_mx21 mx3s0b20 (.s(m2c0b18), .i0(m1s0b20), .i1(m1s1b20), .z(m3s0b20));
j_mx21 mx3s1b20 (.s(m2c1b18), .i0(m1s0b20), .i1(m1s1b20), .z(m3s1b20));
j_mx21 mx3s0b21 (.s(m2c0b18), .i0(m2s0b21), .i1(m2s1b21), .z(m3s0b21));
j_mx21 mx3s1b21 (.s(m2c1b18), .i0(m2s0b21), .i1(m2s1b21), .z(m3s1b21));
j_mx21 mx3s0b22 (.s(m2c0b18), .i0(m2s0b22), .i1(m2s1b22), .z(m3s0b22));
j_mx21 mx3s1b22 (.s(m2c1b18), .i0(m2s0b22), .i1(m2s1b22), .z(m3s1b22));
j_mx21 mx3c0b22 (.s(m2c0b18), .i0(m2c0b22), .i1(m2c1b22), .z(m3c0b22));
j_mx21 mx3c1b22 (.s(m2c1b18), .i0(m2c0b22), .i1(m2c1b22), .z(m3c1b22));
j_ni01 ni3c0b22 (.i(m3c0b22), .z(m3c0b22b));
j_ni01 ni3c1b22 (.i(m3c1b22), .z(m3c1b22b));
j_mx21 mx3s0b27 (.s(m2c0b26), .i0(s0[27]), .i1(s1[27]), .z(m3s0b27));
j_mx21 mx3s1b27 (.s(m2c1b26), .i0(s0[27]), .i1(s1[27]), .z(m3s1b27));
j_mx21 mx3s0b28 (.s(m2c0b26), .i0(m1s0b28), .i1(m1s1b28), .z(m3s0b28));
j_mx21 mx3s1b28 (.s(m2c1b26), .i0(m1s0b28), .i1(m1s1b28), .z(m3s1b28));
j_mx21 mx3s0b29 (.s(m2c0b26), .i0(m2s0b29), .i1(m2s1b29), .z(m3s0b29));
j_mx21 mx3s1b29 (.s(m2c1b26), .i0(m2s0b29), .i1(m2s1b29), .z(m3s1b29));
j_mx21 mx3s0b30 (.s(m2c0b26), .i0(m2s0b30), .i1(m2s1b30), .z(m3s0b30));
j_mx21 mx3s1b30 (.s(m2c1b26), .i0(m2s0b30), .i1(m2s1b30), .z(m3s1b30));
j_mx21 mx3c0b30 (.s(m2c0b26), .i0(m2c0b30), .i1(m2c1b30), .z(m3c0b30));
j_mx21 mx3c1b30 (.s(m2c1b26), .i0(m2c0b30), .i1(m2c1b30), .z(m3c1b30));
// fourth rank of muxes:
wire m4c0b14; // carry out from bit 14
wire m4c0b14b; // carry out from bit 14, buffered version 1
wire m4c0b14c; // carry out from bit 14, buffered version 2
wire m4s0b23; // sum bit 23 assuming carry out bit 22 is 0
wire m4s1b23; // sum bit 23 assuming carry out bit 22 is 1
wire m4s0b24; // sum bit 24 assuming carry out bit 22 is 0
wire m4s1b24; // sum bit 24 assuming carry out bit 22 is 1
wire m4s0b25; // sum bit 25 assuming carry out bit 22 is 0
wire m4s1b25; // sum bit 25 assuming carry out bit 22 is 1
wire m4s0b26; // sum bit 26 assuming carry out bit 22 is 0
wire m4s1b26; // sum bit 26 assuming carry out bit 22 is 1
wire m4s0b27; // sum bit 27 assuming carry out bit 22 is 0
wire m4s1b27; // sum bit 27 assuming carry out bit 22 is 1
wire m4s0b28; // sum bit 28 assuming carry out bit 22 is 0
wire m4s1b28; // sum bit 28 assuming carry out bit 22 is 1
wire m4s0b29; // sum bit 29 assuming carry out bit 22 is 0
wire m4s1b29; // sum bit 29 assuming carry out bit 22 is 1
wire m4s0b30; // sum bit 30 assuming carry out bit 22 is 0
wire m4s1b30; // sum bit 30 assuming carry out bit 22 is 1
wire m4c0b30; // carry out of bit 30 assuming carry out bit 22 is 0
wire m4c1b30; // carry out of bit 30 assuming carry out bit 22 is 1
j_mx21 mx4s0b7 (.s(m3c0b6b), .i0(s0[7]), .i1(s1[7]), .z(s[7]));
j_mx21 mx4s0b8 (.s(m3c0b6b), .i0(m1s0b8), .i1(m1s1b8), .z(s[8]));
j_mx21 mx4s0b9 (.s(m3c0b6b), .i0(m2s0b9), .i1(m2s1b9), .z(s[9]));
j_mx21 mx4s0b10 (.s(m3c0b6b), .i0(m2s0b10), .i1(m2s1b10), .z(s[10]));
j_mx21 mx4s0b11 (.s(m3c0b6b), .i0(m3s0b11), .i1(m3s1b11), .z(s[11]));
j_mx21 mx4s0b12 (.s(m3c0b6b), .i0(m3s0b12), .i1(m3s1b12), .z(s[12]));
j_mx21 mx4s0b13 (.s(m3c0b6b), .i0(m3s0b13), .i1(m3s1b13), .z(s[13]));
j_mx21 mx4s0b14 (.s(m3c0b6b), .i0(m3s0b14), .i1(m3s1b14), .z(s[14]));
j_mx21 mx4c0b14 (.s(m3c0b6 ), .i0(m3c0b14), .i1(m3c1b14), .z(m4c0b14));
j_ni01 ni4c0b14 (.i(m4c0b14), .z(m4c0b14b));
j_ni01 ni4c0c14 (.i(m4c0b14), .z(m4c0b14c));
j_mx21 mx4s0b23 (.s(m3c0b22b), .i0(s0[23]), .i1(s1[23]), .z(m4s0b23));
j_mx21 mx4s1b23 (.s(m3c1b22b), .i0(s0[23]), .i1(s1[23]), .z(m4s1b23));
j_mx21 mx4s0b24 (.s(m3c0b22b), .i0(m1s0b24), .i1(m1s1b24), .z(m4s0b24));
j_mx21 mx4s1b24 (.s(m3c1b22b), .i0(m1s0b24), .i1(m1s1b24), .z(m4s1b24));
j_mx21 mx4s0b25 (.s(m3c0b22b), .i0(m2s0b25), .i1(m2s1b25), .z(m4s0b25));
j_mx21 mx4s1b25 (.s(m3c1b22b), .i0(m2s0b25), .i1(m2s1b25), .z(m4s1b25));
j_mx21 mx4s0b26 (.s(m3c0b22b), .i0(m2s0b26), .i1(m2s1b26), .z(m4s0b26));
j_mx21 mx4s1b26 (.s(m3c1b22b), .i0(m2s0b26), .i1(m2s1b26), .z(m4s1b26));
j_mx21 mx4s0b27 (.s(m3c0b22b), .i0(m3s0b27), .i1(m3s1b27), .z(m4s0b27));
j_mx21 mx4s1b27 (.s(m3c1b22b), .i0(m3s0b27), .i1(m3s1b27), .z(m4s1b27));
j_mx21 mx4s0b28 (.s(m3c0b22b), .i0(m3s0b28), .i1(m3s1b28), .z(m4s0b28));
j_mx21 mx4s1b28 (.s(m3c1b22b), .i0(m3s0b28), .i1(m3s1b28), .z(m4s1b28));
j_mx21 mx4s0b29 (.s(m3c0b22b), .i0(m3s0b29), .i1(m3s1b29), .z(m4s0b29));
j_mx21 mx4s1b29 (.s(m3c1b22b), .i0(m3s0b29), .i1(m3s1b29), .z(m4s1b29));
j_mx21 mx4s0b30 (.s(m3c0b22b), .i0(m3s0b30), .i1(m3s1b30), .z(m4s0b30));
j_mx21 mx4s1b30 (.s(m3c1b22b), .i0(m3s0b30), .i1(m3s1b30), .z(m4s1b30));
j_mx21 mx4c0b30 (.s(m3c0b22b), .i0(m3c0b30), .i1(m3c1b30), .z(m4c0b30));
j_mx21 mx4c1b30 (.s(m3c1b22b), .i0(m3c0b30), .i1(m3c1b30), .z(m4c1b30));
// fifth rank of muxes:
wire m5c0b30; // carry out from bit 30 (copy)
j_mx21 mx5s0b15 (.s(m4c0b14b), .i0(s0[15]), .i1(s1[15]), .z(s[15]));
j_mx21 mx5s0b16 (.s(m4c0b14b), .i0(m1s0b16), .i1(m1s1b16), .z(s[16]));
j_mx21 mx5s0b17 (.s(m4c0b14b), .i0(m2s0b17), .i1(m2s1b17), .z(s[17]));
j_mx21 mx5s0b18 (.s(m4c0b14b), .i0(m2s0b18), .i1(m2s1b18), .z(s[18]));
j_mx21 mx5s0b19 (.s(m4c0b14b), .i0(m3s0b19), .i1(m3s1b19), .z(s[19]));
j_mx21 mx5s0b20 (.s(m4c0b14b), .i0(m3s0b20), .i1(m3s1b20), .z(s[20]));
j_mx21 mx5s0b21 (.s(m4c0b14b), .i0(m3s0b21), .i1(m3s1b21), .z(s[21]));
j_mx21 mx5s0b22 (.s(m4c0b14b), .i0(m3s0b22), .i1(m3s1b22), .z(s[22]));
j_mx21 mx5s0b23 (.s(m4c0b14c), .i0(m4s0b23), .i1(m4s1b23), .z(s[23]));
j_mx21 mx5s0b24 (.s(m4c0b14c), .i0(m4s0b24), .i1(m4s1b24), .z(s[24]));
j_mx21 mx5s0b25 (.s(m4c0b14c), .i0(m4s0b25), .i1(m4s1b25), .z(s[25]));
j_mx21 mx5s0b26 (.s(m4c0b14c), .i0(m4s0b26), .i1(m4s1b26), .z(s[26]));
j_mx21 mx5s0b27 (.s(m4c0b14c), .i0(m4s0b27), .i1(m4s1b27), .z(s[27]));
j_mx21 mx5s0b28 (.s(m4c0b14c), .i0(m4s0b28), .i1(m4s1b28), .z(s[28]));
j_mx21 mx5s0b29 (.s(m4c0b14c), .i0(m4s0b29), .i1(m4s1b29), .z(s[29]));
j_mx21 mx5s0b30 (.s(m4c0b14c), .i0(m4s0b30), .i1(m4s1b30), .z(s[30]));
j_mx21 mx5co30 (.s(m4c0b14 ), .i0(m4c0b30), .i1(m4c1b30), .z(co30));
j_mx21 mx5c0b30 (.s(m4c0b14 ), .i0(m4c0b30), .i1(m4c1b30), .z(m5c0b30));
// sixth rank of muxes:
j_mx21 mx6s0b31 (.s(m5c0b30), .i0(s0[31]), .i1(s1[31]), .z(s[31]));
j_mx21 mx6c0b31 (.s(m5c0b30), .i0(c0[31]), .i1(c1[31]), .z(co));
endmodule // sudp_add32