Subversion Repositories ngs

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
30 lvd 1
// Copyright (C) 1991-2006 Altera Corporation
2
// Your use of Altera Corporation's design tools, logic functions 
3
// and other software and tools, and its AMPP partner logic 
4
// functions, and any output files from any of the foregoing 
5
// (including device programming or simulation files), and any 
6
// associated documentation or information are expressly subject 
7
// to the terms and conditions of the Altera Program License 
8
// Subscription Agreement, Altera MegaCore Function License 
9
// Agreement, or other applicable license agreement, including, 
10
// without limitation, that your use is for the sole purpose of 
11
// programming logic devices manufactured by Altera and sold by 
12
// Altera or its authorized distributors.  Please refer to the 
13
// applicable agreement for further details.
14
 
15
 
16
// Quartus II 6.1 Build 201 11/27/2006
17
 
18
 
19
///////////////////////////////////////////////////////////////////////////////
20
//
21
// MAX IO Atom
22
//
23
//////////////////////////////////////////////////////////////////////////////
24
`timescale 1 ps/1 ps
25
 
26
module max_asynch_io (datain, oe, padio, dataout);
27
 
28
    parameter operation_mode = "input";
29
    parameter bus_hold = "false";
30
    parameter open_drain_output = "false";
31
    parameter weak_pull_up = "false";
32
 
33
    input datain, oe;
34
    output dataout;
35
    inout padio;
36
 
37
    reg  prev_value;
38
 
39
    reg tmp_padio, tmp_dataout;
40
    reg buf_control;
41
 
42
    wire datain_in;
43
    wire oe_in;
44
 
45
    buf(datain_in, datain);
46
    buf(oe_in, oe);
47
 
48
    tri padio_tmp;
49
 
50
specify
51
    (padio => dataout) = (0,0);
52
    (datain => padio) = (0, 0);
53
    (posedge oe => (padio +: padio_tmp)) = (0, 0);
54
    (negedge oe => (padio +: 1'bz)) = (0, 0);
55
 
56
endspecify
57
 
58
initial
59
begin
60
    prev_value = 'b1;
61
    tmp_padio = 'bz;
62
end
63
 
64
always @(datain_in or oe_in or padio)
65
begin
66
                if (bus_hold == "true" )
67
        begin
68
                buf_control = 'b1;
69
                                if (operation_mode == "input")
70
                                begin
71
                                        prev_value = padio;
72
                                        tmp_dataout = padio;                                   
73
                                end
74
                else if ( operation_mode == "output" || operation_mode == "bidir")
75
                begin
76
                        if ( oe_in == 1)
77
                        begin
78
                                if ( open_drain_output == "true" )
79
                                begin
80
                                        if (datain_in == 0)
81
                                        begin
82
                                                tmp_padio =     1'b0;
83
                                                prev_value = 1'b0;
84
                                        end
85
                                        else if (datain_in == 1'bx)
86
                                        begin
87
                                                tmp_padio = 1'bx;
88
                                                prev_value = 1'bx;
89
                                        end
90
                                        else   // 'Z'
91
                                        begin
92
                                                if ( padio != 1'bz)
93
                                                begin
94
                                                        prev_value = padio;
95
                                                end
96
                                        end
97
                                end  // end open_drain_output , true
98
                                else
99
                                begin
100
                                        tmp_padio = datain_in;
101
                                        prev_value = datain_in;
102
                                end  // end open_drain_output false
103
                        end             // end oe_in == 1
104
                        else if ( oe_in == 0 )
105
                        begin
106
                                                        if ( padio !== 1'bz)
107
                                                        begin
108
                                                                prev_value = padio;
109
                                                                if ((padio === 1'bx) && (operation_mode == "output") && (padio_tmp === 1'bx) && (prev_value === 1'bx))
110
                                                                begin
111
                                                                        prev_value = 'b0;
112
                                                                end
113
                                                        end
114
                                                        tmp_padio = 'bz;
115
                        end
116
                        else
117
                        begin
118
                                                        begin
119
                                tmp_padio = 1'bx;
120
                                prev_value = 1'bx;
121
                        end
122
                        end
123
 
124
                        if ( operation_mode == "bidir")
125
                                tmp_dataout = padio;
126
                        else
127
                                tmp_dataout = 1'bz;
128
 
129
                        if ( $realtime <= 1 )
130
                                prev_value = 0;
131
                end
132
        end
133
        else    // bus hold is false
134
                if (bus_hold == "false")
135
        begin
136
                buf_control = 'b0;
137
                if ( operation_mode == "input")
138
                begin
139
                        tmp_dataout = padio;
140
                                                if (weak_pull_up == "true")
141
                                                begin
142
                                                        if (tmp_dataout === 1'bz)
143
                                                                tmp_dataout = 1'b1;
144
                                                end
145
                end
146
                else if (operation_mode == "output" || operation_mode == "bidir")
147
                begin
148
                        if ( operation_mode  == "bidir")
149
                                                begin
150
                                tmp_dataout = padio;
151
                                                                if (weak_pull_up == "true")
152
                                                                begin
153
                                                                        if (tmp_dataout === 1'bz)
154
                                                                                tmp_dataout = 1'b1;
155
                                                                end
156
                                                end
157
                        if ( oe_in == 1 )
158
                        begin
159
                                if ( open_drain_output == "true" )
160
                                begin
161
                                        if (datain_in == 0)
162
                                                tmp_padio = 1'b0;
163
                                        else if ( datain_in == 1'bx)
164
                                                tmp_padio = 1'bx;
165
                                        else
166
                                                                                begin
167
                                                tmp_padio = 1'bz;
168
                                                                                                if (weak_pull_up == "true")
169
                                                                                                begin
170
                                                                                                        if (tmp_padio === 1'bz)
171
                                                                                                                buf_control = 1;
172
                                                                                                end
173
                                                                                end
174
 
175
                                end
176
                                else
177
                                                                begin
178
                                                                                if ((datain_in !== 1'b1)&&(datain_in !== 1'b0)&&(datain_in !== 'bx))
179
                                                                                        tmp_padio = 'bz;
180
                                                                                else
181
                                        tmp_padio = datain_in;
182
 
183
                                                                                if (weak_pull_up == "true")
184
                                                                                begin
185
                                                                                        if (tmp_padio === 1'bz)
186
                                                                                                buf_control = 1;
187
                                                                                end
188
                        end
189
                        end
190
                        else if ( oe_in == 0 )
191
                                                begin
192
                                tmp_padio = 1'bz;
193
                                                                if (weak_pull_up == "true")
194
                                                                begin
195
                                                                        if (tmp_padio === 1'bz)
196
                                                                        begin
197
                                                                                buf_control = 1;
198
                                                                        end
199
                                                                end
200
                                                end
201
                        else
202
                                tmp_padio = 1'bx;
203
                end
204
                else
205
                        $display ("Error: Invalid operation_mode specified in max io atom!\n");
206
        end
207
end
208
 
209
bufif1 (weak1, weak0) b(padio_tmp, prev_value, buf_control);  //weak value
210
pmos (padio_tmp, tmp_padio, 'b0);
211
pmos (dataout, tmp_dataout, 'b0);
212
pmos (padio, padio_tmp, 'b0);
213
 
214
endmodule
215
 
216
 
217
module max_io (datain, oe, padio, dataout);
218
 
219
        parameter operation_mode = "input";
220
                parameter bus_hold = "false";
221
                parameter open_drain_output = "false";
222
                parameter weak_pull_up = "false";
223
 
224
        inout        padio;
225
        input        datain, oe;
226
        output       dataout;
227
 
228
        max_asynch_io asynch_inst (datain, oe, padio, dataout);
229
        defparam
230
                asynch_inst.operation_mode = operation_mode,
231
                asynch_inst.bus_hold = bus_hold,
232
            asynch_inst.open_drain_output = open_drain_output,
233
            asynch_inst.weak_pull_up = weak_pull_up;
234
 
235
endmodule
236
 
237
///////////////////////////////////////////////////////////////////////////////
238
//
239
// MAX MCELL ATOM
240
//
241
//////////////////////////////////////////////////////////////////////////////
242
 
243
//   MAX MCELL ASYNCH
244
 
245
`timescale 1 ps/1 ps
246
module  max_asynch_mcell (pterm0, pterm1, pterm2, pterm3, pterm4,
247
                          pterm5, fpin, pxor, pexpin, fbkin,
248
                          combout, pexpout, regin);
249
 
250
   parameter operation_mode     = "normal";
251
   parameter pexp_mode = "off";
252
   parameter register_mode = "dff";
253
 
254
   input [51:0] pterm0, pterm1, pterm2, pterm3, pterm4, pterm5, pxor;
255
   input        pexpin, fbkin, fpin;
256
   output       combout, pexpout, regin;
257
 
258
   reg          icomb, ipexpout, tmp_comb, tmp_fpin;
259
   reg          tmp_pterm0, tmp_pterm1, tmp_pterm2;
260
   reg          tmp_pterm3, tmp_pterm4, tmp_pexpin;
261
   wire [51:0]  ipterm0, ipterm1, ipterm2, ipterm3, ipterm4, ipterm5, ipxor;
262
 
263
    wire ipexpin;
264
    wire ifpin;
265
 
266
    buf (ipexpin, pexpin);
267
    buf (ifpin, fpin);
268
 
269
    buf (ipterm0[0], pterm0[0]);
270
    buf (ipterm0[1], pterm0[1]);
271
    buf (ipterm0[2], pterm0[2]);
272
    buf (ipterm0[3], pterm0[3]);
273
    buf (ipterm0[4], pterm0[4]);
274
    buf (ipterm0[5], pterm0[5]);
275
    buf (ipterm0[6], pterm0[6]);
276
    buf (ipterm0[7], pterm0[7]);
277
    buf (ipterm0[8], pterm0[8]);
278
    buf (ipterm0[9], pterm0[9]);
279
    buf (ipterm0[10], pterm0[10]);
280
    buf (ipterm0[11], pterm0[11]);
281
    buf (ipterm0[12], pterm0[12]);
282
    buf (ipterm0[13], pterm0[13]);
283
    buf (ipterm0[14], pterm0[14]);
284
    buf (ipterm0[15], pterm0[15]);
285
    buf (ipterm0[16], pterm0[16]);
286
    buf (ipterm0[17], pterm0[17]);
287
    buf (ipterm0[18], pterm0[18]);
288
    buf (ipterm0[19], pterm0[19]);
289
    buf (ipterm0[20], pterm0[20]);
290
    buf (ipterm0[21], pterm0[21]);
291
    buf (ipterm0[22], pterm0[22]);
292
    buf (ipterm0[23], pterm0[23]);
293
    buf (ipterm0[24], pterm0[24]);
294
    buf (ipterm0[25], pterm0[25]);
295
    buf (ipterm0[26], pterm0[26]);
296
    buf (ipterm0[27], pterm0[27]);
297
    buf (ipterm0[28], pterm0[28]);
298
    buf (ipterm0[29], pterm0[29]);
299
    buf (ipterm0[30], pterm0[30]);
300
    buf (ipterm0[31], pterm0[31]);
301
    buf (ipterm0[32], pterm0[32]);
302
    buf (ipterm0[33], pterm0[33]);
303
    buf (ipterm0[34], pterm0[34]);
304
    buf (ipterm0[35], pterm0[35]);
305
    buf (ipterm0[36], pterm0[36]);
306
    buf (ipterm0[37], pterm0[37]);
307
    buf (ipterm0[38], pterm0[38]);
308
    buf (ipterm0[39], pterm0[39]);
309
    buf (ipterm0[40], pterm0[40]);
310
    buf (ipterm0[41], pterm0[41]);
311
    buf (ipterm0[42], pterm0[42]);
312
    buf (ipterm0[43], pterm0[43]);
313
    buf (ipterm0[44], pterm0[44]);
314
    buf (ipterm0[45], pterm0[45]);
315
    buf (ipterm0[46], pterm0[46]);
316
    buf (ipterm0[47], pterm0[47]);
317
    buf (ipterm0[48], pterm0[48]);
318
    buf (ipterm0[49], pterm0[49]);
319
    buf (ipterm0[50], pterm0[50]);
320
    buf (ipterm0[51], pterm0[51]);
321
 
322
    buf (ipterm1[0], pterm1[0]);
323
    buf (ipterm1[1], pterm1[1]);
324
    buf (ipterm1[2], pterm1[2]);
325
    buf (ipterm1[3], pterm1[3]);
326
    buf (ipterm1[4], pterm1[4]);
327
    buf (ipterm1[5], pterm1[5]);
328
    buf (ipterm1[6], pterm1[6]);
329
    buf (ipterm1[7], pterm1[7]);
330
    buf (ipterm1[8], pterm1[8]);
331
    buf (ipterm1[9], pterm1[9]);
332
    buf (ipterm1[10], pterm1[10]);
333
    buf (ipterm1[11], pterm1[11]);
334
    buf (ipterm1[12], pterm1[12]);
335
    buf (ipterm1[13], pterm1[13]);
336
    buf (ipterm1[14], pterm1[14]);
337
    buf (ipterm1[15], pterm1[15]);
338
    buf (ipterm1[16], pterm1[16]);
339
    buf (ipterm1[17], pterm1[17]);
340
    buf (ipterm1[18], pterm1[18]);
341
    buf (ipterm1[19], pterm1[19]);
342
    buf (ipterm1[20], pterm1[20]);
343
    buf (ipterm1[21], pterm1[21]);
344
    buf (ipterm1[22], pterm1[22]);
345
    buf (ipterm1[23], pterm1[23]);
346
    buf (ipterm1[24], pterm1[24]);
347
    buf (ipterm1[25], pterm1[25]);
348
    buf (ipterm1[26], pterm1[26]);
349
    buf (ipterm1[27], pterm1[27]);
350
    buf (ipterm1[28], pterm1[28]);
351
    buf (ipterm1[29], pterm1[29]);
352
    buf (ipterm1[30], pterm1[30]);
353
    buf (ipterm1[31], pterm1[31]);
354
    buf (ipterm1[32], pterm1[32]);
355
    buf (ipterm1[33], pterm1[33]);
356
    buf (ipterm1[34], pterm1[34]);
357
    buf (ipterm1[35], pterm1[35]);
358
    buf (ipterm1[36], pterm1[36]);
359
    buf (ipterm1[37], pterm1[37]);
360
    buf (ipterm1[38], pterm1[38]);
361
    buf (ipterm1[39], pterm1[39]);
362
    buf (ipterm1[40], pterm1[40]);
363
    buf (ipterm1[41], pterm1[41]);
364
    buf (ipterm1[42], pterm1[42]);
365
    buf (ipterm1[43], pterm1[43]);
366
    buf (ipterm1[44], pterm1[44]);
367
    buf (ipterm1[45], pterm1[45]);
368
    buf (ipterm1[46], pterm1[46]);
369
    buf (ipterm1[47], pterm1[47]);
370
    buf (ipterm1[48], pterm1[48]);
371
    buf (ipterm1[49], pterm1[49]);
372
    buf (ipterm1[50], pterm1[50]);
373
    buf (ipterm1[51], pterm1[51]);
374
 
375
    buf (ipterm2[0], pterm2[0]);
376
    buf (ipterm2[1], pterm2[1]);
377
    buf (ipterm2[2], pterm2[2]);
378
    buf (ipterm2[3], pterm2[3]);
379
    buf (ipterm2[4], pterm2[4]);
380
    buf (ipterm2[5], pterm2[5]);
381
    buf (ipterm2[6], pterm2[6]);
382
    buf (ipterm2[7], pterm2[7]);
383
    buf (ipterm2[8], pterm2[8]);
384
    buf (ipterm2[9], pterm2[9]);
385
    buf (ipterm2[10], pterm2[10]);
386
    buf (ipterm2[11], pterm2[11]);
387
    buf (ipterm2[12], pterm2[12]);
388
    buf (ipterm2[13], pterm2[13]);
389
    buf (ipterm2[14], pterm2[14]);
390
    buf (ipterm2[15], pterm2[15]);
391
    buf (ipterm2[16], pterm2[16]);
392
    buf (ipterm2[17], pterm2[17]);
393
    buf (ipterm2[18], pterm2[18]);
394
    buf (ipterm2[19], pterm2[19]);
395
    buf (ipterm2[20], pterm2[20]);
396
    buf (ipterm2[21], pterm2[21]);
397
    buf (ipterm2[22], pterm2[22]);
398
    buf (ipterm2[23], pterm2[23]);
399
    buf (ipterm2[24], pterm2[24]);
400
    buf (ipterm2[25], pterm2[25]);
401
    buf (ipterm2[26], pterm2[26]);
402
    buf (ipterm2[27], pterm2[27]);
403
    buf (ipterm2[28], pterm2[28]);
404
    buf (ipterm2[29], pterm2[29]);
405
    buf (ipterm2[30], pterm2[30]);
406
    buf (ipterm2[31], pterm2[31]);
407
    buf (ipterm2[32], pterm2[32]);
408
    buf (ipterm2[33], pterm2[33]);
409
    buf (ipterm2[34], pterm2[34]);
410
    buf (ipterm2[35], pterm2[35]);
411
    buf (ipterm2[36], pterm2[36]);
412
    buf (ipterm2[37], pterm2[37]);
413
    buf (ipterm2[38], pterm2[38]);
414
    buf (ipterm2[39], pterm2[39]);
415
    buf (ipterm2[40], pterm2[40]);
416
    buf (ipterm2[41], pterm2[41]);
417
    buf (ipterm2[42], pterm2[42]);
418
    buf (ipterm2[43], pterm2[43]);
419
    buf (ipterm2[44], pterm2[44]);
420
    buf (ipterm2[45], pterm2[45]);
421
    buf (ipterm2[46], pterm2[46]);
422
    buf (ipterm2[47], pterm2[47]);
423
    buf (ipterm2[48], pterm2[48]);
424
    buf (ipterm2[49], pterm2[49]);
425
    buf (ipterm2[50], pterm2[50]);
426
    buf (ipterm2[51], pterm2[51]);
427
 
428
    buf (ipterm3[0], pterm3[0]);
429
    buf (ipterm3[1], pterm3[1]);
430
    buf (ipterm3[2], pterm3[2]);
431
    buf (ipterm3[3], pterm3[3]);
432
    buf (ipterm3[4], pterm3[4]);
433
    buf (ipterm3[5], pterm3[5]);
434
    buf (ipterm3[6], pterm3[6]);
435
    buf (ipterm3[7], pterm3[7]);
436
    buf (ipterm3[8], pterm3[8]);
437
    buf (ipterm3[9], pterm3[9]);
438
    buf (ipterm3[10], pterm3[10]);
439
    buf (ipterm3[11], pterm3[11]);
440
    buf (ipterm3[12], pterm3[12]);
441
    buf (ipterm3[13], pterm3[13]);
442
    buf (ipterm3[14], pterm3[14]);
443
    buf (ipterm3[15], pterm3[15]);
444
    buf (ipterm3[16], pterm3[16]);
445
    buf (ipterm3[17], pterm3[17]);
446
    buf (ipterm3[18], pterm3[18]);
447
    buf (ipterm3[19], pterm3[19]);
448
    buf (ipterm3[20], pterm3[20]);
449
    buf (ipterm3[21], pterm3[21]);
450
    buf (ipterm3[22], pterm3[22]);
451
    buf (ipterm3[23], pterm3[23]);
452
    buf (ipterm3[24], pterm3[24]);
453
    buf (ipterm3[25], pterm3[25]);
454
    buf (ipterm3[26], pterm3[26]);
455
    buf (ipterm3[27], pterm3[27]);
456
    buf (ipterm3[28], pterm3[28]);
457
    buf (ipterm3[29], pterm3[29]);
458
    buf (ipterm3[30], pterm3[30]);
459
    buf (ipterm3[31], pterm3[31]);
460
    buf (ipterm3[32], pterm3[32]);
461
    buf (ipterm3[33], pterm3[33]);
462
    buf (ipterm3[34], pterm3[34]);
463
    buf (ipterm3[35], pterm3[35]);
464
    buf (ipterm3[36], pterm3[36]);
465
    buf (ipterm3[37], pterm3[37]);
466
    buf (ipterm3[38], pterm3[38]);
467
    buf (ipterm3[39], pterm3[39]);
468
    buf (ipterm3[40], pterm3[40]);
469
    buf (ipterm3[41], pterm3[41]);
470
    buf (ipterm3[42], pterm3[42]);
471
    buf (ipterm3[43], pterm3[43]);
472
    buf (ipterm3[44], pterm3[44]);
473
    buf (ipterm3[45], pterm3[45]);
474
    buf (ipterm3[46], pterm3[46]);
475
    buf (ipterm3[47], pterm3[47]);
476
    buf (ipterm3[48], pterm3[48]);
477
    buf (ipterm3[49], pterm3[49]);
478
    buf (ipterm3[50], pterm3[50]);
479
    buf (ipterm3[51], pterm3[51]);
480
 
481
    buf (ipterm4[0], pterm4[0]);
482
    buf (ipterm4[1], pterm4[1]);
483
    buf (ipterm4[2], pterm4[2]);
484
    buf (ipterm4[3], pterm4[3]);
485
    buf (ipterm4[4], pterm4[4]);
486
    buf (ipterm4[5], pterm4[5]);
487
    buf (ipterm4[6], pterm4[6]);
488
    buf (ipterm4[7], pterm4[7]);
489
    buf (ipterm4[8], pterm4[8]);
490
    buf (ipterm4[9], pterm4[9]);
491
    buf (ipterm4[10], pterm4[10]);
492
    buf (ipterm4[11], pterm4[11]);
493
    buf (ipterm4[12], pterm4[12]);
494
    buf (ipterm4[13], pterm4[13]);
495
    buf (ipterm4[14], pterm4[14]);
496
    buf (ipterm4[15], pterm4[15]);
497
    buf (ipterm4[16], pterm4[16]);
498
    buf (ipterm4[17], pterm4[17]);
499
    buf (ipterm4[18], pterm4[18]);
500
    buf (ipterm4[19], pterm4[19]);
501
    buf (ipterm4[20], pterm4[20]);
502
    buf (ipterm4[21], pterm4[21]);
503
    buf (ipterm4[22], pterm4[22]);
504
    buf (ipterm4[23], pterm4[23]);
505
    buf (ipterm4[24], pterm4[24]);
506
    buf (ipterm4[25], pterm4[25]);
507
    buf (ipterm4[26], pterm4[26]);
508
    buf (ipterm4[27], pterm4[27]);
509
    buf (ipterm4[28], pterm4[28]);
510
    buf (ipterm4[29], pterm4[29]);
511
    buf (ipterm4[30], pterm4[30]);
512
    buf (ipterm4[31], pterm4[31]);
513
    buf (ipterm4[32], pterm4[32]);
514
    buf (ipterm4[33], pterm4[33]);
515
    buf (ipterm4[34], pterm4[34]);
516
    buf (ipterm4[35], pterm4[35]);
517
    buf (ipterm4[36], pterm4[36]);
518
    buf (ipterm4[37], pterm4[37]);
519
    buf (ipterm4[38], pterm4[38]);
520
    buf (ipterm4[39], pterm4[39]);
521
    buf (ipterm4[40], pterm4[40]);
522
    buf (ipterm4[41], pterm4[41]);
523
    buf (ipterm4[42], pterm4[42]);
524
    buf (ipterm4[43], pterm4[43]);
525
    buf (ipterm4[44], pterm4[44]);
526
    buf (ipterm4[45], pterm4[45]);
527
    buf (ipterm4[46], pterm4[46]);
528
    buf (ipterm4[47], pterm4[47]);
529
    buf (ipterm4[48], pterm4[48]);
530
    buf (ipterm4[49], pterm4[49]);
531
    buf (ipterm4[50], pterm4[50]);
532
    buf (ipterm4[51], pterm4[51]);
533
 
534
    buf (ipterm5[0], pterm5[0]);
535
    buf (ipterm5[1], pterm5[1]);
536
    buf (ipterm5[2], pterm5[2]);
537
    buf (ipterm5[3], pterm5[3]);
538
    buf (ipterm5[4], pterm5[4]);
539
    buf (ipterm5[5], pterm5[5]);
540
    buf (ipterm5[6], pterm5[6]);
541
    buf (ipterm5[7], pterm5[7]);
542
    buf (ipterm5[8], pterm5[8]);
543
    buf (ipterm5[9], pterm5[9]);
544
    buf (ipterm5[10], pterm5[10]);
545
    buf (ipterm5[11], pterm5[11]);
546
    buf (ipterm5[12], pterm5[12]);
547
    buf (ipterm5[13], pterm5[13]);
548
    buf (ipterm5[14], pterm5[14]);
549
    buf (ipterm5[15], pterm5[15]);
550
    buf (ipterm5[16], pterm5[16]);
551
    buf (ipterm5[17], pterm5[17]);
552
    buf (ipterm5[18], pterm5[18]);
553
    buf (ipterm5[19], pterm5[19]);
554
    buf (ipterm5[20], pterm5[20]);
555
    buf (ipterm5[21], pterm5[21]);
556
    buf (ipterm5[22], pterm5[22]);
557
    buf (ipterm5[23], pterm5[23]);
558
    buf (ipterm5[24], pterm5[24]);
559
    buf (ipterm5[25], pterm5[25]);
560
    buf (ipterm5[26], pterm5[26]);
561
    buf (ipterm5[27], pterm5[27]);
562
    buf (ipterm5[28], pterm5[28]);
563
    buf (ipterm5[29], pterm5[29]);
564
    buf (ipterm5[30], pterm5[30]);
565
    buf (ipterm5[31], pterm5[31]);
566
    buf (ipterm5[32], pterm5[32]);
567
    buf (ipterm5[33], pterm5[33]);
568
    buf (ipterm5[34], pterm5[34]);
569
    buf (ipterm5[35], pterm5[35]);
570
    buf (ipterm5[36], pterm5[36]);
571
    buf (ipterm5[37], pterm5[37]);
572
    buf (ipterm5[38], pterm5[38]);
573
    buf (ipterm5[39], pterm5[39]);
574
    buf (ipterm5[40], pterm5[40]);
575
    buf (ipterm5[41], pterm5[41]);
576
    buf (ipterm5[42], pterm5[42]);
577
    buf (ipterm5[43], pterm5[43]);
578
    buf (ipterm5[44], pterm5[44]);
579
    buf (ipterm5[45], pterm5[45]);
580
    buf (ipterm5[46], pterm5[46]);
581
    buf (ipterm5[47], pterm5[47]);
582
    buf (ipterm5[48], pterm5[48]);
583
    buf (ipterm5[49], pterm5[49]);
584
    buf (ipterm5[50], pterm5[50]);
585
    buf (ipterm5[51], pterm5[51]);
586
 
587
    buf (ipxor[0], pxor[0]);
588
    buf (ipxor[1], pxor[1]);
589
    buf (ipxor[2], pxor[2]);
590
    buf (ipxor[3], pxor[3]);
591
    buf (ipxor[4], pxor[4]);
592
    buf (ipxor[5], pxor[5]);
593
    buf (ipxor[6], pxor[6]);
594
    buf (ipxor[7], pxor[7]);
595
    buf (ipxor[8], pxor[8]);
596
    buf (ipxor[9], pxor[9]);
597
    buf (ipxor[10], pxor[10]);
598
    buf (ipxor[11], pxor[11]);
599
    buf (ipxor[12], pxor[12]);
600
    buf (ipxor[13], pxor[13]);
601
    buf (ipxor[14], pxor[14]);
602
    buf (ipxor[15], pxor[15]);
603
    buf (ipxor[16], pxor[16]);
604
    buf (ipxor[17], pxor[17]);
605
    buf (ipxor[18], pxor[18]);
606
    buf (ipxor[19], pxor[19]);
607
    buf (ipxor[20], pxor[20]);
608
    buf (ipxor[21], pxor[21]);
609
    buf (ipxor[22], pxor[22]);
610
    buf (ipxor[23], pxor[23]);
611
    buf (ipxor[24], pxor[24]);
612
    buf (ipxor[25], pxor[25]);
613
    buf (ipxor[26], pxor[26]);
614
    buf (ipxor[27], pxor[27]);
615
    buf (ipxor[28], pxor[28]);
616
    buf (ipxor[29], pxor[29]);
617
    buf (ipxor[30], pxor[30]);
618
    buf (ipxor[31], pxor[31]);
619
    buf (ipxor[32], pxor[32]);
620
    buf (ipxor[33], pxor[33]);
621
    buf (ipxor[34], pxor[34]);
622
    buf (ipxor[35], pxor[35]);
623
    buf (ipxor[36], pxor[36]);
624
    buf (ipxor[37], pxor[37]);
625
    buf (ipxor[38], pxor[38]);
626
    buf (ipxor[39], pxor[39]);
627
    buf (ipxor[40], pxor[40]);
628
    buf (ipxor[41], pxor[41]);
629
    buf (ipxor[42], pxor[42]);
630
    buf (ipxor[43], pxor[43]);
631
    buf (ipxor[44], pxor[44]);
632
    buf (ipxor[45], pxor[45]);
633
    buf (ipxor[46], pxor[46]);
634
    buf (ipxor[47], pxor[47]);
635
    buf (ipxor[48], pxor[48]);
636
    buf (ipxor[49], pxor[49]);
637
    buf (ipxor[50], pxor[50]);
638
    buf (ipxor[51], pxor[51]);
639
 
640
    specify
641
 
642
    (pterm0[0] => combout) = (0, 0) ;
643
    (pterm0[1] => combout) = (0, 0) ;
644
    (pterm0[2] => combout) = (0, 0) ;
645
    (pterm0[3] => combout) = (0, 0) ;
646
    (pterm0[4] => combout) = (0, 0) ;
647
    (pterm0[5] => combout) = (0, 0) ;
648
    (pterm0[6] => combout) = (0, 0) ;
649
    (pterm0[7] => combout) = (0, 0) ;
650
    (pterm0[8] => combout) = (0, 0) ;
651
    (pterm0[9] => combout) = (0, 0) ;
652
    (pterm0[10] => combout) = (0, 0) ;
653
    (pterm0[11] => combout) = (0, 0) ;
654
    (pterm0[12] => combout) = (0, 0) ;
655
    (pterm0[13] => combout) = (0, 0) ;
656
    (pterm0[14] => combout) = (0, 0) ;
657
    (pterm0[15] => combout) = (0, 0) ;
658
    (pterm0[16] => combout) = (0, 0) ;
659
    (pterm0[17] => combout) = (0, 0) ;
660
    (pterm0[18] => combout) = (0, 0) ;
661
    (pterm0[19] => combout) = (0, 0) ;
662
    (pterm0[20] => combout) = (0, 0) ;
663
    (pterm0[21] => combout) = (0, 0) ;
664
    (pterm0[22] => combout) = (0, 0) ;
665
    (pterm0[23] => combout) = (0, 0) ;
666
    (pterm0[24] => combout) = (0, 0) ;
667
    (pterm0[25] => combout) = (0, 0) ;
668
    (pterm0[26] => combout) = (0, 0) ;
669
    (pterm0[27] => combout) = (0, 0) ;
670
    (pterm0[28] => combout) = (0, 0) ;
671
    (pterm0[29] => combout) = (0, 0) ;
672
    (pterm0[30] => combout) = (0, 0) ;
673
    (pterm0[31] => combout) = (0, 0) ;
674
    (pterm0[32] => combout) = (0, 0) ;
675
    (pterm0[33] => combout) = (0, 0) ;
676
    (pterm0[34] => combout) = (0, 0) ;
677
    (pterm0[35] => combout) = (0, 0) ;
678
    (pterm0[36] => combout) = (0, 0) ;
679
    (pterm0[37] => combout) = (0, 0) ;
680
    (pterm0[38] => combout) = (0, 0) ;
681
    (pterm0[39] => combout) = (0, 0) ;
682
    (pterm0[40] => combout) = (0, 0) ;
683
    (pterm0[41] => combout) = (0, 0) ;
684
    (pterm0[42] => combout) = (0, 0) ;
685
    (pterm0[43] => combout) = (0, 0) ;
686
    (pterm0[44] => combout) = (0, 0) ;
687
    (pterm0[45] => combout) = (0, 0) ;
688
    (pterm0[46] => combout) = (0, 0) ;
689
    (pterm0[47] => combout) = (0, 0) ;
690
    (pterm0[48] => combout) = (0, 0) ;
691
    (pterm0[49] => combout) = (0, 0) ;
692
    (pterm0[50] => combout) = (0, 0) ;
693
    (pterm0[51] => combout) = (0, 0) ;
694
 
695
    (pterm1[0] => combout) = (0, 0) ;
696
    (pterm1[1] => combout) = (0, 0) ;
697
    (pterm1[2] => combout) = (0, 0) ;
698
    (pterm1[3] => combout) = (0, 0) ;
699
    (pterm1[4] => combout) = (0, 0) ;
700
    (pterm1[5] => combout) = (0, 0) ;
701
    (pterm1[6] => combout) = (0, 0) ;
702
    (pterm1[7] => combout) = (0, 0) ;
703
    (pterm1[8] => combout) = (0, 0) ;
704
    (pterm1[9] => combout) = (0, 0) ;
705
    (pterm1[10] => combout) = (0, 0) ;
706
    (pterm1[11] => combout) = (0, 0) ;
707
    (pterm1[12] => combout) = (0, 0) ;
708
    (pterm1[13] => combout) = (0, 0) ;
709
    (pterm1[14] => combout) = (0, 0) ;
710
    (pterm1[15] => combout) = (0, 0) ;
711
    (pterm1[16] => combout) = (0, 0) ;
712
    (pterm1[17] => combout) = (0, 0) ;
713
    (pterm1[18] => combout) = (0, 0) ;
714
    (pterm1[19] => combout) = (0, 0) ;
715
    (pterm1[20] => combout) = (0, 0) ;
716
    (pterm1[21] => combout) = (0, 0) ;
717
    (pterm1[22] => combout) = (0, 0) ;
718
    (pterm1[23] => combout) = (0, 0) ;
719
    (pterm1[24] => combout) = (0, 0) ;
720
    (pterm1[25] => combout) = (0, 0) ;
721
    (pterm1[26] => combout) = (0, 0) ;
722
    (pterm1[27] => combout) = (0, 0) ;
723
    (pterm1[28] => combout) = (0, 0) ;
724
    (pterm1[29] => combout) = (0, 0) ;
725
    (pterm1[30] => combout) = (0, 0) ;
726
    (pterm1[31] => combout) = (0, 0) ;
727
    (pterm1[32] => combout) = (0, 0) ;
728
    (pterm1[33] => combout) = (0, 0) ;
729
    (pterm1[34] => combout) = (0, 0) ;
730
    (pterm1[35] => combout) = (0, 0) ;
731
    (pterm1[36] => combout) = (0, 0) ;
732
    (pterm1[37] => combout) = (0, 0) ;
733
    (pterm1[38] => combout) = (0, 0) ;
734
    (pterm1[39] => combout) = (0, 0) ;
735
    (pterm1[40] => combout) = (0, 0) ;
736
    (pterm1[41] => combout) = (0, 0) ;
737
    (pterm1[42] => combout) = (0, 0) ;
738
    (pterm1[43] => combout) = (0, 0) ;
739
    (pterm1[44] => combout) = (0, 0) ;
740
    (pterm1[45] => combout) = (0, 0) ;
741
    (pterm1[46] => combout) = (0, 0) ;
742
    (pterm1[47] => combout) = (0, 0) ;
743
    (pterm1[48] => combout) = (0, 0) ;
744
    (pterm1[49] => combout) = (0, 0) ;
745
    (pterm1[50] => combout) = (0, 0) ;
746
    (pterm1[51] => combout) = (0, 0) ;
747
 
748
    (pterm2[0] => combout) = (0, 0) ;
749
    (pterm2[1] => combout) = (0, 0) ;
750
    (pterm2[2] => combout) = (0, 0) ;
751
    (pterm2[3] => combout) = (0, 0) ;
752
    (pterm2[4] => combout) = (0, 0) ;
753
    (pterm2[5] => combout) = (0, 0) ;
754
    (pterm2[6] => combout) = (0, 0) ;
755
    (pterm2[7] => combout) = (0, 0) ;
756
    (pterm2[8] => combout) = (0, 0) ;
757
    (pterm2[9] => combout) = (0, 0) ;
758
    (pterm2[10] => combout) = (0, 0) ;
759
    (pterm2[11] => combout) = (0, 0) ;
760
    (pterm2[12] => combout) = (0, 0) ;
761
    (pterm2[13] => combout) = (0, 0) ;
762
    (pterm2[14] => combout) = (0, 0) ;
763
    (pterm2[15] => combout) = (0, 0) ;
764
    (pterm2[16] => combout) = (0, 0) ;
765
    (pterm2[17] => combout) = (0, 0) ;
766
    (pterm2[18] => combout) = (0, 0) ;
767
    (pterm2[19] => combout) = (0, 0) ;
768
    (pterm2[20] => combout) = (0, 0) ;
769
    (pterm2[21] => combout) = (0, 0) ;
770
    (pterm2[22] => combout) = (0, 0) ;
771
    (pterm2[23] => combout) = (0, 0) ;
772
    (pterm2[24] => combout) = (0, 0) ;
773
    (pterm2[25] => combout) = (0, 0) ;
774
    (pterm2[26] => combout) = (0, 0) ;
775
    (pterm2[27] => combout) = (0, 0) ;
776
    (pterm2[28] => combout) = (0, 0) ;
777
    (pterm2[29] => combout) = (0, 0) ;
778
    (pterm2[30] => combout) = (0, 0) ;
779
    (pterm2[31] => combout) = (0, 0) ;
780
    (pterm2[32] => combout) = (0, 0) ;
781
    (pterm2[33] => combout) = (0, 0) ;
782
    (pterm2[34] => combout) = (0, 0) ;
783
    (pterm2[35] => combout) = (0, 0) ;
784
    (pterm2[36] => combout) = (0, 0) ;
785
    (pterm2[37] => combout) = (0, 0) ;
786
    (pterm2[38] => combout) = (0, 0) ;
787
    (pterm2[39] => combout) = (0, 0) ;
788
    (pterm2[40] => combout) = (0, 0) ;
789
    (pterm2[41] => combout) = (0, 0) ;
790
    (pterm2[42] => combout) = (0, 0) ;
791
    (pterm2[43] => combout) = (0, 0) ;
792
    (pterm2[44] => combout) = (0, 0) ;
793
    (pterm2[45] => combout) = (0, 0) ;
794
    (pterm2[46] => combout) = (0, 0) ;
795
    (pterm2[47] => combout) = (0, 0) ;
796
    (pterm2[48] => combout) = (0, 0) ;
797
    (pterm2[49] => combout) = (0, 0) ;
798
    (pterm2[50] => combout) = (0, 0) ;
799
    (pterm2[51] => combout) = (0, 0) ;
800
 
801
    (pterm3[0] => combout) = (0, 0) ;
802
    (pterm3[1] => combout) = (0, 0) ;
803
    (pterm3[2] => combout) = (0, 0) ;
804
    (pterm3[3] => combout) = (0, 0) ;
805
    (pterm3[4] => combout) = (0, 0) ;
806
    (pterm3[5] => combout) = (0, 0) ;
807
    (pterm3[6] => combout) = (0, 0) ;
808
    (pterm3[7] => combout) = (0, 0) ;
809
    (pterm3[8] => combout) = (0, 0) ;
810
    (pterm3[9] => combout) = (0, 0) ;
811
    (pterm3[10] => combout) = (0, 0) ;
812
    (pterm3[11] => combout) = (0, 0) ;
813
    (pterm3[12] => combout) = (0, 0) ;
814
    (pterm3[13] => combout) = (0, 0) ;
815
    (pterm3[14] => combout) = (0, 0) ;
816
    (pterm3[15] => combout) = (0, 0) ;
817
    (pterm3[16] => combout) = (0, 0) ;
818
    (pterm3[17] => combout) = (0, 0) ;
819
    (pterm3[18] => combout) = (0, 0) ;
820
    (pterm3[19] => combout) = (0, 0) ;
821
    (pterm3[20] => combout) = (0, 0) ;
822
    (pterm3[21] => combout) = (0, 0) ;
823
    (pterm3[22] => combout) = (0, 0) ;
824
    (pterm3[23] => combout) = (0, 0) ;
825
    (pterm3[24] => combout) = (0, 0) ;
826
    (pterm3[25] => combout) = (0, 0) ;
827
    (pterm3[26] => combout) = (0, 0) ;
828
    (pterm3[27] => combout) = (0, 0) ;
829
    (pterm3[28] => combout) = (0, 0) ;
830
    (pterm3[29] => combout) = (0, 0) ;
831
    (pterm3[30] => combout) = (0, 0) ;
832
    (pterm3[31] => combout) = (0, 0) ;
833
    (pterm3[32] => combout) = (0, 0) ;
834
    (pterm3[33] => combout) = (0, 0) ;
835
    (pterm3[34] => combout) = (0, 0) ;
836
    (pterm3[35] => combout) = (0, 0) ;
837
    (pterm3[36] => combout) = (0, 0) ;
838
    (pterm3[37] => combout) = (0, 0) ;
839
    (pterm3[38] => combout) = (0, 0) ;
840
    (pterm3[39] => combout) = (0, 0) ;
841
    (pterm3[40] => combout) = (0, 0) ;
842
    (pterm3[41] => combout) = (0, 0) ;
843
    (pterm3[42] => combout) = (0, 0) ;
844
    (pterm3[43] => combout) = (0, 0) ;
845
    (pterm3[44] => combout) = (0, 0) ;
846
    (pterm3[45] => combout) = (0, 0) ;
847
    (pterm3[46] => combout) = (0, 0) ;
848
    (pterm3[47] => combout) = (0, 0) ;
849
    (pterm3[48] => combout) = (0, 0) ;
850
    (pterm3[49] => combout) = (0, 0) ;
851
    (pterm3[50] => combout) = (0, 0) ;
852
    (pterm3[51] => combout) = (0, 0) ;
853
 
854
    (pterm4[0] => combout) = (0, 0) ;
855
    (pterm4[1] => combout) = (0, 0) ;
856
    (pterm4[2] => combout) = (0, 0) ;
857
    (pterm4[3] => combout) = (0, 0) ;
858
    (pterm4[4] => combout) = (0, 0) ;
859
    (pterm4[5] => combout) = (0, 0) ;
860
    (pterm4[6] => combout) = (0, 0) ;
861
    (pterm4[7] => combout) = (0, 0) ;
862
    (pterm4[8] => combout) = (0, 0) ;
863
    (pterm4[9] => combout) = (0, 0) ;
864
    (pterm4[10] => combout) = (0, 0) ;
865
    (pterm4[11] => combout) = (0, 0) ;
866
    (pterm4[12] => combout) = (0, 0) ;
867
    (pterm4[13] => combout) = (0, 0) ;
868
    (pterm4[14] => combout) = (0, 0) ;
869
    (pterm4[15] => combout) = (0, 0) ;
870
    (pterm4[16] => combout) = (0, 0) ;
871
    (pterm4[17] => combout) = (0, 0) ;
872
    (pterm4[18] => combout) = (0, 0) ;
873
    (pterm4[19] => combout) = (0, 0) ;
874
    (pterm4[20] => combout) = (0, 0) ;
875
    (pterm4[21] => combout) = (0, 0) ;
876
    (pterm4[22] => combout) = (0, 0) ;
877
    (pterm4[23] => combout) = (0, 0) ;
878
    (pterm4[24] => combout) = (0, 0) ;
879
    (pterm4[25] => combout) = (0, 0) ;
880
    (pterm4[26] => combout) = (0, 0) ;
881
    (pterm4[27] => combout) = (0, 0) ;
882
    (pterm4[28] => combout) = (0, 0) ;
883
    (pterm4[29] => combout) = (0, 0) ;
884
    (pterm4[30] => combout) = (0, 0) ;
885
    (pterm4[31] => combout) = (0, 0) ;
886
    (pterm4[32] => combout) = (0, 0) ;
887
    (pterm4[33] => combout) = (0, 0) ;
888
    (pterm4[34] => combout) = (0, 0) ;
889
    (pterm4[35] => combout) = (0, 0) ;
890
    (pterm4[36] => combout) = (0, 0) ;
891
    (pterm4[37] => combout) = (0, 0) ;
892
    (pterm4[38] => combout) = (0, 0) ;
893
    (pterm4[39] => combout) = (0, 0) ;
894
    (pterm4[40] => combout) = (0, 0) ;
895
    (pterm4[41] => combout) = (0, 0) ;
896
    (pterm4[42] => combout) = (0, 0) ;
897
    (pterm4[43] => combout) = (0, 0) ;
898
    (pterm4[44] => combout) = (0, 0) ;
899
    (pterm4[45] => combout) = (0, 0) ;
900
    (pterm4[46] => combout) = (0, 0) ;
901
    (pterm4[47] => combout) = (0, 0) ;
902
    (pterm4[48] => combout) = (0, 0) ;
903
    (pterm4[49] => combout) = (0, 0) ;
904
    (pterm4[50] => combout) = (0, 0) ;
905
    (pterm4[51] => combout) = (0, 0) ;
906
 
907
    (pterm5[0] => combout) = (0, 0) ;
908
    (pterm5[1] => combout) = (0, 0) ;
909
    (pterm5[2] => combout) = (0, 0) ;
910
    (pterm5[3] => combout) = (0, 0) ;
911
    (pterm5[4] => combout) = (0, 0) ;
912
    (pterm5[5] => combout) = (0, 0) ;
913
    (pterm5[6] => combout) = (0, 0) ;
914
    (pterm5[7] => combout) = (0, 0) ;
915
    (pterm5[8] => combout) = (0, 0) ;
916
    (pterm5[9] => combout) = (0, 0) ;
917
    (pterm5[10] => combout) = (0, 0) ;
918
    (pterm5[11] => combout) = (0, 0) ;
919
    (pterm5[12] => combout) = (0, 0) ;
920
    (pterm5[13] => combout) = (0, 0) ;
921
    (pterm5[14] => combout) = (0, 0) ;
922
    (pterm5[15] => combout) = (0, 0) ;
923
    (pterm5[16] => combout) = (0, 0) ;
924
    (pterm5[17] => combout) = (0, 0) ;
925
    (pterm5[18] => combout) = (0, 0) ;
926
    (pterm5[19] => combout) = (0, 0) ;
927
    (pterm5[20] => combout) = (0, 0) ;
928
    (pterm5[21] => combout) = (0, 0) ;
929
    (pterm5[22] => combout) = (0, 0) ;
930
    (pterm5[23] => combout) = (0, 0) ;
931
    (pterm5[24] => combout) = (0, 0) ;
932
    (pterm5[25] => combout) = (0, 0) ;
933
    (pterm5[26] => combout) = (0, 0) ;
934
    (pterm5[27] => combout) = (0, 0) ;
935
    (pterm5[28] => combout) = (0, 0) ;
936
    (pterm5[29] => combout) = (0, 0) ;
937
    (pterm5[30] => combout) = (0, 0) ;
938
    (pterm5[31] => combout) = (0, 0) ;
939
    (pterm5[32] => combout) = (0, 0) ;
940
    (pterm5[33] => combout) = (0, 0) ;
941
    (pterm5[34] => combout) = (0, 0) ;
942
    (pterm5[35] => combout) = (0, 0) ;
943
    (pterm5[36] => combout) = (0, 0) ;
944
    (pterm5[37] => combout) = (0, 0) ;
945
    (pterm5[38] => combout) = (0, 0) ;
946
    (pterm5[39] => combout) = (0, 0) ;
947
    (pterm5[40] => combout) = (0, 0) ;
948
    (pterm5[41] => combout) = (0, 0) ;
949
    (pterm5[42] => combout) = (0, 0) ;
950
    (pterm5[43] => combout) = (0, 0) ;
951
    (pterm5[44] => combout) = (0, 0) ;
952
    (pterm5[45] => combout) = (0, 0) ;
953
    (pterm5[46] => combout) = (0, 0) ;
954
    (pterm5[47] => combout) = (0, 0) ;
955
    (pterm5[48] => combout) = (0, 0) ;
956
    (pterm5[49] => combout) = (0, 0) ;
957
    (pterm5[50] => combout) = (0, 0) ;
958
    (pterm5[51] => combout) = (0, 0) ;
959
 
960
    (pxor[0] => combout) = (0, 0) ;
961
    (pxor[1] => combout) = (0, 0) ;
962
    (pxor[2] => combout) = (0, 0) ;
963
    (pxor[3] => combout) = (0, 0) ;
964
    (pxor[4] => combout) = (0, 0) ;
965
    (pxor[5] => combout) = (0, 0) ;
966
    (pxor[6] => combout) = (0, 0) ;
967
    (pxor[7] => combout) = (0, 0) ;
968
    (pxor[8] => combout) = (0, 0) ;
969
    (pxor[9] => combout) = (0, 0) ;
970
    (pxor[10] => combout) = (0, 0) ;
971
    (pxor[11] => combout) = (0, 0) ;
972
    (pxor[12] => combout) = (0, 0) ;
973
    (pxor[13] => combout) = (0, 0) ;
974
    (pxor[14] => combout) = (0, 0) ;
975
    (pxor[15] => combout) = (0, 0) ;
976
    (pxor[16] => combout) = (0, 0) ;
977
    (pxor[17] => combout) = (0, 0) ;
978
    (pxor[18] => combout) = (0, 0) ;
979
    (pxor[19] => combout) = (0, 0) ;
980
    (pxor[20] => combout) = (0, 0) ;
981
    (pxor[21] => combout) = (0, 0) ;
982
    (pxor[22] => combout) = (0, 0) ;
983
    (pxor[23] => combout) = (0, 0) ;
984
    (pxor[24] => combout) = (0, 0) ;
985
    (pxor[25] => combout) = (0, 0) ;
986
    (pxor[26] => combout) = (0, 0) ;
987
    (pxor[27] => combout) = (0, 0) ;
988
    (pxor[28] => combout) = (0, 0) ;
989
    (pxor[29] => combout) = (0, 0) ;
990
    (pxor[30] => combout) = (0, 0) ;
991
    (pxor[31] => combout) = (0, 0) ;
992
    (pxor[32] => combout) = (0, 0) ;
993
    (pxor[33] => combout) = (0, 0) ;
994
    (pxor[34] => combout) = (0, 0) ;
995
    (pxor[35] => combout) = (0, 0) ;
996
    (pxor[36] => combout) = (0, 0) ;
997
    (pxor[37] => combout) = (0, 0) ;
998
    (pxor[38] => combout) = (0, 0) ;
999
    (pxor[39] => combout) = (0, 0) ;
1000
    (pxor[40] => combout) = (0, 0) ;
1001
    (pxor[41] => combout) = (0, 0) ;
1002
    (pxor[42] => combout) = (0, 0) ;
1003
    (pxor[43] => combout) = (0, 0) ;
1004
    (pxor[44] => combout) = (0, 0) ;
1005
    (pxor[45] => combout) = (0, 0) ;
1006
    (pxor[46] => combout) = (0, 0) ;
1007
    (pxor[47] => combout) = (0, 0) ;
1008
    (pxor[48] => combout) = (0, 0) ;
1009
    (pxor[49] => combout) = (0, 0) ;
1010
    (pxor[50] => combout) = (0, 0) ;
1011
    (pxor[51] => combout) = (0, 0) ;
1012
 
1013
    (pexpin => combout) = (0, 0) ;
1014
 
1015
    (pterm0[0] => pexpout) = (0, 0) ;
1016
    (pterm0[1] => pexpout) = (0, 0) ;
1017
    (pterm0[2] => pexpout) = (0, 0) ;
1018
    (pterm0[3] => pexpout) = (0, 0) ;
1019
    (pterm0[4] => pexpout) = (0, 0) ;
1020
    (pterm0[5] => pexpout) = (0, 0) ;
1021
    (pterm0[6] => pexpout) = (0, 0) ;
1022
    (pterm0[7] => pexpout) = (0, 0) ;
1023
    (pterm0[8] => pexpout) = (0, 0) ;
1024
    (pterm0[9] => pexpout) = (0, 0) ;
1025
    (pterm0[10] => pexpout) = (0, 0) ;
1026
    (pterm0[11] => pexpout) = (0, 0) ;
1027
    (pterm0[12] => pexpout) = (0, 0) ;
1028
    (pterm0[13] => pexpout) = (0, 0) ;
1029
    (pterm0[14] => pexpout) = (0, 0) ;
1030
    (pterm0[15] => pexpout) = (0, 0) ;
1031
    (pterm0[16] => pexpout) = (0, 0) ;
1032
    (pterm0[17] => pexpout) = (0, 0) ;
1033
    (pterm0[18] => pexpout) = (0, 0) ;
1034
    (pterm0[19] => pexpout) = (0, 0) ;
1035
    (pterm0[20] => pexpout) = (0, 0) ;
1036
    (pterm0[21] => pexpout) = (0, 0) ;
1037
    (pterm0[22] => pexpout) = (0, 0) ;
1038
    (pterm0[23] => pexpout) = (0, 0) ;
1039
    (pterm0[24] => pexpout) = (0, 0) ;
1040
    (pterm0[25] => pexpout) = (0, 0) ;
1041
    (pterm0[26] => pexpout) = (0, 0) ;
1042
    (pterm0[27] => pexpout) = (0, 0) ;
1043
    (pterm0[28] => pexpout) = (0, 0) ;
1044
    (pterm0[29] => pexpout) = (0, 0) ;
1045
    (pterm0[30] => pexpout) = (0, 0) ;
1046
    (pterm0[31] => pexpout) = (0, 0) ;
1047
    (pterm0[32] => pexpout) = (0, 0) ;
1048
    (pterm0[33] => pexpout) = (0, 0) ;
1049
    (pterm0[34] => pexpout) = (0, 0) ;
1050
    (pterm0[35] => pexpout) = (0, 0) ;
1051
    (pterm0[36] => pexpout) = (0, 0) ;
1052
    (pterm0[37] => pexpout) = (0, 0) ;
1053
    (pterm0[38] => pexpout) = (0, 0) ;
1054
    (pterm0[39] => pexpout) = (0, 0) ;
1055
    (pterm0[40] => pexpout) = (0, 0) ;
1056
    (pterm0[41] => pexpout) = (0, 0) ;
1057
    (pterm0[42] => pexpout) = (0, 0) ;
1058
    (pterm0[43] => pexpout) = (0, 0) ;
1059
    (pterm0[44] => pexpout) = (0, 0) ;
1060
    (pterm0[45] => pexpout) = (0, 0) ;
1061
    (pterm0[46] => pexpout) = (0, 0) ;
1062
    (pterm0[47] => pexpout) = (0, 0) ;
1063
    (pterm0[48] => pexpout) = (0, 0) ;
1064
    (pterm0[49] => pexpout) = (0, 0) ;
1065
    (pterm0[50] => pexpout) = (0, 0) ;
1066
    (pterm0[51] => pexpout) = (0, 0) ;
1067
 
1068
    (pterm1[0] => pexpout) = (0, 0) ;
1069
    (pterm1[1] => pexpout) = (0, 0) ;
1070
    (pterm1[2] => pexpout) = (0, 0) ;
1071
    (pterm1[3] => pexpout) = (0, 0) ;
1072
    (pterm1[4] => pexpout) = (0, 0) ;
1073
    (pterm1[5] => pexpout) = (0, 0) ;
1074
    (pterm1[6] => pexpout) = (0, 0) ;
1075
    (pterm1[7] => pexpout) = (0, 0) ;
1076
    (pterm1[8] => pexpout) = (0, 0) ;
1077
    (pterm1[9] => pexpout) = (0, 0) ;
1078
    (pterm1[10] => pexpout) = (0, 0) ;
1079
    (pterm1[11] => pexpout) = (0, 0) ;
1080
    (pterm1[12] => pexpout) = (0, 0) ;
1081
    (pterm1[13] => pexpout) = (0, 0) ;
1082
    (pterm1[14] => pexpout) = (0, 0) ;
1083
    (pterm1[15] => pexpout) = (0, 0) ;
1084
    (pterm1[16] => pexpout) = (0, 0) ;
1085
    (pterm1[17] => pexpout) = (0, 0) ;
1086
    (pterm1[18] => pexpout) = (0, 0) ;
1087
    (pterm1[19] => pexpout) = (0, 0) ;
1088
    (pterm1[20] => pexpout) = (0, 0) ;
1089
    (pterm1[21] => pexpout) = (0, 0) ;
1090
    (pterm1[22] => pexpout) = (0, 0) ;
1091
    (pterm1[23] => pexpout) = (0, 0) ;
1092
    (pterm1[24] => pexpout) = (0, 0) ;
1093
    (pterm1[25] => pexpout) = (0, 0) ;
1094
    (pterm1[26] => pexpout) = (0, 0) ;
1095
    (pterm1[27] => pexpout) = (0, 0) ;
1096
    (pterm1[28] => pexpout) = (0, 0) ;
1097
    (pterm1[29] => pexpout) = (0, 0) ;
1098
    (pterm1[30] => pexpout) = (0, 0) ;
1099
    (pterm1[31] => pexpout) = (0, 0) ;
1100
    (pterm1[32] => pexpout) = (0, 0) ;
1101
    (pterm1[33] => pexpout) = (0, 0) ;
1102
    (pterm1[34] => pexpout) = (0, 0) ;
1103
    (pterm1[35] => pexpout) = (0, 0) ;
1104
    (pterm1[36] => pexpout) = (0, 0) ;
1105
    (pterm1[37] => pexpout) = (0, 0) ;
1106
    (pterm1[38] => pexpout) = (0, 0) ;
1107
    (pterm1[39] => pexpout) = (0, 0) ;
1108
    (pterm1[40] => pexpout) = (0, 0) ;
1109
    (pterm1[41] => pexpout) = (0, 0) ;
1110
    (pterm1[42] => pexpout) = (0, 0) ;
1111
    (pterm1[43] => pexpout) = (0, 0) ;
1112
    (pterm1[44] => pexpout) = (0, 0) ;
1113
    (pterm1[45] => pexpout) = (0, 0) ;
1114
    (pterm1[46] => pexpout) = (0, 0) ;
1115
    (pterm1[47] => pexpout) = (0, 0) ;
1116
    (pterm1[48] => pexpout) = (0, 0) ;
1117
    (pterm1[49] => pexpout) = (0, 0) ;
1118
    (pterm1[50] => pexpout) = (0, 0) ;
1119
    (pterm1[51] => pexpout) = (0, 0) ;
1120
 
1121
    (pterm2[0] => pexpout) = (0, 0) ;
1122
    (pterm2[1] => pexpout) = (0, 0) ;
1123
    (pterm2[2] => pexpout) = (0, 0) ;
1124
    (pterm2[3] => pexpout) = (0, 0) ;
1125
    (pterm2[4] => pexpout) = (0, 0) ;
1126
    (pterm2[5] => pexpout) = (0, 0) ;
1127
    (pterm2[6] => pexpout) = (0, 0) ;
1128
    (pterm2[7] => pexpout) = (0, 0) ;
1129
    (pterm2[8] => pexpout) = (0, 0) ;
1130
    (pterm2[9] => pexpout) = (0, 0) ;
1131
    (pterm2[10] => pexpout) = (0, 0) ;
1132
    (pterm2[11] => pexpout) = (0, 0) ;
1133
    (pterm2[12] => pexpout) = (0, 0) ;
1134
    (pterm2[13] => pexpout) = (0, 0) ;
1135
    (pterm2[14] => pexpout) = (0, 0) ;
1136
    (pterm2[15] => pexpout) = (0, 0) ;
1137
    (pterm2[16] => pexpout) = (0, 0) ;
1138
    (pterm2[17] => pexpout) = (0, 0) ;
1139
    (pterm2[18] => pexpout) = (0, 0) ;
1140
    (pterm2[19] => pexpout) = (0, 0) ;
1141
    (pterm2[20] => pexpout) = (0, 0) ;
1142
    (pterm2[21] => pexpout) = (0, 0) ;
1143
    (pterm2[22] => pexpout) = (0, 0) ;
1144
    (pterm2[23] => pexpout) = (0, 0) ;
1145
    (pterm2[24] => pexpout) = (0, 0) ;
1146
    (pterm2[25] => pexpout) = (0, 0) ;
1147
    (pterm2[26] => pexpout) = (0, 0) ;
1148
    (pterm2[27] => pexpout) = (0, 0) ;
1149
    (pterm2[28] => pexpout) = (0, 0) ;
1150
    (pterm2[29] => pexpout) = (0, 0) ;
1151
    (pterm2[30] => pexpout) = (0, 0) ;
1152
    (pterm2[31] => pexpout) = (0, 0) ;
1153
    (pterm2[32] => pexpout) = (0, 0) ;
1154
    (pterm2[33] => pexpout) = (0, 0) ;
1155
    (pterm2[34] => pexpout) = (0, 0) ;
1156
    (pterm2[35] => pexpout) = (0, 0) ;
1157
    (pterm2[36] => pexpout) = (0, 0) ;
1158
    (pterm2[37] => pexpout) = (0, 0) ;
1159
    (pterm2[38] => pexpout) = (0, 0) ;
1160
    (pterm2[39] => pexpout) = (0, 0) ;
1161
    (pterm2[40] => pexpout) = (0, 0) ;
1162
    (pterm2[41] => pexpout) = (0, 0) ;
1163
    (pterm2[42] => pexpout) = (0, 0) ;
1164
    (pterm2[43] => pexpout) = (0, 0) ;
1165
    (pterm2[44] => pexpout) = (0, 0) ;
1166
    (pterm2[45] => pexpout) = (0, 0) ;
1167
    (pterm2[46] => pexpout) = (0, 0) ;
1168
    (pterm2[47] => pexpout) = (0, 0) ;
1169
    (pterm2[48] => pexpout) = (0, 0) ;
1170
    (pterm2[49] => pexpout) = (0, 0) ;
1171
    (pterm2[50] => pexpout) = (0, 0) ;
1172
    (pterm2[51] => pexpout) = (0, 0) ;
1173
 
1174
    (pterm3[0] => pexpout) = (0, 0) ;
1175
    (pterm3[1] => pexpout) = (0, 0) ;
1176
    (pterm3[2] => pexpout) = (0, 0) ;
1177
    (pterm3[3] => pexpout) = (0, 0) ;
1178
    (pterm3[4] => pexpout) = (0, 0) ;
1179
    (pterm3[5] => pexpout) = (0, 0) ;
1180
    (pterm3[6] => pexpout) = (0, 0) ;
1181
    (pterm3[7] => pexpout) = (0, 0) ;
1182
    (pterm3[8] => pexpout) = (0, 0) ;
1183
    (pterm3[9] => pexpout) = (0, 0) ;
1184
    (pterm3[10] => pexpout) = (0, 0) ;
1185
    (pterm3[11] => pexpout) = (0, 0) ;
1186
    (pterm3[12] => pexpout) = (0, 0) ;
1187
    (pterm3[13] => pexpout) = (0, 0) ;
1188
    (pterm3[14] => pexpout) = (0, 0) ;
1189
    (pterm3[15] => pexpout) = (0, 0) ;
1190
    (pterm3[16] => pexpout) = (0, 0) ;
1191
    (pterm3[17] => pexpout) = (0, 0) ;
1192
    (pterm3[18] => pexpout) = (0, 0) ;
1193
    (pterm3[19] => pexpout) = (0, 0) ;
1194
    (pterm3[20] => pexpout) = (0, 0) ;
1195
    (pterm3[21] => pexpout) = (0, 0) ;
1196
    (pterm3[22] => pexpout) = (0, 0) ;
1197
    (pterm3[23] => pexpout) = (0, 0) ;
1198
    (pterm3[24] => pexpout) = (0, 0) ;
1199
    (pterm3[25] => pexpout) = (0, 0) ;
1200
    (pterm3[26] => pexpout) = (0, 0) ;
1201
    (pterm3[27] => pexpout) = (0, 0) ;
1202
    (pterm3[28] => pexpout) = (0, 0) ;
1203
    (pterm3[29] => pexpout) = (0, 0) ;
1204
    (pterm3[30] => pexpout) = (0, 0) ;
1205
    (pterm3[31] => pexpout) = (0, 0) ;
1206
    (pterm3[32] => pexpout) = (0, 0) ;
1207
    (pterm3[33] => pexpout) = (0, 0) ;
1208
    (pterm3[34] => pexpout) = (0, 0) ;
1209
    (pterm3[35] => pexpout) = (0, 0) ;
1210
    (pterm3[36] => pexpout) = (0, 0) ;
1211
    (pterm3[37] => pexpout) = (0, 0) ;
1212
    (pterm3[38] => pexpout) = (0, 0) ;
1213
    (pterm3[39] => pexpout) = (0, 0) ;
1214
    (pterm3[40] => pexpout) = (0, 0) ;
1215
    (pterm3[41] => pexpout) = (0, 0) ;
1216
    (pterm3[42] => pexpout) = (0, 0) ;
1217
    (pterm3[43] => pexpout) = (0, 0) ;
1218
    (pterm3[44] => pexpout) = (0, 0) ;
1219
    (pterm3[45] => pexpout) = (0, 0) ;
1220
    (pterm3[46] => pexpout) = (0, 0) ;
1221
    (pterm3[47] => pexpout) = (0, 0) ;
1222
    (pterm3[48] => pexpout) = (0, 0) ;
1223
    (pterm3[49] => pexpout) = (0, 0) ;
1224
    (pterm3[50] => pexpout) = (0, 0) ;
1225
    (pterm3[51] => pexpout) = (0, 0) ;
1226
 
1227
    (pterm4[0] => pexpout) = (0, 0) ;
1228
    (pterm4[1] => pexpout) = (0, 0) ;
1229
    (pterm4[2] => pexpout) = (0, 0) ;
1230
    (pterm4[3] => pexpout) = (0, 0) ;
1231
    (pterm4[4] => pexpout) = (0, 0) ;
1232
    (pterm4[5] => pexpout) = (0, 0) ;
1233
    (pterm4[6] => pexpout) = (0, 0) ;
1234
    (pterm4[7] => pexpout) = (0, 0) ;
1235
    (pterm4[8] => pexpout) = (0, 0) ;
1236
    (pterm4[9] => pexpout) = (0, 0) ;
1237
    (pterm4[10] => pexpout) = (0, 0) ;
1238
    (pterm4[11] => pexpout) = (0, 0) ;
1239
    (pterm4[12] => pexpout) = (0, 0) ;
1240
    (pterm4[13] => pexpout) = (0, 0) ;
1241
    (pterm4[14] => pexpout) = (0, 0) ;
1242
    (pterm4[15] => pexpout) = (0, 0) ;
1243
    (pterm4[16] => pexpout) = (0, 0) ;
1244
    (pterm4[17] => pexpout) = (0, 0) ;
1245
    (pterm4[18] => pexpout) = (0, 0) ;
1246
    (pterm4[19] => pexpout) = (0, 0) ;
1247
    (pterm4[20] => pexpout) = (0, 0) ;
1248
    (pterm4[21] => pexpout) = (0, 0) ;
1249
    (pterm4[22] => pexpout) = (0, 0) ;
1250
    (pterm4[23] => pexpout) = (0, 0) ;
1251
    (pterm4[24] => pexpout) = (0, 0) ;
1252
    (pterm4[25] => pexpout) = (0, 0) ;
1253
    (pterm4[26] => pexpout) = (0, 0) ;
1254
    (pterm4[27] => pexpout) = (0, 0) ;
1255
    (pterm4[28] => pexpout) = (0, 0) ;
1256
    (pterm4[29] => pexpout) = (0, 0) ;
1257
    (pterm4[30] => pexpout) = (0, 0) ;
1258
    (pterm4[31] => pexpout) = (0, 0) ;
1259
    (pterm4[32] => pexpout) = (0, 0) ;
1260
    (pterm4[33] => pexpout) = (0, 0) ;
1261
    (pterm4[34] => pexpout) = (0, 0) ;
1262
    (pterm4[35] => pexpout) = (0, 0) ;
1263
    (pterm4[36] => pexpout) = (0, 0) ;
1264
    (pterm4[37] => pexpout) = (0, 0) ;
1265
    (pterm4[38] => pexpout) = (0, 0) ;
1266
    (pterm4[39] => pexpout) = (0, 0) ;
1267
    (pterm4[40] => pexpout) = (0, 0) ;
1268
    (pterm4[41] => pexpout) = (0, 0) ;
1269
    (pterm4[42] => pexpout) = (0, 0) ;
1270
    (pterm4[43] => pexpout) = (0, 0) ;
1271
    (pterm4[44] => pexpout) = (0, 0) ;
1272
    (pterm4[45] => pexpout) = (0, 0) ;
1273
    (pterm4[46] => pexpout) = (0, 0) ;
1274
    (pterm4[47] => pexpout) = (0, 0) ;
1275
    (pterm4[48] => pexpout) = (0, 0) ;
1276
    (pterm4[49] => pexpout) = (0, 0) ;
1277
    (pterm4[50] => pexpout) = (0, 0) ;
1278
    (pterm4[51] => pexpout) = (0, 0) ;
1279
 
1280
    (pterm5[0] => pexpout) = (0, 0) ;
1281
    (pterm5[1] => pexpout) = (0, 0) ;
1282
    (pterm5[2] => pexpout) = (0, 0) ;
1283
    (pterm5[3] => pexpout) = (0, 0) ;
1284
    (pterm5[4] => pexpout) = (0, 0) ;
1285
    (pterm5[5] => pexpout) = (0, 0) ;
1286
    (pterm5[6] => pexpout) = (0, 0) ;
1287
    (pterm5[7] => pexpout) = (0, 0) ;
1288
    (pterm5[8] => pexpout) = (0, 0) ;
1289
    (pterm5[9] => pexpout) = (0, 0) ;
1290
    (pterm5[10] => pexpout) = (0, 0) ;
1291
    (pterm5[11] => pexpout) = (0, 0) ;
1292
    (pterm5[12] => pexpout) = (0, 0) ;
1293
    (pterm5[13] => pexpout) = (0, 0) ;
1294
    (pterm5[14] => pexpout) = (0, 0) ;
1295
    (pterm5[15] => pexpout) = (0, 0) ;
1296
    (pterm5[16] => pexpout) = (0, 0) ;
1297
    (pterm5[17] => pexpout) = (0, 0) ;
1298
    (pterm5[18] => pexpout) = (0, 0) ;
1299
    (pterm5[19] => pexpout) = (0, 0) ;
1300
    (pterm5[20] => pexpout) = (0, 0) ;
1301
    (pterm5[21] => pexpout) = (0, 0) ;
1302
    (pterm5[22] => pexpout) = (0, 0) ;
1303
    (pterm5[23] => pexpout) = (0, 0) ;
1304
    (pterm5[24] => pexpout) = (0, 0) ;
1305
    (pterm5[25] => pexpout) = (0, 0) ;
1306
    (pterm5[26] => pexpout) = (0, 0) ;
1307
    (pterm5[27] => pexpout) = (0, 0) ;
1308
    (pterm5[28] => pexpout) = (0, 0) ;
1309
    (pterm5[29] => pexpout) = (0, 0) ;
1310
    (pterm5[30] => pexpout) = (0, 0) ;
1311
    (pterm5[31] => pexpout) = (0, 0) ;
1312
    (pterm5[32] => pexpout) = (0, 0) ;
1313
    (pterm5[33] => pexpout) = (0, 0) ;
1314
    (pterm5[34] => pexpout) = (0, 0) ;
1315
    (pterm5[35] => pexpout) = (0, 0) ;
1316
    (pterm5[36] => pexpout) = (0, 0) ;
1317
    (pterm5[37] => pexpout) = (0, 0) ;
1318
    (pterm5[38] => pexpout) = (0, 0) ;
1319
    (pterm5[39] => pexpout) = (0, 0) ;
1320
    (pterm5[40] => pexpout) = (0, 0) ;
1321
    (pterm5[41] => pexpout) = (0, 0) ;
1322
    (pterm5[42] => pexpout) = (0, 0) ;
1323
    (pterm5[43] => pexpout) = (0, 0) ;
1324
    (pterm5[44] => pexpout) = (0, 0) ;
1325
    (pterm5[45] => pexpout) = (0, 0) ;
1326
    (pterm5[46] => pexpout) = (0, 0) ;
1327
    (pterm5[47] => pexpout) = (0, 0) ;
1328
    (pterm5[48] => pexpout) = (0, 0) ;
1329
    (pterm5[49] => pexpout) = (0, 0) ;
1330
    (pterm5[50] => pexpout) = (0, 0) ;
1331
    (pterm5[51] => pexpout) = (0, 0) ;
1332
 
1333
    (pexpin => pexpout) = (0, 0) ;
1334
 
1335
    (pterm0[0] => regin) = (0, 0) ;
1336
    (pterm0[1] => regin) = (0, 0) ;
1337
    (pterm0[2] => regin) = (0, 0) ;
1338
    (pterm0[3] => regin) = (0, 0) ;
1339
    (pterm0[4] => regin) = (0, 0) ;
1340
    (pterm0[5] => regin) = (0, 0) ;
1341
    (pterm0[6] => regin) = (0, 0) ;
1342
    (pterm0[7] => regin) = (0, 0) ;
1343
    (pterm0[8] => regin) = (0, 0) ;
1344
    (pterm0[9] => regin) = (0, 0) ;
1345
    (pterm0[10] => regin) = (0, 0) ;
1346
    (pterm0[11] => regin) = (0, 0) ;
1347
    (pterm0[12] => regin) = (0, 0) ;
1348
    (pterm0[13] => regin) = (0, 0) ;
1349
    (pterm0[14] => regin) = (0, 0) ;
1350
    (pterm0[15] => regin) = (0, 0) ;
1351
    (pterm0[16] => regin) = (0, 0) ;
1352
    (pterm0[17] => regin) = (0, 0) ;
1353
    (pterm0[18] => regin) = (0, 0) ;
1354
    (pterm0[19] => regin) = (0, 0) ;
1355
    (pterm0[20] => regin) = (0, 0) ;
1356
    (pterm0[21] => regin) = (0, 0) ;
1357
    (pterm0[22] => regin) = (0, 0) ;
1358
    (pterm0[23] => regin) = (0, 0) ;
1359
    (pterm0[24] => regin) = (0, 0) ;
1360
    (pterm0[25] => regin) = (0, 0) ;
1361
    (pterm0[26] => regin) = (0, 0) ;
1362
    (pterm0[27] => regin) = (0, 0) ;
1363
    (pterm0[28] => regin) = (0, 0) ;
1364
    (pterm0[29] => regin) = (0, 0) ;
1365
    (pterm0[30] => regin) = (0, 0) ;
1366
    (pterm0[31] => regin) = (0, 0) ;
1367
    (pterm0[32] => regin) = (0, 0) ;
1368
    (pterm0[33] => regin) = (0, 0) ;
1369
    (pterm0[34] => regin) = (0, 0) ;
1370
    (pterm0[35] => regin) = (0, 0) ;
1371
    (pterm0[36] => regin) = (0, 0) ;
1372
    (pterm0[37] => regin) = (0, 0) ;
1373
    (pterm0[38] => regin) = (0, 0) ;
1374
    (pterm0[39] => regin) = (0, 0) ;
1375
    (pterm0[40] => regin) = (0, 0) ;
1376
    (pterm0[41] => regin) = (0, 0) ;
1377
    (pterm0[42] => regin) = (0, 0) ;
1378
    (pterm0[43] => regin) = (0, 0) ;
1379
    (pterm0[44] => regin) = (0, 0) ;
1380
    (pterm0[45] => regin) = (0, 0) ;
1381
    (pterm0[46] => regin) = (0, 0) ;
1382
    (pterm0[47] => regin) = (0, 0) ;
1383
    (pterm0[48] => regin) = (0, 0) ;
1384
    (pterm0[49] => regin) = (0, 0) ;
1385
    (pterm0[50] => regin) = (0, 0) ;
1386
    (pterm0[51] => regin) = (0, 0) ;
1387
 
1388
    (pterm1[0] => regin) = (0, 0) ;
1389
    (pterm1[1] => regin) = (0, 0) ;
1390
    (pterm1[2] => regin) = (0, 0) ;
1391
    (pterm1[3] => regin) = (0, 0) ;
1392
    (pterm1[4] => regin) = (0, 0) ;
1393
    (pterm1[5] => regin) = (0, 0) ;
1394
    (pterm1[6] => regin) = (0, 0) ;
1395
    (pterm1[7] => regin) = (0, 0) ;
1396
    (pterm1[8] => regin) = (0, 0) ;
1397
    (pterm1[9] => regin) = (0, 0) ;
1398
    (pterm1[10] => regin) = (0, 0) ;
1399
    (pterm1[11] => regin) = (0, 0) ;
1400
    (pterm1[12] => regin) = (0, 0) ;
1401
    (pterm1[13] => regin) = (0, 0) ;
1402
    (pterm1[14] => regin) = (0, 0) ;
1403
    (pterm1[15] => regin) = (0, 0) ;
1404
    (pterm1[16] => regin) = (0, 0) ;
1405
    (pterm1[17] => regin) = (0, 0) ;
1406
    (pterm1[18] => regin) = (0, 0) ;
1407
    (pterm1[19] => regin) = (0, 0) ;
1408
    (pterm1[20] => regin) = (0, 0) ;
1409
    (pterm1[21] => regin) = (0, 0) ;
1410
    (pterm1[22] => regin) = (0, 0) ;
1411
    (pterm1[23] => regin) = (0, 0) ;
1412
    (pterm1[24] => regin) = (0, 0) ;
1413
    (pterm1[25] => regin) = (0, 0) ;
1414
    (pterm1[26] => regin) = (0, 0) ;
1415
    (pterm1[27] => regin) = (0, 0) ;
1416
    (pterm1[28] => regin) = (0, 0) ;
1417
    (pterm1[29] => regin) = (0, 0) ;
1418
    (pterm1[30] => regin) = (0, 0) ;
1419
    (pterm1[31] => regin) = (0, 0) ;
1420
    (pterm1[32] => regin) = (0, 0) ;
1421
    (pterm1[33] => regin) = (0, 0) ;
1422
    (pterm1[34] => regin) = (0, 0) ;
1423
    (pterm1[35] => regin) = (0, 0) ;
1424
    (pterm1[36] => regin) = (0, 0) ;
1425
    (pterm1[37] => regin) = (0, 0) ;
1426
    (pterm1[38] => regin) = (0, 0) ;
1427
    (pterm1[39] => regin) = (0, 0) ;
1428
    (pterm1[40] => regin) = (0, 0) ;
1429
    (pterm1[41] => regin) = (0, 0) ;
1430
    (pterm1[42] => regin) = (0, 0) ;
1431
    (pterm1[43] => regin) = (0, 0) ;
1432
    (pterm1[44] => regin) = (0, 0) ;
1433
    (pterm1[45] => regin) = (0, 0) ;
1434
    (pterm1[46] => regin) = (0, 0) ;
1435
    (pterm1[47] => regin) = (0, 0) ;
1436
    (pterm1[48] => regin) = (0, 0) ;
1437
    (pterm1[49] => regin) = (0, 0) ;
1438
    (pterm1[50] => regin) = (0, 0) ;
1439
    (pterm1[51] => regin) = (0, 0) ;
1440
 
1441
    (pterm2[0] => regin) = (0, 0) ;
1442
    (pterm2[1] => regin) = (0, 0) ;
1443
    (pterm2[2] => regin) = (0, 0) ;
1444
    (pterm2[3] => regin) = (0, 0) ;
1445
    (pterm2[4] => regin) = (0, 0) ;
1446
    (pterm2[5] => regin) = (0, 0) ;
1447
    (pterm2[6] => regin) = (0, 0) ;
1448
    (pterm2[7] => regin) = (0, 0) ;
1449
    (pterm2[8] => regin) = (0, 0) ;
1450
    (pterm2[9] => regin) = (0, 0) ;
1451
    (pterm2[10] => regin) = (0, 0) ;
1452
    (pterm2[11] => regin) = (0, 0) ;
1453
    (pterm2[12] => regin) = (0, 0) ;
1454
    (pterm2[13] => regin) = (0, 0) ;
1455
    (pterm2[14] => regin) = (0, 0) ;
1456
    (pterm2[15] => regin) = (0, 0) ;
1457
    (pterm2[16] => regin) = (0, 0) ;
1458
    (pterm2[17] => regin) = (0, 0) ;
1459
    (pterm2[18] => regin) = (0, 0) ;
1460
    (pterm2[19] => regin) = (0, 0) ;
1461
    (pterm2[20] => regin) = (0, 0) ;
1462
    (pterm2[21] => regin) = (0, 0) ;
1463
    (pterm2[22] => regin) = (0, 0) ;
1464
    (pterm2[23] => regin) = (0, 0) ;
1465
    (pterm2[24] => regin) = (0, 0) ;
1466
    (pterm2[25] => regin) = (0, 0) ;
1467
    (pterm2[26] => regin) = (0, 0) ;
1468
    (pterm2[27] => regin) = (0, 0) ;
1469
    (pterm2[28] => regin) = (0, 0) ;
1470
    (pterm2[29] => regin) = (0, 0) ;
1471
    (pterm2[30] => regin) = (0, 0) ;
1472
    (pterm2[31] => regin) = (0, 0) ;
1473
    (pterm2[32] => regin) = (0, 0) ;
1474
    (pterm2[33] => regin) = (0, 0) ;
1475
    (pterm2[34] => regin) = (0, 0) ;
1476
    (pterm2[35] => regin) = (0, 0) ;
1477
    (pterm2[36] => regin) = (0, 0) ;
1478
    (pterm2[37] => regin) = (0, 0) ;
1479
    (pterm2[38] => regin) = (0, 0) ;
1480
    (pterm2[39] => regin) = (0, 0) ;
1481
    (pterm2[40] => regin) = (0, 0) ;
1482
    (pterm2[41] => regin) = (0, 0) ;
1483
    (pterm2[42] => regin) = (0, 0) ;
1484
    (pterm2[43] => regin) = (0, 0) ;
1485
    (pterm2[44] => regin) = (0, 0) ;
1486
    (pterm2[45] => regin) = (0, 0) ;
1487
    (pterm2[46] => regin) = (0, 0) ;
1488
    (pterm2[47] => regin) = (0, 0) ;
1489
    (pterm2[48] => regin) = (0, 0) ;
1490
    (pterm2[49] => regin) = (0, 0) ;
1491
    (pterm2[50] => regin) = (0, 0) ;
1492
    (pterm2[51] => regin) = (0, 0) ;
1493
 
1494
    (pterm3[0] => regin) = (0, 0) ;
1495
    (pterm3[1] => regin) = (0, 0) ;
1496
    (pterm3[2] => regin) = (0, 0) ;
1497
    (pterm3[3] => regin) = (0, 0) ;
1498
    (pterm3[4] => regin) = (0, 0) ;
1499
    (pterm3[5] => regin) = (0, 0) ;
1500
    (pterm3[6] => regin) = (0, 0) ;
1501
    (pterm3[7] => regin) = (0, 0) ;
1502
    (pterm3[8] => regin) = (0, 0) ;
1503
    (pterm3[9] => regin) = (0, 0) ;
1504
    (pterm3[10] => regin) = (0, 0) ;
1505
    (pterm3[11] => regin) = (0, 0) ;
1506
    (pterm3[12] => regin) = (0, 0) ;
1507
    (pterm3[13] => regin) = (0, 0) ;
1508
    (pterm3[14] => regin) = (0, 0) ;
1509
    (pterm3[15] => regin) = (0, 0) ;
1510
    (pterm3[16] => regin) = (0, 0) ;
1511
    (pterm3[17] => regin) = (0, 0) ;
1512
    (pterm3[18] => regin) = (0, 0) ;
1513
    (pterm3[19] => regin) = (0, 0) ;
1514
    (pterm3[20] => regin) = (0, 0) ;
1515
    (pterm3[21] => regin) = (0, 0) ;
1516
    (pterm3[22] => regin) = (0, 0) ;
1517
    (pterm3[23] => regin) = (0, 0) ;
1518
    (pterm3[24] => regin) = (0, 0) ;
1519
    (pterm3[25] => regin) = (0, 0) ;
1520
    (pterm3[26] => regin) = (0, 0) ;
1521
    (pterm3[27] => regin) = (0, 0) ;
1522
    (pterm3[28] => regin) = (0, 0) ;
1523
    (pterm3[29] => regin) = (0, 0) ;
1524
    (pterm3[30] => regin) = (0, 0) ;
1525
    (pterm3[31] => regin) = (0, 0) ;
1526
    (pterm3[32] => regin) = (0, 0) ;
1527
    (pterm3[33] => regin) = (0, 0) ;
1528
    (pterm3[34] => regin) = (0, 0) ;
1529
    (pterm3[35] => regin) = (0, 0) ;
1530
    (pterm3[36] => regin) = (0, 0) ;
1531
    (pterm3[37] => regin) = (0, 0) ;
1532
    (pterm3[38] => regin) = (0, 0) ;
1533
    (pterm3[39] => regin) = (0, 0) ;
1534
    (pterm3[40] => regin) = (0, 0) ;
1535
    (pterm3[41] => regin) = (0, 0) ;
1536
    (pterm3[42] => regin) = (0, 0) ;
1537
    (pterm3[43] => regin) = (0, 0) ;
1538
    (pterm3[44] => regin) = (0, 0) ;
1539
    (pterm3[45] => regin) = (0, 0) ;
1540
    (pterm3[46] => regin) = (0, 0) ;
1541
    (pterm3[47] => regin) = (0, 0) ;
1542
    (pterm3[48] => regin) = (0, 0) ;
1543
    (pterm3[49] => regin) = (0, 0) ;
1544
    (pterm3[50] => regin) = (0, 0) ;
1545
    (pterm3[51] => regin) = (0, 0) ;
1546
 
1547
    (pterm4[0] => regin) = (0, 0) ;
1548
    (pterm4[1] => regin) = (0, 0) ;
1549
    (pterm4[2] => regin) = (0, 0) ;
1550
    (pterm4[3] => regin) = (0, 0) ;
1551
    (pterm4[4] => regin) = (0, 0) ;
1552
    (pterm4[5] => regin) = (0, 0) ;
1553
    (pterm4[6] => regin) = (0, 0) ;
1554
    (pterm4[7] => regin) = (0, 0) ;
1555
    (pterm4[8] => regin) = (0, 0) ;
1556
    (pterm4[9] => regin) = (0, 0) ;
1557
    (pterm4[10] => regin) = (0, 0) ;
1558
    (pterm4[11] => regin) = (0, 0) ;
1559
    (pterm4[12] => regin) = (0, 0) ;
1560
    (pterm4[13] => regin) = (0, 0) ;
1561
    (pterm4[14] => regin) = (0, 0) ;
1562
    (pterm4[15] => regin) = (0, 0) ;
1563
    (pterm4[16] => regin) = (0, 0) ;
1564
    (pterm4[17] => regin) = (0, 0) ;
1565
    (pterm4[18] => regin) = (0, 0) ;
1566
    (pterm4[19] => regin) = (0, 0) ;
1567
    (pterm4[20] => regin) = (0, 0) ;
1568
    (pterm4[21] => regin) = (0, 0) ;
1569
    (pterm4[22] => regin) = (0, 0) ;
1570
    (pterm4[23] => regin) = (0, 0) ;
1571
    (pterm4[24] => regin) = (0, 0) ;
1572
    (pterm4[25] => regin) = (0, 0) ;
1573
    (pterm4[26] => regin) = (0, 0) ;
1574
    (pterm4[27] => regin) = (0, 0) ;
1575
    (pterm4[28] => regin) = (0, 0) ;
1576
    (pterm4[29] => regin) = (0, 0) ;
1577
    (pterm4[30] => regin) = (0, 0) ;
1578
    (pterm4[31] => regin) = (0, 0) ;
1579
    (pterm4[32] => regin) = (0, 0) ;
1580
    (pterm4[33] => regin) = (0, 0) ;
1581
    (pterm4[34] => regin) = (0, 0) ;
1582
    (pterm4[35] => regin) = (0, 0) ;
1583
    (pterm4[36] => regin) = (0, 0) ;
1584
    (pterm4[37] => regin) = (0, 0) ;
1585
    (pterm4[38] => regin) = (0, 0) ;
1586
    (pterm4[39] => regin) = (0, 0) ;
1587
    (pterm4[40] => regin) = (0, 0) ;
1588
    (pterm4[41] => regin) = (0, 0) ;
1589
    (pterm4[42] => regin) = (0, 0) ;
1590
    (pterm4[43] => regin) = (0, 0) ;
1591
    (pterm4[44] => regin) = (0, 0) ;
1592
    (pterm4[45] => regin) = (0, 0) ;
1593
    (pterm4[46] => regin) = (0, 0) ;
1594
    (pterm4[47] => regin) = (0, 0) ;
1595
    (pterm4[48] => regin) = (0, 0) ;
1596
    (pterm4[49] => regin) = (0, 0) ;
1597
    (pterm4[50] => regin) = (0, 0) ;
1598
    (pterm4[51] => regin) = (0, 0) ;
1599
 
1600
    (pterm5[0] => regin) = (0, 0) ;
1601
    (pterm5[1] => regin) = (0, 0) ;
1602
    (pterm5[2] => regin) = (0, 0) ;
1603
    (pterm5[3] => regin) = (0, 0) ;
1604
    (pterm5[4] => regin) = (0, 0) ;
1605
    (pterm5[5] => regin) = (0, 0) ;
1606
    (pterm5[6] => regin) = (0, 0) ;
1607
    (pterm5[7] => regin) = (0, 0) ;
1608
    (pterm5[8] => regin) = (0, 0) ;
1609
    (pterm5[9] => regin) = (0, 0) ;
1610
    (pterm5[10] => regin) = (0, 0) ;
1611
    (pterm5[11] => regin) = (0, 0) ;
1612
    (pterm5[12] => regin) = (0, 0) ;
1613
    (pterm5[13] => regin) = (0, 0) ;
1614
    (pterm5[14] => regin) = (0, 0) ;
1615
    (pterm5[15] => regin) = (0, 0) ;
1616
    (pterm5[16] => regin) = (0, 0) ;
1617
    (pterm5[17] => regin) = (0, 0) ;
1618
    (pterm5[18] => regin) = (0, 0) ;
1619
    (pterm5[19] => regin) = (0, 0) ;
1620
    (pterm5[20] => regin) = (0, 0) ;
1621
    (pterm5[21] => regin) = (0, 0) ;
1622
    (pterm5[22] => regin) = (0, 0) ;
1623
    (pterm5[23] => regin) = (0, 0) ;
1624
    (pterm5[24] => regin) = (0, 0) ;
1625
    (pterm5[25] => regin) = (0, 0) ;
1626
    (pterm5[26] => regin) = (0, 0) ;
1627
    (pterm5[27] => regin) = (0, 0) ;
1628
    (pterm5[28] => regin) = (0, 0) ;
1629
    (pterm5[29] => regin) = (0, 0) ;
1630
    (pterm5[30] => regin) = (0, 0) ;
1631
    (pterm5[31] => regin) = (0, 0) ;
1632
    (pterm5[32] => regin) = (0, 0) ;
1633
    (pterm5[33] => regin) = (0, 0) ;
1634
    (pterm5[34] => regin) = (0, 0) ;
1635
    (pterm5[35] => regin) = (0, 0) ;
1636
    (pterm5[36] => regin) = (0, 0) ;
1637
    (pterm5[37] => regin) = (0, 0) ;
1638
    (pterm5[38] => regin) = (0, 0) ;
1639
    (pterm5[39] => regin) = (0, 0) ;
1640
    (pterm5[40] => regin) = (0, 0) ;
1641
    (pterm5[41] => regin) = (0, 0) ;
1642
    (pterm5[42] => regin) = (0, 0) ;
1643
    (pterm5[43] => regin) = (0, 0) ;
1644
    (pterm5[44] => regin) = (0, 0) ;
1645
    (pterm5[45] => regin) = (0, 0) ;
1646
    (pterm5[46] => regin) = (0, 0) ;
1647
    (pterm5[47] => regin) = (0, 0) ;
1648
    (pterm5[48] => regin) = (0, 0) ;
1649
    (pterm5[49] => regin) = (0, 0) ;
1650
    (pterm5[50] => regin) = (0, 0) ;
1651
    (pterm5[51] => regin) = (0, 0) ;
1652
 
1653
    (pxor[0] => regin) = (0, 0) ;
1654
    (pxor[1] => regin) = (0, 0) ;
1655
    (pxor[2] => regin) = (0, 0) ;
1656
    (pxor[3] => regin) = (0, 0) ;
1657
    (pxor[4] => regin) = (0, 0) ;
1658
    (pxor[5] => regin) = (0, 0) ;
1659
    (pxor[6] => regin) = (0, 0) ;
1660
    (pxor[7] => regin) = (0, 0) ;
1661
    (pxor[8] => regin) = (0, 0) ;
1662
    (pxor[9] => regin) = (0, 0) ;
1663
    (pxor[10] => regin) = (0, 0) ;
1664
    (pxor[11] => regin) = (0, 0) ;
1665
    (pxor[12] => regin) = (0, 0) ;
1666
    (pxor[13] => regin) = (0, 0) ;
1667
    (pxor[14] => regin) = (0, 0) ;
1668
    (pxor[15] => regin) = (0, 0) ;
1669
    (pxor[16] => regin) = (0, 0) ;
1670
    (pxor[17] => regin) = (0, 0) ;
1671
    (pxor[18] => regin) = (0, 0) ;
1672
    (pxor[19] => regin) = (0, 0) ;
1673
    (pxor[20] => regin) = (0, 0) ;
1674
    (pxor[21] => regin) = (0, 0) ;
1675
    (pxor[22] => regin) = (0, 0) ;
1676
    (pxor[23] => regin) = (0, 0) ;
1677
    (pxor[24] => regin) = (0, 0) ;
1678
    (pxor[25] => regin) = (0, 0) ;
1679
    (pxor[26] => regin) = (0, 0) ;
1680
    (pxor[27] => regin) = (0, 0) ;
1681
    (pxor[28] => regin) = (0, 0) ;
1682
    (pxor[29] => regin) = (0, 0) ;
1683
    (pxor[30] => regin) = (0, 0) ;
1684
    (pxor[31] => regin) = (0, 0) ;
1685
    (pxor[32] => regin) = (0, 0) ;
1686
    (pxor[33] => regin) = (0, 0) ;
1687
    (pxor[34] => regin) = (0, 0) ;
1688
    (pxor[35] => regin) = (0, 0) ;
1689
    (pxor[36] => regin) = (0, 0) ;
1690
    (pxor[37] => regin) = (0, 0) ;
1691
    (pxor[38] => regin) = (0, 0) ;
1692
    (pxor[39] => regin) = (0, 0) ;
1693
    (pxor[40] => regin) = (0, 0) ;
1694
    (pxor[41] => regin) = (0, 0) ;
1695
    (pxor[42] => regin) = (0, 0) ;
1696
    (pxor[43] => regin) = (0, 0) ;
1697
    (pxor[44] => regin) = (0, 0) ;
1698
    (pxor[45] => regin) = (0, 0) ;
1699
    (pxor[46] => regin) = (0, 0) ;
1700
    (pxor[47] => regin) = (0, 0) ;
1701
    (pxor[48] => regin) = (0, 0) ;
1702
    (pxor[49] => regin) = (0, 0) ;
1703
    (pxor[50] => regin) = (0, 0) ;
1704
    (pxor[51] => regin) = (0, 0) ;
1705
 
1706
    (pexpin => regin)  = (0, 0) ;
1707
    (fpin => regin)    = (0, 0);
1708
    (fbkin => regin)   = (0, 0) ;
1709
    (fbkin => pexpout) = (0, 0) ;
1710
    (fbkin => combout) = (0, 0) ;
1711
 
1712
    endspecify
1713
 
1714
always @ (ipterm0 or ipterm1 or ipterm2 or ipterm3
1715
          or ipterm4 or ipterm5 or ipxor or ipexpin or fbkin or ifpin)
1716
begin
1717
   if (ifpin !== 'b0)
1718
     tmp_fpin = 'b1;
1719
   else
1720
     tmp_fpin = 'b0;
1721
   if (ipexpin !== 'b1)
1722
     tmp_pexpin = 'b0;
1723
   else
1724
     tmp_pexpin = 'b1;
1725
   if (&ipterm0 !== 'b1)
1726
     tmp_pterm0 = 'b0;
1727
   else
1728
     tmp_pterm0 = 'b1;
1729
   if (&ipterm1 !== 'b1)
1730
     tmp_pterm1 = 'b0;
1731
   else
1732
     tmp_pterm1 = 'b1;
1733
   if (&ipterm2 !== 'b1)
1734
     tmp_pterm2 = 'b0;
1735
   else
1736
     tmp_pterm2 = 'b1;
1737
   if (&ipterm3 !== 'b1)
1738
     tmp_pterm3 = 'b0;
1739
   else
1740
     tmp_pterm3 = 'b1;
1741
   if (&ipterm4 !== 'b1)
1742
     tmp_pterm4 = 'b0;
1743
   else
1744
     tmp_pterm4 = 'b1;
1745
   if (pexp_mode == "off")
1746
     begin
1747
        if (operation_mode == "normal")
1748
          begin
1749
             if (register_mode == "tff")
1750
               icomb = ((tmp_pterm0 | tmp_pterm1 | tmp_pterm2 | tmp_pterm3
1751
                         | tmp_pterm4) | tmp_pexpin) ^ fbkin;
1752
             else
1753
               icomb = tmp_pterm0 | tmp_pterm1 | tmp_pterm2 | tmp_pterm3
1754
                        | tmp_pterm4 | tmp_pexpin;
1755
          end
1756
        else if (operation_mode == "invert")
1757
          begin
1758
             if (register_mode == "tff")
1759
               icomb = ((tmp_pterm0 | tmp_pterm1 | tmp_pterm2 | tmp_pterm3
1760
                         | tmp_pterm4 | tmp_pexpin) ^ (~fbkin));
1761
             else
1762
               icomb = (tmp_pterm0 | tmp_pterm1 | tmp_pterm2 | tmp_pterm3
1763
                        | tmp_pterm4 | tmp_pexpin) ^ 'b1;
1764
          end
1765
        else if (operation_mode == "xor")
1766
          icomb = (tmp_pterm0 | tmp_pterm1 | tmp_pterm2 | tmp_pterm3
1767
                   | tmp_pterm4 | tmp_pexpin) ^ &ipxor;
1768
        else if (operation_mode == "vcc")
1769
          begin
1770
             if (register_mode == "tff")
1771
               icomb = 1'b1 ^ fbkin;
1772
             else
1773
               icomb = tmp_fpin;
1774
          end
1775
        else
1776
          icomb = 'bz;
1777
     end
1778
   else //pexp_mode = on
1779
     begin
1780
        if (operation_mode == "normal")
1781
          begin
1782
             if (register_mode == "tff")
1783
               icomb = &ipterm5 ^ fbkin;
1784
             else
1785
               icomb = &ipterm5;
1786
             ipexpout = tmp_pterm0 | tmp_pterm1 | tmp_pterm2 | tmp_pterm3
1787
                         | tmp_pterm4 | tmp_pexpin;
1788
          end
1789
        else if (operation_mode == "invert")
1790
          begin
1791
             if (register_mode == "tff")
1792
               icomb = &ipterm5 ^ (~fbkin);
1793
             else
1794
               icomb = &ipterm5 ^ 'b1;
1795
             ipexpout = tmp_pterm0 | tmp_pterm1 | tmp_pterm2 | tmp_pterm3
1796
                         | tmp_pterm4 | tmp_pexpin;
1797
          end
1798
        else if (operation_mode == "xor")
1799
          begin
1800
             ipexpout = (tmp_pterm0 | tmp_pterm1 | tmp_pterm2 | tmp_pterm3
1801
                         | tmp_pterm4 | tmp_pexpin);
1802
             icomb = &ipterm5 ^ &ipxor;
1803
          end
1804
        else if (operation_mode == "vcc")
1805
          begin
1806
             if (register_mode == "tff")
1807
               icomb = 1'b1 ^ fbkin;
1808
             else
1809
               icomb = tmp_fpin;
1810
             ipexpout = tmp_pterm0 | tmp_pterm1 | tmp_pterm2 | tmp_pterm3
1811
                         | tmp_pterm4 | tmp_pexpin;
1812
          end
1813
        else
1814
          begin
1815
             icomb = 'bz;
1816
             ipexpout = 'bz;
1817
          end
1818
     end               
1819
end
1820
 
1821
 
1822
and (pexpout, ipexpout, 'b1);
1823
and (combout, icomb, 'b1);
1824
and (regin, icomb, 'b1);
1825
 
1826
endmodule
1827
 
1828
//   MAX MCELL REG
1829
 
1830
`timescale 1 ps/1 ps
1831
module  max_mcell_register (datain, clk, aclr, pclk, pena, paclr,
1832
                            papre, regout, fbkout);
1833
        parameter operation_mode = "normal";    
1834
        parameter power_up    = "low";
1835
        parameter register_mode = "dff";
1836
 
1837
    input  datain, clk, aclr;
1838
        input  [51:0] pclk, pena, paclr, papre;
1839
    output regout, fbkout;
1840
 
1841
    reg  iregout, oldclk1, oldclk2;
1842
    reg  pena_viol, clk_per_viol, datain_viol, pclk_per_viol;
1843
        reg  pterm_aclr, pterm_preset, ptermclk, penable;
1844
    wire reset;
1845
        wire [51:0] ipclk, ipena, ipaclr, ipapre;
1846
 
1847
    reg violation;
1848
 
1849
    wire clk_in;
1850
    wire iclr;
1851
 
1852
    buf (clk_in, clk);
1853
    buf (iclr, aclr);
1854
 
1855
    buf (ipclk[0], pclk[0]);
1856
    buf (ipclk[1], pclk[1]);
1857
    buf (ipclk[2], pclk[2]);
1858
    buf (ipclk[3], pclk[3]);
1859
    buf (ipclk[4], pclk[4]);
1860
    buf (ipclk[5], pclk[5]);
1861
    buf (ipclk[6], pclk[6]);
1862
    buf (ipclk[7], pclk[7]);
1863
    buf (ipclk[8], pclk[8]);
1864
    buf (ipclk[9], pclk[9]);
1865
    buf (ipclk[10], pclk[10]);
1866
    buf (ipclk[11], pclk[11]);
1867
    buf (ipclk[12], pclk[12]);
1868
    buf (ipclk[13], pclk[13]);
1869
    buf (ipclk[14], pclk[14]);
1870
    buf (ipclk[15], pclk[15]);
1871
    buf (ipclk[16], pclk[16]);
1872
    buf (ipclk[17], pclk[17]);
1873
    buf (ipclk[18], pclk[18]);
1874
    buf (ipclk[19], pclk[19]);
1875
    buf (ipclk[20], pclk[20]);
1876
    buf (ipclk[21], pclk[21]);
1877
    buf (ipclk[22], pclk[22]);
1878
    buf (ipclk[23], pclk[23]);
1879
    buf (ipclk[24], pclk[24]);
1880
    buf (ipclk[25], pclk[25]);
1881
    buf (ipclk[26], pclk[26]);
1882
    buf (ipclk[27], pclk[27]);
1883
    buf (ipclk[28], pclk[28]);
1884
    buf (ipclk[29], pclk[29]);
1885
    buf (ipclk[30], pclk[30]);
1886
    buf (ipclk[31], pclk[31]);
1887
    buf (ipclk[32], pclk[32]);
1888
    buf (ipclk[33], pclk[33]);
1889
    buf (ipclk[34], pclk[34]);
1890
    buf (ipclk[35], pclk[35]);
1891
    buf (ipclk[36], pclk[36]);
1892
    buf (ipclk[37], pclk[37]);
1893
    buf (ipclk[38], pclk[38]);
1894
    buf (ipclk[39], pclk[39]);
1895
    buf (ipclk[40], pclk[40]);
1896
    buf (ipclk[41], pclk[41]);
1897
    buf (ipclk[42], pclk[42]);
1898
    buf (ipclk[43], pclk[43]);
1899
    buf (ipclk[44], pclk[44]);
1900
    buf (ipclk[45], pclk[45]);
1901
    buf (ipclk[46], pclk[46]);
1902
    buf (ipclk[47], pclk[47]);
1903
    buf (ipclk[48], pclk[48]);
1904
    buf (ipclk[49], pclk[49]);
1905
    buf (ipclk[50], pclk[50]);
1906
    buf (ipclk[51], pclk[51]);
1907
 
1908
    buf (ipena[0], pena[0]);
1909
    buf (ipena[1], pena[1]);
1910
    buf (ipena[2], pena[2]);
1911
    buf (ipena[3], pena[3]);
1912
    buf (ipena[4], pena[4]);
1913
    buf (ipena[5], pena[5]);
1914
    buf (ipena[6], pena[6]);
1915
    buf (ipena[7], pena[7]);
1916
    buf (ipena[8], pena[8]);
1917
    buf (ipena[9], pena[9]);
1918
    buf (ipena[10], pena[10]);
1919
    buf (ipena[11], pena[11]);
1920
    buf (ipena[12], pena[12]);
1921
    buf (ipena[13], pena[13]);
1922
    buf (ipena[14], pena[14]);
1923
    buf (ipena[15], pena[15]);
1924
    buf (ipena[16], pena[16]);
1925
    buf (ipena[17], pena[17]);
1926
    buf (ipena[18], pena[18]);
1927
    buf (ipena[19], pena[19]);
1928
    buf (ipena[20], pena[20]);
1929
    buf (ipena[21], pena[21]);
1930
    buf (ipena[22], pena[22]);
1931
    buf (ipena[23], pena[23]);
1932
    buf (ipena[24], pena[24]);
1933
    buf (ipena[25], pena[25]);
1934
    buf (ipena[26], pena[26]);
1935
    buf (ipena[27], pena[27]);
1936
    buf (ipena[28], pena[28]);
1937
    buf (ipena[29], pena[29]);
1938
    buf (ipena[30], pena[30]);
1939
    buf (ipena[31], pena[31]);
1940
    buf (ipena[32], pena[32]);
1941
    buf (ipena[33], pena[33]);
1942
    buf (ipena[34], pena[34]);
1943
    buf (ipena[35], pena[35]);
1944
    buf (ipena[36], pena[36]);
1945
    buf (ipena[37], pena[37]);
1946
    buf (ipena[38], pena[38]);
1947
    buf (ipena[39], pena[39]);
1948
    buf (ipena[40], pena[40]);
1949
    buf (ipena[41], pena[41]);
1950
    buf (ipena[42], pena[42]);
1951
    buf (ipena[43], pena[43]);
1952
    buf (ipena[44], pena[44]);
1953
    buf (ipena[45], pena[45]);
1954
    buf (ipena[46], pena[46]);
1955
    buf (ipena[47], pena[47]);
1956
    buf (ipena[48], pena[48]);
1957
    buf (ipena[49], pena[49]);
1958
    buf (ipena[50], pena[50]);
1959
    buf (ipena[51], pena[51]);
1960
 
1961
    buf (ipaclr[0], paclr[0]);
1962
    buf (ipaclr[1], paclr[1]);
1963
    buf (ipaclr[2], paclr[2]);
1964
    buf (ipaclr[3], paclr[3]);
1965
    buf (ipaclr[4], paclr[4]);
1966
    buf (ipaclr[5], paclr[5]);
1967
    buf (ipaclr[6], paclr[6]);
1968
    buf (ipaclr[7], paclr[7]);
1969
    buf (ipaclr[8], paclr[8]);
1970
    buf (ipaclr[9], paclr[9]);
1971
    buf (ipaclr[10], paclr[10]);
1972
    buf (ipaclr[11], paclr[11]);
1973
    buf (ipaclr[12], paclr[12]);
1974
    buf (ipaclr[13], paclr[13]);
1975
    buf (ipaclr[14], paclr[14]);
1976
    buf (ipaclr[15], paclr[15]);
1977
    buf (ipaclr[16], paclr[16]);
1978
    buf (ipaclr[17], paclr[17]);
1979
    buf (ipaclr[18], paclr[18]);
1980
    buf (ipaclr[19], paclr[19]);
1981
    buf (ipaclr[20], paclr[20]);
1982
    buf (ipaclr[21], paclr[21]);
1983
    buf (ipaclr[22], paclr[22]);
1984
    buf (ipaclr[23], paclr[23]);
1985
    buf (ipaclr[24], paclr[24]);
1986
    buf (ipaclr[25], paclr[25]);
1987
    buf (ipaclr[26], paclr[26]);
1988
    buf (ipaclr[27], paclr[27]);
1989
    buf (ipaclr[28], paclr[28]);
1990
    buf (ipaclr[29], paclr[29]);
1991
    buf (ipaclr[30], paclr[30]);
1992
    buf (ipaclr[31], paclr[31]);
1993
    buf (ipaclr[32], paclr[32]);
1994
    buf (ipaclr[33], paclr[33]);
1995
    buf (ipaclr[34], paclr[34]);
1996
    buf (ipaclr[35], paclr[35]);
1997
    buf (ipaclr[36], paclr[36]);
1998
    buf (ipaclr[37], paclr[37]);
1999
    buf (ipaclr[38], paclr[38]);
2000
    buf (ipaclr[39], paclr[39]);
2001
    buf (ipaclr[40], paclr[40]);
2002
    buf (ipaclr[41], paclr[41]);
2003
    buf (ipaclr[42], paclr[42]);
2004
    buf (ipaclr[43], paclr[43]);
2005
    buf (ipaclr[44], paclr[44]);
2006
    buf (ipaclr[45], paclr[45]);
2007
    buf (ipaclr[46], paclr[46]);
2008
    buf (ipaclr[47], paclr[47]);
2009
    buf (ipaclr[48], paclr[48]);
2010
    buf (ipaclr[49], paclr[49]);
2011
    buf (ipaclr[50], paclr[50]);
2012
    buf (ipaclr[51], paclr[51]);
2013
 
2014
    buf (ipapre[0], papre[0]);
2015
    buf (ipapre[1], papre[1]);
2016
    buf (ipapre[2], papre[2]);
2017
    buf (ipapre[3], papre[3]);
2018
    buf (ipapre[4], papre[4]);
2019
    buf (ipapre[5], papre[5]);
2020
    buf (ipapre[6], papre[6]);
2021
    buf (ipapre[7], papre[7]);
2022
    buf (ipapre[8], papre[8]);
2023
    buf (ipapre[9], papre[9]);
2024
    buf (ipapre[10], papre[10]);
2025
    buf (ipapre[11], papre[11]);
2026
    buf (ipapre[12], papre[12]);
2027
    buf (ipapre[13], papre[13]);
2028
    buf (ipapre[14], papre[14]);
2029
    buf (ipapre[15], papre[15]);
2030
    buf (ipapre[16], papre[16]);
2031
    buf (ipapre[17], papre[17]);
2032
    buf (ipapre[18], papre[18]);
2033
    buf (ipapre[19], papre[19]);
2034
    buf (ipapre[20], papre[20]);
2035
    buf (ipapre[21], papre[21]);
2036
    buf (ipapre[22], papre[22]);
2037
    buf (ipapre[23], papre[23]);
2038
    buf (ipapre[24], papre[24]);
2039
    buf (ipapre[25], papre[25]);
2040
    buf (ipapre[26], papre[26]);
2041
    buf (ipapre[27], papre[27]);
2042
    buf (ipapre[28], papre[28]);
2043
    buf (ipapre[29], papre[29]);
2044
    buf (ipapre[30], papre[30]);
2045
    buf (ipapre[31], papre[31]);
2046
    buf (ipapre[32], papre[32]);
2047
    buf (ipapre[33], papre[33]);
2048
    buf (ipapre[34], papre[34]);
2049
    buf (ipapre[35], papre[35]);
2050
    buf (ipapre[36], papre[36]);
2051
    buf (ipapre[37], papre[37]);
2052
    buf (ipapre[38], papre[38]);
2053
    buf (ipapre[39], papre[39]);
2054
    buf (ipapre[40], papre[40]);
2055
    buf (ipapre[41], papre[41]);
2056
    buf (ipapre[42], papre[42]);
2057
    buf (ipapre[43], papre[43]);
2058
    buf (ipapre[44], papre[44]);
2059
    buf (ipapre[45], papre[45]);
2060
    buf (ipapre[46], papre[46]);
2061
    buf (ipapre[47], papre[47]);
2062
    buf (ipapre[48], papre[48]);
2063
    buf (ipapre[49], papre[49]);
2064
    buf (ipapre[50], papre[50]);
2065
    buf (ipapre[51], papre[51]);
2066
 
2067
    assign reset = (!iclr) && (&ipena);
2068
 
2069
    specify
2070
 
2071
    $period (posedge clk &&& reset, 0, clk_per_viol);  
2072
 
2073
        $setuphold (posedge clk &&& reset, datain, 0, 0, datain_viol) ;
2074
 
2075
        $setuphold (posedge clk &&& reset, pena[0], 0, 0, pena_viol) ;
2076
        $setuphold (posedge clk &&& reset, pena[1], 0, 0, pena_viol) ;
2077
        $setuphold (posedge clk &&& reset, pena[2], 0, 0, pena_viol) ;
2078
        $setuphold (posedge clk &&& reset, pena[3], 0, 0, pena_viol) ;
2079
        $setuphold (posedge clk &&& reset, pena[4], 0, 0, pena_viol) ;
2080
        $setuphold (posedge clk &&& reset, pena[5], 0, 0, pena_viol) ;
2081
        $setuphold (posedge clk &&& reset, pena[6], 0, 0, pena_viol) ;
2082
        $setuphold (posedge clk &&& reset, pena[7], 0, 0, pena_viol) ;
2083
        $setuphold (posedge clk &&& reset, pena[8], 0, 0, pena_viol) ;
2084
        $setuphold (posedge clk &&& reset, pena[9], 0, 0, pena_viol) ;
2085
        $setuphold (posedge clk &&& reset, pena[10], 0, 0, pena_viol) ;
2086
        $setuphold (posedge clk &&& reset, pena[11], 0, 0, pena_viol) ;
2087
        $setuphold (posedge clk &&& reset, pena[12], 0, 0, pena_viol) ;
2088
        $setuphold (posedge clk &&& reset, pena[13], 0, 0, pena_viol) ;
2089
        $setuphold (posedge clk &&& reset, pena[14], 0, 0, pena_viol) ;
2090
        $setuphold (posedge clk &&& reset, pena[15], 0, 0, pena_viol) ;
2091
        $setuphold (posedge clk &&& reset, pena[16], 0, 0, pena_viol) ;
2092
        $setuphold (posedge clk &&& reset, pena[17], 0, 0, pena_viol) ;
2093
        $setuphold (posedge clk &&& reset, pena[18], 0, 0, pena_viol) ;
2094
        $setuphold (posedge clk &&& reset, pena[19], 0, 0, pena_viol) ;
2095
        $setuphold (posedge clk &&& reset, pena[20], 0, 0, pena_viol) ;
2096
        $setuphold (posedge clk &&& reset, pena[21], 0, 0, pena_viol) ;
2097
        $setuphold (posedge clk &&& reset, pena[22], 0, 0, pena_viol) ;
2098
        $setuphold (posedge clk &&& reset, pena[23], 0, 0, pena_viol) ;
2099
        $setuphold (posedge clk &&& reset, pena[24], 0, 0, pena_viol) ;
2100
        $setuphold (posedge clk &&& reset, pena[25], 0, 0, pena_viol) ;
2101
        $setuphold (posedge clk &&& reset, pena[26], 0, 0, pena_viol) ;
2102
        $setuphold (posedge clk &&& reset, pena[27], 0, 0, pena_viol) ;
2103
        $setuphold (posedge clk &&& reset, pena[28], 0, 0, pena_viol) ;
2104
        $setuphold (posedge clk &&& reset, pena[29], 0, 0, pena_viol) ;
2105
        $setuphold (posedge clk &&& reset, pena[30], 0, 0, pena_viol) ;
2106
        $setuphold (posedge clk &&& reset, pena[31], 0, 0, pena_viol) ;
2107
        $setuphold (posedge clk &&& reset, pena[32], 0, 0, pena_viol) ;
2108
        $setuphold (posedge clk &&& reset, pena[33], 0, 0, pena_viol) ;
2109
        $setuphold (posedge clk &&& reset, pena[34], 0, 0, pena_viol) ;
2110
        $setuphold (posedge clk &&& reset, pena[35], 0, 0, pena_viol) ;
2111
        $setuphold (posedge clk &&& reset, pena[36], 0, 0, pena_viol) ;
2112
        $setuphold (posedge clk &&& reset, pena[37], 0, 0, pena_viol) ;
2113
        $setuphold (posedge clk &&& reset, pena[38], 0, 0, pena_viol) ;
2114
        $setuphold (posedge clk &&& reset, pena[39], 0, 0, pena_viol) ;
2115
        $setuphold (posedge clk &&& reset, pena[40], 0, 0, pena_viol) ;
2116
        $setuphold (posedge clk &&& reset, pena[41], 0, 0, pena_viol) ;
2117
        $setuphold (posedge clk &&& reset, pena[42], 0, 0, pena_viol) ;
2118
        $setuphold (posedge clk &&& reset, pena[43], 0, 0, pena_viol) ;
2119
        $setuphold (posedge clk &&& reset, pena[44], 0, 0, pena_viol) ;
2120
        $setuphold (posedge clk &&& reset, pena[45], 0, 0, pena_viol) ;
2121
        $setuphold (posedge clk &&& reset, pena[46], 0, 0, pena_viol) ;
2122
        $setuphold (posedge clk &&& reset, pena[47], 0, 0, pena_viol) ;
2123
        $setuphold (posedge clk &&& reset, pena[48], 0, 0, pena_viol) ;
2124
        $setuphold (posedge clk &&& reset, pena[49], 0, 0, pena_viol) ;
2125
        $setuphold (posedge clk &&& reset, pena[50], 0, 0, pena_viol) ;
2126
        $setuphold (posedge clk &&& reset, pena[51], 0, 0, pena_viol) ;
2127
 
2128
        $setuphold (posedge pclk[0] &&& reset, datain, 0, 0, datain_viol) ;
2129
        $setuphold (posedge pclk[1] &&& reset, datain, 0, 0, datain_viol) ;
2130
        $setuphold (posedge pclk[2] &&& reset, datain, 0, 0, datain_viol) ;
2131
        $setuphold (posedge pclk[3] &&& reset, datain, 0, 0, datain_viol) ;
2132
        $setuphold (posedge pclk[4] &&& reset, datain, 0, 0, datain_viol) ;
2133
        $setuphold (posedge pclk[5] &&& reset, datain, 0, 0, datain_viol) ;
2134
        $setuphold (posedge pclk[6] &&& reset, datain, 0, 0, datain_viol) ;
2135
        $setuphold (posedge pclk[7] &&& reset, datain, 0, 0, datain_viol) ;
2136
        $setuphold (posedge pclk[8] &&& reset, datain, 0, 0, datain_viol) ;
2137
        $setuphold (posedge pclk[9] &&& reset, datain, 0, 0, datain_viol) ;
2138
        $setuphold (posedge pclk[10] &&& reset, datain, 0, 0, datain_viol) ;
2139
        $setuphold (posedge pclk[11] &&& reset, datain, 0, 0, datain_viol) ;
2140
        $setuphold (posedge pclk[12] &&& reset, datain, 0, 0, datain_viol) ;
2141
        $setuphold (posedge pclk[13] &&& reset, datain, 0, 0, datain_viol) ;
2142
        $setuphold (posedge pclk[14] &&& reset, datain, 0, 0, datain_viol) ;
2143
        $setuphold (posedge pclk[15] &&& reset, datain, 0, 0, datain_viol) ;
2144
        $setuphold (posedge pclk[16] &&& reset, datain, 0, 0, datain_viol) ;
2145
        $setuphold (posedge pclk[17] &&& reset, datain, 0, 0, datain_viol) ;
2146
        $setuphold (posedge pclk[18] &&& reset, datain, 0, 0, datain_viol) ;
2147
        $setuphold (posedge pclk[19] &&& reset, datain, 0, 0, datain_viol) ;
2148
        $setuphold (posedge pclk[20] &&& reset, datain, 0, 0, datain_viol) ;
2149
        $setuphold (posedge pclk[21] &&& reset, datain, 0, 0, datain_viol) ;
2150
        $setuphold (posedge pclk[22] &&& reset, datain, 0, 0, datain_viol) ;
2151
        $setuphold (posedge pclk[23] &&& reset, datain, 0, 0, datain_viol) ;
2152
        $setuphold (posedge pclk[24] &&& reset, datain, 0, 0, datain_viol) ;
2153
        $setuphold (posedge pclk[25] &&& reset, datain, 0, 0, datain_viol) ;
2154
        $setuphold (posedge pclk[26] &&& reset, datain, 0, 0, datain_viol) ;
2155
        $setuphold (posedge pclk[27] &&& reset, datain, 0, 0, datain_viol) ;
2156
        $setuphold (posedge pclk[28] &&& reset, datain, 0, 0, datain_viol) ;
2157
        $setuphold (posedge pclk[29] &&& reset, datain, 0, 0, datain_viol) ;
2158
        $setuphold (posedge pclk[30] &&& reset, datain, 0, 0, datain_viol) ;
2159
        $setuphold (posedge pclk[31] &&& reset, datain, 0, 0, datain_viol) ;
2160
        $setuphold (posedge pclk[32] &&& reset, datain, 0, 0, datain_viol) ;
2161
        $setuphold (posedge pclk[33] &&& reset, datain, 0, 0, datain_viol) ;
2162
        $setuphold (posedge pclk[34] &&& reset, datain, 0, 0, datain_viol) ;
2163
        $setuphold (posedge pclk[35] &&& reset, datain, 0, 0, datain_viol) ;
2164
        $setuphold (posedge pclk[36] &&& reset, datain, 0, 0, datain_viol) ;
2165
        $setuphold (posedge pclk[37] &&& reset, datain, 0, 0, datain_viol) ;
2166
        $setuphold (posedge pclk[38] &&& reset, datain, 0, 0, datain_viol) ;
2167
        $setuphold (posedge pclk[39] &&& reset, datain, 0, 0, datain_viol) ;
2168
        $setuphold (posedge pclk[40] &&& reset, datain, 0, 0, datain_viol) ;
2169
        $setuphold (posedge pclk[41] &&& reset, datain, 0, 0, datain_viol) ;
2170
        $setuphold (posedge pclk[42] &&& reset, datain, 0, 0, datain_viol) ;
2171
        $setuphold (posedge pclk[43] &&& reset, datain, 0, 0, datain_viol) ;
2172
        $setuphold (posedge pclk[44] &&& reset, datain, 0, 0, datain_viol) ;
2173
        $setuphold (posedge pclk[45] &&& reset, datain, 0, 0, datain_viol) ;
2174
        $setuphold (posedge pclk[46] &&& reset, datain, 0, 0, datain_viol) ;
2175
        $setuphold (posedge pclk[47] &&& reset, datain, 0, 0, datain_viol) ;
2176
        $setuphold (posedge pclk[48] &&& reset, datain, 0, 0, datain_viol) ;
2177
        $setuphold (posedge pclk[49] &&& reset, datain, 0, 0, datain_viol) ;
2178
        $setuphold (posedge pclk[50] &&& reset, datain, 0, 0, datain_viol) ;
2179
        $setuphold (posedge pclk[51] &&& reset, datain, 0, 0, datain_viol) ;
2180
 
2181
    (posedge clk => (regout +: datain)) = 0 ;
2182
 
2183
    (posedge pclk[0] => (regout +: datain)) =  (0, 0) ;
2184
    (posedge pclk[1] => (regout +: datain)) =  (0, 0) ;
2185
    (posedge pclk[2] => (regout +: datain)) =  (0, 0) ;
2186
    (posedge pclk[3] => (regout +: datain)) =  (0, 0) ;
2187
    (posedge pclk[4] => (regout +: datain)) =  (0, 0) ;
2188
    (posedge pclk[5] => (regout +: datain)) =  (0, 0) ;
2189
    (posedge pclk[6] => (regout +: datain)) =  (0, 0) ;
2190
    (posedge pclk[7] => (regout +: datain)) =  (0, 0) ;
2191
    (posedge pclk[8] => (regout +: datain)) =  (0, 0) ;
2192
    (posedge pclk[9] => (regout +: datain)) =  (0, 0) ;
2193
    (posedge pclk[10] => (regout +: datain)) =  (0, 0) ;
2194
    (posedge pclk[11] => (regout +: datain)) =  (0, 0) ;
2195
    (posedge pclk[12] => (regout +: datain)) =  (0, 0) ;
2196
    (posedge pclk[13] => (regout +: datain)) =  (0, 0) ;
2197
    (posedge pclk[14] => (regout +: datain)) =  (0, 0) ;
2198
    (posedge pclk[15] => (regout +: datain)) =  (0, 0) ;
2199
    (posedge pclk[16] => (regout +: datain)) =  (0, 0) ;
2200
    (posedge pclk[17] => (regout +: datain)) =  (0, 0) ;
2201
    (posedge pclk[18] => (regout +: datain)) =  (0, 0) ;
2202
    (posedge pclk[19] => (regout +: datain)) =  (0, 0) ;
2203
    (posedge pclk[20] => (regout +: datain)) =  (0, 0) ;
2204
    (posedge pclk[21] => (regout +: datain)) =  (0, 0) ;
2205
    (posedge pclk[22] => (regout +: datain)) =  (0, 0) ;
2206
    (posedge pclk[23] => (regout +: datain)) =  (0, 0) ;
2207
    (posedge pclk[24] => (regout +: datain)) =  (0, 0) ;
2208
    (posedge pclk[25] => (regout +: datain)) =  (0, 0) ;
2209
    (posedge pclk[26] => (regout +: datain)) =  (0, 0) ;
2210
    (posedge pclk[27] => (regout +: datain)) =  (0, 0) ;
2211
    (posedge pclk[28] => (regout +: datain)) =  (0, 0) ;
2212
    (posedge pclk[29] => (regout +: datain)) =  (0, 0) ;
2213
    (posedge pclk[30] => (regout +: datain)) =  (0, 0) ;
2214
    (posedge pclk[31] => (regout +: datain)) =  (0, 0) ;
2215
    (posedge pclk[32] => (regout +: datain)) =  (0, 0) ;
2216
    (posedge pclk[33] => (regout +: datain)) =  (0, 0) ;
2217
    (posedge pclk[34] => (regout +: datain)) =  (0, 0) ;
2218
    (posedge pclk[35] => (regout +: datain)) =  (0, 0) ;
2219
    (posedge pclk[36] => (regout +: datain)) =  (0, 0) ;
2220
    (posedge pclk[37] => (regout +: datain)) =  (0, 0) ;
2221
    (posedge pclk[38] => (regout +: datain)) =  (0, 0) ;
2222
    (posedge pclk[39] => (regout +: datain)) =  (0, 0) ;
2223
    (posedge pclk[40] => (regout +: datain)) =  (0, 0) ;
2224
    (posedge pclk[41] => (regout +: datain)) =  (0, 0) ;
2225
    (posedge pclk[42] => (regout +: datain)) =  (0, 0) ;
2226
    (posedge pclk[43] => (regout +: datain)) =  (0, 0) ;
2227
    (posedge pclk[44] => (regout +: datain)) =  (0, 0) ;
2228
    (posedge pclk[45] => (regout +: datain)) =  (0, 0) ;
2229
    (posedge pclk[46] => (regout +: datain)) =  (0, 0) ;
2230
    (posedge pclk[47] => (regout +: datain)) =  (0, 0) ;
2231
    (posedge pclk[48] => (regout +: datain)) =  (0, 0) ;
2232
    (posedge pclk[49] => (regout +: datain)) =  (0, 0) ;
2233
    (posedge pclk[50] => (regout +: datain)) =  (0, 0) ;
2234
    (posedge pclk[51] => (regout +: datain)) =  (0, 0) ;
2235
 
2236
    (posedge aclr => (regout +: 1'b0)) = (0, 0) ;
2237
 
2238
    (posedge paclr[0] => (regout +: 1'b0)) = (0, 0) ;
2239
    (posedge paclr[1] => (regout +: 1'b0)) = (0, 0) ;
2240
    (posedge paclr[2] => (regout +: 1'b0)) = (0, 0) ;
2241
    (posedge paclr[3] => (regout +: 1'b0)) = (0, 0) ;
2242
    (posedge paclr[4] => (regout +: 1'b0)) = (0, 0) ;
2243
    (posedge paclr[5] => (regout +: 1'b0)) = (0, 0) ;
2244
    (posedge paclr[6] => (regout +: 1'b0)) = (0, 0) ;
2245
    (posedge paclr[7] => (regout +: 1'b0)) = (0, 0) ;
2246
    (posedge paclr[8] => (regout +: 1'b0)) = (0, 0) ;
2247
    (posedge paclr[9] => (regout +: 1'b0)) = (0, 0) ;
2248
    (posedge paclr[10] => (regout +: 1'b0)) = (0, 0) ;
2249
    (posedge paclr[11] => (regout +: 1'b0)) = (0, 0) ;
2250
    (posedge paclr[12] => (regout +: 1'b0)) = (0, 0) ;
2251
    (posedge paclr[13] => (regout +: 1'b0)) = (0, 0) ;
2252
    (posedge paclr[14] => (regout +: 1'b0)) = (0, 0) ;
2253
    (posedge paclr[15] => (regout +: 1'b0)) = (0, 0) ;
2254
    (posedge paclr[16] => (regout +: 1'b0)) = (0, 0) ;
2255
    (posedge paclr[17] => (regout +: 1'b0)) = (0, 0) ;
2256
    (posedge paclr[18] => (regout +: 1'b0)) = (0, 0) ;
2257
    (posedge paclr[19] => (regout +: 1'b0)) = (0, 0) ;
2258
    (posedge paclr[20] => (regout +: 1'b0)) = (0, 0) ;
2259
    (posedge paclr[21] => (regout +: 1'b0)) = (0, 0) ;
2260
    (posedge paclr[22] => (regout +: 1'b0)) = (0, 0) ;
2261
    (posedge paclr[23] => (regout +: 1'b0)) = (0, 0) ;
2262
    (posedge paclr[24] => (regout +: 1'b0)) = (0, 0) ;
2263
    (posedge paclr[25] => (regout +: 1'b0)) = (0, 0) ;
2264
    (posedge paclr[26] => (regout +: 1'b0)) = (0, 0) ;
2265
    (posedge paclr[27] => (regout +: 1'b0)) = (0, 0) ;
2266
    (posedge paclr[28] => (regout +: 1'b0)) = (0, 0) ;
2267
    (posedge paclr[29] => (regout +: 1'b0)) = (0, 0) ;
2268
    (posedge paclr[30] => (regout +: 1'b0)) = (0, 0) ;
2269
    (posedge paclr[31] => (regout +: 1'b0)) = (0, 0) ;
2270
    (posedge paclr[32] => (regout +: 1'b0)) = (0, 0) ;
2271
    (posedge paclr[33] => (regout +: 1'b0)) = (0, 0) ;
2272
    (posedge paclr[34] => (regout +: 1'b0)) = (0, 0) ;
2273
    (posedge paclr[35] => (regout +: 1'b0)) = (0, 0) ;
2274
    (posedge paclr[36] => (regout +: 1'b0)) = (0, 0) ;
2275
    (posedge paclr[37] => (regout +: 1'b0)) = (0, 0) ;
2276
    (posedge paclr[38] => (regout +: 1'b0)) = (0, 0) ;
2277
    (posedge paclr[39] => (regout +: 1'b0)) = (0, 0) ;
2278
    (posedge paclr[40] => (regout +: 1'b0)) = (0, 0) ;
2279
    (posedge paclr[41] => (regout +: 1'b0)) = (0, 0) ;
2280
    (posedge paclr[42] => (regout +: 1'b0)) = (0, 0) ;
2281
    (posedge paclr[43] => (regout +: 1'b0)) = (0, 0) ;
2282
    (posedge paclr[44] => (regout +: 1'b0)) = (0, 0) ;
2283
    (posedge paclr[45] => (regout +: 1'b0)) = (0, 0) ;
2284
    (posedge paclr[46] => (regout +: 1'b0)) = (0, 0) ;
2285
    (posedge paclr[47] => (regout +: 1'b0)) = (0, 0) ;
2286
    (posedge paclr[48] => (regout +: 1'b0)) = (0, 0) ;
2287
    (posedge paclr[49] => (regout +: 1'b0)) = (0, 0) ;
2288
    (posedge paclr[50] => (regout +: 1'b0)) = (0, 0) ;
2289
    (posedge paclr[51] => (regout +: 1'b0)) = (0, 0) ;
2290
 
2291
    (posedge papre[0] => (regout +: 1'b1)) = (0, 0) ;
2292
    (posedge papre[1] => (regout +: 1'b1)) = (0, 0) ;
2293
    (posedge papre[2] => (regout +: 1'b1)) = (0, 0) ;
2294
    (posedge papre[3] => (regout +: 1'b1)) = (0, 0) ;
2295
    (posedge papre[4] => (regout +: 1'b1)) = (0, 0) ;
2296
    (posedge papre[5] => (regout +: 1'b1)) = (0, 0) ;
2297
    (posedge papre[6] => (regout +: 1'b1)) = (0, 0) ;
2298
    (posedge papre[7] => (regout +: 1'b1)) = (0, 0) ;
2299
    (posedge papre[8] => (regout +: 1'b1)) = (0, 0) ;
2300
    (posedge papre[9] => (regout +: 1'b1)) = (0, 0) ;
2301
    (posedge papre[10] => (regout +: 1'b1)) = (0, 0) ;
2302
    (posedge papre[11] => (regout +: 1'b1)) = (0, 0) ;
2303
    (posedge papre[12] => (regout +: 1'b1)) = (0, 0) ;
2304
    (posedge papre[13] => (regout +: 1'b1)) = (0, 0) ;
2305
    (posedge papre[14] => (regout +: 1'b1)) = (0, 0) ;
2306
    (posedge papre[15] => (regout +: 1'b1)) = (0, 0) ;
2307
    (posedge papre[16] => (regout +: 1'b1)) = (0, 0) ;
2308
    (posedge papre[17] => (regout +: 1'b1)) = (0, 0) ;
2309
    (posedge papre[18] => (regout +: 1'b1)) = (0, 0) ;
2310
    (posedge papre[19] => (regout +: 1'b1)) = (0, 0) ;
2311
    (posedge papre[20] => (regout +: 1'b1)) = (0, 0) ;
2312
    (posedge papre[21] => (regout +: 1'b1)) = (0, 0) ;
2313
    (posedge papre[22] => (regout +: 1'b1)) = (0, 0) ;
2314
    (posedge papre[23] => (regout +: 1'b1)) = (0, 0) ;
2315
    (posedge papre[24] => (regout +: 1'b1)) = (0, 0) ;
2316
    (posedge papre[25] => (regout +: 1'b1)) = (0, 0) ;
2317
    (posedge papre[26] => (regout +: 1'b1)) = (0, 0) ;
2318
    (posedge papre[27] => (regout +: 1'b1)) = (0, 0) ;
2319
    (posedge papre[28] => (regout +: 1'b1)) = (0, 0) ;
2320
    (posedge papre[29] => (regout +: 1'b1)) = (0, 0) ;
2321
    (posedge papre[30] => (regout +: 1'b1)) = (0, 0) ;
2322
    (posedge papre[31] => (regout +: 1'b1)) = (0, 0) ;
2323
    (posedge papre[32] => (regout +: 1'b1)) = (0, 0) ;
2324
    (posedge papre[33] => (regout +: 1'b1)) = (0, 0) ;
2325
    (posedge papre[34] => (regout +: 1'b1)) = (0, 0) ;
2326
    (posedge papre[35] => (regout +: 1'b1)) = (0, 0) ;
2327
    (posedge papre[36] => (regout +: 1'b1)) = (0, 0) ;
2328
    (posedge papre[37] => (regout +: 1'b1)) = (0, 0) ;
2329
    (posedge papre[38] => (regout +: 1'b1)) = (0, 0) ;
2330
    (posedge papre[39] => (regout +: 1'b1)) = (0, 0) ;
2331
    (posedge papre[40] => (regout +: 1'b1)) = (0, 0) ;
2332
    (posedge papre[41] => (regout +: 1'b1)) = (0, 0) ;
2333
    (posedge papre[42] => (regout +: 1'b1)) = (0, 0) ;
2334
    (posedge papre[43] => (regout +: 1'b1)) = (0, 0) ;
2335
    (posedge papre[44] => (regout +: 1'b1)) = (0, 0) ;
2336
    (posedge papre[45] => (regout +: 1'b1)) = (0, 0) ;
2337
    (posedge papre[46] => (regout +: 1'b1)) = (0, 0) ;
2338
    (posedge papre[47] => (regout +: 1'b1)) = (0, 0) ;
2339
    (posedge papre[48] => (regout +: 1'b1)) = (0, 0) ;
2340
    (posedge papre[49] => (regout +: 1'b1)) = (0, 0) ;
2341
    (posedge papre[50] => (regout +: 1'b1)) = (0, 0) ;
2342
    (posedge papre[51] => (regout +: 1'b1)) = (0, 0) ;
2343
 
2344
    (posedge clk => (fbkout +: datain)) = 0 ;
2345
 
2346
    (posedge pclk[0] => (fbkout +: datain)) = 0 ;
2347
    (posedge pclk[1] => (fbkout +: datain)) = 0 ;
2348
    (posedge pclk[2] => (fbkout +: datain)) = 0 ;
2349
    (posedge pclk[3] => (fbkout +: datain)) = 0 ;
2350
    (posedge pclk[4] => (fbkout +: datain)) = 0 ;
2351
    (posedge pclk[5] => (fbkout +: datain)) = 0 ;
2352
    (posedge pclk[6] => (fbkout +: datain)) = 0 ;
2353
    (posedge pclk[7] => (fbkout +: datain)) = 0 ;
2354
    (posedge pclk[8] => (fbkout +: datain)) = 0 ;
2355
    (posedge pclk[9] => (fbkout +: datain)) = 0 ;
2356
    (posedge pclk[10] => (fbkout +: datain)) = 0 ;
2357
    (posedge pclk[11] => (fbkout +: datain)) = 0 ;
2358
    (posedge pclk[12] => (fbkout +: datain)) = 0 ;
2359
    (posedge pclk[13] => (fbkout +: datain)) = 0 ;
2360
    (posedge pclk[14] => (fbkout +: datain)) = 0 ;
2361
    (posedge pclk[15] => (fbkout +: datain)) = 0 ;
2362
    (posedge pclk[16] => (fbkout +: datain)) = 0 ;
2363
    (posedge pclk[17] => (fbkout +: datain)) = 0 ;
2364
    (posedge pclk[18] => (fbkout +: datain)) = 0 ;
2365
    (posedge pclk[19] => (fbkout +: datain)) = 0 ;
2366
    (posedge pclk[20] => (fbkout +: datain)) = 0 ;
2367
    (posedge pclk[21] => (fbkout +: datain)) = 0 ;
2368
    (posedge pclk[22] => (fbkout +: datain)) = 0 ;
2369
    (posedge pclk[23] => (fbkout +: datain)) = 0 ;
2370
    (posedge pclk[24] => (fbkout +: datain)) = 0 ;
2371
    (posedge pclk[25] => (fbkout +: datain)) = 0 ;
2372
    (posedge pclk[26] => (fbkout +: datain)) = 0 ;
2373
    (posedge pclk[27] => (fbkout +: datain)) = 0 ;
2374
    (posedge pclk[28] => (fbkout +: datain)) = 0 ;
2375
    (posedge pclk[29] => (fbkout +: datain)) = 0 ;
2376
    (posedge pclk[30] => (fbkout +: datain)) = 0 ;
2377
    (posedge pclk[31] => (fbkout +: datain)) = 0 ;
2378
    (posedge pclk[32] => (fbkout +: datain)) = 0 ;
2379
    (posedge pclk[33] => (fbkout +: datain)) = 0 ;
2380
    (posedge pclk[34] => (fbkout +: datain)) = 0 ;
2381
    (posedge pclk[35] => (fbkout +: datain)) = 0 ;
2382
    (posedge pclk[36] => (fbkout +: datain)) = 0 ;
2383
    (posedge pclk[37] => (fbkout +: datain)) = 0 ;
2384
    (posedge pclk[38] => (fbkout +: datain)) = 0 ;
2385
    (posedge pclk[39] => (fbkout +: datain)) = 0 ;
2386
    (posedge pclk[40] => (fbkout +: datain)) = 0 ;
2387
    (posedge pclk[41] => (fbkout +: datain)) = 0 ;
2388
    (posedge pclk[42] => (fbkout +: datain)) = 0 ;
2389
    (posedge pclk[43] => (fbkout +: datain)) = 0 ;
2390
    (posedge pclk[44] => (fbkout +: datain)) = 0 ;
2391
    (posedge pclk[45] => (fbkout +: datain)) = 0 ;
2392
    (posedge pclk[46] => (fbkout +: datain)) = 0 ;
2393
    (posedge pclk[47] => (fbkout +: datain)) = 0 ;
2394
    (posedge pclk[48] => (fbkout +: datain)) = 0 ;
2395
    (posedge pclk[49] => (fbkout +: datain)) = 0 ;
2396
    (posedge pclk[50] => (fbkout +: datain)) = 0 ;
2397
    (posedge pclk[51] => (fbkout +: datain)) = 0 ;
2398
 
2399
    (posedge aclr => (fbkout +: 1'b0)) = (0, 0) ;
2400
 
2401
    (posedge paclr[0] => (fbkout +: 1'b0)) = (0, 0) ;
2402
    (posedge paclr[1] => (fbkout +: 1'b0)) = (0, 0) ;
2403
    (posedge paclr[2] => (fbkout +: 1'b0)) = (0, 0) ;
2404
    (posedge paclr[3] => (fbkout +: 1'b0)) = (0, 0) ;
2405
    (posedge paclr[4] => (fbkout +: 1'b0)) = (0, 0) ;
2406
    (posedge paclr[5] => (fbkout +: 1'b0)) = (0, 0) ;
2407
    (posedge paclr[6] => (fbkout +: 1'b0)) = (0, 0) ;
2408
    (posedge paclr[7] => (fbkout +: 1'b0)) = (0, 0) ;
2409
    (posedge paclr[8] => (fbkout +: 1'b0)) = (0, 0) ;
2410
    (posedge paclr[9] => (fbkout +: 1'b0)) = (0, 0) ;
2411
    (posedge paclr[10] => (fbkout +: 1'b0)) = (0, 0) ;
2412
    (posedge paclr[11] => (fbkout +: 1'b0)) = (0, 0) ;
2413
    (posedge paclr[12] => (fbkout +: 1'b0)) = (0, 0) ;
2414
    (posedge paclr[13] => (fbkout +: 1'b0)) = (0, 0) ;
2415
    (posedge paclr[14] => (fbkout +: 1'b0)) = (0, 0) ;
2416
    (posedge paclr[15] => (fbkout +: 1'b0)) = (0, 0) ;
2417
    (posedge paclr[16] => (fbkout +: 1'b0)) = (0, 0) ;
2418
    (posedge paclr[17] => (fbkout +: 1'b0)) = (0, 0) ;
2419
    (posedge paclr[18] => (fbkout +: 1'b0)) = (0, 0) ;
2420
    (posedge paclr[19] => (fbkout +: 1'b0)) = (0, 0) ;
2421
    (posedge paclr[20] => (fbkout +: 1'b0)) = (0, 0) ;
2422
    (posedge paclr[21] => (fbkout +: 1'b0)) = (0, 0) ;
2423
    (posedge paclr[22] => (fbkout +: 1'b0)) = (0, 0) ;
2424
    (posedge paclr[23] => (fbkout +: 1'b0)) = (0, 0) ;
2425
    (posedge paclr[24] => (fbkout +: 1'b0)) = (0, 0) ;
2426
    (posedge paclr[25] => (fbkout +: 1'b0)) = (0, 0) ;
2427
    (posedge paclr[26] => (fbkout +: 1'b0)) = (0, 0) ;
2428
    (posedge paclr[27] => (fbkout +: 1'b0)) = (0, 0) ;
2429
    (posedge paclr[28] => (fbkout +: 1'b0)) = (0, 0) ;
2430
    (posedge paclr[29] => (fbkout +: 1'b0)) = (0, 0) ;
2431
    (posedge paclr[30] => (fbkout +: 1'b0)) = (0, 0) ;
2432
    (posedge paclr[31] => (fbkout +: 1'b0)) = (0, 0) ;
2433
    (posedge paclr[32] => (fbkout +: 1'b0)) = (0, 0) ;
2434
    (posedge paclr[33] => (fbkout +: 1'b0)) = (0, 0) ;
2435
    (posedge paclr[34] => (fbkout +: 1'b0)) = (0, 0) ;
2436
    (posedge paclr[35] => (fbkout +: 1'b0)) = (0, 0) ;
2437
    (posedge paclr[36] => (fbkout +: 1'b0)) = (0, 0) ;
2438
    (posedge paclr[37] => (fbkout +: 1'b0)) = (0, 0) ;
2439
    (posedge paclr[38] => (fbkout +: 1'b0)) = (0, 0) ;
2440
    (posedge paclr[39] => (fbkout +: 1'b0)) = (0, 0) ;
2441
    (posedge paclr[40] => (fbkout +: 1'b0)) = (0, 0) ;
2442
    (posedge paclr[41] => (fbkout +: 1'b0)) = (0, 0) ;
2443
    (posedge paclr[42] => (fbkout +: 1'b0)) = (0, 0) ;
2444
    (posedge paclr[43] => (fbkout +: 1'b0)) = (0, 0) ;
2445
    (posedge paclr[44] => (fbkout +: 1'b0)) = (0, 0) ;
2446
    (posedge paclr[45] => (fbkout +: 1'b0)) = (0, 0) ;
2447
    (posedge paclr[46] => (fbkout +: 1'b0)) = (0, 0) ;
2448
    (posedge paclr[47] => (fbkout +: 1'b0)) = (0, 0) ;
2449
    (posedge paclr[48] => (fbkout +: 1'b0)) = (0, 0) ;
2450
    (posedge paclr[49] => (fbkout +: 1'b0)) = (0, 0) ;
2451
    (posedge paclr[50] => (fbkout +: 1'b0)) = (0, 0) ;
2452
    (posedge paclr[51] => (fbkout +: 1'b0)) = (0, 0) ;
2453
 
2454
    (posedge papre[0] => (fbkout +: 1'b1)) = (0, 0) ;
2455
    (posedge papre[1] => (fbkout +: 1'b1)) = (0, 0) ;
2456
    (posedge papre[2] => (fbkout +: 1'b1)) = (0, 0) ;
2457
    (posedge papre[3] => (fbkout +: 1'b1)) = (0, 0) ;
2458
    (posedge papre[4] => (fbkout +: 1'b1)) = (0, 0) ;
2459
    (posedge papre[5] => (fbkout +: 1'b1)) = (0, 0) ;
2460
    (posedge papre[6] => (fbkout +: 1'b1)) = (0, 0) ;
2461
    (posedge papre[7] => (fbkout +: 1'b1)) = (0, 0) ;
2462
    (posedge papre[8] => (fbkout +: 1'b1)) = (0, 0) ;
2463
    (posedge papre[9] => (fbkout +: 1'b1)) = (0, 0) ;
2464
    (posedge papre[10] => (fbkout +: 1'b1)) = (0, 0) ;
2465
    (posedge papre[11] => (fbkout +: 1'b1)) = (0, 0) ;
2466
    (posedge papre[12] => (fbkout +: 1'b1)) = (0, 0) ;
2467
    (posedge papre[13] => (fbkout +: 1'b1)) = (0, 0) ;
2468
    (posedge papre[14] => (fbkout +: 1'b1)) = (0, 0) ;
2469
    (posedge papre[15] => (fbkout +: 1'b1)) = (0, 0) ;
2470
    (posedge papre[16] => (fbkout +: 1'b1)) = (0, 0) ;
2471
    (posedge papre[17] => (fbkout +: 1'b1)) = (0, 0) ;
2472
    (posedge papre[18] => (fbkout +: 1'b1)) = (0, 0) ;
2473
    (posedge papre[19] => (fbkout +: 1'b1)) = (0, 0) ;
2474
    (posedge papre[20] => (fbkout +: 1'b1)) = (0, 0) ;
2475
    (posedge papre[21] => (fbkout +: 1'b1)) = (0, 0) ;
2476
    (posedge papre[22] => (fbkout +: 1'b1)) = (0, 0) ;
2477
    (posedge papre[23] => (fbkout +: 1'b1)) = (0, 0) ;
2478
    (posedge papre[24] => (fbkout +: 1'b1)) = (0, 0) ;
2479
    (posedge papre[25] => (fbkout +: 1'b1)) = (0, 0) ;
2480
    (posedge papre[26] => (fbkout +: 1'b1)) = (0, 0) ;
2481
    (posedge papre[27] => (fbkout +: 1'b1)) = (0, 0) ;
2482
    (posedge papre[28] => (fbkout +: 1'b1)) = (0, 0) ;
2483
    (posedge papre[29] => (fbkout +: 1'b1)) = (0, 0) ;
2484
    (posedge papre[30] => (fbkout +: 1'b1)) = (0, 0) ;
2485
    (posedge papre[31] => (fbkout +: 1'b1)) = (0, 0) ;
2486
    (posedge papre[32] => (fbkout +: 1'b1)) = (0, 0) ;
2487
    (posedge papre[33] => (fbkout +: 1'b1)) = (0, 0) ;
2488
    (posedge papre[34] => (fbkout +: 1'b1)) = (0, 0) ;
2489
    (posedge papre[35] => (fbkout +: 1'b1)) = (0, 0) ;
2490
    (posedge papre[36] => (fbkout +: 1'b1)) = (0, 0) ;
2491
    (posedge papre[37] => (fbkout +: 1'b1)) = (0, 0) ;
2492
    (posedge papre[38] => (fbkout +: 1'b1)) = (0, 0) ;
2493
    (posedge papre[39] => (fbkout +: 1'b1)) = (0, 0) ;
2494
    (posedge papre[40] => (fbkout +: 1'b1)) = (0, 0) ;
2495
    (posedge papre[41] => (fbkout +: 1'b1)) = (0, 0) ;
2496
    (posedge papre[42] => (fbkout +: 1'b1)) = (0, 0) ;
2497
    (posedge papre[43] => (fbkout +: 1'b1)) = (0, 0) ;
2498
    (posedge papre[44] => (fbkout +: 1'b1)) = (0, 0) ;
2499
    (posedge papre[45] => (fbkout +: 1'b1)) = (0, 0) ;
2500
    (posedge papre[46] => (fbkout +: 1'b1)) = (0, 0) ;
2501
    (posedge papre[47] => (fbkout +: 1'b1)) = (0, 0) ;
2502
    (posedge papre[48] => (fbkout +: 1'b1)) = (0, 0) ;
2503
    (posedge papre[49] => (fbkout +: 1'b1)) = (0, 0) ;
2504
    (posedge papre[50] => (fbkout +: 1'b1)) = (0, 0) ;
2505
    (posedge papre[51] => (fbkout +: 1'b1)) = (0, 0) ;
2506
 
2507
    endspecify
2508
 
2509
    initial
2510
    begin
2511
                penable = 'b1;
2512
                pterm_aclr = 'b0;
2513
                pterm_preset = 'b0;
2514
                ptermclk = 'b0;
2515
                oldclk1 = 'b0;
2516
                oldclk2 = 'b0;
2517
                violation = 0;
2518
                if (power_up == "low")
2519
                        iregout = 'b0;
2520
                else if (power_up == "high")
2521
                        iregout = 'b1;
2522
        end
2523
 
2524
    always @(datain_viol or clk_per_viol or pclk_per_viol or pena_viol)
2525
    begin
2526
       violation = 1;
2527
    end
2528
 
2529
always @ (clk_in or iclr or ipaclr or ipapre or ipena or posedge violation
2530
          or ipclk)
2531
begin
2532
   if (&ipclk !== 'b1)
2533
     ptermclk = 'b0;
2534
   else
2535
     ptermclk = 'b1;
2536
   if (&ipena == 'b0)
2537
     penable = 'b0;
2538
   else
2539
     penable = 'b1;
2540
   if ((&ipaclr) == 'b1)
2541
     pterm_aclr = 'b1;
2542
   else
2543
     pterm_aclr = 'b0;
2544
   if (&ipapre == 'b1)
2545
     pterm_preset = 'b1;
2546
   else
2547
     pterm_preset = 'b0;
2548
   if ((iclr == 'b1) || (pterm_aclr === 'b1))
2549
     iregout = 'b0;
2550
   else if (pterm_preset == 'b1)
2551
     iregout = 'b1;
2552
   else if (violation == 1'b1)
2553
     begin
2554
        violation = 0;
2555
        iregout = 'bx;
2556
     end
2557
   else if (penable == 'b1)
2558
     begin
2559
        if (((clk_in == 'b1) && (oldclk1 == 'b0)) || ((ptermclk == 'b1) && (oldclk2 == 'b0)))
2560
          begin
2561
             iregout = datain;
2562
          end
2563
     end
2564
   oldclk1 = clk_in;
2565
   oldclk2 = ptermclk;
2566
end      
2567
 
2568
and (regout, iregout, 'b1);
2569
and (fbkout, iregout, 'b1);
2570
 
2571
endmodule
2572
 
2573
//
2574
//   MAX MCELL ATOM
2575
//
2576
`timescale 1 ps/1 ps
2577
module  max_mcell (pterm0, pterm1, pterm2, pterm3, pterm4, pterm5, pxor,
2578
                   pexpin, clk, aclr, fpin, pclk, pena, paclr, papre,
2579
                   dataout, pexpout);
2580
 
2581
   parameter operation_mode     = "normal";
2582
   parameter output_mode        = "comb";
2583
   parameter register_mode = "dff";
2584
   parameter pexp_mode = "off";
2585
   parameter power_up    = "low";
2586
 
2587
   input [51:0] pterm0, pterm1, pterm2, pterm3, pterm4, pterm5;
2588
   input [51:0] pxor, pclk, pena, paclr, papre;
2589
   input        pexpin, clk, aclr, fpin;
2590
   output       dataout, pexpout;
2591
 
2592
   wire         fbk, dffin, combo, dffo;
2593
 
2594
 
2595
   max_asynch_mcell pcom (pterm0, pterm1, pterm2, pterm3, pterm4,
2596
                          pterm5, fpin, pxor, pexpin, fbk, combo,
2597
                          pexpout, dffin);
2598
   max_mcell_register preg (dffin, clk, aclr, pclk, pena, paclr,
2599
                            papre, dffo, fbk);
2600
   defparam    
2601
        pcom.operation_mode = operation_mode,
2602
        pcom.pexp_mode = pexp_mode,
2603
        pcom.register_mode = register_mode,
2604
        preg.operation_mode = operation_mode,
2605
        preg.power_up = power_up,
2606
        preg.register_mode = register_mode;
2607
 
2608
assign dataout = (output_mode == "comb") ? combo : dffo;       
2609
 
2610
endmodule
2611
 
2612
///////////////////////////////////////////////////////////////////////////////
2613
//
2614
// MAX SEXP ATOM
2615
//
2616
//////////////////////////////////////////////////////////////////////////////
2617
 
2618
//   MAX SEXP ASYNCH
2619
 
2620
`timescale 1 ps/1 ps
2621
module  max_asynch_sexp (datain, dataout);
2622
 
2623
    input  [51:0] datain;
2624
    output dataout;
2625
 
2626
    reg tmp_dataout;
2627
    wire [51:0] idatain;
2628
 
2629
 
2630
    buf (idatain[0], datain[0]);
2631
    buf (idatain[1], datain[1]);
2632
    buf (idatain[2], datain[2]);
2633
    buf (idatain[3], datain[3]);
2634
    buf (idatain[4], datain[4]);
2635
    buf (idatain[5], datain[5]);
2636
    buf (idatain[6], datain[6]);
2637
    buf (idatain[7], datain[7]);
2638
    buf (idatain[8], datain[8]);
2639
    buf (idatain[9], datain[9]);
2640
    buf (idatain[10], datain[10]);
2641
    buf (idatain[11], datain[11]);
2642
    buf (idatain[12], datain[12]);
2643
    buf (idatain[13], datain[13]);
2644
    buf (idatain[14], datain[14]);
2645
    buf (idatain[15], datain[15]);
2646
    buf (idatain[16], datain[16]);
2647
    buf (idatain[17], datain[17]);
2648
    buf (idatain[18], datain[18]);
2649
    buf (idatain[19], datain[19]);
2650
    buf (idatain[20], datain[20]);
2651
    buf (idatain[21], datain[21]);
2652
    buf (idatain[22], datain[22]);
2653
    buf (idatain[23], datain[23]);
2654
    buf (idatain[24], datain[24]);
2655
    buf (idatain[25], datain[25]);
2656
    buf (idatain[26], datain[26]);
2657
    buf (idatain[27], datain[27]);
2658
    buf (idatain[28], datain[28]);
2659
    buf (idatain[29], datain[29]);
2660
    buf (idatain[30], datain[30]);
2661
    buf (idatain[31], datain[31]);
2662
    buf (idatain[32], datain[32]);
2663
    buf (idatain[33], datain[33]);
2664
    buf (idatain[34], datain[34]);
2665
    buf (idatain[35], datain[35]);
2666
    buf (idatain[36], datain[36]);
2667
    buf (idatain[37], datain[37]);
2668
    buf (idatain[38], datain[38]);
2669
    buf (idatain[39], datain[39]);
2670
    buf (idatain[40], datain[40]);
2671
    buf (idatain[41], datain[41]);
2672
    buf (idatain[42], datain[42]);
2673
    buf (idatain[43], datain[43]);
2674
    buf (idatain[44], datain[44]);
2675
    buf (idatain[45], datain[45]);
2676
    buf (idatain[46], datain[46]);
2677
    buf (idatain[47], datain[47]);
2678
    buf (idatain[48], datain[48]);
2679
    buf (idatain[49], datain[49]);
2680
    buf (idatain[50], datain[50]);
2681
    buf (idatain[51], datain[51]);
2682
 
2683
    specify
2684
 
2685
    (datain[0] => dataout) = (0, 0) ;
2686
    (datain[1] => dataout) = (0, 0) ;
2687
    (datain[2] => dataout) = (0, 0) ;
2688
    (datain[3] => dataout) = (0, 0) ;
2689
    (datain[4] => dataout) = (0, 0) ;
2690
    (datain[5] => dataout) = (0, 0) ;
2691
    (datain[6] => dataout) = (0, 0) ;
2692
    (datain[7] => dataout) = (0, 0) ;
2693
    (datain[8] => dataout) = (0, 0) ;
2694
    (datain[9] => dataout) = (0, 0) ;
2695
    (datain[10] => dataout) = (0, 0) ;
2696
    (datain[11] => dataout) = (0, 0) ;
2697
    (datain[12] => dataout) = (0, 0) ;
2698
    (datain[13] => dataout) = (0, 0) ;
2699
    (datain[14] => dataout) = (0, 0) ;
2700
    (datain[15] => dataout) = (0, 0) ;
2701
    (datain[16] => dataout) = (0, 0) ;
2702
    (datain[17] => dataout) = (0, 0) ;
2703
    (datain[18] => dataout) = (0, 0) ;
2704
    (datain[19] => dataout) = (0, 0) ;
2705
    (datain[20] => dataout) = (0, 0) ;
2706
    (datain[21] => dataout) = (0, 0) ;
2707
    (datain[22] => dataout) = (0, 0) ;
2708
    (datain[23] => dataout) = (0, 0) ;
2709
    (datain[24] => dataout) = (0, 0) ;
2710
    (datain[25] => dataout) = (0, 0) ;
2711
    (datain[26] => dataout) = (0, 0) ;
2712
    (datain[27] => dataout) = (0, 0) ;
2713
    (datain[28] => dataout) = (0, 0) ;
2714
    (datain[29] => dataout) = (0, 0) ;
2715
    (datain[30] => dataout) = (0, 0) ;
2716
    (datain[31] => dataout) = (0, 0) ;
2717
    (datain[32] => dataout) = (0, 0) ;
2718
    (datain[33] => dataout) = (0, 0) ;
2719
    (datain[34] => dataout) = (0, 0) ;
2720
    (datain[35] => dataout) = (0, 0) ;
2721
    (datain[36] => dataout) = (0, 0) ;
2722
    (datain[37] => dataout) = (0, 0) ;
2723
    (datain[38] => dataout) = (0, 0) ;
2724
    (datain[39] => dataout) = (0, 0) ;
2725
    (datain[40] => dataout) = (0, 0) ;
2726
    (datain[41] => dataout) = (0, 0) ;
2727
    (datain[42] => dataout) = (0, 0) ;
2728
    (datain[43] => dataout) = (0, 0) ;
2729
    (datain[44] => dataout) = (0, 0) ;
2730
    (datain[45] => dataout) = (0, 0) ;
2731
    (datain[46] => dataout) = (0, 0) ;
2732
    (datain[47] => dataout) = (0, 0) ;
2733
    (datain[48] => dataout) = (0, 0) ;
2734
    (datain[49] => dataout) = (0, 0) ;
2735
    (datain[50] => dataout) = (0, 0) ;
2736
    (datain[51] => dataout) = (0, 0) ;
2737
 
2738
    endspecify
2739
 
2740
always @ (idatain)
2741
begin
2742
        tmp_dataout = ~(&idatain);
2743
end
2744
 
2745
and (dataout, tmp_dataout, 'b1);
2746
 
2747
endmodule
2748
 
2749
//
2750
//   MAX SEXP ATOM
2751
//
2752
`timescale 1 ps/1 ps
2753
module  max_sexp (datain, dataout);
2754
 
2755
    input  [51:0] datain;
2756
    output dataout;
2757
 
2758
max_asynch_sexp pcom (datain, dataout);
2759
 
2760
endmodule