Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / spc / tlu / rtl / tlu_dfd_dp.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: tlu_dfd_dp.v
4// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
5// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
6//
7// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8//
9// This program is free software; you can redistribute it and/or modify
10// it under the terms of the GNU General Public License as published by
11// the Free Software Foundation; version 2 of the License.
12//
13// This program is distributed in the hope that it will be useful,
14// but WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16// GNU General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program; if not, write to the Free Software
20// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21//
22// For the avoidance of doubt, and except that if any non-GPL license
23// choice is available it will apply instead, Sun elects to use only
24// the General Public License version 2 (GPLv2) at this time for any
25// software where a choice of GPL license versions is made
26// available with the language indicating that GPLv2 or any later version
27// may be used, or where a choice of which version of the GPL is applied is
28// otherwise unspecified.
29//
30// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
31// CA 95054 USA or visit www.sun.com if you need additional information or
32// have any questions.
33//
34// ========== Copyright Header End ============================================
35module tlu_dfd_dp (
36 l2clk,
37 tcu_pce_ov,
38 spc_aclk,
39 spc_bclk,
40 tcu_scan_en,
41 scan_in,
42 tcu_scan_en_wmr,
43 spc_aclk_wmr,
44 wmr_scan_in,
45 lsu_va_b,
46 pct0_target_b,
47 pct1_target_b,
48 tic_exu_address0_b,
49 tic_exu_address1_b,
50 fls0_dfd_lsu_inst_b,
51 fls1_dfd_lsu_inst_b,
52 tel0_syndrome,
53 tel1_syndrome,
54 tlu_tsa_index_0,
55 tlu_tsa_index_1,
56 ras_dsfar_0,
57 ras_dsfar_1,
58 ras_dsfar_2,
59 ras_dsfar_3,
60 ras_dsfar_4,
61 ras_dsfar_5,
62 ras_dsfar_6,
63 ras_dsfar_7,
64 ras_dsfar_sel_lsu_va,
65 ras_dsfar_sel_ras,
66 ras_dsfar_sel_tsa,
67 ras_desr_et_0,
68 ras_desr_et_1,
69 ras_desr_et_2,
70 ras_desr_et_3,
71 ras_desr_et_4,
72 ras_desr_et_5,
73 ras_desr_et_6,
74 ras_desr_et_7,
75 ras_desr_ea_0,
76 ras_desr_ea_1,
77 ras_desr_ea_2,
78 ras_desr_ea_3,
79 ras_desr_ea_4,
80 ras_desr_ea_5,
81 ras_desr_ea_6,
82 ras_desr_ea_7,
83 ras_desr_me_0,
84 ras_desr_me_1,
85 ras_desr_me_2,
86 ras_desr_me_3,
87 ras_desr_me_4,
88 ras_desr_me_5,
89 ras_desr_me_6,
90 ras_desr_me_7,
91 ras_desr_en,
92 ras_write_desr_1st,
93 ras_write_desr_2nd,
94 ras_fesr_et_0,
95 ras_fesr_et_1,
96 ras_fesr_et_2,
97 ras_fesr_et_3,
98 ras_fesr_et_4,
99 ras_fesr_et_5,
100 ras_fesr_et_6,
101 ras_fesr_et_7,
102 ras_fesr_ea_0,
103 ras_fesr_ea_1,
104 ras_fesr_ea_2,
105 ras_fesr_ea_3,
106 ras_fesr_ea_4,
107 ras_fesr_ea_5,
108 ras_fesr_ea_6,
109 ras_fesr_ea_7,
110 ras_fesr_en,
111 ras_write_fesr,
112 ras_fesr_priv,
113 ras_update_priv,
114 ras_asi_data,
115 ras_rd_dsfar,
116 ras_rd_desr,
117 ras_rd_fesr,
118 asi_wr_dsfar,
119 asi_wr_data,
120 scan_out,
121 wmr_scan_out,
122 dfd_desr_f,
123 dfd_desr_s,
124 dfd_fls_desr_f,
125 dfd_fls_desr_s,
126 dfd_fesr_f,
127 dfd_fesr_priv_0,
128 dfd_fesr_priv_1,
129 dfd_fesr_priv_2,
130 dfd_fesr_priv_3,
131 dfd_fesr_priv_4,
132 dfd_fesr_priv_5,
133 dfd_fesr_priv_6,
134 dfd_fesr_priv_7,
135 dfd_asi_data,
136 dfd_asi_desr);
137wire clk;
138wire stop;
139wire en;
140wire pce_ov;
141wire se;
142wire siclk;
143wire soclk;
144wire [54:48] wr_data_unused;
145wire [61:0] wr_data;
146wire lsu_br_va_0_lat_scanin;
147wire lsu_br_va_0_lat_scanout;
148wire [47:0] lsu_br_va_0_w;
149wire lsu_br_va_1_lat_scanin;
150wire lsu_br_va_1_lat_scanout;
151wire [47:0] lsu_br_va_1_w;
152wire va_0_w1_lat_scanin;
153wire va_0_w1_lat_scanout;
154wire [47:0] va_0_w1;
155wire va_1_w1_lat_scanin;
156wire va_1_w1_lat_scanout;
157wire [47:0] va_1_w1;
158wire dsfar_0_lat_wmr_scanin;
159wire dsfar_0_lat_wmr_scanout;
160wire [47:0] dsfar_0;
161wire dsfar_1_lat_wmr_scanin;
162wire dsfar_1_lat_wmr_scanout;
163wire [47:0] dsfar_1;
164wire dsfar_2_lat_wmr_scanin;
165wire dsfar_2_lat_wmr_scanout;
166wire [47:0] dsfar_2;
167wire dsfar_3_lat_wmr_scanin;
168wire dsfar_3_lat_wmr_scanout;
169wire [47:0] dsfar_3;
170wire dsfar_4_lat_wmr_scanin;
171wire dsfar_4_lat_wmr_scanout;
172wire [47:0] dsfar_4;
173wire dsfar_5_lat_wmr_scanin;
174wire dsfar_5_lat_wmr_scanout;
175wire [47:0] dsfar_5;
176wire dsfar_6_lat_wmr_scanin;
177wire dsfar_6_lat_wmr_scanout;
178wire [47:0] dsfar_6;
179wire dsfar_7_lat_wmr_scanin;
180wire dsfar_7_lat_wmr_scanout;
181wire [47:0] dsfar_7;
182wire desr_0_lat_wmr_scanin;
183wire desr_0_lat_wmr_scanout;
184wire [63:0] desr_0;
185wire desr_1_lat_wmr_scanin;
186wire desr_1_lat_wmr_scanout;
187wire [63:0] desr_1;
188wire desr_2_lat_wmr_scanin;
189wire desr_2_lat_wmr_scanout;
190wire [63:0] desr_2;
191wire desr_3_lat_wmr_scanin;
192wire desr_3_lat_wmr_scanout;
193wire [63:0] desr_3;
194wire desr_4_lat_wmr_scanin;
195wire desr_4_lat_wmr_scanout;
196wire [63:0] desr_4;
197wire desr_5_lat_wmr_scanin;
198wire desr_5_lat_wmr_scanout;
199wire [63:0] desr_5;
200wire desr_6_lat_wmr_scanin;
201wire desr_6_lat_wmr_scanout;
202wire [63:0] desr_6;
203wire desr_7_lat_wmr_scanin;
204wire desr_7_lat_wmr_scanout;
205wire [63:0] desr_7;
206wire fesr_0_lat_wmr_scanin;
207wire fesr_0_lat_wmr_scanout;
208wire [61:55] fesr_0;
209wire fesr_1_lat_wmr_scanin;
210wire fesr_1_lat_wmr_scanout;
211wire [61:55] fesr_1;
212wire fesr_2_lat_wmr_scanin;
213wire fesr_2_lat_wmr_scanout;
214wire [61:55] fesr_2;
215wire fesr_3_lat_wmr_scanin;
216wire fesr_3_lat_wmr_scanout;
217wire [61:55] fesr_3;
218wire fesr_4_lat_wmr_scanin;
219wire fesr_4_lat_wmr_scanout;
220wire [61:55] fesr_4;
221wire fesr_5_lat_wmr_scanin;
222wire fesr_5_lat_wmr_scanout;
223wire [61:55] fesr_5;
224wire fesr_6_lat_wmr_scanin;
225wire fesr_6_lat_wmr_scanout;
226wire [61:55] fesr_6;
227wire fesr_7_lat_wmr_scanin;
228wire fesr_7_lat_wmr_scanout;
229wire [61:55] fesr_7;
230wire [47:0] dsfar;
231wire [18:0] desr;
232wire [6:0] fesr;
233
234
235
236input l2clk;
237input tcu_pce_ov;
238input spc_aclk;
239input spc_bclk;
240input tcu_scan_en;
241input scan_in;
242
243input tcu_scan_en_wmr;
244input spc_aclk_wmr; // Warm reset (non)scan
245input wmr_scan_in;
246
247// DSFARs
248input [47:0] lsu_va_b;
249input [47:2] pct0_target_b;
250input [47:2] pct1_target_b;
251input [1:0] tic_exu_address0_b;
252input [1:0] tic_exu_address1_b;
253input fls0_dfd_lsu_inst_b;
254input fls1_dfd_lsu_inst_b;
255input [15:0] tel0_syndrome;
256input [15:0] tel1_syndrome;
257input [2:0] tlu_tsa_index_0;
258input [2:0] tlu_tsa_index_1;
259input [19:0] ras_dsfar_0;
260input [19:0] ras_dsfar_1;
261input [19:0] ras_dsfar_2;
262input [19:0] ras_dsfar_3;
263input [19:0] ras_dsfar_4;
264input [19:0] ras_dsfar_5;
265input [19:0] ras_dsfar_6;
266input [19:0] ras_dsfar_7;
267input [7:0] ras_dsfar_sel_lsu_va;
268input [7:0] ras_dsfar_sel_ras;
269input [7:0] ras_dsfar_sel_tsa;
270
271// DESRs
272input [61:56] ras_desr_et_0;
273input [61:56] ras_desr_et_1;
274input [61:56] ras_desr_et_2;
275input [61:56] ras_desr_et_3;
276input [61:56] ras_desr_et_4;
277input [61:56] ras_desr_et_5;
278input [61:56] ras_desr_et_6;
279input [61:56] ras_desr_et_7;
280input [10:0] ras_desr_ea_0;
281input [10:0] ras_desr_ea_1;
282input [10:0] ras_desr_ea_2;
283input [10:0] ras_desr_ea_3;
284input [10:0] ras_desr_ea_4;
285input [10:0] ras_desr_ea_5;
286input [10:0] ras_desr_ea_6;
287input [10:0] ras_desr_ea_7;
288input ras_desr_me_0;
289input ras_desr_me_1;
290input ras_desr_me_2;
291input ras_desr_me_3;
292input ras_desr_me_4;
293input ras_desr_me_5;
294input ras_desr_me_6;
295input ras_desr_me_7;
296input [7:0] ras_desr_en;
297input [7:0] ras_write_desr_1st;
298input [7:0] ras_write_desr_2nd;
299
300// FESRs
301input [61:60] ras_fesr_et_0;
302input [61:60] ras_fesr_et_1;
303input [61:60] ras_fesr_et_2;
304input [61:60] ras_fesr_et_3;
305input [61:60] ras_fesr_et_4;
306input [61:60] ras_fesr_et_5;
307input [61:60] ras_fesr_et_6;
308input [61:60] ras_fesr_et_7;
309input [59:55] ras_fesr_ea_0;
310input [59:55] ras_fesr_ea_1;
311input [59:55] ras_fesr_ea_2;
312input [59:55] ras_fesr_ea_3;
313input [59:55] ras_fesr_ea_4;
314input [59:55] ras_fesr_ea_5;
315input [59:55] ras_fesr_ea_6;
316input [59:55] ras_fesr_ea_7;
317input [7:0] ras_fesr_en;
318input [7:0] ras_write_fesr;
319input [59:58] ras_fesr_priv;
320input [7:0] ras_update_priv;
321
322input [3:0] ras_asi_data;
323input [7:0] ras_rd_dsfar;
324input [7:0] ras_rd_desr;
325input [7:0] ras_rd_fesr;
326
327
328input [7:0] asi_wr_dsfar;
329input [61:0] asi_wr_data;
330
331
332output scan_out;
333
334output wmr_scan_out; // Warm reset (non)scan
335
336output [7:0] dfd_desr_f;
337output [7:0] dfd_desr_s;
338output [7:0] dfd_fls_desr_f;
339output [7:0] dfd_fls_desr_s;
340output [7:0] dfd_fesr_f;
341output [1:0] dfd_fesr_priv_0;
342output [1:0] dfd_fesr_priv_1;
343output [1:0] dfd_fesr_priv_2;
344output [1:0] dfd_fesr_priv_3;
345output [1:0] dfd_fesr_priv_4;
346output [1:0] dfd_fesr_priv_5;
347output [1:0] dfd_fesr_priv_6;
348output [1:0] dfd_fesr_priv_7;
349
350output [47:0] dfd_asi_data;
351output [18:0] dfd_asi_desr;
352
353
354
355
356//////////////////////////////////////////////////////////////////////
357
358assign clk = l2clk;
359assign stop = 1'b0;
360assign en = 1'b1;
361
362tlu_dfd_dp_buff_macro__width_4 clk_control_buf (
363 .din ({tcu_pce_ov ,
364 tcu_scan_en ,
365 spc_aclk ,
366 spc_bclk }),
367 .dout ({pce_ov ,
368 se ,
369 siclk ,
370 soclk })
371);
372
373assign wr_data_unused[54:48] =
374 asi_wr_data[54:48];
375
376assign wr_data[61:55] =
377 asi_wr_data[61:55];
378assign wr_data[47:0] =
379 asi_wr_data[47:0];
380
381
382//////////////////////////////////////////////////////////////////////
383//
384// DSFARs
385//
386
387// First mux the LSU and EXU addresses together and flop for next cycle
388tlu_dfd_dp_msff_macro__mux_aope__ports_2__stack_48c__width_48 lsu_br_va_0_lat (
389 .scan_in(lsu_br_va_0_lat_scanin),
390 .scan_out(lsu_br_va_0_lat_scanout),
391 .din0 (lsu_va_b [47:0] ),
392 .din1 ({pct0_target_b [47:2],
393 tic_exu_address0_b [1:0]}),
394 .sel0 (fls0_dfd_lsu_inst_b ),
395 .en (1'b1 ),
396 .dout (lsu_br_va_0_w [47:0] ),
397 .clk(clk),
398 .se(se),
399 .siclk(siclk),
400 .soclk(soclk),
401 .pce_ov(pce_ov),
402 .stop(stop)
403);
404
405tlu_dfd_dp_msff_macro__mux_aope__ports_2__stack_48c__width_48 lsu_br_va_1_lat (
406 .scan_in(lsu_br_va_1_lat_scanin),
407 .scan_out(lsu_br_va_1_lat_scanout),
408 .din0 (lsu_va_b [47:0] ),
409 .din1 ({pct1_target_b [47:2],
410 tic_exu_address1_b [1:0]}),
411 .sel0 (fls1_dfd_lsu_inst_b ),
412 .en (1'b1 ),
413 .dout (lsu_br_va_1_w [47:0] ),
414 .clk(clk),
415 .se(se),
416 .siclk(siclk),
417 .soclk(soclk),
418 .pce_ov(pce_ov),
419 .stop(stop)
420);
421
422tlu_dfd_dp_msff_macro__stack_48c__width_48 va_0_w1_lat (
423 .scan_in(va_0_w1_lat_scanin),
424 .scan_out(va_0_w1_lat_scanout),
425 .din (lsu_br_va_0_w [47:0] ),
426 .dout (va_0_w1 [47:0] ),
427 .clk(clk),
428 .en(en),
429 .se(se),
430 .siclk(siclk),
431 .soclk(soclk),
432 .pce_ov(pce_ov),
433 .stop(stop)
434);
435
436tlu_dfd_dp_msff_macro__stack_48c__width_48 va_1_w1_lat (
437 .scan_in(va_1_w1_lat_scanin),
438 .scan_out(va_1_w1_lat_scanout),
439 .din (lsu_br_va_1_w [47:0] ),
440 .dout (va_1_w1 [47:0] ),
441 .clk(clk),
442 .en(en),
443 .se(se),
444 .siclk(siclk),
445 .soclk(soclk),
446 .pce_ov(pce_ov),
447 .stop(stop)
448);
449
450
451tlu_dfd_dp_msff_macro__mux_aope__ports_5__stack_48c__width_48 dsfar_0_lat (
452 .scan_in(dsfar_0_lat_wmr_scanin),
453 .scan_out(dsfar_0_lat_wmr_scanout),
454 .siclk(spc_aclk_wmr),
455 .se (tcu_scan_en_wmr ),
456 .din0 ({{29 {1'b0}} ,
457 tel0_syndrome [15:0],
458 tlu_tsa_index_0 [2:0]}),
459 .din1 ({{28 {1'b0}} ,
460 ras_dsfar_0 [19:0]}),
461 .din2 (va_0_w1 [47:0] ),
462 .din3 (wr_data [47:0] ),
463 .din4 (dsfar_0 [47:0] ),
464 .sel0 (ras_dsfar_sel_tsa [0 ] ),
465 .sel1 (ras_dsfar_sel_ras [0 ] ),
466 .sel2 (ras_dsfar_sel_lsu_va [0 ] ),
467 .sel3 (asi_wr_dsfar [0 ] ),
468 .dout (dsfar_0 [47:0] ),
469 .clk(clk),
470 .en(en),
471 .soclk(soclk),
472 .pce_ov(pce_ov),
473 .stop(stop)
474);
475
476tlu_dfd_dp_msff_macro__mux_aope__ports_5__stack_48c__width_48 dsfar_1_lat (
477 .scan_in(dsfar_1_lat_wmr_scanin),
478 .scan_out(dsfar_1_lat_wmr_scanout),
479 .siclk(spc_aclk_wmr),
480 .se (tcu_scan_en_wmr ),
481 .din0 ({{29 {1'b0}} ,
482 tel0_syndrome [15:0],
483 tlu_tsa_index_0 [2:0]}),
484 .din1 ({{28 {1'b0}} ,
485 ras_dsfar_1 [19:0]}),
486 .din2 (va_0_w1 [47:0] ),
487 .din3 (wr_data [47:0] ),
488 .din4 (dsfar_1 [47:0] ),
489 .sel0 (ras_dsfar_sel_tsa [1 ] ),
490 .sel1 (ras_dsfar_sel_ras [1 ] ),
491 .sel2 (ras_dsfar_sel_lsu_va [1 ] ),
492 .sel3 (asi_wr_dsfar [1 ] ),
493 .dout (dsfar_1 [47:0] ),
494 .clk(clk),
495 .en(en),
496 .soclk(soclk),
497 .pce_ov(pce_ov),
498 .stop(stop)
499);
500
501tlu_dfd_dp_msff_macro__mux_aope__ports_5__stack_48c__width_48 dsfar_2_lat (
502 .scan_in(dsfar_2_lat_wmr_scanin),
503 .scan_out(dsfar_2_lat_wmr_scanout),
504 .siclk(spc_aclk_wmr),
505 .se (tcu_scan_en_wmr ),
506 .din0 ({{29 {1'b0}} ,
507 tel0_syndrome [15:0],
508 tlu_tsa_index_0 [2:0]}),
509 .din1 ({{28 {1'b0}} ,
510 ras_dsfar_2 [19:0]}),
511 .din2 (va_0_w1 [47:0] ),
512 .din3 (wr_data [47:0] ),
513 .din4 (dsfar_2 [47:0] ),
514 .sel0 (ras_dsfar_sel_tsa [2 ] ),
515 .sel1 (ras_dsfar_sel_ras [2 ] ),
516 .sel2 (ras_dsfar_sel_lsu_va [2 ] ),
517 .sel3 (asi_wr_dsfar [2 ] ),
518 .dout (dsfar_2 [47:0] ),
519 .clk(clk),
520 .en(en),
521 .soclk(soclk),
522 .pce_ov(pce_ov),
523 .stop(stop)
524);
525
526tlu_dfd_dp_msff_macro__mux_aope__ports_5__stack_48c__width_48 dsfar_3_lat (
527 .scan_in(dsfar_3_lat_wmr_scanin),
528 .scan_out(dsfar_3_lat_wmr_scanout),
529 .siclk(spc_aclk_wmr),
530 .se (tcu_scan_en_wmr ),
531 .din0 ({{29 {1'b0}} ,
532 tel0_syndrome [15:0],
533 tlu_tsa_index_0 [2:0]}),
534 .din1 ({{28 {1'b0}} ,
535 ras_dsfar_3 [19:0]}),
536 .din2 (va_0_w1 [47:0] ),
537 .din3 (wr_data [47:0] ),
538 .din4 (dsfar_3 [47:0] ),
539 .sel0 (ras_dsfar_sel_tsa [3 ] ),
540 .sel1 (ras_dsfar_sel_ras [3 ] ),
541 .sel2 (ras_dsfar_sel_lsu_va [3 ] ),
542 .sel3 (asi_wr_dsfar [3 ] ),
543 .dout (dsfar_3 [47:0] ),
544 .clk(clk),
545 .en(en),
546 .soclk(soclk),
547 .pce_ov(pce_ov),
548 .stop(stop)
549);
550
551tlu_dfd_dp_msff_macro__mux_aope__ports_5__stack_48c__width_48 dsfar_4_lat (
552 .scan_in(dsfar_4_lat_wmr_scanin),
553 .scan_out(dsfar_4_lat_wmr_scanout),
554 .siclk(spc_aclk_wmr),
555 .se (tcu_scan_en_wmr ),
556 .din0 ({{29 {1'b0}} ,
557 tel1_syndrome [15:0],
558 tlu_tsa_index_1 [2:0]}),
559 .din1 ({{28 {1'b0}} ,
560 ras_dsfar_4 [19:0]}),
561 .din2 (va_1_w1 [47:0] ),
562 .din3 (wr_data [47:0] ),
563 .din4 (dsfar_4 [47:0] ),
564 .sel0 (ras_dsfar_sel_tsa [4 ] ),
565 .sel1 (ras_dsfar_sel_ras [4 ] ),
566 .sel2 (ras_dsfar_sel_lsu_va [4 ] ),
567 .sel3 (asi_wr_dsfar [4 ] ),
568 .dout (dsfar_4 [47:0] ),
569 .clk(clk),
570 .en(en),
571 .soclk(soclk),
572 .pce_ov(pce_ov),
573 .stop(stop)
574);
575
576tlu_dfd_dp_msff_macro__mux_aope__ports_5__stack_48c__width_48 dsfar_5_lat (
577 .scan_in(dsfar_5_lat_wmr_scanin),
578 .scan_out(dsfar_5_lat_wmr_scanout),
579 .siclk(spc_aclk_wmr),
580 .se (tcu_scan_en_wmr ),
581 .din0 ({{29 {1'b0}} ,
582 tel1_syndrome [15:0],
583 tlu_tsa_index_1 [2:0]}),
584 .din1 ({{28 {1'b0}} ,
585 ras_dsfar_5 [19:0]}),
586 .din2 (va_1_w1 [47:0] ),
587 .din3 (wr_data [47:0] ),
588 .din4 (dsfar_5 [47:0] ),
589 .sel0 (ras_dsfar_sel_tsa [5 ] ),
590 .sel1 (ras_dsfar_sel_ras [5 ] ),
591 .sel2 (ras_dsfar_sel_lsu_va [5 ] ),
592 .sel3 (asi_wr_dsfar [5 ] ),
593 .dout (dsfar_5 [47:0] ),
594 .clk(clk),
595 .en(en),
596 .soclk(soclk),
597 .pce_ov(pce_ov),
598 .stop(stop)
599);
600
601tlu_dfd_dp_msff_macro__mux_aope__ports_5__stack_48c__width_48 dsfar_6_lat (
602 .scan_in(dsfar_6_lat_wmr_scanin),
603 .scan_out(dsfar_6_lat_wmr_scanout),
604 .siclk(spc_aclk_wmr),
605 .se (tcu_scan_en_wmr ),
606 .din0 ({{29 {1'b0}} ,
607 tel1_syndrome [15:0],
608 tlu_tsa_index_1 [2:0]}),
609 .din1 ({{28 {1'b0}} ,
610 ras_dsfar_6 [19:0]}),
611 .din2 (va_1_w1 [47:0] ),
612 .din3 (wr_data [47:0] ),
613 .din4 (dsfar_6 [47:0] ),
614 .sel0 (ras_dsfar_sel_tsa [6 ] ),
615 .sel1 (ras_dsfar_sel_ras [6 ] ),
616 .sel2 (ras_dsfar_sel_lsu_va [6 ] ),
617 .sel3 (asi_wr_dsfar [6 ] ),
618 .dout (dsfar_6 [47:0] ),
619 .clk(clk),
620 .en(en),
621 .soclk(soclk),
622 .pce_ov(pce_ov),
623 .stop(stop)
624);
625
626tlu_dfd_dp_msff_macro__mux_aope__ports_5__stack_48c__width_48 dsfar_7_lat (
627 .scan_in(dsfar_7_lat_wmr_scanin),
628 .scan_out(dsfar_7_lat_wmr_scanout),
629 .siclk(spc_aclk_wmr),
630 .se (tcu_scan_en_wmr ),
631 .din0 ({{29 {1'b0}} ,
632 tel1_syndrome [15:0],
633 tlu_tsa_index_1 [2:0]}),
634 .din1 ({{28 {1'b0}} ,
635 ras_dsfar_7 [19:0]}),
636 .din2 (va_1_w1 [47:0] ),
637 .din3 (wr_data [47:0] ),
638 .din4 (dsfar_7 [47:0] ),
639 .sel0 (ras_dsfar_sel_tsa [7 ] ),
640 .sel1 (ras_dsfar_sel_ras [7 ] ),
641 .sel2 (ras_dsfar_sel_lsu_va [7 ] ),
642 .sel3 (asi_wr_dsfar [7 ] ),
643 .dout (dsfar_7 [47:0] ),
644 .clk(clk),
645 .en(en),
646 .soclk(soclk),
647 .pce_ov(pce_ov),
648 .stop(stop)
649);
650
651
652//////////////////////////////////////////////////////////////////////
653//
654// DESRs
655//
656tlu_dfd_dp_msff_macro__mux_aope__ports_4__width_19 desr_0_lat (
657 .scan_in(desr_0_lat_wmr_scanin),
658 .scan_out(desr_0_lat_wmr_scanout),
659 .siclk(spc_aclk_wmr),
660 .se (tcu_scan_en_wmr ),
661 .din0 ({1'b1 , // F
662 ras_desr_me_0 , // ME
663 ras_desr_et_0 [61:56], // S, ET
664 ras_desr_ea_0 [10:0]}), // EA
665 .din1 ({1'b1 , // F
666 1'b1 , // ME
667 desr_0 [61:56], // S, ET
668 desr_0 [10:0]}), // EA
669 .din2 ({19 {1'b0} }),
670 .din3 ({desr_0 [63 ], // F
671 desr_0 [62 ], // ME
672 desr_0 [61:56], // S, ET
673 desr_0 [10:0]}), // EA
674 .sel0 (ras_write_desr_1st [0 ] ),
675 .sel1 (ras_write_desr_2nd [0 ] ),
676 .sel2 (ras_rd_desr [0 ] ),
677 .en (ras_desr_en [0 ] ),
678 .dout ({desr_0 [63 ], // F
679 desr_0 [62 ], // ME
680 desr_0 [61:56], // S, ET
681 desr_0 [10:0]}), // EA
682 .clk(clk),
683 .soclk(soclk),
684 .pce_ov(pce_ov),
685 .stop(stop)
686);
687
688tlu_dfd_dp_msff_macro__mux_aope__ports_4__width_19 desr_1_lat (
689 .scan_in(desr_1_lat_wmr_scanin),
690 .scan_out(desr_1_lat_wmr_scanout),
691 .siclk(spc_aclk_wmr),
692 .se (tcu_scan_en_wmr ),
693 .din0 ({1'b1 , // F
694 ras_desr_me_1 , // ME
695 ras_desr_et_1 [61:56], // S, ET
696 ras_desr_ea_1 [10:0]}), // EA
697 .din1 ({1'b1 , // F
698 1'b1 , // ME
699 desr_1 [61:56], // S, ET
700 desr_1 [10:0]}), // EA
701 .din2 ({19 {1'b0} }),
702 .din3 ({desr_1 [63 ], // F
703 desr_1 [62 ], // ME
704 desr_1 [61:56], // S, ET
705 desr_1 [10:0]}), // EA
706 .sel0 (ras_write_desr_1st [1 ] ),
707 .sel1 (ras_write_desr_2nd [1 ] ),
708 .sel2 (ras_rd_desr [1 ] ),
709 .en (ras_desr_en [1 ] ),
710 .dout ({desr_1 [63 ], // F
711 desr_1 [62 ], // ME
712 desr_1 [61:56], // S, ET
713 desr_1 [10:0]}), // EA
714 .clk(clk),
715 .soclk(soclk),
716 .pce_ov(pce_ov),
717 .stop(stop)
718);
719
720tlu_dfd_dp_msff_macro__mux_aope__ports_4__width_19 desr_2_lat (
721 .scan_in(desr_2_lat_wmr_scanin),
722 .scan_out(desr_2_lat_wmr_scanout),
723 .siclk(spc_aclk_wmr),
724 .se (tcu_scan_en_wmr ),
725 .din0 ({1'b1 , // F
726 ras_desr_me_2 , // ME
727 ras_desr_et_2 [61:56], // S, ET
728 ras_desr_ea_2 [10:0]}), // EA
729 .din1 ({1'b1 , // F
730 1'b1 , // ME
731 desr_2 [61:56], // S, ET
732 desr_2 [10:0]}), // EA
733 .din2 ({19 {1'b0} }),
734 .din3 ({desr_2 [63 ], // F
735 desr_2 [62 ], // ME
736 desr_2 [61:56], // S, ET
737 desr_2 [10:0]}), // EA
738 .sel0 (ras_write_desr_1st [2 ] ),
739 .sel1 (ras_write_desr_2nd [2 ] ),
740 .sel2 (ras_rd_desr [2 ] ),
741 .en (ras_desr_en [2 ] ),
742 .dout ({desr_2 [63 ], // F
743 desr_2 [62 ], // ME
744 desr_2 [61:56], // S, ET
745 desr_2 [10:0]}), // EA
746 .clk(clk),
747 .soclk(soclk),
748 .pce_ov(pce_ov),
749 .stop(stop)
750);
751
752tlu_dfd_dp_msff_macro__mux_aope__ports_4__width_19 desr_3_lat (
753 .scan_in(desr_3_lat_wmr_scanin),
754 .scan_out(desr_3_lat_wmr_scanout),
755 .siclk(spc_aclk_wmr),
756 .se (tcu_scan_en_wmr ),
757 .din0 ({1'b1 , // F
758 ras_desr_me_3 , // ME
759 ras_desr_et_3 [61:56], // S, ET
760 ras_desr_ea_3 [10:0]}), // EA
761 .din1 ({1'b1 , // F
762 1'b1 , // ME
763 desr_3 [61:56], // S, ET
764 desr_3 [10:0]}), // EA
765 .din2 ({19 {1'b0} }),
766 .din3 ({desr_3 [63 ], // F
767 desr_3 [62 ], // ME
768 desr_3 [61:56], // S, ET
769 desr_3 [10:0]}), // EA
770 .sel0 (ras_write_desr_1st [3 ] ),
771 .sel1 (ras_write_desr_2nd [3 ] ),
772 .sel2 (ras_rd_desr [3 ] ),
773 .en (ras_desr_en [3 ] ),
774 .dout ({desr_3 [63 ], // F
775 desr_3 [62 ], // ME
776 desr_3 [61:56], // S, ET
777 desr_3 [10:0]}), // EA
778 .clk(clk),
779 .soclk(soclk),
780 .pce_ov(pce_ov),
781 .stop(stop)
782);
783
784tlu_dfd_dp_msff_macro__mux_aope__ports_4__width_19 desr_4_lat (
785 .scan_in(desr_4_lat_wmr_scanin),
786 .scan_out(desr_4_lat_wmr_scanout),
787 .siclk(spc_aclk_wmr),
788 .se (tcu_scan_en_wmr ),
789 .din0 ({1'b1 , // F
790 ras_desr_me_4 , // ME
791 ras_desr_et_4 [61:56], // S, ET
792 ras_desr_ea_4 [10:0]}), // EA
793 .din1 ({1'b1 , // F
794 1'b1 , // ME
795 desr_4 [61:56], // S, ET
796 desr_4 [10:0]}), // EA
797 .din2 ({19 {1'b0} }),
798 .din3 ({desr_4 [63 ], // F
799 desr_4 [62 ], // ME
800 desr_4 [61:56], // S, ET
801 desr_4 [10:0]}), // EA
802 .sel0 (ras_write_desr_1st [4 ] ),
803 .sel1 (ras_write_desr_2nd [4 ] ),
804 .sel2 (ras_rd_desr [4 ] ),
805 .en (ras_desr_en [4 ] ),
806 .dout ({desr_4 [63 ], // F
807 desr_4 [62 ], // ME
808 desr_4 [61:56], // S, ET
809 desr_4 [10:0]}), // EA
810 .clk(clk),
811 .soclk(soclk),
812 .pce_ov(pce_ov),
813 .stop(stop)
814);
815
816tlu_dfd_dp_msff_macro__mux_aope__ports_4__width_19 desr_5_lat (
817 .scan_in(desr_5_lat_wmr_scanin),
818 .scan_out(desr_5_lat_wmr_scanout),
819 .siclk(spc_aclk_wmr),
820 .se (tcu_scan_en_wmr ),
821 .din0 ({1'b1 , // F
822 ras_desr_me_5 , // ME
823 ras_desr_et_5 [61:56], // S, ET
824 ras_desr_ea_5 [10:0]}), // EA
825 .din1 ({1'b1 , // F
826 1'b1 , // ME
827 desr_5 [61:56], // S, ET
828 desr_5 [10:0]}), // EA
829 .din2 ({19 {1'b0} }),
830 .din3 ({desr_5 [63 ], // F
831 desr_5 [62 ], // ME
832 desr_5 [61:56], // S, ET
833 desr_5 [10:0]}), // EA
834 .sel0 (ras_write_desr_1st [5 ] ),
835 .sel1 (ras_write_desr_2nd [5 ] ),
836 .sel2 (ras_rd_desr [5 ] ),
837 .en (ras_desr_en [5 ] ),
838 .dout ({desr_5 [63 ], // F
839 desr_5 [62 ], // ME
840 desr_5 [61:56], // S, ET
841 desr_5 [10:0]}), // EA
842 .clk(clk),
843 .soclk(soclk),
844 .pce_ov(pce_ov),
845 .stop(stop)
846);
847
848tlu_dfd_dp_msff_macro__mux_aope__ports_4__width_19 desr_6_lat (
849 .scan_in(desr_6_lat_wmr_scanin),
850 .scan_out(desr_6_lat_wmr_scanout),
851 .siclk(spc_aclk_wmr),
852 .se (tcu_scan_en_wmr ),
853 .din0 ({1'b1 , // F
854 ras_desr_me_6 , // ME
855 ras_desr_et_6 [61:56], // S, ET
856 ras_desr_ea_6 [10:0]}), // EA
857 .din1 ({1'b1 , // F
858 1'b1 , // ME
859 desr_6 [61:56], // S, ET
860 desr_6 [10:0]}), // EA
861 .din2 ({19 {1'b0} }),
862 .din3 ({desr_6 [63 ], // F
863 desr_6 [62 ], // ME
864 desr_6 [61:56], // S, ET
865 desr_6 [10:0]}), // EA
866 .sel0 (ras_write_desr_1st [6 ] ),
867 .sel1 (ras_write_desr_2nd [6 ] ),
868 .sel2 (ras_rd_desr [6 ] ),
869 .en (ras_desr_en [6 ] ),
870 .dout ({desr_6 [63 ], // F
871 desr_6 [62 ], // ME
872 desr_6 [61:56], // S, ET
873 desr_6 [10:0]}), // EA
874 .clk(clk),
875 .soclk(soclk),
876 .pce_ov(pce_ov),
877 .stop(stop)
878);
879
880tlu_dfd_dp_msff_macro__mux_aope__ports_4__width_19 desr_7_lat (
881 .scan_in(desr_7_lat_wmr_scanin),
882 .scan_out(desr_7_lat_wmr_scanout),
883 .siclk(spc_aclk_wmr),
884 .se (tcu_scan_en_wmr ),
885 .din0 ({1'b1 , // F
886 ras_desr_me_7 , // ME
887 ras_desr_et_7 [61:56], // S, ET
888 ras_desr_ea_7 [10:0]}), // EA
889 .din1 ({1'b1 , // F
890 1'b1 , // ME
891 desr_7 [61:56], // S, ET
892 desr_7 [10:0]}), // EA
893 .din2 ({19 {1'b0} }),
894 .din3 ({desr_7 [63 ], // F
895 desr_7 [62 ], // ME
896 desr_7 [61:56], // S, ET
897 desr_7 [10:0]}), // EA
898 .sel0 (ras_write_desr_1st [7 ] ),
899 .sel1 (ras_write_desr_2nd [7 ] ),
900 .sel2 (ras_rd_desr [7 ] ),
901 .en (ras_desr_en [7 ] ),
902 .dout ({desr_7 [63 ], // F
903 desr_7 [62 ], // ME
904 desr_7 [61:56], // S, ET
905 desr_7 [10:0]}), // EA
906 .clk(clk),
907 .soclk(soclk),
908 .pce_ov(pce_ov),
909 .stop(stop)
910);
911
912assign dfd_desr_f[7:0] =
913 {desr_7[63], desr_6[63], desr_5[63], desr_4[63],
914 desr_3[63], desr_2[63], desr_1[63], desr_0[63]};
915
916assign dfd_desr_s[7:0] =
917 {desr_7[61], desr_6[61], desr_5[61], desr_4[61],
918 desr_3[61], desr_2[61], desr_1[61], desr_0[61]};
919
920tlu_dfd_dp_buff_macro__rep_1__stack_none__width_8 desr_f_buf (
921 .din ({desr_7[63], desr_6[63], desr_5[63], desr_4[63],
922 desr_3[63], desr_2[63], desr_1[63], desr_0[63]}),
923 .dout (dfd_fls_desr_f [7:0] )
924);
925
926tlu_dfd_dp_buff_macro__rep_1__stack_none__width_8 desr_s_buf (
927 .din ({desr_7[61], desr_6[61], desr_5[61], desr_4[61],
928 desr_3[61], desr_2[61], desr_1[61], desr_0[61]}),
929 .dout (dfd_fls_desr_s [7:0] )
930);
931
932
933
934//////////////////////////////////////////////////////////////////////
935//
936// FESRs
937//
938
939tlu_dfd_dp_msff_macro__mux_aonpe__ports_3__width_7 fesr_0_lat (
940 .scan_in(fesr_0_lat_wmr_scanin),
941 .scan_out(fesr_0_lat_wmr_scanout),
942 .siclk(spc_aclk_wmr),
943 .se (tcu_scan_en_wmr ),
944 .din0 ({ras_fesr_et_0 [61:60], // ET
945 ras_fesr_ea_0 [59:55]}), // PL, STBI
946 .din1 ({fesr_0 [61:60], // ET
947 ras_fesr_priv [59:58], // PL
948 fesr_0 [57:55]}), // STBI
949 .din2 ({7 {1'b0}} ),
950 .sel0 (ras_write_fesr [0 ] ),
951 .sel1 (ras_update_priv [0 ] ),
952 .sel2 (ras_rd_fesr [0 ] ),
953 .en (ras_fesr_en [0 ] ),
954 .dout ({fesr_0 [61:60], // ET
955 fesr_0 [59:58], // PL
956 fesr_0 [57:55]}), // STBI
957 .clk(clk),
958 .soclk(soclk),
959 .pce_ov(pce_ov),
960 .stop(stop)
961);
962
963tlu_dfd_dp_msff_macro__mux_aonpe__ports_3__width_7 fesr_1_lat (
964 .scan_in(fesr_1_lat_wmr_scanin),
965 .scan_out(fesr_1_lat_wmr_scanout),
966 .siclk(spc_aclk_wmr),
967 .se (tcu_scan_en_wmr ),
968 .din0 ({ras_fesr_et_1 [61:60], // ET
969 ras_fesr_ea_1 [59:55]}), // PL, STBI
970 .din1 ({fesr_1 [61:60], // ET
971 ras_fesr_priv [59:58], // PL
972 fesr_1 [57:55]}), // STBI
973 .din2 ({7 {1'b0}} ),
974 .sel0 (ras_write_fesr [1 ] ),
975 .sel1 (ras_update_priv [1 ] ),
976 .sel2 (ras_rd_fesr [1 ] ),
977 .en (ras_fesr_en [1 ] ),
978 .dout ({fesr_1 [61:60], // ET
979 fesr_1 [59:58], // PL
980 fesr_1 [57:55]}), // STBI
981 .clk(clk),
982 .soclk(soclk),
983 .pce_ov(pce_ov),
984 .stop(stop)
985);
986
987tlu_dfd_dp_msff_macro__mux_aonpe__ports_3__width_7 fesr_2_lat (
988 .scan_in(fesr_2_lat_wmr_scanin),
989 .scan_out(fesr_2_lat_wmr_scanout),
990 .siclk(spc_aclk_wmr),
991 .se (tcu_scan_en_wmr ),
992 .din0 ({ras_fesr_et_2 [61:60], // ET
993 ras_fesr_ea_2 [59:55]}), // PL, STBI
994 .din1 ({fesr_2 [61:60], // ET
995 ras_fesr_priv [59:58], // PL
996 fesr_2 [57:55]}), // STBI
997 .din2 ({7 {1'b0}} ),
998 .sel0 (ras_write_fesr [2 ] ),
999 .sel1 (ras_update_priv [2 ] ),
1000 .sel2 (ras_rd_fesr [2 ] ),
1001 .en (ras_fesr_en [2 ] ),
1002 .dout ({fesr_2 [61:60], // ET
1003 fesr_2 [59:58], // PL
1004 fesr_2 [57:55]}), // STBI
1005 .clk(clk),
1006 .soclk(soclk),
1007 .pce_ov(pce_ov),
1008 .stop(stop)
1009);
1010
1011tlu_dfd_dp_msff_macro__mux_aonpe__ports_3__width_7 fesr_3_lat (
1012 .scan_in(fesr_3_lat_wmr_scanin),
1013 .scan_out(fesr_3_lat_wmr_scanout),
1014 .siclk(spc_aclk_wmr),
1015 .se (tcu_scan_en_wmr ),
1016 .din0 ({ras_fesr_et_3 [61:60], // ET
1017 ras_fesr_ea_3 [59:55]}), // PL, STBI
1018 .din1 ({fesr_3 [61:60], // ET
1019 ras_fesr_priv [59:58], // PL
1020 fesr_3 [57:55]}), // STBI
1021 .din2 ({7 {1'b0}} ),
1022 .sel0 (ras_write_fesr [3 ] ),
1023 .sel1 (ras_update_priv [3 ] ),
1024 .sel2 (ras_rd_fesr [3 ] ),
1025 .en (ras_fesr_en [3 ] ),
1026 .dout ({fesr_3 [61:60], // ET
1027 fesr_3 [59:58], // PL
1028 fesr_3 [57:55]}), // STBI
1029 .clk(clk),
1030 .soclk(soclk),
1031 .pce_ov(pce_ov),
1032 .stop(stop)
1033);
1034
1035tlu_dfd_dp_msff_macro__mux_aonpe__ports_3__width_7 fesr_4_lat (
1036 .scan_in(fesr_4_lat_wmr_scanin),
1037 .scan_out(fesr_4_lat_wmr_scanout),
1038 .siclk(spc_aclk_wmr),
1039 .se (tcu_scan_en_wmr ),
1040 .din0 ({ras_fesr_et_4 [61:60], // ET
1041 ras_fesr_ea_4 [59:55]}), // PL, STBI
1042 .din1 ({fesr_4 [61:60], // ET
1043 ras_fesr_priv [59:58], // PL
1044 fesr_4 [57:55]}), // STBI
1045 .din2 ({7 {1'b0}} ),
1046 .sel0 (ras_write_fesr [4 ] ),
1047 .sel1 (ras_update_priv [4 ] ),
1048 .sel2 (ras_rd_fesr [4 ] ),
1049 .en (ras_fesr_en [4 ] ),
1050 .dout ({fesr_4 [61:60], // ET
1051 fesr_4 [59:58], // PL
1052 fesr_4 [57:55]}), // STBI
1053 .clk(clk),
1054 .soclk(soclk),
1055 .pce_ov(pce_ov),
1056 .stop(stop)
1057);
1058
1059tlu_dfd_dp_msff_macro__mux_aonpe__ports_3__width_7 fesr_5_lat (
1060 .scan_in(fesr_5_lat_wmr_scanin),
1061 .scan_out(fesr_5_lat_wmr_scanout),
1062 .siclk(spc_aclk_wmr),
1063 .se (tcu_scan_en_wmr ),
1064 .din0 ({ras_fesr_et_5 [61:60], // ET
1065 ras_fesr_ea_5 [59:55]}), // PL, STBI
1066 .din1 ({fesr_5 [61:60], // ET
1067 ras_fesr_priv [59:58], // PL
1068 fesr_5 [57:55]}), // STBI
1069 .din2 ({7 {1'b0}} ),
1070 .sel0 (ras_write_fesr [5 ] ),
1071 .sel1 (ras_update_priv [5 ] ),
1072 .sel2 (ras_rd_fesr [5 ] ),
1073 .en (ras_fesr_en [5 ] ),
1074 .dout ({fesr_5 [61:60], // ET
1075 fesr_5 [59:58], // PL
1076 fesr_5 [57:55]}), // STBI
1077 .clk(clk),
1078 .soclk(soclk),
1079 .pce_ov(pce_ov),
1080 .stop(stop)
1081);
1082
1083tlu_dfd_dp_msff_macro__mux_aonpe__ports_3__width_7 fesr_6_lat (
1084 .scan_in(fesr_6_lat_wmr_scanin),
1085 .scan_out(fesr_6_lat_wmr_scanout),
1086 .siclk(spc_aclk_wmr),
1087 .se (tcu_scan_en_wmr ),
1088 .din0 ({ras_fesr_et_6 [61:60], // ET
1089 ras_fesr_ea_6 [59:55]}), // PL, STBI
1090 .din1 ({fesr_6 [61:60], // ET
1091 ras_fesr_priv [59:58], // PL
1092 fesr_6 [57:55]}), // STBI
1093 .din2 ({7 {1'b0}} ),
1094 .sel0 (ras_write_fesr [6 ] ),
1095 .sel1 (ras_update_priv [6 ] ),
1096 .sel2 (ras_rd_fesr [6 ] ),
1097 .en (ras_fesr_en [6 ] ),
1098 .dout ({fesr_6 [61:60], // ET
1099 fesr_6 [59:58], // PL
1100 fesr_6 [57:55]}), // STBI
1101 .clk(clk),
1102 .soclk(soclk),
1103 .pce_ov(pce_ov),
1104 .stop(stop)
1105);
1106
1107tlu_dfd_dp_msff_macro__mux_aonpe__ports_3__width_7 fesr_7_lat (
1108 .scan_in(fesr_7_lat_wmr_scanin),
1109 .scan_out(fesr_7_lat_wmr_scanout),
1110 .siclk(spc_aclk_wmr),
1111 .se (tcu_scan_en_wmr ),
1112 .din0 ({ras_fesr_et_7 [61:60], // ET
1113 ras_fesr_ea_7 [59:55]}), // PL, STBI
1114 .din1 ({fesr_7 [61:60], // ET
1115 ras_fesr_priv [59:58], // PL
1116 fesr_7 [57:55]}), // STBI
1117 .din2 ({7 {1'b0}} ),
1118 .sel0 (ras_write_fesr [7 ] ),
1119 .sel1 (ras_update_priv [7 ] ),
1120 .sel2 (ras_rd_fesr [7 ] ),
1121 .en (ras_fesr_en [7 ] ),
1122 .dout ({fesr_7 [61:60], // ET
1123 fesr_7 [59:58], // PL
1124 fesr_7 [57:55]}), // STBI
1125 .clk(clk),
1126 .soclk(soclk),
1127 .pce_ov(pce_ov),
1128 .stop(stop)
1129);
1130
1131tlu_dfd_dp_or_macro__ports_2__width_8 fesr_f_or (
1132 .din0 ({fesr_7 [61 ],
1133 fesr_6 [61 ],
1134 fesr_5 [61 ],
1135 fesr_4 [61 ],
1136 fesr_3 [61 ],
1137 fesr_2 [61 ],
1138 fesr_1 [61 ],
1139 fesr_0 [61 ]}),
1140 .din1 ({fesr_7 [60 ],
1141 fesr_6 [60 ],
1142 fesr_5 [60 ],
1143 fesr_4 [60 ],
1144 fesr_3 [60 ],
1145 fesr_2 [60 ],
1146 fesr_1 [60 ],
1147 fesr_0 [60 ]}),
1148 .dout (dfd_fesr_f [7:0] )
1149);
1150
1151tlu_dfd_dp_buff_macro__dbuff_16x__width_16 fesr_priv_buf (
1152 .din ({fesr_7 [59:58],
1153 fesr_6 [59:58],
1154 fesr_5 [59:58],
1155 fesr_4 [59:58],
1156 fesr_3 [59:58],
1157 fesr_2 [59:58],
1158 fesr_1 [59:58],
1159 fesr_0 [59:58]}),
1160 .dout ({dfd_fesr_priv_7 [1:0],
1161 dfd_fesr_priv_6 [1:0],
1162 dfd_fesr_priv_5 [1:0],
1163 dfd_fesr_priv_4 [1:0],
1164 dfd_fesr_priv_3 [1:0],
1165 dfd_fesr_priv_2 [1:0],
1166 dfd_fesr_priv_1 [1:0],
1167 dfd_fesr_priv_0 [1:0]})
1168);
1169
1170
1171//////////////////////////////////////////////////////////////////////
1172//
1173// Mux read data
1174//
1175
1176tlu_dfd_dp_mux_macro__mux_aonpe__ports_8__stack_48c__width_48 dsfar_mux (
1177 .din0 (dsfar_0 [47:0] ),
1178 .din1 (dsfar_1 [47:0] ),
1179 .din2 (dsfar_2 [47:0] ),
1180 .din3 (dsfar_3 [47:0] ),
1181 .din4 (dsfar_4 [47:0] ),
1182 .din5 (dsfar_5 [47:0] ),
1183 .din6 (dsfar_6 [47:0] ),
1184 .din7 (dsfar_7 [47:0] ),
1185 .sel0 (ras_rd_dsfar [0 ] ),
1186 .sel1 (ras_rd_dsfar [1 ] ),
1187 .sel2 (ras_rd_dsfar [2 ] ),
1188 .sel3 (ras_rd_dsfar [3 ] ),
1189 .sel4 (ras_rd_dsfar [4 ] ),
1190 .sel5 (ras_rd_dsfar [5 ] ),
1191 .sel6 (ras_rd_dsfar [6 ] ),
1192 .sel7 (ras_rd_dsfar [7 ] ),
1193 .dout (dsfar [47:0] )
1194);
1195
1196tlu_dfd_dp_mux_macro__dmux_8x__mux_aonpe__ports_8__width_19 desr_mux (
1197 .din0 ({desr_0 [63 ], // F
1198 desr_0 [62 ], // ME
1199 desr_0 [61:56], // S, ET
1200 desr_0 [10:0]}), // EA
1201 .din1 ({desr_1 [63 ], // F
1202 desr_1 [62 ], // ME
1203 desr_1 [61:56], // S, ET
1204 desr_1 [10:0]}), // EA
1205 .din2 ({desr_2 [63 ], // F
1206 desr_2 [62 ], // ME
1207 desr_2 [61:56], // S, ET
1208 desr_2 [10:0]}), // EA
1209 .din3 ({desr_3 [63 ], // F
1210 desr_3 [62 ], // ME
1211 desr_3 [61:56], // S, ET
1212 desr_3 [10:0]}), // EA
1213 .din4 ({desr_4 [63 ], // F
1214 desr_4 [62 ], // ME
1215 desr_4 [61:56], // S, ET
1216 desr_4 [10:0]}), // EA
1217 .din5 ({desr_5 [63 ], // F
1218 desr_5 [62 ], // ME
1219 desr_5 [61:56], // S, ET
1220 desr_5 [10:0]}), // EA
1221 .din6 ({desr_6 [63 ], // F
1222 desr_6 [62 ], // ME
1223 desr_6 [61:56], // S, ET
1224 desr_6 [10:0]}), // EA
1225 .din7 ({desr_7 [63 ], // F
1226 desr_7 [62 ], // ME
1227 desr_7 [61:56], // S, ET
1228 desr_7 [10:0]}), // EA
1229 .sel0 (ras_rd_desr [0 ] ),
1230 .sel1 (ras_rd_desr [1 ] ),
1231 .sel2 (ras_rd_desr [2 ] ),
1232 .sel3 (ras_rd_desr [3 ] ),
1233 .sel4 (ras_rd_desr [4 ] ),
1234 .sel5 (ras_rd_desr [5 ] ),
1235 .sel6 (ras_rd_desr [6 ] ),
1236 .sel7 (ras_rd_desr [7 ] ),
1237 .dout (desr [18:0] )
1238);
1239
1240// Next stage of muxing in tlu_asi_ctl
1241assign dfd_asi_desr[18:0] =
1242 desr[18:0];
1243
1244tlu_dfd_dp_mux_macro__mux_aonpe__ports_8__width_7 fesr_mux (
1245 .din0 ({fesr_0 [61:60], // ET
1246 fesr_0 [59:58], // PL
1247 fesr_0 [57:55]}), // STBI
1248 .din1 ({fesr_1 [61:60], // ET
1249 fesr_1 [59:58], // PL
1250 fesr_1 [57:55]}), // STBI
1251 .din2 ({fesr_2 [61:60], // ET
1252 fesr_2 [59:58], // PL
1253 fesr_2 [57:55]}), // STBI
1254 .din3 ({fesr_3 [61:60], // ET
1255 fesr_3 [59:58], // PL
1256 fesr_3 [57:55]}), // STBI
1257 .din4 ({fesr_4 [61:60], // ET
1258 fesr_4 [59:58], // PL
1259 fesr_4 [57:55]}), // STBI
1260 .din5 ({fesr_5 [61:60], // ET
1261 fesr_5 [59:58], // PL
1262 fesr_5 [57:55]}), // STBI
1263 .din6 ({fesr_6 [61:60], // ET
1264 fesr_6 [59:58], // PL
1265 fesr_6 [57:55]}), // STBI
1266 .din7 ({fesr_7 [61:60], // ET
1267 fesr_7 [59:58], // PL
1268 fesr_7 [57:55]}), // STBI
1269 .sel0 (ras_rd_fesr [0 ] ),
1270 .sel1 (ras_rd_fesr [1 ] ),
1271 .sel2 (ras_rd_fesr [2 ] ),
1272 .sel3 (ras_rd_fesr [3 ] ),
1273 .sel4 (ras_rd_fesr [4 ] ),
1274 .sel5 (ras_rd_fesr [5 ] ),
1275 .sel6 (ras_rd_fesr [6 ] ),
1276 .sel7 (ras_rd_fesr [7 ] ),
1277 .dout (fesr [6:0] )
1278);
1279
1280
1281// Map of how the various registers get merged into the ASI bus in DFD
1282// dfd_asi_data 47:41 40:37 36:19 18:0
1283// dsfar 47:41 40:37 36:19 18:0
1284// fesr 6:0
1285// desr 18:0
1286// dsfsr/{0,isfsr} 40:37
1287
1288tlu_dfd_dp_or_macro__ports_2__stack_48c__width_48 asi_data_or (
1289 .din0 (dsfar [47:0] ),
1290 .din1 ({fesr [6:0],
1291 ras_asi_data [3:0],
1292 {18 {1'b0}} ,
1293 {19 {1'b0}} }),
1294 .dout (dfd_asi_data [47:0] )
1295);
1296
1297
1298
1299
1300
1301
1302// fixscan start:
1303assign lsu_br_va_0_lat_scanin = scan_in ;
1304assign lsu_br_va_1_lat_scanin = lsu_br_va_0_lat_scanout ;
1305assign va_0_w1_lat_scanin = lsu_br_va_1_lat_scanout ;
1306assign va_1_w1_lat_scanin = va_0_w1_lat_scanout ;
1307assign scan_out = va_1_w1_lat_scanout ;
1308
1309assign dsfar_0_lat_wmr_scanin = wmr_scan_in ;
1310assign dsfar_1_lat_wmr_scanin = dsfar_0_lat_wmr_scanout ;
1311assign dsfar_2_lat_wmr_scanin = dsfar_1_lat_wmr_scanout ;
1312assign dsfar_3_lat_wmr_scanin = dsfar_2_lat_wmr_scanout ;
1313assign dsfar_4_lat_wmr_scanin = dsfar_3_lat_wmr_scanout ;
1314assign dsfar_5_lat_wmr_scanin = dsfar_4_lat_wmr_scanout ;
1315assign dsfar_6_lat_wmr_scanin = dsfar_5_lat_wmr_scanout ;
1316assign dsfar_7_lat_wmr_scanin = dsfar_6_lat_wmr_scanout ;
1317assign desr_0_lat_wmr_scanin = dsfar_7_lat_wmr_scanout ;
1318assign desr_1_lat_wmr_scanin = desr_0_lat_wmr_scanout ;
1319assign desr_2_lat_wmr_scanin = desr_1_lat_wmr_scanout ;
1320assign desr_3_lat_wmr_scanin = desr_2_lat_wmr_scanout ;
1321assign desr_4_lat_wmr_scanin = desr_3_lat_wmr_scanout ;
1322assign desr_5_lat_wmr_scanin = desr_4_lat_wmr_scanout ;
1323assign desr_6_lat_wmr_scanin = desr_5_lat_wmr_scanout ;
1324assign desr_7_lat_wmr_scanin = desr_6_lat_wmr_scanout ;
1325assign fesr_0_lat_wmr_scanin = desr_7_lat_wmr_scanout ;
1326assign fesr_1_lat_wmr_scanin = fesr_0_lat_wmr_scanout ;
1327assign fesr_2_lat_wmr_scanin = fesr_1_lat_wmr_scanout ;
1328assign fesr_3_lat_wmr_scanin = fesr_2_lat_wmr_scanout ;
1329assign fesr_4_lat_wmr_scanin = fesr_3_lat_wmr_scanout ;
1330assign fesr_5_lat_wmr_scanin = fesr_4_lat_wmr_scanout ;
1331assign fesr_6_lat_wmr_scanin = fesr_5_lat_wmr_scanout ;
1332assign fesr_7_lat_wmr_scanin = fesr_6_lat_wmr_scanout ;
1333assign wmr_scan_out = fesr_7_lat_wmr_scanout ;
1334// fixscan end:
1335endmodule
1336
1337
1338
1339
1340//
1341// buff macro
1342//
1343//
1344
1345
1346
1347
1348
1349module tlu_dfd_dp_buff_macro__width_4 (
1350 din,
1351 dout);
1352 input [3:0] din;
1353 output [3:0] dout;
1354
1355
1356
1357
1358
1359
1360buff #(4) d0_0 (
1361.in(din[3:0]),
1362.out(dout[3:0])
1363);
1364
1365
1366
1367
1368
1369
1370
1371
1372endmodule
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382// any PARAMS parms go into naming of macro
1383
1384module tlu_dfd_dp_msff_macro__mux_aope__ports_2__stack_48c__width_48 (
1385 din0,
1386 din1,
1387 sel0,
1388 clk,
1389 en,
1390 se,
1391 scan_in,
1392 siclk,
1393 soclk,
1394 pce_ov,
1395 stop,
1396 dout,
1397 scan_out);
1398wire psel0;
1399wire psel1;
1400wire [47:0] muxout;
1401wire l1clk;
1402wire siclk_out;
1403wire soclk_out;
1404wire [46:0] so;
1405
1406 input [47:0] din0;
1407 input [47:0] din1;
1408 input sel0;
1409
1410
1411 input clk;
1412 input en;
1413 input se;
1414 input scan_in;
1415 input siclk;
1416 input soclk;
1417 input pce_ov;
1418 input stop;
1419
1420
1421
1422 output [47:0] dout;
1423
1424
1425 output scan_out;
1426
1427
1428
1429
1430cl_dp1_penc2_8x c1_0 (
1431 .sel0(sel0),
1432 .psel0(psel0),
1433 .psel1(psel1)
1434);
1435
1436mux2s #(48) d1_0 (
1437 .sel0(psel0),
1438 .sel1(psel1),
1439 .in0(din0[47:0]),
1440 .in1(din1[47:0]),
1441.dout(muxout[47:0])
1442);
1443cl_dp1_l1hdr_8x c0_0 (
1444.l2clk(clk),
1445.pce(en),
1446.aclk(siclk),
1447.bclk(soclk),
1448.l1clk(l1clk),
1449 .se(se),
1450 .pce_ov(pce_ov),
1451 .stop(stop),
1452 .siclk_out(siclk_out),
1453 .soclk_out(soclk_out)
1454);
1455dff #(48) d0_0 (
1456.l1clk(l1clk),
1457.siclk(siclk_out),
1458.soclk(soclk_out),
1459.d(muxout[47:0]),
1460.si({scan_in,so[46:0]}),
1461.so({so[46:0],scan_out}),
1462.q(dout[47:0])
1463);
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484endmodule
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498// any PARAMS parms go into naming of macro
1499
1500module tlu_dfd_dp_msff_macro__stack_48c__width_48 (
1501 din,
1502 clk,
1503 en,
1504 se,
1505 scan_in,
1506 siclk,
1507 soclk,
1508 pce_ov,
1509 stop,
1510 dout,
1511 scan_out);
1512wire l1clk;
1513wire siclk_out;
1514wire soclk_out;
1515wire [46:0] so;
1516
1517 input [47:0] din;
1518
1519
1520 input clk;
1521 input en;
1522 input se;
1523 input scan_in;
1524 input siclk;
1525 input soclk;
1526 input pce_ov;
1527 input stop;
1528
1529
1530
1531 output [47:0] dout;
1532
1533
1534 output scan_out;
1535
1536
1537
1538
1539cl_dp1_l1hdr_8x c0_0 (
1540.l2clk(clk),
1541.pce(en),
1542.aclk(siclk),
1543.bclk(soclk),
1544.l1clk(l1clk),
1545 .se(se),
1546 .pce_ov(pce_ov),
1547 .stop(stop),
1548 .siclk_out(siclk_out),
1549 .soclk_out(soclk_out)
1550);
1551dff #(48) d0_0 (
1552.l1clk(l1clk),
1553.siclk(siclk_out),
1554.soclk(soclk_out),
1555.d(din[47:0]),
1556.si({scan_in,so[46:0]}),
1557.so({so[46:0],scan_out}),
1558.q(dout[47:0])
1559);
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580endmodule
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594// any PARAMS parms go into naming of macro
1595
1596module tlu_dfd_dp_msff_macro__mux_aope__ports_5__stack_48c__width_48 (
1597 din0,
1598 din1,
1599 din2,
1600 din3,
1601 din4,
1602 sel0,
1603 sel1,
1604 sel2,
1605 sel3,
1606 clk,
1607 en,
1608 se,
1609 scan_in,
1610 siclk,
1611 soclk,
1612 pce_ov,
1613 stop,
1614 dout,
1615 scan_out);
1616wire psel0;
1617wire psel1;
1618wire psel2;
1619wire psel3;
1620wire psel4;
1621wire [47:0] muxout;
1622wire l1clk;
1623wire siclk_out;
1624wire soclk_out;
1625wire [46:0] so;
1626
1627 input [47:0] din0;
1628 input [47:0] din1;
1629 input [47:0] din2;
1630 input [47:0] din3;
1631 input [47:0] din4;
1632 input sel0;
1633 input sel1;
1634 input sel2;
1635 input sel3;
1636
1637
1638 input clk;
1639 input en;
1640 input se;
1641 input scan_in;
1642 input siclk;
1643 input soclk;
1644 input pce_ov;
1645 input stop;
1646
1647
1648
1649 output [47:0] dout;
1650
1651
1652 output scan_out;
1653
1654
1655
1656
1657cl_dp1_penc5_8x c1_0 (
1658 .test(1'b1),
1659 .sel0(sel0),
1660 .sel1(sel1),
1661 .sel2(sel2),
1662 .sel3(sel3),
1663 .psel0(psel0),
1664 .psel1(psel1),
1665 .psel2(psel2),
1666 .psel3(psel3),
1667 .psel4(psel4)
1668);
1669
1670mux5s #(48) d1_0 (
1671 .sel0(psel0),
1672 .sel1(psel1),
1673 .sel2(psel2),
1674 .sel3(psel3),
1675 .sel4(psel4),
1676 .in0(din0[47:0]),
1677 .in1(din1[47:0]),
1678 .in2(din2[47:0]),
1679 .in3(din3[47:0]),
1680 .in4(din4[47:0]),
1681.dout(muxout[47:0])
1682);
1683cl_dp1_l1hdr_8x c0_0 (
1684.l2clk(clk),
1685.pce(en),
1686.aclk(siclk),
1687.bclk(soclk),
1688.l1clk(l1clk),
1689 .se(se),
1690 .pce_ov(pce_ov),
1691 .stop(stop),
1692 .siclk_out(siclk_out),
1693 .soclk_out(soclk_out)
1694);
1695dff #(48) d0_0 (
1696.l1clk(l1clk),
1697.siclk(siclk_out),
1698.soclk(soclk_out),
1699.d(muxout[47:0]),
1700.si({scan_in,so[46:0]}),
1701.so({so[46:0],scan_out}),
1702.q(dout[47:0])
1703);
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724endmodule
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738// any PARAMS parms go into naming of macro
1739
1740module tlu_dfd_dp_msff_macro__mux_aope__ports_4__width_19 (
1741 din0,
1742 din1,
1743 din2,
1744 din3,
1745 sel0,
1746 sel1,
1747 sel2,
1748 clk,
1749 en,
1750 se,
1751 scan_in,
1752 siclk,
1753 soclk,
1754 pce_ov,
1755 stop,
1756 dout,
1757 scan_out);
1758wire psel0;
1759wire psel1;
1760wire psel2;
1761wire psel3;
1762wire [18:0] muxout;
1763wire l1clk;
1764wire siclk_out;
1765wire soclk_out;
1766wire [17:0] so;
1767
1768 input [18:0] din0;
1769 input [18:0] din1;
1770 input [18:0] din2;
1771 input [18:0] din3;
1772 input sel0;
1773 input sel1;
1774 input sel2;
1775
1776
1777 input clk;
1778 input en;
1779 input se;
1780 input scan_in;
1781 input siclk;
1782 input soclk;
1783 input pce_ov;
1784 input stop;
1785
1786
1787
1788 output [18:0] dout;
1789
1790
1791 output scan_out;
1792
1793
1794
1795
1796cl_dp1_penc4_8x c1_0 (
1797 .test(1'b1),
1798 .sel0(sel0),
1799 .sel1(sel1),
1800 .sel2(sel2),
1801 .psel0(psel0),
1802 .psel1(psel1),
1803 .psel2(psel2),
1804 .psel3(psel3)
1805);
1806
1807mux4s #(19) d1_0 (
1808 .sel0(psel0),
1809 .sel1(psel1),
1810 .sel2(psel2),
1811 .sel3(psel3),
1812 .in0(din0[18:0]),
1813 .in1(din1[18:0]),
1814 .in2(din2[18:0]),
1815 .in3(din3[18:0]),
1816.dout(muxout[18:0])
1817);
1818cl_dp1_l1hdr_8x c0_0 (
1819.l2clk(clk),
1820.pce(en),
1821.aclk(siclk),
1822.bclk(soclk),
1823.l1clk(l1clk),
1824 .se(se),
1825 .pce_ov(pce_ov),
1826 .stop(stop),
1827 .siclk_out(siclk_out),
1828 .soclk_out(soclk_out)
1829);
1830dff #(19) d0_0 (
1831.l1clk(l1clk),
1832.siclk(siclk_out),
1833.soclk(soclk_out),
1834.d(muxout[18:0]),
1835.si({scan_in,so[17:0]}),
1836.so({so[17:0],scan_out}),
1837.q(dout[18:0])
1838);
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859endmodule
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869//
1870// buff macro
1871//
1872//
1873
1874
1875
1876
1877
1878module tlu_dfd_dp_buff_macro__rep_1__stack_none__width_8 (
1879 din,
1880 dout);
1881 input [7:0] din;
1882 output [7:0] dout;
1883
1884
1885
1886
1887
1888
1889buff #(8) d0_0 (
1890.in(din[7:0]),
1891.out(dout[7:0])
1892);
1893
1894
1895
1896
1897
1898
1899
1900
1901endmodule
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911// any PARAMS parms go into naming of macro
1912
1913module tlu_dfd_dp_msff_macro__mux_aonpe__ports_3__width_7 (
1914 din0,
1915 sel0,
1916 din1,
1917 sel1,
1918 din2,
1919 sel2,
1920 clk,
1921 en,
1922 se,
1923 scan_in,
1924 siclk,
1925 soclk,
1926 pce_ov,
1927 stop,
1928 dout,
1929 scan_out);
1930wire buffout0;
1931wire buffout1;
1932wire buffout2;
1933wire [6:0] muxout;
1934wire l1clk;
1935wire siclk_out;
1936wire soclk_out;
1937wire [5:0] so;
1938
1939 input [6:0] din0;
1940 input sel0;
1941 input [6:0] din1;
1942 input sel1;
1943 input [6:0] din2;
1944 input sel2;
1945
1946
1947 input clk;
1948 input en;
1949 input se;
1950 input scan_in;
1951 input siclk;
1952 input soclk;
1953 input pce_ov;
1954 input stop;
1955
1956
1957
1958 output [6:0] dout;
1959
1960
1961 output scan_out;
1962
1963
1964
1965
1966cl_dp1_muxbuff3_8x c1_0 (
1967 .in0(sel0),
1968 .in1(sel1),
1969 .in2(sel2),
1970 .out0(buffout0),
1971 .out1(buffout1),
1972 .out2(buffout2)
1973);
1974mux3s #(7) d1_0 (
1975 .sel0(buffout0),
1976 .sel1(buffout1),
1977 .sel2(buffout2),
1978 .in0(din0[6:0]),
1979 .in1(din1[6:0]),
1980 .in2(din2[6:0]),
1981.dout(muxout[6:0])
1982);
1983cl_dp1_l1hdr_8x c0_0 (
1984.l2clk(clk),
1985.pce(en),
1986.aclk(siclk),
1987.bclk(soclk),
1988.l1clk(l1clk),
1989 .se(se),
1990 .pce_ov(pce_ov),
1991 .stop(stop),
1992 .siclk_out(siclk_out),
1993 .soclk_out(soclk_out)
1994);
1995dff #(7) d0_0 (
1996.l1clk(l1clk),
1997.siclk(siclk_out),
1998.soclk(soclk_out),
1999.d(muxout[6:0]),
2000.si({scan_in,so[5:0]}),
2001.so({so[5:0],scan_out}),
2002.q(dout[6:0])
2003);
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024endmodule
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034//
2035// or macro for ports = 2,3
2036//
2037//
2038
2039
2040
2041
2042
2043module tlu_dfd_dp_or_macro__ports_2__width_8 (
2044 din0,
2045 din1,
2046 dout);
2047 input [7:0] din0;
2048 input [7:0] din1;
2049 output [7:0] dout;
2050
2051
2052
2053
2054
2055
2056or2 #(8) d0_0 (
2057.in0(din0[7:0]),
2058.in1(din1[7:0]),
2059.out(dout[7:0])
2060);
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070endmodule
2071
2072
2073
2074
2075
2076//
2077// buff macro
2078//
2079//
2080
2081
2082
2083
2084
2085module tlu_dfd_dp_buff_macro__dbuff_16x__width_16 (
2086 din,
2087 dout);
2088 input [15:0] din;
2089 output [15:0] dout;
2090
2091
2092
2093
2094
2095
2096buff #(16) d0_0 (
2097.in(din[15:0]),
2098.out(dout[15:0])
2099);
2100
2101
2102
2103
2104
2105
2106
2107
2108endmodule
2109
2110
2111
2112
2113
2114// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2115// also for pass-gate with decoder
2116
2117
2118
2119
2120
2121// any PARAMS parms go into naming of macro
2122
2123module tlu_dfd_dp_mux_macro__mux_aonpe__ports_8__stack_48c__width_48 (
2124 din0,
2125 sel0,
2126 din1,
2127 sel1,
2128 din2,
2129 sel2,
2130 din3,
2131 sel3,
2132 din4,
2133 sel4,
2134 din5,
2135 sel5,
2136 din6,
2137 sel6,
2138 din7,
2139 sel7,
2140 dout);
2141wire buffout0;
2142wire buffout1;
2143wire buffout2;
2144wire buffout3;
2145wire buffout4;
2146wire buffout5;
2147wire buffout6;
2148wire buffout7;
2149
2150 input [47:0] din0;
2151 input sel0;
2152 input [47:0] din1;
2153 input sel1;
2154 input [47:0] din2;
2155 input sel2;
2156 input [47:0] din3;
2157 input sel3;
2158 input [47:0] din4;
2159 input sel4;
2160 input [47:0] din5;
2161 input sel5;
2162 input [47:0] din6;
2163 input sel6;
2164 input [47:0] din7;
2165 input sel7;
2166 output [47:0] dout;
2167
2168
2169
2170
2171
2172cl_dp1_muxbuff8_8x c0_0 (
2173 .in0(sel0),
2174 .in1(sel1),
2175 .in2(sel2),
2176 .in3(sel3),
2177 .in4(sel4),
2178 .in5(sel5),
2179 .in6(sel6),
2180 .in7(sel7),
2181 .out0(buffout0),
2182 .out1(buffout1),
2183 .out2(buffout2),
2184 .out3(buffout3),
2185 .out4(buffout4),
2186 .out5(buffout5),
2187 .out6(buffout6),
2188 .out7(buffout7)
2189);
2190mux8s #(48) d0_0 (
2191 .sel0(buffout0),
2192 .sel1(buffout1),
2193 .sel2(buffout2),
2194 .sel3(buffout3),
2195 .sel4(buffout4),
2196 .sel5(buffout5),
2197 .sel6(buffout6),
2198 .sel7(buffout7),
2199 .in0(din0[47:0]),
2200 .in1(din1[47:0]),
2201 .in2(din2[47:0]),
2202 .in3(din3[47:0]),
2203 .in4(din4[47:0]),
2204 .in5(din5[47:0]),
2205 .in6(din6[47:0]),
2206 .in7(din7[47:0]),
2207.dout(dout[47:0])
2208);
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222endmodule
2223
2224
2225// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2226// also for pass-gate with decoder
2227
2228
2229
2230
2231
2232// any PARAMS parms go into naming of macro
2233
2234module tlu_dfd_dp_mux_macro__dmux_8x__mux_aonpe__ports_8__width_19 (
2235 din0,
2236 sel0,
2237 din1,
2238 sel1,
2239 din2,
2240 sel2,
2241 din3,
2242 sel3,
2243 din4,
2244 sel4,
2245 din5,
2246 sel5,
2247 din6,
2248 sel6,
2249 din7,
2250 sel7,
2251 dout);
2252wire buffout0;
2253wire buffout1;
2254wire buffout2;
2255wire buffout3;
2256wire buffout4;
2257wire buffout5;
2258wire buffout6;
2259wire buffout7;
2260
2261 input [18:0] din0;
2262 input sel0;
2263 input [18:0] din1;
2264 input sel1;
2265 input [18:0] din2;
2266 input sel2;
2267 input [18:0] din3;
2268 input sel3;
2269 input [18:0] din4;
2270 input sel4;
2271 input [18:0] din5;
2272 input sel5;
2273 input [18:0] din6;
2274 input sel6;
2275 input [18:0] din7;
2276 input sel7;
2277 output [18:0] dout;
2278
2279
2280
2281
2282
2283cl_dp1_muxbuff8_8x c0_0 (
2284 .in0(sel0),
2285 .in1(sel1),
2286 .in2(sel2),
2287 .in3(sel3),
2288 .in4(sel4),
2289 .in5(sel5),
2290 .in6(sel6),
2291 .in7(sel7),
2292 .out0(buffout0),
2293 .out1(buffout1),
2294 .out2(buffout2),
2295 .out3(buffout3),
2296 .out4(buffout4),
2297 .out5(buffout5),
2298 .out6(buffout6),
2299 .out7(buffout7)
2300);
2301mux8s #(19) d0_0 (
2302 .sel0(buffout0),
2303 .sel1(buffout1),
2304 .sel2(buffout2),
2305 .sel3(buffout3),
2306 .sel4(buffout4),
2307 .sel5(buffout5),
2308 .sel6(buffout6),
2309 .sel7(buffout7),
2310 .in0(din0[18:0]),
2311 .in1(din1[18:0]),
2312 .in2(din2[18:0]),
2313 .in3(din3[18:0]),
2314 .in4(din4[18:0]),
2315 .in5(din5[18:0]),
2316 .in6(din6[18:0]),
2317 .in7(din7[18:0]),
2318.dout(dout[18:0])
2319);
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333endmodule
2334
2335
2336// general mux macro for pass-gate and and-or muxes with/wout priority encoders
2337// also for pass-gate with decoder
2338
2339
2340
2341
2342
2343// any PARAMS parms go into naming of macro
2344
2345module tlu_dfd_dp_mux_macro__mux_aonpe__ports_8__width_7 (
2346 din0,
2347 sel0,
2348 din1,
2349 sel1,
2350 din2,
2351 sel2,
2352 din3,
2353 sel3,
2354 din4,
2355 sel4,
2356 din5,
2357 sel5,
2358 din6,
2359 sel6,
2360 din7,
2361 sel7,
2362 dout);
2363wire buffout0;
2364wire buffout1;
2365wire buffout2;
2366wire buffout3;
2367wire buffout4;
2368wire buffout5;
2369wire buffout6;
2370wire buffout7;
2371
2372 input [6:0] din0;
2373 input sel0;
2374 input [6:0] din1;
2375 input sel1;
2376 input [6:0] din2;
2377 input sel2;
2378 input [6:0] din3;
2379 input sel3;
2380 input [6:0] din4;
2381 input sel4;
2382 input [6:0] din5;
2383 input sel5;
2384 input [6:0] din6;
2385 input sel6;
2386 input [6:0] din7;
2387 input sel7;
2388 output [6:0] dout;
2389
2390
2391
2392
2393
2394cl_dp1_muxbuff8_8x c0_0 (
2395 .in0(sel0),
2396 .in1(sel1),
2397 .in2(sel2),
2398 .in3(sel3),
2399 .in4(sel4),
2400 .in5(sel5),
2401 .in6(sel6),
2402 .in7(sel7),
2403 .out0(buffout0),
2404 .out1(buffout1),
2405 .out2(buffout2),
2406 .out3(buffout3),
2407 .out4(buffout4),
2408 .out5(buffout5),
2409 .out6(buffout6),
2410 .out7(buffout7)
2411);
2412mux8s #(7) d0_0 (
2413 .sel0(buffout0),
2414 .sel1(buffout1),
2415 .sel2(buffout2),
2416 .sel3(buffout3),
2417 .sel4(buffout4),
2418 .sel5(buffout5),
2419 .sel6(buffout6),
2420 .sel7(buffout7),
2421 .in0(din0[6:0]),
2422 .in1(din1[6:0]),
2423 .in2(din2[6:0]),
2424 .in3(din3[6:0]),
2425 .in4(din4[6:0]),
2426 .in5(din5[6:0]),
2427 .in6(din6[6:0]),
2428 .in7(din7[6:0]),
2429.dout(dout[6:0])
2430);
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444endmodule
2445
2446
2447//
2448// or macro for ports = 2,3
2449//
2450//
2451
2452
2453
2454
2455
2456module tlu_dfd_dp_or_macro__ports_2__stack_48c__width_48 (
2457 din0,
2458 din1,
2459 dout);
2460 input [47:0] din0;
2461 input [47:0] din1;
2462 output [47:0] dout;
2463
2464
2465
2466
2467
2468
2469or2 #(48) d0_0 (
2470.in0(din0[47:0]),
2471.in1(din1[47:0]),
2472.out(dout[47:0])
2473);
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483endmodule
2484
2485
2486
2487