Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / spc / tlu / rtl / tlu_cer_dp.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: tlu_cer_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_cer_dp (
36 l2clk,
37 scan_in,
38 tcu_pce_ov,
39 spc_aclk,
40 spc_bclk,
41 tcu_scan_en,
42 asi_rd_cerer,
43 asi_rd_ceter,
44 asi_wr_cerer,
45 asi_ceter_tid,
46 asi_wr_ceter,
47 asi_wr_data,
48 cth_asi_data,
49 scan_out,
50 cer_asi_data,
51 tlu_cerer_ittp,
52 tlu_cerer_itdp,
53 tlu_cerer_ittm,
54 tlu_cerer_hwtwmu,
55 tlu_cerer_hwtwl2,
56 tlu_cerer_icl2c,
57 tlu_cerer_icl2u,
58 tlu_cerer_icl2nd,
59 tlu_cerer_irf,
60 tlu_cerer_frf,
61 tlu_cerer_dttp,
62 tlu_cerer_dttm,
63 tlu_cerer_dtdp,
64 tlu_cerer_dcl2c,
65 tlu_cerer_dcl2u,
66 tlu_cerer_dcl2nd,
67 tlu_cerer_sbdlc,
68 tlu_cerer_sbdlu,
69 tlu_cerer_mrau,
70 tlu_cerer_tsac,
71 tlu_cerer_tsau,
72 tlu_cerer_scac,
73 tlu_cerer_scau,
74 tlu_cerer_tccp,
75 tlu_cerer_tcup,
76 tlu_cerer_sbapp,
77 tlu_cerer_l2c_socc,
78 tlu_cerer_l2u_socu,
79 tlu_cerer_l2nd,
80 tlu_cerer_icvp,
81 tlu_cerer_ictp,
82 tlu_cerer_ictm,
83 tlu_cerer_icdp,
84 tlu_cerer_dcvp,
85 tlu_cerer_dctp,
86 tlu_cerer_dctm,
87 tlu_cerer_dcdp,
88 tlu_cerer_sbdpc,
89 tlu_cerer_sbdpu,
90 tlu_cerer_mamu,
91 tlu_cerer_tccd,
92 tlu_cerer_tcud,
93 tlu_cerer_mal2c,
94 tlu_cerer_mal2u,
95 tlu_cerer_mal2nd,
96 tlu_cerer_cwql2c,
97 tlu_cerer_cwql2u,
98 tlu_cerer_cwql2nd,
99 tlu_ceter_pscce,
100 tlu_ceter_de,
101 tlu_ceter_dhcce);
102wire clk;
103wire stop;
104wire pce_ov;
105wire se;
106wire siclk;
107wire soclk;
108wire [57:22] wr_data_unused;
109wire cerer_lat_scanin;
110wire cerer_lat_scanout;
111wire [63:0] cerer;
112wire [23:0] ceter;
113wire [23:0] ceter_in;
114wire ceter_lat_scanin;
115wire ceter_lat_scanout;
116wire [62:60] ceter_data;
117wire [63:0] read_data;
118wire [63:0] asi_data;
119
120
121
122input l2clk;
123input scan_in;
124input tcu_pce_ov;
125input spc_aclk;
126input spc_bclk;
127input tcu_scan_en;
128
129
130input asi_rd_cerer;
131input asi_rd_ceter;
132input asi_wr_cerer;
133input [2:0] asi_ceter_tid;
134input asi_wr_ceter;
135input [63:0] asi_wr_data;
136
137input [63:0] cth_asi_data;
138
139
140
141output scan_out;
142
143output [63:0] cer_asi_data;
144
145output tlu_cerer_ittp ;
146output tlu_cerer_itdp ;
147output tlu_cerer_ittm ;
148output tlu_cerer_hwtwmu ;
149output tlu_cerer_hwtwl2 ;
150output tlu_cerer_icl2c ;
151output tlu_cerer_icl2u ;
152output tlu_cerer_icl2nd ;
153output tlu_cerer_irf ;
154output tlu_cerer_frf ;
155output tlu_cerer_dttp ;
156output tlu_cerer_dttm ;
157output tlu_cerer_dtdp ;
158output tlu_cerer_dcl2c ;
159output tlu_cerer_dcl2u ;
160output tlu_cerer_dcl2nd ;
161output tlu_cerer_sbdlc ;
162output tlu_cerer_sbdlu ;
163output tlu_cerer_mrau ;
164output tlu_cerer_tsac ;
165output tlu_cerer_tsau ;
166output tlu_cerer_scac ;
167output tlu_cerer_scau ;
168output tlu_cerer_tccp ;
169output tlu_cerer_tcup ;
170output tlu_cerer_sbapp ;
171output tlu_cerer_l2c_socc ;
172output tlu_cerer_l2u_socu ;
173output tlu_cerer_l2nd ;
174output tlu_cerer_icvp ;
175output tlu_cerer_ictp ;
176output tlu_cerer_ictm ;
177output tlu_cerer_icdp ;
178output tlu_cerer_dcvp ;
179output tlu_cerer_dctp ;
180output tlu_cerer_dctm ;
181output tlu_cerer_dcdp ;
182output tlu_cerer_sbdpc ;
183output tlu_cerer_sbdpu ;
184output tlu_cerer_mamu ;
185output tlu_cerer_tccd ;
186output tlu_cerer_tcud ;
187output tlu_cerer_mal2c ;
188output tlu_cerer_mal2u ;
189output tlu_cerer_mal2nd ;
190output tlu_cerer_cwql2c ;
191output tlu_cerer_cwql2u ;
192output tlu_cerer_cwql2nd ;
193
194output [7:0] tlu_ceter_pscce;
195output [7:0] tlu_ceter_de;
196output [7:0] tlu_ceter_dhcce;
197
198
199
200
201
202////////////////////////////////////////////////////////////////////////////////
203
204assign clk = l2clk;
205assign stop = 1'b0;
206
207tlu_cer_dp_buff_macro__width_4 clk_control_buf (
208 .din ({tcu_pce_ov ,
209 tcu_scan_en ,
210 spc_aclk ,
211 spc_bclk }),
212 .dout ({pce_ov ,
213 se ,
214 siclk ,
215 soclk })
216);
217
218assign wr_data_unused[57:56] =
219 asi_wr_data[57:56];
220assign wr_data_unused[51 ] =
221 asi_wr_data[51 ];
222assign wr_data_unused[49 ] =
223 asi_wr_data[49 ];
224assign wr_data_unused[45:41] =
225 asi_wr_data[45:41];
226assign wr_data_unused[35:34] =
227 asi_wr_data[35:34];
228assign wr_data_unused[26:24] =
229 asi_wr_data[26:24];
230assign wr_data_unused[22 ] =
231 asi_wr_data[22 ];
232
233
234///////////////////////////////////////////////////////////////////////////////
235// CERER
236// One per core
237
238tlu_cer_dp_msff_macro__minbuff_1__width_48 cerer_lat (
239 .scan_in(cerer_lat_scanin),
240 .scan_out(cerer_lat_scanout),
241 .en (asi_wr_cerer ),
242 .din ({asi_wr_data [63:61],
243 asi_wr_data [59:58],
244 asi_wr_data [55:52],
245 asi_wr_data [50 ],
246 asi_wr_data [48:46],
247 asi_wr_data [40:36],
248 asi_wr_data [33:27],
249 asi_wr_data [23 ],
250 asi_wr_data [21:0]}),
251 .dout ({cerer [63:61],
252 cerer [59:58],
253 cerer [55:52],
254 cerer [50 ],
255 cerer [48:46],
256 cerer [40:36],
257 cerer [33:27],
258 cerer [23 ],
259 cerer [21:0]}),
260 .clk(clk),
261 .se(se),
262 .siclk(siclk),
263 .soclk(soclk),
264 .pce_ov(pce_ov),
265 .stop(stop)
266);
267
268assign tlu_cerer_ittp = cerer[63];
269assign tlu_cerer_itdp = cerer[62];
270assign tlu_cerer_ittm = cerer[61];
271assign tlu_cerer_hwtwmu = cerer[59];
272assign tlu_cerer_hwtwl2 = cerer[58];
273assign tlu_cerer_icl2c = cerer[55];
274assign tlu_cerer_icl2u = cerer[54];
275assign tlu_cerer_icl2nd = cerer[53];
276assign tlu_cerer_irf = cerer[52];
277assign tlu_cerer_frf = cerer[50];
278assign tlu_cerer_dttp = cerer[48];
279assign tlu_cerer_dttm = cerer[47];
280assign tlu_cerer_dtdp = cerer[46];
281assign tlu_cerer_dcl2c = cerer[40];
282assign tlu_cerer_dcl2u = cerer[39];
283assign tlu_cerer_dcl2nd = cerer[38];
284assign tlu_cerer_sbdlc = cerer[37];
285assign tlu_cerer_sbdlu = cerer[36];
286assign tlu_cerer_mrau = cerer[33];
287assign tlu_cerer_tsac = cerer[32];
288assign tlu_cerer_tsau = cerer[31];
289assign tlu_cerer_scac = cerer[30];
290assign tlu_cerer_scau = cerer[29];
291assign tlu_cerer_tccp = cerer[28];
292assign tlu_cerer_tcup = cerer[27];
293assign tlu_cerer_sbapp = cerer[23];
294assign tlu_cerer_l2c_socc = cerer[21];
295assign tlu_cerer_l2u_socu = cerer[20];
296assign tlu_cerer_l2nd = cerer[19];
297assign tlu_cerer_icvp = cerer[18];
298assign tlu_cerer_ictp = cerer[17];
299assign tlu_cerer_ictm = cerer[16];
300assign tlu_cerer_icdp = cerer[15];
301assign tlu_cerer_dcvp = cerer[14];
302assign tlu_cerer_dctp = cerer[13];
303assign tlu_cerer_dctm = cerer[12];
304assign tlu_cerer_dcdp = cerer[11];
305assign tlu_cerer_sbdpc = cerer[10];
306assign tlu_cerer_sbdpu = cerer[9];
307assign tlu_cerer_mamu = cerer[8];
308assign tlu_cerer_tccd = cerer[7];
309assign tlu_cerer_tcud = cerer[6];
310assign tlu_cerer_mal2c = cerer[5];
311assign tlu_cerer_mal2u = cerer[4];
312assign tlu_cerer_mal2nd = cerer[3];
313assign tlu_cerer_cwql2c = cerer[2];
314assign tlu_cerer_cwql2u = cerer[1];
315assign tlu_cerer_cwql2nd = cerer[0];
316
317
318//////////////////////////////////////////////////////////////////////////////
319// CETER
320// 4 bits per CETER, 1 per thread
321
322tlu_cer_dp_mux_macro__mux_aodec__ports_8__width_24 ceter_mux (
323 .din0 ({ceter [23:3],
324 asi_wr_data [62:60]}),
325 .din1 ({ceter [23:6],
326 asi_wr_data [62:60],
327 ceter [2:0]}),
328 .din2 ({ceter [23:9],
329 asi_wr_data [62:60],
330 ceter [5:0]}),
331 .din3 ({ceter [23:12],
332 asi_wr_data [62:60],
333 ceter [8:0]}),
334 .din4 ({ceter [23:15],
335 asi_wr_data [62:60],
336 ceter [11:0]}),
337 .din5 ({ceter [23:18],
338 asi_wr_data [62:60],
339 ceter [14:0]}),
340 .din6 ({ceter [23:21],
341 asi_wr_data [62:60],
342 ceter [17:0]}),
343 .din7 ({asi_wr_data [62:60],
344 ceter [20:0]}),
345 .sel (asi_ceter_tid [2:0] ),
346 .dout (ceter_in [23:0] )
347);
348
349tlu_cer_dp_msff_macro__width_24 ceter_lat (
350 .scan_in(ceter_lat_scanin),
351 .scan_out(ceter_lat_scanout),
352 .en (asi_wr_ceter ),
353 .din (ceter_in [23:0] ),
354 .dout (ceter [23:0] ),
355 .clk(clk),
356 .se(se),
357 .siclk(siclk),
358 .soclk(soclk),
359 .pce_ov(pce_ov),
360 .stop(stop)
361);
362
363
364
365
366assign tlu_ceter_pscce[7:0] =
367 {ceter[23], ceter[20], ceter[17], ceter[14],
368 ceter[11], ceter[8], ceter[5], ceter[2]};
369
370assign tlu_ceter_de[7:0] =
371 {ceter[22], ceter[19], ceter[16], ceter[13],
372 ceter[10], ceter[7], ceter[4], ceter[1]};
373
374assign tlu_ceter_dhcce[7:0] =
375 {ceter[21], ceter[18], ceter[15], ceter[12],
376 ceter[9], ceter[6], ceter[3], ceter[0]};
377
378
379
380
381//////////////////////////////////////////////////////////////////////////////
382tlu_cer_dp_mux_macro__mux_aodec__ports_8__width_3 ceter_data_mux (
383 .din0 (ceter [2:0] ),
384 .din1 (ceter [5:3] ),
385 .din2 (ceter [8:6] ),
386 .din3 (ceter [11:9] ),
387 .din4 (ceter [14:12] ),
388 .din5 (ceter [17:15] ),
389 .din6 (ceter [20:18] ),
390 .din7 (ceter [23:21] ),
391 .sel (asi_ceter_tid [2:0] ),
392 .dout (ceter_data [62:60] )
393);
394
395tlu_cer_dp_mux_macro__dmux_8x__mux_aonpe__ports_2__width_49 read_data_mux (
396 .din0 ({cerer [63:61],
397 1'b0 ,
398 cerer [59:58],
399 cerer [55:52],
400 cerer [50 ],
401 cerer [48:46],
402 cerer [40:36],
403 cerer [33:27],
404 cerer [23 ],
405 cerer [21:0]}),
406 .din1 ({1'b0 ,
407 ceter_data [62:60],
408 {45 {1'b0}} }),
409 .sel0 (asi_rd_cerer ),
410 .sel1 (asi_rd_ceter ),
411 .dout ({read_data [63:60],
412 read_data [59:58],
413 read_data [55:52],
414 read_data [50 ],
415 read_data [48:46],
416 read_data [40:36],
417 read_data [33:27],
418 read_data [23 ],
419 read_data [21:0]})
420);
421
422assign asi_data[63:0] =
423 {read_data[63:60],
424 read_data[59:58],
425 {2 {1'b0}},
426 read_data[55:52],
427 {1 {1'b0}},
428 read_data[50 ],
429 {1 {1'b0}},
430 read_data[48:46],
431 {5 {1'b0}},
432 read_data[40:36],
433 {2 {1'b0}},
434 read_data[33:27],
435 {3 {1'b0}},
436 read_data[23 ],
437 {1 {1'b0}},
438 read_data[21:0]};
439
440
441tlu_cer_dp_or_macro__ports_2__width_64 asi_data_or (
442 .din0 (cth_asi_data [63:0] ),
443 .din1 (asi_data [63:0] ),
444 .dout (cer_asi_data [63:0] )
445);
446
447
448
449
450
451// fixscan start:
452assign cerer_lat_scanin = scan_in ;
453assign ceter_lat_scanin = cerer_lat_scanout ;
454assign scan_out = ceter_lat_scanout ;
455// fixscan end:
456endmodule
457
458
459
460//
461// buff macro
462//
463//
464
465
466
467
468
469module tlu_cer_dp_buff_macro__width_4 (
470 din,
471 dout);
472 input [3:0] din;
473 output [3:0] dout;
474
475
476
477
478
479
480buff #(4) d0_0 (
481.in(din[3:0]),
482.out(dout[3:0])
483);
484
485
486
487
488
489
490
491
492endmodule
493
494
495
496
497
498
499
500
501
502// any PARAMS parms go into naming of macro
503
504module tlu_cer_dp_msff_macro__minbuff_1__width_48 (
505 din,
506 clk,
507 en,
508 se,
509 scan_in,
510 siclk,
511 soclk,
512 pce_ov,
513 stop,
514 dout,
515 scan_out);
516wire l1clk;
517wire siclk_out;
518wire soclk_out;
519wire [46:0] so;
520
521 input [47:0] din;
522
523
524 input clk;
525 input en;
526 input se;
527 input scan_in;
528 input siclk;
529 input soclk;
530 input pce_ov;
531 input stop;
532
533
534
535 output [47:0] dout;
536
537
538 output scan_out;
539
540
541
542
543cl_dp1_l1hdr_8x c0_0 (
544.l2clk(clk),
545.pce(en),
546.aclk(siclk),
547.bclk(soclk),
548.l1clk(l1clk),
549 .se(se),
550 .pce_ov(pce_ov),
551 .stop(stop),
552 .siclk_out(siclk_out),
553 .soclk_out(soclk_out)
554);
555dff #(48) d0_0 (
556.l1clk(l1clk),
557.siclk(siclk_out),
558.soclk(soclk_out),
559.d(din[47:0]),
560.si({scan_in,so[46:0]}),
561.so({so[46:0],scan_out}),
562.q(dout[47:0])
563);
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584endmodule
585
586
587
588
589
590
591
592
593
594// general mux macro for pass-gate and and-or muxes with/wout priority encoders
595// also for pass-gate with decoder
596
597
598
599
600
601// any PARAMS parms go into naming of macro
602
603module tlu_cer_dp_mux_macro__mux_aodec__ports_8__width_24 (
604 din0,
605 din1,
606 din2,
607 din3,
608 din4,
609 din5,
610 din6,
611 din7,
612 sel,
613 dout);
614wire psel0;
615wire psel1;
616wire psel2;
617wire psel3;
618wire psel4;
619wire psel5;
620wire psel6;
621wire psel7;
622
623 input [23:0] din0;
624 input [23:0] din1;
625 input [23:0] din2;
626 input [23:0] din3;
627 input [23:0] din4;
628 input [23:0] din5;
629 input [23:0] din6;
630 input [23:0] din7;
631 input [2:0] sel;
632 output [23:0] dout;
633
634
635
636
637
638cl_dp1_pdec8_8x c0_0 (
639 .test(1'b1),
640 .sel0(sel[0]),
641 .sel1(sel[1]),
642 .sel2(sel[2]),
643 .psel0(psel0),
644 .psel1(psel1),
645 .psel2(psel2),
646 .psel3(psel3),
647 .psel4(psel4),
648 .psel5(psel5),
649 .psel6(psel6),
650 .psel7(psel7)
651);
652
653mux8s #(24) d0_0 (
654 .sel0(psel0),
655 .sel1(psel1),
656 .sel2(psel2),
657 .sel3(psel3),
658 .sel4(psel4),
659 .sel5(psel5),
660 .sel6(psel6),
661 .sel7(psel7),
662 .in0(din0[23:0]),
663 .in1(din1[23:0]),
664 .in2(din2[23:0]),
665 .in3(din3[23:0]),
666 .in4(din4[23:0]),
667 .in5(din5[23:0]),
668 .in6(din6[23:0]),
669 .in7(din7[23:0]),
670.dout(dout[23:0])
671);
672
673
674
675
676
677
678
679
680
681
682
683
684
685endmodule
686
687
688
689
690
691
692// any PARAMS parms go into naming of macro
693
694module tlu_cer_dp_msff_macro__width_24 (
695 din,
696 clk,
697 en,
698 se,
699 scan_in,
700 siclk,
701 soclk,
702 pce_ov,
703 stop,
704 dout,
705 scan_out);
706wire l1clk;
707wire siclk_out;
708wire soclk_out;
709wire [22:0] so;
710
711 input [23:0] din;
712
713
714 input clk;
715 input en;
716 input se;
717 input scan_in;
718 input siclk;
719 input soclk;
720 input pce_ov;
721 input stop;
722
723
724
725 output [23:0] dout;
726
727
728 output scan_out;
729
730
731
732
733cl_dp1_l1hdr_8x c0_0 (
734.l2clk(clk),
735.pce(en),
736.aclk(siclk),
737.bclk(soclk),
738.l1clk(l1clk),
739 .se(se),
740 .pce_ov(pce_ov),
741 .stop(stop),
742 .siclk_out(siclk_out),
743 .soclk_out(soclk_out)
744);
745dff #(24) d0_0 (
746.l1clk(l1clk),
747.siclk(siclk_out),
748.soclk(soclk_out),
749.d(din[23:0]),
750.si({scan_in,so[22:0]}),
751.so({so[22:0],scan_out}),
752.q(dout[23:0])
753);
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774endmodule
775
776
777
778
779
780
781
782
783
784// general mux macro for pass-gate and and-or muxes with/wout priority encoders
785// also for pass-gate with decoder
786
787
788
789
790
791// any PARAMS parms go into naming of macro
792
793module tlu_cer_dp_mux_macro__mux_aodec__ports_8__width_3 (
794 din0,
795 din1,
796 din2,
797 din3,
798 din4,
799 din5,
800 din6,
801 din7,
802 sel,
803 dout);
804wire psel0;
805wire psel1;
806wire psel2;
807wire psel3;
808wire psel4;
809wire psel5;
810wire psel6;
811wire psel7;
812
813 input [2:0] din0;
814 input [2:0] din1;
815 input [2:0] din2;
816 input [2:0] din3;
817 input [2:0] din4;
818 input [2:0] din5;
819 input [2:0] din6;
820 input [2:0] din7;
821 input [2:0] sel;
822 output [2:0] dout;
823
824
825
826
827
828cl_dp1_pdec8_8x c0_0 (
829 .test(1'b1),
830 .sel0(sel[0]),
831 .sel1(sel[1]),
832 .sel2(sel[2]),
833 .psel0(psel0),
834 .psel1(psel1),
835 .psel2(psel2),
836 .psel3(psel3),
837 .psel4(psel4),
838 .psel5(psel5),
839 .psel6(psel6),
840 .psel7(psel7)
841);
842
843mux8s #(3) d0_0 (
844 .sel0(psel0),
845 .sel1(psel1),
846 .sel2(psel2),
847 .sel3(psel3),
848 .sel4(psel4),
849 .sel5(psel5),
850 .sel6(psel6),
851 .sel7(psel7),
852 .in0(din0[2:0]),
853 .in1(din1[2:0]),
854 .in2(din2[2:0]),
855 .in3(din3[2:0]),
856 .in4(din4[2:0]),
857 .in5(din5[2:0]),
858 .in6(din6[2:0]),
859 .in7(din7[2:0]),
860.dout(dout[2:0])
861);
862
863
864
865
866
867
868
869
870
871
872
873
874
875endmodule
876
877
878// general mux macro for pass-gate and and-or muxes with/wout priority encoders
879// also for pass-gate with decoder
880
881
882
883
884
885// any PARAMS parms go into naming of macro
886
887module tlu_cer_dp_mux_macro__dmux_8x__mux_aonpe__ports_2__width_49 (
888 din0,
889 sel0,
890 din1,
891 sel1,
892 dout);
893wire buffout0;
894wire buffout1;
895
896 input [48:0] din0;
897 input sel0;
898 input [48:0] din1;
899 input sel1;
900 output [48:0] dout;
901
902
903
904
905
906cl_dp1_muxbuff2_8x c0_0 (
907 .in0(sel0),
908 .in1(sel1),
909 .out0(buffout0),
910 .out1(buffout1)
911);
912mux2s #(49) d0_0 (
913 .sel0(buffout0),
914 .sel1(buffout1),
915 .in0(din0[48:0]),
916 .in1(din1[48:0]),
917.dout(dout[48:0])
918);
919
920
921
922
923
924
925
926
927
928
929
930
931
932endmodule
933
934
935//
936// or macro for ports = 2,3
937//
938//
939
940
941
942
943
944module tlu_cer_dp_or_macro__ports_2__width_64 (
945 din0,
946 din1,
947 dout);
948 input [63:0] din0;
949 input [63:0] din1;
950 output [63:0] dout;
951
952
953
954
955
956
957or2 #(64) d0_0 (
958.in0(din0[63:0]),
959.in1(din1[63:0]),
960.out(dout[63:0])
961);
962
963
964
965
966
967
968
969
970
971endmodule
972
973
974
975