source: XOpenSparcT1/trunk/T1-FPU/fpu_rptr_groups.v @ 6

Revision 6, 26.2 KB checked in by pntsvt00, 13 years ago (diff)

versione iniziale opensparc

Line 
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T1 Processor File: fpu_rptr_groups.v
4// Copyright (c) 2006 Sun Microsystems, Inc.  All Rights Reserved.
5// DO NOT ALTER OR REMOVE COPYRIGHT NOTICES.
6//
7// The above named program is free software; you can redistribute it and/or
8// modify it under the terms of the GNU General Public
9// License version 2 as published by the Free Software Foundation.
10//
11// The above named program is distributed in the hope that it will be
12// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14// General Public License for more details.
15//
16// You should have received a copy of the GNU General Public
17// License along with this work; if not, write to the Free Software
18// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
19//
20// ========== Copyright Header End ============================================
21
22module fpu_rptr_groups (
23        inq_in1,
24        inq_in2,
25        inq_id,
26        inq_op,
27        inq_rnd_mode,
28        inq_in1_50_0_neq_0,
29        inq_in1_53_0_neq_0,
30        inq_in1_53_32_neq_0,
31        inq_in1_exp_eq_0,
32        inq_in1_exp_neq_ffs,
33        inq_in2_50_0_neq_0,
34        inq_in2_53_0_neq_0,
35        inq_in2_53_32_neq_0,
36        inq_in2_exp_eq_0,
37        inq_in2_exp_neq_ffs,
38        ctu_tst_macrotest,
39        ctu_tst_pre_grst_l,
40        ctu_tst_scan_disable,
41        ctu_tst_scanmode,
42        ctu_tst_short_chain,
43        global_shift_enable,
44        grst_l,
45        cluster_cken,
46        se,
47        arst_l,
48        fpu_grst_l,
49        fmul_clken_l,
50        fdiv_clken_l,
51        scan_manual_6,
52        si,
53        so_unbuf,
54        pcx_fpio_data_px2,
55        pcx_fpio_data_rdy_px2,
56        fp_cpx_req_cq,
57        fp_cpx_data_ca,
58        inq_sram_din_unbuf,
59
60        inq_in1_add_buf1,
61        inq_in1_mul_buf1,
62        inq_in1_div_buf1,
63        inq_in2_add_buf1,
64        inq_in2_mul_buf1,
65        inq_in2_div_buf1,
66        inq_id_add_buf1,
67        inq_id_mul_buf1,
68        inq_id_div_buf1,
69        inq_op_add_buf1,
70        inq_op_div_buf1,
71        inq_op_mul_buf1,
72        inq_rnd_mode_add_buf1,
73        inq_rnd_mode_div_buf1,
74        inq_rnd_mode_mul_buf1,
75        inq_in1_50_0_neq_0_add_buf1,
76        inq_in1_50_0_neq_0_mul_buf1,
77        inq_in1_50_0_neq_0_div_buf1,
78        inq_in1_53_0_neq_0_add_buf1,
79        inq_in1_53_0_neq_0_mul_buf1,
80        inq_in1_53_0_neq_0_div_buf1,
81        inq_in1_53_32_neq_0_add_buf1,
82        inq_in1_53_32_neq_0_mul_buf1,
83        inq_in1_53_32_neq_0_div_buf1,
84        inq_in1_exp_eq_0_add_buf1,
85        inq_in1_exp_eq_0_mul_buf1,
86        inq_in1_exp_eq_0_div_buf1,
87        inq_in1_exp_neq_ffs_add_buf1,
88        inq_in1_exp_neq_ffs_mul_buf1,
89        inq_in1_exp_neq_ffs_div_buf1,
90        inq_in2_50_0_neq_0_add_buf1,
91        inq_in2_50_0_neq_0_mul_buf1,
92        inq_in2_50_0_neq_0_div_buf1,
93        inq_in2_53_0_neq_0_add_buf1,
94        inq_in2_53_0_neq_0_mul_buf1,
95        inq_in2_53_0_neq_0_div_buf1,
96        inq_in2_53_32_neq_0_add_buf1,
97        inq_in2_53_32_neq_0_mul_buf1,
98        inq_in2_53_32_neq_0_div_buf1,
99        inq_in2_exp_eq_0_add_buf1,
100        inq_in2_exp_eq_0_mul_buf1,
101        inq_in2_exp_eq_0_div_buf1,
102        inq_in2_exp_neq_ffs_add_buf1,
103        inq_in2_exp_neq_ffs_mul_buf1,
104        inq_in2_exp_neq_ffs_div_buf1,
105        ctu_tst_macrotest_buf1,
106        ctu_tst_pre_grst_l_buf1,
107        ctu_tst_scan_disable_buf1,
108        ctu_tst_scanmode_buf1,
109        ctu_tst_short_chain_buf1,
110        global_shift_enable_buf1,
111        grst_l_buf1,
112        cluster_cken_buf1,
113        se_add_exp_buf2,
114        se_add_frac_buf2,
115        se_out_buf2,
116        se_mul64_buf2,
117        se_cluster_header_buf2,
118        se_in_buf3,
119        se_mul_buf4,
120        se_div_buf5,
121        arst_l_div_buf2,
122        arst_l_mul_buf2,
123        arst_l_cluster_header_buf2,
124        arst_l_in_buf3,
125        arst_l_out_buf3,
126        arst_l_add_buf4,
127        fpu_grst_l_mul_buf1,
128        fpu_grst_l_in_buf2,
129        fpu_grst_l_add_buf3,
130        fmul_clken_l_buf1,
131        fdiv_clken_l_div_exp_buf1,
132        fdiv_clken_l_div_frac_buf1,
133        scan_manual_6_buf1,
134        si_buf1,
135        so,
136        pcx_fpio_data_px2_buf1,
137        pcx_fpio_data_rdy_px2_buf1,
138        fp_cpx_req_cq_buf1,
139        fp_cpx_data_ca_buf1,
140        inq_sram_din_buf1
141);
142
143        input [63:0] inq_in1;
144        input [63:0] inq_in2;
145        input [4:0] inq_id;
146        input [7:0] inq_op;
147        input [1:0] inq_rnd_mode;
148        input inq_in1_50_0_neq_0;
149        input inq_in1_53_0_neq_0;
150        input inq_in1_53_32_neq_0;
151        input inq_in1_exp_eq_0;
152        input inq_in1_exp_neq_ffs;
153        input inq_in2_50_0_neq_0;
154        input inq_in2_53_0_neq_0;
155        input inq_in2_53_32_neq_0;
156        input inq_in2_exp_eq_0;
157        input inq_in2_exp_neq_ffs;
158
159        input ctu_tst_macrotest;
160        input ctu_tst_pre_grst_l;
161        input ctu_tst_scan_disable;
162        input ctu_tst_scanmode;
163        input ctu_tst_short_chain;
164        input global_shift_enable;
165
166        input grst_l;
167        input cluster_cken;
168
169        input se;
170
171        input arst_l;
172
173        input fpu_grst_l;
174
175        input fmul_clken_l;
176        input fdiv_clken_l;
177
178        input scan_manual_6;
179
180        input si;
181        input so_unbuf;
182
183        input [123:0] pcx_fpio_data_px2;
184        input pcx_fpio_data_rdy_px2;
185
186        input [7:0] fp_cpx_req_cq;
187        input [144:0] fp_cpx_data_ca;
188
189        input [155:0] inq_sram_din_unbuf;
190
191        output [63:0] inq_in1_add_buf1;
192        output [63:0] inq_in1_mul_buf1;
193        output [63:0] inq_in1_div_buf1;
194        output [63:0] inq_in2_add_buf1;
195        output [63:0] inq_in2_mul_buf1;
196        output [63:0] inq_in2_div_buf1;
197        output [4:0] inq_id_add_buf1;
198        output [4:0] inq_id_mul_buf1;
199        output [4:0] inq_id_div_buf1;
200        output [7:0] inq_op_add_buf1;
201        output [7:0] inq_op_mul_buf1;
202        output [7:0] inq_op_div_buf1;
203        output [1:0] inq_rnd_mode_add_buf1;
204        output [1:0] inq_rnd_mode_mul_buf1;
205        output [1:0] inq_rnd_mode_div_buf1;
206        output inq_in1_50_0_neq_0_add_buf1;
207        output inq_in1_50_0_neq_0_mul_buf1;
208        output inq_in1_50_0_neq_0_div_buf1;
209        output inq_in1_53_0_neq_0_add_buf1;
210        output inq_in1_53_0_neq_0_mul_buf1;
211        output inq_in1_53_0_neq_0_div_buf1;
212        output inq_in1_53_32_neq_0_add_buf1;
213        output inq_in1_53_32_neq_0_mul_buf1;
214        output inq_in1_53_32_neq_0_div_buf1;
215        output inq_in1_exp_eq_0_add_buf1;
216        output inq_in1_exp_eq_0_mul_buf1;
217        output inq_in1_exp_eq_0_div_buf1;
218        output inq_in1_exp_neq_ffs_add_buf1;
219        output inq_in1_exp_neq_ffs_mul_buf1;
220        output inq_in1_exp_neq_ffs_div_buf1;
221        output inq_in2_50_0_neq_0_add_buf1;
222        output inq_in2_50_0_neq_0_mul_buf1;
223        output inq_in2_50_0_neq_0_div_buf1;
224        output inq_in2_53_0_neq_0_add_buf1;
225        output inq_in2_53_0_neq_0_mul_buf1;
226        output inq_in2_53_0_neq_0_div_buf1;
227        output inq_in2_53_32_neq_0_add_buf1;
228        output inq_in2_53_32_neq_0_mul_buf1;
229        output inq_in2_53_32_neq_0_div_buf1;
230        output inq_in2_exp_eq_0_add_buf1;
231        output inq_in2_exp_eq_0_mul_buf1;
232        output inq_in2_exp_eq_0_div_buf1;
233        output inq_in2_exp_neq_ffs_add_buf1;
234        output inq_in2_exp_neq_ffs_mul_buf1;
235        output inq_in2_exp_neq_ffs_div_buf1;
236
237        output ctu_tst_macrotest_buf1;
238        output ctu_tst_pre_grst_l_buf1;
239        output ctu_tst_scan_disable_buf1;
240        output ctu_tst_scanmode_buf1;
241        output ctu_tst_short_chain_buf1;
242        output global_shift_enable_buf1;
243
244        output grst_l_buf1;
245        output cluster_cken_buf1;
246
247        output se_add_exp_buf2;
248        output se_add_frac_buf2;
249        output se_out_buf2;
250        output se_mul64_buf2;
251        output se_cluster_header_buf2;
252        output se_in_buf3;
253        output se_mul_buf4;
254        output se_div_buf5;
255
256        output arst_l_div_buf2;
257        output arst_l_mul_buf2;
258        output arst_l_cluster_header_buf2;
259        output arst_l_in_buf3;
260        output arst_l_out_buf3;
261        output arst_l_add_buf4;
262
263        output fpu_grst_l_mul_buf1;
264        output fpu_grst_l_in_buf2;
265        output fpu_grst_l_add_buf3;
266
267        output fmul_clken_l_buf1;
268        output fdiv_clken_l_div_exp_buf1;
269        output fdiv_clken_l_div_frac_buf1;
270
271        output scan_manual_6_buf1;
272
273        output si_buf1;
274        output so;
275
276        output [123:0] pcx_fpio_data_px2_buf1;
277        output pcx_fpio_data_rdy_px2_buf1;
278
279        output [7:0] fp_cpx_req_cq_buf1;
280        output [144:0] fp_cpx_data_ca_buf1;
281
282        output [155:0] inq_sram_din_buf1;
283
284        wire [3:0] inq_id_add_buf1_unused;
285        wire [2:0] inq_id_mul_buf1_unused;
286        wire [4:0] inq_id_div_buf1_unused;
287
288        wire [1:0] ctu_tst_buf1_lo_unused;
289
290        wire [1:0] cluster_cken_buf1_unused;
291
292        wire [1:0] se_mul64_buf2_unused;
293
294        wire [2:0] arst_l_buf1_unused;
295
296        wire [1:0] fdiv_clken_l_buf1_unused;
297
298        wire [2:0] so_cluster_header_buf1_unused;
299        wire [2:0] si_buf1_unused;
300
301        wire [2:0] pcx_fpio_data_px2_buf1_unused;
302        wire [5:0] fp_cpx_buf1_9_unused;
303
304        // inq_in1
305        fpu_bufrpt_grp32 i_inq_in1_add_buf1_hi (
306                .in (inq_in1[63:32]),
307                .out (inq_in1_add_buf1[63:32])
308        );
309        fpu_bufrpt_grp32 i_inq_in1_add_buf1_lo (
310                .in (inq_in1[31:0]),
311                .out (inq_in1_add_buf1[31:0])
312        );
313        fpu_bufrpt_grp32 i_inq_in1_mul_buf1_hi (
314                .in (inq_in1[63:32]),
315                .out (inq_in1_mul_buf1[63:32])
316        );
317        fpu_bufrpt_grp32 i_inq_in1_mul_buf1_lo (
318                .in (inq_in1[31:0]),
319                .out (inq_in1_mul_buf1[31:0])
320        );
321        fpu_bufrpt_grp64 i_inq_in1_div_buf1 (
322                .in (inq_in1[63:0]),
323                .out (inq_in1_div_buf1[63:0])
324        );
325
326        // inq_in2
327        fpu_bufrpt_grp32 i_inq_in2_add_buf1_hi (
328                .in (inq_in2[63:32]),
329                .out (inq_in2_add_buf1[63:32])
330        );
331        fpu_bufrpt_grp32 i_inq_in2_add_buf1_lo (
332                .in (inq_in2[31:0]),
333                .out (inq_in2_add_buf1[31:0])
334        );
335        fpu_bufrpt_grp32 i_inq_in2_mul_buf1_hi (
336                .in (inq_in2[63:32]),
337                .out (inq_in2_mul_buf1[63:32])
338        );
339        fpu_bufrpt_grp32 i_inq_in2_mul_buf1_lo (
340                .in (inq_in2[31:0]),
341                .out (inq_in2_mul_buf1[31:0])
342        );
343        fpu_bufrpt_grp64 i_inq_in2_div_buf1 (
344                .in (inq_in2[63:0]),
345                .out (inq_in2_div_buf1[63:0])
346        );
347
348        // group inq_*eq_*
349        fpu_bufrpt_grp32 i_inq_id_add_buf1 (
350                .in ({4'h0,
351                        se_out_buf2,
352                        arst_l_out_buf3,
353                        fpu_grst_l_in_buf2,
354                        inq_id[4:0],
355                        inq_op[7:0],
356                        inq_rnd_mode[1:0],
357                        inq_in1_50_0_neq_0,
358                        inq_in1_53_0_neq_0,
359                        inq_in1_53_32_neq_0,
360                        inq_in1_exp_eq_0,
361                        inq_in1_exp_neq_ffs,
362                        inq_in2_50_0_neq_0,
363                        inq_in2_53_0_neq_0,
364                        inq_in2_53_32_neq_0,
365                        inq_in2_exp_eq_0,
366                        inq_in2_exp_neq_ffs}),
367                .out ({inq_id_add_buf1_unused[3:0],
368                        se_in_buf3,
369                        arst_l_add_buf4,
370                        fpu_grst_l_add_buf3,
371                        inq_id_add_buf1[4:0],
372                        inq_op_add_buf1[7:0],
373                        inq_rnd_mode_add_buf1[1:0],
374                        inq_in1_50_0_neq_0_add_buf1,
375                        inq_in1_53_0_neq_0_add_buf1,
376                        inq_in1_53_32_neq_0_add_buf1,
377                        inq_in1_exp_eq_0_add_buf1,
378                        inq_in1_exp_neq_ffs_add_buf1,
379                        inq_in2_50_0_neq_0_add_buf1,
380                        inq_in2_53_0_neq_0_add_buf1,
381                        inq_in2_53_32_neq_0_add_buf1,
382                        inq_in2_exp_eq_0_add_buf1,
383                        inq_in2_exp_neq_ffs_add_buf1})
384        );
385
386        fpu_bufrpt_grp32 i_inq_id_mul_buf1 (
387                .in ({3'h0,
388                        se_in_buf3,
389                        arst_l_mul_buf2,
390                        fpu_grst_l_mul_buf1,
391                        fmul_clken_l,
392                        inq_id[4:0],
393                        inq_op[7:0],
394                        inq_rnd_mode[1:0],
395                        inq_in1_50_0_neq_0,
396                        inq_in1_53_0_neq_0,
397                        inq_in1_53_32_neq_0,
398                        inq_in1_exp_eq_0,
399                        inq_in1_exp_neq_ffs,
400                        inq_in2_50_0_neq_0,
401                        inq_in2_53_0_neq_0,
402                        inq_in2_53_32_neq_0,
403                        inq_in2_exp_eq_0,
404                        inq_in2_exp_neq_ffs}),
405                .out ({inq_id_mul_buf1_unused[2:0],
406                        se_mul_buf4,
407                        arst_l_out_buf3,
408                        fpu_grst_l_in_buf2,
409                        fmul_clken_l_buf1,
410                        inq_id_mul_buf1[4:0],
411                        inq_op_mul_buf1[7:0],
412                        inq_rnd_mode_mul_buf1[1:0],
413                        inq_in1_50_0_neq_0_mul_buf1,
414                        inq_in1_53_0_neq_0_mul_buf1,
415                        inq_in1_53_32_neq_0_mul_buf1,
416                        inq_in1_exp_eq_0_mul_buf1,
417                        inq_in1_exp_neq_ffs_mul_buf1,
418                        inq_in2_50_0_neq_0_mul_buf1,
419                        inq_in2_53_0_neq_0_mul_buf1,
420                        inq_in2_53_32_neq_0_mul_buf1,
421                        inq_in2_exp_eq_0_mul_buf1,
422                        inq_in2_exp_neq_ffs_mul_buf1})
423        );
424
425        fpu_bufrpt_grp32 i_inq_id_div_buf1 (
426                .in ({5'h00,
427                        se_mul_buf4,
428                        arst_l_mul_buf2,
429                        inq_id[4:0],
430                        inq_op[7:0],
431                        inq_rnd_mode[1:0],
432                        inq_in1_50_0_neq_0,
433                        inq_in1_53_0_neq_0,
434                        inq_in1_53_32_neq_0,
435                        inq_in1_exp_eq_0,
436                        inq_in1_exp_neq_ffs,
437                        inq_in2_50_0_neq_0,
438                        inq_in2_53_0_neq_0,
439                        inq_in2_53_32_neq_0,
440                        inq_in2_exp_eq_0,
441                        inq_in2_exp_neq_ffs}),
442                .out ({inq_id_div_buf1_unused[4:0],
443                        se_div_buf5,
444                        arst_l_in_buf3,
445                        inq_id_div_buf1[4:0],
446                        inq_op_div_buf1[7:0],
447                        inq_rnd_mode_div_buf1[1:0],
448                        inq_in1_50_0_neq_0_div_buf1,
449                        inq_in1_53_0_neq_0_div_buf1,
450                        inq_in1_53_32_neq_0_div_buf1,
451                        inq_in1_exp_eq_0_div_buf1,
452                        inq_in1_exp_neq_ffs_div_buf1,
453                        inq_in2_50_0_neq_0_div_buf1,
454                        inq_in2_53_0_neq_0_div_buf1,
455                        inq_in2_53_32_neq_0_div_buf1,
456                        inq_in2_exp_eq_0_div_buf1,
457                        inq_in2_exp_neq_ffs_div_buf1})
458        );
459
460        // buffer ctu_tst signals
461        fpu_bufrpt_grp4 i_ctu_tst_buf1_hi (
462                .in ({ctu_tst_short_chain,
463                        ctu_tst_macrotest,
464                        ctu_tst_scan_disable,
465                        ctu_tst_pre_grst_l}),
466                .out ({ctu_tst_short_chain_buf1,
467                        ctu_tst_macrotest_buf1,
468                        ctu_tst_scan_disable_buf1,
469                        ctu_tst_pre_grst_l_buf1})
470        );
471
472        fpu_bufrpt_grp4 i_ctu_tst_buf1_lo (
473                .in ({ctu_tst_scanmode,
474                        global_shift_enable,
475                        2'b00}),
476                .out ({ctu_tst_scanmode_buf1,
477                        global_shift_enable_buf1,
478                        ctu_tst_buf1_lo_unused[1:0]})
479        );
480
481        // buffer cluster_header inputs
482        fpu_bufrpt_grp4 i_cluster_cken_buf1 (
483                .in ({cluster_cken,
484                        grst_l,
485                        2'b00}),
486                .out ({cluster_cken_buf1,
487                        grst_l_buf1,
488                        cluster_cken_buf1_unused[1:0]})
489        );
490
491        // buffers for se (scan enable driven from test_stub_scan)
492        fpu_bufrpt_grp4 i_se_buf1 (
493                .in ({se,
494                        se,
495                        so_unbuf,
496                        1'b0}),
497                .out ({se_add_buf1,
498                        se_mul64_buf1,
499                        so_buf1,
500                        se_buf1_unused})
501        );
502
503        fpu_bufrpt_grp4 i_se_add_buf2 (
504                .in ({se_add_buf1,
505                        se_add_buf1,
506                        se_add_buf1,
507                        1'b0}),
508                .out ({se_add_exp_buf2,
509                        se_add_frac_buf2,
510                        se_out_buf2,
511                        se_add_buf2_unused})
512        );
513
514        fpu_bufrpt_grp4 i_se_mul64_buf2 (
515                .in ({se_mul64_buf1,
516                        se_mul64_buf1,
517                        2'b00}),
518                .out ({se_mul64_buf2,
519                        se_cluster_header_buf2,
520                        se_mul64_buf2_unused[1:0]})
521        );
522
523        // buffers for arst_l, also use to buffer fpu_grst_l
524        fpu_bufrpt_grp4 i_arst_l_buf1 (
525                .in ({arst_l,
526                        3'b000}),
527                .out ({arst_l_buf1,
528                        arst_l_buf1_unused[2:0]})
529        );
530
531        fpu_bufrpt_grp4 i_arst_l_buf2 (
532                .in ({arst_l_buf1,
533                        arst_l_buf1,
534                        arst_l_buf1,
535                        fpu_grst_l}),
536                .out ({arst_l_mul_buf2,
537                        arst_l_cluster_header_buf2,
538                        arst_l_div_buf2,
539                        fpu_grst_l_mul_buf1})
540        );
541
542        // buffers for fdiv_clken_l
543        fpu_bufrpt_grp4 i_fdiv_clken_l_buf1 (
544                .in ({fdiv_clken_l,
545                        fdiv_clken_l,
546                        2'b00}),
547                .out ({fdiv_clken_l_div_exp_buf1,
548                        fdiv_clken_l_div_frac_buf1,
549                        fdiv_clken_l_buf1_unused[1:0]})
550        );
551
552        // buffer scan_out from cluster_header (internal driver 2X) to test_stub (long_chain_so_0)
553        fpu_bufrpt_grp4 i_so_cluster_header_buf1 (
554                .in ({scan_manual_6,
555                        3'b000}),
556                .out ({scan_manual_6_buf1,
557                        so_cluster_header_buf1_unused[2:0]})
558        );
559
560        // buffer si at FPU cluster right edge
561        fpu_bufrpt_grp4 i_si_buf1 (
562                .in ({si,
563                        3'b000}),
564                .out ({si_buf1,
565                        si_buf1_unused[2:0]})
566        );
567
568        // pcx_fpio* signals buffered for mintiming
569        fpu_rptr_pcx_fpio_grp16 i_pcx_fpio_buf1_0 (
570                .in ({pcx_fpio_data_px2[108],
571                        pcx_fpio_data_px2[109],
572                        pcx_fpio_data_px2[110],
573                        pcx_fpio_data_px2[111],
574                        pcx_fpio_data_px2[112],
575                        pcx_fpio_data_px2[113],
576                        pcx_fpio_data_px2[114],
577                        pcx_fpio_data_px2[115],
578                        pcx_fpio_data_px2[116],
579                        pcx_fpio_data_px2[117],
580                        pcx_fpio_data_px2[118],
581                        pcx_fpio_data_px2[119],
582                        pcx_fpio_data_px2[120],
583                        pcx_fpio_data_px2[121],
584                        pcx_fpio_data_px2[122],
585                        pcx_fpio_data_px2[123]}),
586                .out ({pcx_fpio_data_px2_buf1[108],
587                        pcx_fpio_data_px2_buf1[109],
588                        pcx_fpio_data_px2_buf1[110],
589                        pcx_fpio_data_px2_buf1[111],
590                        pcx_fpio_data_px2_buf1[112],
591                        pcx_fpio_data_px2_buf1[113],
592                        pcx_fpio_data_px2_buf1[114],
593                        pcx_fpio_data_px2_buf1[115],
594                        pcx_fpio_data_px2_buf1[116],
595                        pcx_fpio_data_px2_buf1[117],
596                        pcx_fpio_data_px2_buf1[118],
597                        pcx_fpio_data_px2_buf1[119],
598                        pcx_fpio_data_px2_buf1[120],
599                        pcx_fpio_data_px2_buf1[121],
600                        pcx_fpio_data_px2_buf1[122],
601                        pcx_fpio_data_px2_buf1[123]})
602        );
603
604        fpu_rptr_pcx_fpio_grp16 i_pcx_fpio_buf1_1 (
605                .in ({pcx_fpio_data_px2[92],
606                        pcx_fpio_data_px2[93],
607                        pcx_fpio_data_px2[94],
608                        pcx_fpio_data_px2[95],
609                        pcx_fpio_data_px2[96],
610                        pcx_fpio_data_px2[97],
611                        pcx_fpio_data_px2[98],
612                        pcx_fpio_data_px2[99],
613                        pcx_fpio_data_px2[100],
614                        pcx_fpio_data_px2[101],
615                        pcx_fpio_data_px2[102],
616                        pcx_fpio_data_px2[103],
617                        pcx_fpio_data_px2[104],
618                        pcx_fpio_data_px2[105],
619                        pcx_fpio_data_px2[106],
620                        pcx_fpio_data_px2[107]}),
621                .out ({pcx_fpio_data_px2_buf1[92],
622                        pcx_fpio_data_px2_buf1[93],
623                        pcx_fpio_data_px2_buf1[94],
624                        pcx_fpio_data_px2_buf1[95],
625                        pcx_fpio_data_px2_buf1[96],
626                        pcx_fpio_data_px2_buf1[97],
627                        pcx_fpio_data_px2_buf1[98],
628                        pcx_fpio_data_px2_buf1[99],
629                        pcx_fpio_data_px2_buf1[100],
630                        pcx_fpio_data_px2_buf1[101],
631                        pcx_fpio_data_px2_buf1[102],
632                        pcx_fpio_data_px2_buf1[103],
633                        pcx_fpio_data_px2_buf1[104],
634                        pcx_fpio_data_px2_buf1[105],
635                        pcx_fpio_data_px2_buf1[106],
636                        pcx_fpio_data_px2_buf1[107]})
637        );
638
639        fpu_rptr_pcx_fpio_grp16 i_pcx_fpio_buf1_2 (
640                .in ({pcx_fpio_data_px2[76],
641                        pcx_fpio_data_px2[77],
642                        pcx_fpio_data_px2[78],
643                        pcx_fpio_data_px2[79],
644                        pcx_fpio_data_px2[80],
645                        pcx_fpio_data_px2[81],
646                        pcx_fpio_data_px2[82],
647                        pcx_fpio_data_px2[83],
648                        pcx_fpio_data_px2[84],
649                        pcx_fpio_data_px2[85],
650                        pcx_fpio_data_px2[86],
651                        pcx_fpio_data_px2[87],
652                        pcx_fpio_data_px2[88],
653                        pcx_fpio_data_px2[89],
654                        pcx_fpio_data_px2[90],
655                        pcx_fpio_data_px2[91]}),
656                .out ({pcx_fpio_data_px2_buf1[76],
657                        pcx_fpio_data_px2_buf1[77],
658                        pcx_fpio_data_px2_buf1[78],
659                        pcx_fpio_data_px2_buf1[79],
660                        pcx_fpio_data_px2_buf1[80],
661                        pcx_fpio_data_px2_buf1[81],
662                        pcx_fpio_data_px2_buf1[82],
663                        pcx_fpio_data_px2_buf1[83],
664                        pcx_fpio_data_px2_buf1[84],
665                        pcx_fpio_data_px2_buf1[85],
666                        pcx_fpio_data_px2_buf1[86],
667                        pcx_fpio_data_px2_buf1[87],
668                        pcx_fpio_data_px2_buf1[88],
669                        pcx_fpio_data_px2_buf1[89],
670                        pcx_fpio_data_px2_buf1[90],
671                        pcx_fpio_data_px2_buf1[91]})
672        );
673
674        fpu_rptr_pcx_fpio_grp16 i_pcx_fpio_buf1_3 (
675                .in ({pcx_fpio_data_px2[3:0],
676                        pcx_fpio_data_px2[64],
677                        pcx_fpio_data_px2[65],
678                        pcx_fpio_data_px2[66],
679                        pcx_fpio_data_px2[67],
680                        pcx_fpio_data_px2[68],
681                        pcx_fpio_data_px2[69],
682                        pcx_fpio_data_px2[70],
683                        pcx_fpio_data_px2[71],
684                        pcx_fpio_data_px2[72],
685                        pcx_fpio_data_px2[73],
686                        pcx_fpio_data_px2[74],
687                        pcx_fpio_data_px2[75]}),
688                .out ({pcx_fpio_data_px2_buf1[3:0],
689                        pcx_fpio_data_px2_buf1[64],
690                        pcx_fpio_data_px2_buf1[65],
691                        pcx_fpio_data_px2_buf1[66],
692                        pcx_fpio_data_px2_buf1[67],
693                        pcx_fpio_data_px2_buf1[68],
694                        pcx_fpio_data_px2_buf1[69],
695                        pcx_fpio_data_px2_buf1[70],
696                        pcx_fpio_data_px2_buf1[71],
697                        pcx_fpio_data_px2_buf1[72],
698                        pcx_fpio_data_px2_buf1[73],
699                        pcx_fpio_data_px2_buf1[74],
700                        pcx_fpio_data_px2_buf1[75]})
701        );
702
703        fpu_rptr_pcx_fpio_grp16 i_pcx_fpio_buf1_4 (
704                .in (pcx_fpio_data_px2[19:4]),
705                .out (pcx_fpio_data_px2_buf1[19:4])
706        );
707
708        fpu_rptr_pcx_fpio_grp16 i_pcx_fpio_buf1_5 (
709                .in (pcx_fpio_data_px2[35:20]),
710                .out (pcx_fpio_data_px2_buf1[35:20])
711        );
712
713        fpu_rptr_pcx_fpio_grp16 i_pcx_fpio_buf1_6 (
714                .in ({pcx_fpio_data_rdy_px2,
715                        pcx_fpio_data_px2[50:36]}),
716                .out ({pcx_fpio_data_rdy_px2_buf1,
717                        pcx_fpio_data_px2_buf1[50:36]})
718        );
719
720        fpu_rptr_pcx_fpio_grp16 i_pcx_fpio_buf1_7 (
721                .in ({3'b000,
722                        pcx_fpio_data_px2[63:51]}),
723                .out ({pcx_fpio_data_px2_buf1_unused[2:0],
724                        pcx_fpio_data_px2_buf1[63:51]})
725        );
726
727        // buffer fp_cpx_* signals for mintiming
728        fpu_rptr_fp_cpx_grp16 i_fp_cpx_buf1_0 (
729                .in ({
730                        fp_cpx_data_ca[142],
731                        fp_cpx_data_ca[140],
732                        fp_cpx_data_ca[138],
733                        fp_cpx_data_ca[136],
734                        fp_cpx_data_ca[134],
735                        fp_cpx_data_ca[132],
736                        fp_cpx_data_ca[130],
737                        fp_cpx_data_ca[128],
738                        fp_cpx_req_cq[6],
739                        fp_cpx_req_cq[7],
740                        fp_cpx_req_cq[3],
741                        fp_cpx_req_cq[2],
742                        fp_cpx_req_cq[5],
743                        fp_cpx_req_cq[1],
744                        fp_cpx_req_cq[0],
745                        fp_cpx_req_cq[4]}),
746                .out ({
747                        fp_cpx_data_ca_buf1[142],
748                        fp_cpx_data_ca_buf1[140],
749                        fp_cpx_data_ca_buf1[138],
750                        fp_cpx_data_ca_buf1[136],
751                        fp_cpx_data_ca_buf1[134],
752                        fp_cpx_data_ca_buf1[132],
753                        fp_cpx_data_ca_buf1[130],
754                        fp_cpx_data_ca_buf1[128],
755                        fp_cpx_req_cq_buf1[6],
756                        fp_cpx_req_cq_buf1[7],
757                        fp_cpx_req_cq_buf1[3],
758                        fp_cpx_req_cq_buf1[2],
759                        fp_cpx_req_cq_buf1[5],
760                        fp_cpx_req_cq_buf1[1],
761                        fp_cpx_req_cq_buf1[0],
762                        fp_cpx_req_cq_buf1[4]})
763        );
764        fpu_rptr_fp_cpx_grp16 i_fp_cpx_buf1_1 (
765                .in ({
766                        fp_cpx_data_ca[34],
767                        fp_cpx_data_ca[36],
768                        fp_cpx_data_ca[38],
769                        fp_cpx_data_ca[40],
770                        fp_cpx_data_ca[42],
771                        fp_cpx_data_ca[44],
772                        fp_cpx_data_ca[46],
773                        fp_cpx_data_ca[48],
774                        fp_cpx_data_ca[50],
775                        fp_cpx_data_ca[52],
776                        fp_cpx_data_ca[54],
777                        fp_cpx_data_ca[56],
778                        fp_cpx_data_ca[58],
779                        fp_cpx_data_ca[60],
780                        fp_cpx_data_ca[62],
781                        fp_cpx_data_ca[144]}),
782                .out ({
783                        fp_cpx_data_ca_buf1[34],
784                        fp_cpx_data_ca_buf1[36],
785                        fp_cpx_data_ca_buf1[38],
786                        fp_cpx_data_ca_buf1[40],
787                        fp_cpx_data_ca_buf1[42],
788                        fp_cpx_data_ca_buf1[44],
789                        fp_cpx_data_ca_buf1[46],
790                        fp_cpx_data_ca_buf1[48],
791                        fp_cpx_data_ca_buf1[50],
792                        fp_cpx_data_ca_buf1[52],
793                        fp_cpx_data_ca_buf1[54],
794                        fp_cpx_data_ca_buf1[56],
795                        fp_cpx_data_ca_buf1[58],
796                        fp_cpx_data_ca_buf1[60],
797                        fp_cpx_data_ca_buf1[62],
798                        fp_cpx_data_ca_buf1[144]})
799        );
800        fpu_rptr_fp_cpx_grp16 i_fp_cpx_buf1_2 (
801                .in ({
802                        fp_cpx_data_ca[2],
803                        fp_cpx_data_ca[4],
804                        fp_cpx_data_ca[6],
805                        fp_cpx_data_ca[8],
806                        fp_cpx_data_ca[10],
807                        fp_cpx_data_ca[12],
808                        fp_cpx_data_ca[14],
809                        fp_cpx_data_ca[16],
810                        fp_cpx_data_ca[18],
811                        fp_cpx_data_ca[20],
812                        fp_cpx_data_ca[22],
813                        fp_cpx_data_ca[24],
814                        fp_cpx_data_ca[26],
815                        fp_cpx_data_ca[28],
816                        fp_cpx_data_ca[30],
817                        fp_cpx_data_ca[32]}),
818                .out ({
819                        fp_cpx_data_ca_buf1[2],
820                        fp_cpx_data_ca_buf1[4],
821                        fp_cpx_data_ca_buf1[6],
822                        fp_cpx_data_ca_buf1[8],
823                        fp_cpx_data_ca_buf1[10],
824                        fp_cpx_data_ca_buf1[12],
825                        fp_cpx_data_ca_buf1[14],
826                        fp_cpx_data_ca_buf1[16],
827                        fp_cpx_data_ca_buf1[18],
828                        fp_cpx_data_ca_buf1[20],
829                        fp_cpx_data_ca_buf1[22],
830                        fp_cpx_data_ca_buf1[24],
831                        fp_cpx_data_ca_buf1[26],
832                        fp_cpx_data_ca_buf1[28],
833                        fp_cpx_data_ca_buf1[30],
834                        fp_cpx_data_ca_buf1[32]})
835        );
836        fpu_rptr_fp_cpx_grp16 i_fp_cpx_buf1_3 (
837                .in ({
838                        fp_cpx_data_ca[31],
839                        fp_cpx_data_ca[27],
840                        fp_cpx_data_ca[23],
841                        fp_cpx_data_ca[25],
842                        fp_cpx_data_ca[21],
843                        fp_cpx_data_ca[17],
844                        fp_cpx_data_ca[19],
845                        fp_cpx_data_ca[15],
846                        fp_cpx_data_ca[11],
847                        fp_cpx_data_ca[13],
848                        fp_cpx_data_ca[9],
849                        fp_cpx_data_ca[5],
850                        fp_cpx_data_ca[7],
851                        fp_cpx_data_ca[3],
852                        fp_cpx_data_ca[0],
853                        fp_cpx_data_ca[1]}),
854                .out ({
855                        fp_cpx_data_ca_buf1[31],
856                        fp_cpx_data_ca_buf1[27],
857                        fp_cpx_data_ca_buf1[23],
858                        fp_cpx_data_ca_buf1[25],
859                        fp_cpx_data_ca_buf1[21],
860                        fp_cpx_data_ca_buf1[17],
861                        fp_cpx_data_ca_buf1[19],
862                        fp_cpx_data_ca_buf1[15],
863                        fp_cpx_data_ca_buf1[11],
864                        fp_cpx_data_ca_buf1[13],
865                        fp_cpx_data_ca_buf1[9],
866                        fp_cpx_data_ca_buf1[5],
867                        fp_cpx_data_ca_buf1[7],
868                        fp_cpx_data_ca_buf1[3],
869                        fp_cpx_data_ca_buf1[0],
870                        fp_cpx_data_ca_buf1[1]})
871        );
872        fpu_rptr_fp_cpx_grp16 i_fp_cpx_buf1_4 (
873                .in ({
874                        fp_cpx_data_ca[59],
875                        fp_cpx_data_ca[61],
876                        fp_cpx_data_ca[57],
877                        fp_cpx_data_ca[53],
878                        fp_cpx_data_ca[55],
879                        fp_cpx_data_ca[51],
880                        fp_cpx_data_ca[47],
881                        fp_cpx_data_ca[49],
882                        fp_cpx_data_ca[45],
883                        fp_cpx_data_ca[41],
884                        fp_cpx_data_ca[43],
885                        fp_cpx_data_ca[39],
886                        fp_cpx_data_ca[35],
887                        fp_cpx_data_ca[37],
888                        fp_cpx_data_ca[33],
889                        fp_cpx_data_ca[29]}),
890                .out ({
891                        fp_cpx_data_ca_buf1[59],
892                        fp_cpx_data_ca_buf1[61],
893                        fp_cpx_data_ca_buf1[57],
894                        fp_cpx_data_ca_buf1[53],
895                        fp_cpx_data_ca_buf1[55],
896                        fp_cpx_data_ca_buf1[51],
897                        fp_cpx_data_ca_buf1[47],
898                        fp_cpx_data_ca_buf1[49],
899                        fp_cpx_data_ca_buf1[45],
900                        fp_cpx_data_ca_buf1[41],
901                        fp_cpx_data_ca_buf1[43],
902                        fp_cpx_data_ca_buf1[39],
903                        fp_cpx_data_ca_buf1[35],
904                        fp_cpx_data_ca_buf1[37],
905                        fp_cpx_data_ca_buf1[33],
906                        fp_cpx_data_ca_buf1[29]})
907        );
908        fpu_rptr_fp_cpx_grp16 i_fp_cpx_buf1_5 (
909                .in ({
910                        fp_cpx_data_ca[113],
911                        fp_cpx_data_ca[117],
912                        fp_cpx_data_ca[121],
913                        fp_cpx_data_ca[119],
914                        fp_cpx_data_ca[123],
915                        fp_cpx_data_ca[127],
916                        fp_cpx_data_ca[125],
917                        fp_cpx_data_ca[129],
918                        fp_cpx_data_ca[133],
919                        fp_cpx_data_ca[131],
920                        fp_cpx_data_ca[135],
921                        fp_cpx_data_ca[139],
922                        fp_cpx_data_ca[137],
923                        fp_cpx_data_ca[141],
924                        fp_cpx_data_ca[143],
925                        fp_cpx_data_ca[63]}),
926                .out ({
927                        fp_cpx_data_ca_buf1[113],
928                        fp_cpx_data_ca_buf1[117],
929                        fp_cpx_data_ca_buf1[121],
930                        fp_cpx_data_ca_buf1[119],
931                        fp_cpx_data_ca_buf1[123],
932                        fp_cpx_data_ca_buf1[127],
933                        fp_cpx_data_ca_buf1[125],
934                        fp_cpx_data_ca_buf1[129],
935                        fp_cpx_data_ca_buf1[133],
936                        fp_cpx_data_ca_buf1[131],
937                        fp_cpx_data_ca_buf1[135],
938                        fp_cpx_data_ca_buf1[139],
939                        fp_cpx_data_ca_buf1[137],
940                        fp_cpx_data_ca_buf1[141],
941                        fp_cpx_data_ca_buf1[143],
942                        fp_cpx_data_ca_buf1[63]})
943        );
944        fpu_rptr_fp_cpx_grp16 i_fp_cpx_buf1_6 (
945                .in ({
946                        fp_cpx_data_ca[85],
947                        fp_cpx_data_ca[83],
948                        fp_cpx_data_ca[87],
949                        fp_cpx_data_ca[91],
950                        fp_cpx_data_ca[89],
951                        fp_cpx_data_ca[93],
952                        fp_cpx_data_ca[97],
953                        fp_cpx_data_ca[95],
954                        fp_cpx_data_ca[99],
955                        fp_cpx_data_ca[103],
956                        fp_cpx_data_ca[101],
957                        fp_cpx_data_ca[105],
958                        fp_cpx_data_ca[109],
959                        fp_cpx_data_ca[107],
960                        fp_cpx_data_ca[111],
961                        fp_cpx_data_ca[115]}),
962                .out ({
963                        fp_cpx_data_ca_buf1[85],
964                        fp_cpx_data_ca_buf1[83],
965                        fp_cpx_data_ca_buf1[87],
966                        fp_cpx_data_ca_buf1[91],
967                        fp_cpx_data_ca_buf1[89],
968                        fp_cpx_data_ca_buf1[93],
969                        fp_cpx_data_ca_buf1[97],
970                        fp_cpx_data_ca_buf1[95],
971                        fp_cpx_data_ca_buf1[99],
972                        fp_cpx_data_ca_buf1[103],
973                        fp_cpx_data_ca_buf1[101],
974                        fp_cpx_data_ca_buf1[105],
975                        fp_cpx_data_ca_buf1[109],
976                        fp_cpx_data_ca_buf1[107],
977                        fp_cpx_data_ca_buf1[111],
978                        fp_cpx_data_ca_buf1[115]})
979        );
980        fpu_rptr_fp_cpx_grp16 i_fp_cpx_buf1_7 (
981                .in ({
982                        fp_cpx_data_ca[114],
983                        fp_cpx_data_ca[116],
984                        fp_cpx_data_ca[118],
985                        fp_cpx_data_ca[120],
986                        fp_cpx_data_ca[122],
987                        fp_cpx_data_ca[124],
988                        fp_cpx_data_ca[126],
989                        fp_cpx_data_ca[65],
990                        fp_cpx_data_ca[67],
991                        fp_cpx_data_ca[69],
992                        fp_cpx_data_ca[73],
993                        fp_cpx_data_ca[71],
994                        fp_cpx_data_ca[75],
995                        fp_cpx_data_ca[79],
996                        fp_cpx_data_ca[77],
997                        fp_cpx_data_ca[81]}),
998                .out ({
999                        fp_cpx_data_ca_buf1[114],
1000                        fp_cpx_data_ca_buf1[116],
1001                        fp_cpx_data_ca_buf1[118],
1002                        fp_cpx_data_ca_buf1[120],
1003                        fp_cpx_data_ca_buf1[122],
1004                        fp_cpx_data_ca_buf1[124],
1005                        fp_cpx_data_ca_buf1[126],
1006                        fp_cpx_data_ca_buf1[65],
1007                        fp_cpx_data_ca_buf1[67],
1008                        fp_cpx_data_ca_buf1[69],
1009                        fp_cpx_data_ca_buf1[73],
1010                        fp_cpx_data_ca_buf1[71],
1011                        fp_cpx_data_ca_buf1[75],
1012                        fp_cpx_data_ca_buf1[79],
1013                        fp_cpx_data_ca_buf1[77],
1014                        fp_cpx_data_ca_buf1[81]})
1015        );
1016        fpu_rptr_fp_cpx_grp16 i_fp_cpx_buf1_8 (
1017                .in ({
1018                        fp_cpx_data_ca[82],
1019                        fp_cpx_data_ca[84],
1020                        fp_cpx_data_ca[86],
1021                        fp_cpx_data_ca[88],
1022                        fp_cpx_data_ca[90],
1023                        fp_cpx_data_ca[92],
1024                        fp_cpx_data_ca[94],
1025                        fp_cpx_data_ca[96],
1026                        fp_cpx_data_ca[98],
1027                        fp_cpx_data_ca[100],
1028                        fp_cpx_data_ca[102],
1029                        fp_cpx_data_ca[104],
1030                        fp_cpx_data_ca[106],
1031                        fp_cpx_data_ca[108],
1032                        fp_cpx_data_ca[110],
1033                        fp_cpx_data_ca[112]}),
1034                .out ({
1035                        fp_cpx_data_ca_buf1[82],
1036                        fp_cpx_data_ca_buf1[84],
1037                        fp_cpx_data_ca_buf1[86],
1038                        fp_cpx_data_ca_buf1[88],
1039                        fp_cpx_data_ca_buf1[90],
1040                        fp_cpx_data_ca_buf1[92],
1041                        fp_cpx_data_ca_buf1[94],
1042                        fp_cpx_data_ca_buf1[96],
1043                        fp_cpx_data_ca_buf1[98],
1044                        fp_cpx_data_ca_buf1[100],
1045                        fp_cpx_data_ca_buf1[102],
1046                        fp_cpx_data_ca_buf1[104],
1047                        fp_cpx_data_ca_buf1[106],
1048                        fp_cpx_data_ca_buf1[108],
1049                        fp_cpx_data_ca_buf1[110],
1050                        fp_cpx_data_ca_buf1[112]})
1051        );
1052        fpu_rptr_fp_cpx_grp16 i_fp_cpx_buf1_9 (
1053                .in ({
1054                        6'b000000,
1055                        so_buf1,
1056                        fp_cpx_data_ca[64],
1057                        fp_cpx_data_ca[66],
1058                        fp_cpx_data_ca[68],
1059                        fp_cpx_data_ca[70],
1060                        fp_cpx_data_ca[72],
1061                        fp_cpx_data_ca[74],
1062                        fp_cpx_data_ca[76],
1063                        fp_cpx_data_ca[78],
1064                        fp_cpx_data_ca[80]}),
1065                .out ({
1066                        fp_cpx_buf1_9_unused[5:0],
1067                        so,
1068                        fp_cpx_data_ca_buf1[64],
1069                        fp_cpx_data_ca_buf1[66],
1070                        fp_cpx_data_ca_buf1[68],
1071                        fp_cpx_data_ca_buf1[70],
1072                        fp_cpx_data_ca_buf1[72],
1073                        fp_cpx_data_ca_buf1[74],
1074                        fp_cpx_data_ca_buf1[76],
1075                        fp_cpx_data_ca_buf1[78],
1076                        fp_cpx_data_ca_buf1[80]})
1077        );
1078
1079        // buffer fpu_in_dp outputs  (sram din inputs) for mintiming
1080
1081        fpu_rptr_inq i_inq_sram_din_buf1 (
1082                .in (inq_sram_din_unbuf[155:0]),
1083                .out (inq_sram_din_buf1[155:0])
1084        );
1085
1086endmodule
1087
Note: See TracBrowser for help on using the repository browser.