Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / spc / ifu / rtl / ifu_ftu_byp_dp.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: ifu_ftu_byp_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 ifu_ftu_byp_dp (
36 tcu_scan_en,
37 tcu_se_scancollar_out,
38 l2clk,
39 scan_in,
40 tcu_pce_ov,
41 spc_aclk,
42 spc_bclk,
43 tcu_muxtest,
44 tcu_dectest,
45 mbi_cambist_run,
46 mbi_addr,
47 agd_mbist_wdata_bf,
48 ftp_mbi_icd_read_en_bf,
49 ftp_mbi_ict_read_en_bf,
50 itc_mbi_itb_read_en,
51 cmu_fill_inst0,
52 cmu_fill_inst1,
53 cmu_fill_inst2,
54 cmu_fill_inst3,
55 icd_bus_0_instr_c,
56 icd_bus_1_instr_c,
57 icd_bus_2_instr_c,
58 icd_bus_3_instr_c,
59 agc_instr_bp_sel_c,
60 agc_asi_sel_word_c,
61 agc_sel_tg_data_f,
62 ict_itlb_way_0_tag_f,
63 ict_itlb_way_1_tag_f,
64 ict_itlb_way_2_tag_f,
65 ict_itlb_way_3_tag_f,
66 ict_itlb_way_4_tag_f,
67 ict_itlb_way_5_tag_f,
68 ict_itlb_way_6_tag_f,
69 ict_itlb_way_7_tag_f,
70 itb_tte_data,
71 itb_tte_tag,
72 itb_tte_u_bit,
73 ftu_paddr,
74 itb_cam_hit_c,
75 itb_itb_mhit_c,
76 itb_tte_data_parity,
77 agc_itb_tag_perr_c,
78 itc_itb_data_sz_1,
79 ftp_sel_mbist_itb_cycle0,
80 ftp_sel_mbist_itb_cycle1,
81 ftp_sel_mbist_itb_cycle2,
82 ftp_sel_mbist_itb_cycle3,
83 ftp_sel_itlb_tag_cntx0_c,
84 ftp_sel_itlb_tag_cntx1_c,
85 ftp_sel_itlb_data_c,
86 ftp_sel_itlb_pa_c,
87 ftu_instr_0_c,
88 ftu_instr_1_c,
89 ftu_instr_2_c,
90 ftu_instr_3_c,
91 ic_rd_data,
92 ic_dmo_rd_data,
93 tg_rd_data,
94 it_rd_data,
95 ftu_mbi_ict_fail,
96 ftu_mbi_icd_fail,
97 ftu_mbi_itb_fail,
98 ftu_mbi_tlb_data_cmp,
99 ftu_mbi_tlb_used,
100 ftu_mbi_tlb_valid,
101 ict_itlb_way_0_tag_f_rep0,
102 ict_itlb_way_1_tag_f_rep0,
103 ict_itlb_way_2_tag_f_rep0,
104 ict_itlb_way_3_tag_f_rep0,
105 ict_itlb_way_4_tag_f_rep0,
106 ict_itlb_way_5_tag_f_rep0,
107 ict_itlb_way_6_tag_f_rep0,
108 ict_itlb_way_7_tag_f_rep0,
109 scan_out) ;
110wire stop;
111wire test;
112wire se;
113wire pce_ov;
114wire siclk;
115wire soclk;
116wire by_pass_i0i1_f_reg_scanin;
117wire by_pass_i0i1_f_reg_scanout;
118wire [32:0] by_pass_instr_1_f;
119wire [32:0] by_pass_instr_0_f;
120wire by_pass_i2i3_f_reg_scanin;
121wire by_pass_i2i3_f_reg_scanout;
122wire [32:0] by_pass_instr_3_f;
123wire [32:0] by_pass_instr_2_f;
124wire by_pass_i0i1_c_reg_scanin;
125wire by_pass_i0i1_c_reg_scanout;
126wire [32:0] by_pass_instr_1_c;
127wire [32:0] by_pass_instr_0_c;
128wire by_pass_i2i3_c_reg_scanin;
129wire by_pass_i2i3_c_reg_scanout;
130wire [32:0] by_pass_instr_3_c;
131wire [32:0] by_pass_instr_2_c;
132wire tcu_muxtest_rep0;
133wire tcu_muxtest_rep1;
134wire [32:0] icd_bus_2_instr_reordered_c;
135wire [32:0] icd_bus_3_instr_reordered_c;
136wire asi_word_muxx_scanin;
137wire asi_word_muxx_scanout;
138wire asi_tag_mux_scanin;
139wire asi_tag_mux_scanout;
140wire asi_itlb_mux_scanin;
141wire asi_itlb_mux_scanout;
142wire itlb_bist_mux_scanin;
143wire itlb_bist_mux_scanout;
144wire [7:0] mbist_wdata_3_ff;
145wire [31:0] itt_itd_cmp_data;
146wire [65:0] tag_mbist_wdata;
147wire [37:0] data_mbist_wdata;
148wire itlb_w_bist_data_mux_scanin;
149wire itlb_w_bist_data_mux_scanout;
150wire [31:0] mbist_cmp_data_4_ff;
151wire bist_data_stage_a_scanin;
152wire bist_data_stage_a_scanout;
153wire [7:0] mbist_wdata_2_ff;
154wire cambist_run_ff;
155wire [5:0] mbist_addr_1;
156wire bist_data_stage_b_scanin;
157wire bist_data_stage_b_scanout;
158wire [7:0] mbist_wdata_4_ff;
159wire bist_data_stage_dup_b_scanin;
160wire bist_data_stage_dup_b_scanout;
161wire [7:0] mbist_wdata_4_dup_ff;
162wire [5:0] mbist_addr_2;
163wire bist_data_stage_c_scanin;
164wire bist_data_stage_c_scanout;
165wire mbist_itb_read_en_2_ff;
166wire mbist_itb_read_en_3_ff;
167wire it_mbist_fail_q;
168wire mbist_icd_read_en_2_ff;
169wire mbist_icd_read_en_3_ff;
170wire ict_mbist_fail_q;
171wire icd_mbist_fail_q;
172wire mbist_ict_read_en_2_ff;
173wire [5:0] mbist_addr_3;
174wire mbist_itb_read_en_4_ff;
175wire mbist_icd_read_en_4_ff;
176wire mbist_ict_read_en_3_ff;
177wire [5:0] mbist_addr_4;
178wire ict_mbist_fail_unq_l;
179wire icd_mbist_fail_31_0_l;
180wire icd_mbist_fail_32;
181wire mbist_it_fail_unq_l;
182wire ict_mbist_fail_unq;
183wire icd_mbist_fail_31_0;
184wire mbist_it_fail_unq;
185wire cambist_run_ff_l;
186wire sel_mbist_itb_cycle1_l;
187wire icd_mbist_fail_unq;
188wire mbist_it_read_en;
189wire rbit_modify_unused;
190wire sel_mbist_itb_cycle1_l_ff;
191wire itb_data_for_cam_scanin;
192wire itb_data_for_cam_scanout;
193wire [5:0] itb_tte_data_1;
194
195
196
197input tcu_scan_en ;
198input tcu_se_scancollar_out ;
199input l2clk;
200input scan_in;
201input tcu_pce_ov; // scan signals
202input spc_aclk;
203input spc_bclk;
204input tcu_muxtest;
205input tcu_dectest;
206
207input mbi_cambist_run;
208input [5:0] mbi_addr;
209
210input [7:0] agd_mbist_wdata_bf;
211input ftp_mbi_icd_read_en_bf;
212input ftp_mbi_ict_read_en_bf;
213input itc_mbi_itb_read_en;
214input [32:0] cmu_fill_inst0;
215input [32:0] cmu_fill_inst1;
216input [32:0] cmu_fill_inst2;
217input [32:0] cmu_fill_inst3;
218input [32:0] icd_bus_0_instr_c ;
219input [32:0] icd_bus_1_instr_c ;
220input [32:0] icd_bus_2_instr_c ;
221input [32:0] icd_bus_3_instr_c ;
222input [2:0] agc_instr_bp_sel_c ;
223input [3:0] agc_asi_sel_word_c ;
224input [7:0] agc_sel_tg_data_f;
225input [29:0] ict_itlb_way_0_tag_f;
226input [29:0] ict_itlb_way_1_tag_f;
227input [29:0] ict_itlb_way_2_tag_f;
228input [29:0] ict_itlb_way_3_tag_f;
229input [29:0] ict_itlb_way_4_tag_f;
230input [29:0] ict_itlb_way_5_tag_f;
231input [29:0] ict_itlb_way_6_tag_f;
232input [29:0] ict_itlb_way_7_tag_f;
233input [37:0] itb_tte_data;
234input [65:0] itb_tte_tag;
235input itb_tte_u_bit;
236input [39:13] ftu_paddr;
237input itb_cam_hit_c;
238input itb_itb_mhit_c;
239input itb_tte_data_parity;
240input agc_itb_tag_perr_c;
241input itc_itb_data_sz_1;
242
243input ftp_sel_mbist_itb_cycle0;
244input ftp_sel_mbist_itb_cycle1;
245input ftp_sel_mbist_itb_cycle2;
246input ftp_sel_mbist_itb_cycle3;
247
248input ftp_sel_itlb_tag_cntx0_c;
249input ftp_sel_itlb_tag_cntx1_c;
250input ftp_sel_itlb_data_c;
251input ftp_sel_itlb_pa_c;
252
253
254output [32:0] ftu_instr_0_c ;
255output [32:0] ftu_instr_1_c ;
256output [32:0] ftu_instr_2_c ;
257output [32:0] ftu_instr_3_c ;
258output [32:0] ic_rd_data ;
259output [32:0] ic_dmo_rd_data;
260output [29:0] tg_rd_data ;
261output [63:0] it_rd_data ;
262
263output ftu_mbi_ict_fail;
264output ftu_mbi_icd_fail ;
265output ftu_mbi_itb_fail ;
266output ftu_mbi_tlb_data_cmp ;
267output ftu_mbi_tlb_used;
268output ftu_mbi_tlb_valid;
269
270output [28:0] ict_itlb_way_0_tag_f_rep0;
271output [28:0] ict_itlb_way_1_tag_f_rep0;
272output [28:0] ict_itlb_way_2_tag_f_rep0;
273output [28:0] ict_itlb_way_3_tag_f_rep0;
274output [28:0] ict_itlb_way_4_tag_f_rep0;
275output [28:0] ict_itlb_way_5_tag_f_rep0;
276output [28:0] ict_itlb_way_6_tag_f_rep0;
277output [28:0] ict_itlb_way_7_tag_f_rep0;
278
279output scan_out;
280
281// TLB TTE defines
282`define TAG_CNTX1_HI 65
283`define TAG_CNTX1_LO 53
284`define TAG_PID_HI 52
285`define TAG_PID_LO 50
286`define TAG_REAL 49
287`define TAG_VA_47_28_HI 48
288`define TAG_VA_47_28_LO 29
289`define TAG_VA_27_22_HI 28
290`define TAG_VA_27_22_LO 23
291`define TAG_V 22
292`define TAG_VA_21_16_HI 21
293`define TAG_VA_21_16_LO 16
294`define TAG_VA_15_13_HI 15
295`define TAG_VA_15_13_LO 13
296`define TAG_CNTX0_HI 12
297`define TAG_CNTX0_LO 0
298
299`define TAG_PARITY 37
300`define DATA_PARITY 36
301`define DATA_PA_39_28_HI 35
302`define DATA_PA_39_28_LO 24
303`define DATA_PA_27_22_HI 23
304`define DATA_PA_27_22_LO 18
305`define DATA_VA_27_22_V 17
306`define DATA_PA_21_16_HI 16
307`define DATA_PA_21_16_LO 11
308`define DATA_VA_21_16_V 10
309`define DATA_PA_15_13_HI 9
310`define DATA_PA_15_13_LO 7
311`define DATA_VA_15_13_V 6
312`define DATA_NFO 5
313`define DATA_IE 4
314`define DATA_CP 3
315`define DATA_E 2
316`define DATA_P 1
317`define DATA_W 0
318
319// scan renames
320// assign pce_ov = tcu_pce_ov;
321assign stop = 1'b0;
322// assign siclk = spc_aclk;
323// assign soclk = spc_bclk;
324assign test = tcu_dectest ;
325// end scan
326
327ifu_ftu_byp_dp_buff_macro__dbuff_32x__stack_none__width_4 test_rep0 (
328 .din ({tcu_scan_en,tcu_pce_ov,spc_aclk,spc_bclk}),
329 .dout({se,pce_ov,siclk,soclk})
330);
331
332///////////////////////////////////////////////////////////////////////
333///////////////////////////////////////////////////////////////////////
334
335///////////////////////////////////////////////////////////////////////
336// Flop the by_pass instructions from CMU
337///////////////////////////////////////////////////////////////////////
338ifu_ftu_byp_dp_msff_macro__stack_66c__width_66 by_pass_i0i1_f_reg (
339 .scan_in(by_pass_i0i1_f_reg_scanin),
340 .scan_out(by_pass_i0i1_f_reg_scanout),
341 .clk ( l2clk ),
342 .en ( 1'b1 ),
343 .din ( {cmu_fill_inst1[32:0], cmu_fill_inst0[32:0]}),
344 .dout( {by_pass_instr_1_f[32:0], by_pass_instr_0_f[32:0]} ),
345 .se(se),
346 .siclk(siclk),
347 .soclk(soclk),
348 .pce_ov(pce_ov),
349 .stop(stop));
350
351//msff_macro by_pass_i1_f_reg (width=33,stack=34c) (
352// .scan_in(by_pass_i1_f_reg_scanin),
353// .scan_out(by_pass_i1_f_reg_scanout),
354// .clk ( l2clk ),
355// .en ( 1'b1 ),
356// .din ( cmu_fill_inst1[32:0]),
357// .dout( by_pass_instr_1_f[32:0] ));
358
359ifu_ftu_byp_dp_msff_macro__stack_66c__width_66 by_pass_i2i3_f_reg (
360 .scan_in(by_pass_i2i3_f_reg_scanin),
361 .scan_out(by_pass_i2i3_f_reg_scanout),
362 .clk ( l2clk ),
363 .en ( 1'b1 ),
364 .din ( {cmu_fill_inst3[32:0], cmu_fill_inst2[32:0]}),
365 .dout( {by_pass_instr_3_f[32:0], by_pass_instr_2_f[32:0]} ),
366 .se(se),
367 .siclk(siclk),
368 .soclk(soclk),
369 .pce_ov(pce_ov),
370 .stop(stop));
371
372//msff_macro by_pass_i3_f_reg (width=33,stack=34c) (
373// .scan_in(by_pass_i3_f_reg_scanin),
374// .scan_out(by_pass_i3_f_reg_scanout),
375// .clk ( l2clk ),
376// .en ( 1'b1 ),
377// .din ( cmu_fill_inst3[32:0]),
378// .dout( by_pass_instr_3_f[32:0] ));
379
380///////////////////////////////////////////////////////////////////////
381// The following flops and muxes can be folded into the IC array. //
382///////////////////////////////////////////////////////////////////////
383
384 ifu_ftu_byp_dp_msff_macro__stack_66c__width_66 by_pass_i0i1_c_reg (
385 .scan_in(by_pass_i0i1_c_reg_scanin),
386 .scan_out(by_pass_i0i1_c_reg_scanout),
387 .clk ( l2clk ),
388 .en ( 1'b1 ),
389 .din ( {by_pass_instr_1_f[32:0],by_pass_instr_0_f[32:0]}),
390 .dout( {by_pass_instr_1_c[32:0],by_pass_instr_0_c[32:0]} ),
391 .se(se),
392 .siclk(siclk),
393 .soclk(soclk),
394 .pce_ov(pce_ov),
395 .stop(stop));
396
397// msff_macro by_pass_i1_c_reg (width=33,stack=34c) (
398// .scan_in(by_pass_i1_c_reg_scanin),
399// .scan_out(by_pass_i1_c_reg_scanout),
400// .clk ( l2clk ),
401// .en ( 1'b1 ),
402// .din ( by_pass_instr_1_f[32:0]),
403// .dout( by_pass_instr_1_c[32:0] ));
404
405 ifu_ftu_byp_dp_msff_macro__stack_66c__width_66 by_pass_i2i3_c_reg (
406 .scan_in(by_pass_i2i3_c_reg_scanin),
407 .scan_out(by_pass_i2i3_c_reg_scanout),
408 .clk ( l2clk ),
409 .en ( 1'b1 ),
410 .din ( {by_pass_instr_3_f[32:0],by_pass_instr_2_f[32:0]}),
411 .dout( {by_pass_instr_3_c[32:0],by_pass_instr_2_c[32:0]} ),
412 .se(se),
413 .siclk(siclk),
414 .soclk(soclk),
415 .pce_ov(pce_ov),
416 .stop(stop));
417
418// msff_macro by_pass_i3_c_reg (width=33,stack=34c) (
419// .scan_in(by_pass_i3_c_reg_scanin),
420// .scan_out(by_pass_i3_c_reg_scanout),
421// .clk ( l2clk ),
422//.en ( 1'b1 ),
423// .din ( by_pass_instr_3_f[32:0]),
424// .dout( by_pass_instr_3_c[32:0] ));
425
426ifu_ftu_byp_dp_buff_macro__dbuff_48x__width_1 tst_mux_rep0 (
427 .din ( tcu_muxtest ),
428 .dout( tcu_muxtest_rep0 ));
429
430
431ifu_ftu_byp_dp_mux_macro__mux_pgpe__ports_4__stack_66c__width_66 inst_01_bp_mux (
432 .din0( {icd_bus_1_instr_c[32:0],icd_bus_0_instr_c[32:0]}),
433 .din1( {by_pass_instr_1_f[32:0],by_pass_instr_0_f[32:0]}),
434 .din2( {by_pass_instr_1_c[32:0],by_pass_instr_0_c[32:0]}),
435 .din3( {cmu_fill_inst1[32:0],cmu_fill_inst0[32:0]}),
436 .muxtst(tcu_muxtest_rep0),
437 .sel0( agc_instr_bp_sel_c[0]),
438 .sel1( agc_instr_bp_sel_c[1]),
439 .sel2( agc_instr_bp_sel_c[2]),
440 .dout( {ftu_instr_1_c[32:0],ftu_instr_0_c[32:0]} ),
441 .test(test));
442
443//mux_macro inst_1_bp_mux (width=33,ports=5,mux=aonpe,stack=34c) (
444// .din0( icd_bus_1_instr_c[32:0]),
445// .din1( 33'h001000000),
446// .din2( cmu_fill_inst1[32:0]),
447// .din3( by_pass_instr_1_f[32:0]),
448// .din4( by_pass_instr_1_c[32:0]),
449// .sel0( agc_instr_bp_sel_c[0]),
450// .sel1( agc_instr_bp_sel_c[1]),
451// .sel2( agc_instr_bp_sel_c[2]),
452// .sel3( agc_instr_bp_sel_c[3]),
453// .sel4( agc_instr_bp_sel_c[4]),
454// .dout( ftu_instr_1_c[32:0] ));
455
456ifu_ftu_byp_dp_buff_macro__dbuff_48x__width_1 tst_mux_rep1 (
457 .din ( tcu_muxtest ),
458 .dout( tcu_muxtest_rep1 ));
459
460ifu_ftu_byp_dp_mux_macro__dmux_8x__mux_pgpe__ports_4__stack_66c__width_66 inst_23_bp_mux (
461 .din0( {icd_bus_3_instr_c[32:0],icd_bus_2_instr_c[32:0]}),
462 .din1( {by_pass_instr_3_f[32:0],by_pass_instr_2_f[32:0]}),
463 .din2( {by_pass_instr_3_c[32:0],by_pass_instr_2_c[32:0]}),
464 .din3( {cmu_fill_inst3[32:0],cmu_fill_inst2[32:0]}),
465 .muxtst(tcu_muxtest_rep1),
466 .sel0( agc_instr_bp_sel_c[0]),
467 .sel1( agc_instr_bp_sel_c[1]),
468 .sel2( agc_instr_bp_sel_c[2]),
469 .dout( {ftu_instr_3_c[32:0],ftu_instr_2_c[32:0]} ),
470 .test(test));
471
472
473// buff_macro icd_bus_01_instr_rep0 (width=66,stack=66c,dbuff=48x) (
474// .din ({icd_bus_1_instr_c[32:0],icd_bus_0_instr_c[32:0]} ),
475// .dout({icd_bus_1_instr_c_rep0[32:0], icd_bus_0_instr_c_rep0[32:0]})
476// );
477
478
479// buff_macro icd_bus_23_instr_rep0 (width=66,stack=66c,dbuff=48x) (
480// .din ({icd_bus_3_instr_c[32:0], icd_bus_2_instr_c[32:0] } ),
481// .dout({icd_bus_3_instr_c_rep0[32:0], icd_bus_2_instr_c_rep0[32:0]})
482// );
483
484
485
486
487//mux_macro inst_3_bp_mux (width=33,ports=5,mux=aonpe,stack=34c) (
488// .din0( icd_bus_3_instr_c[32:0]),
489// .din1( 33'h001000000),
490// .din2( cmu_fill_inst3[32:0]),
491// .din3( by_pass_instr_3_f[32:0]),
492// .din4( by_pass_instr_3_c[32:0]),
493// .sel0( agc_instr_bp_sel_c[0]),
494// .sel1( agc_instr_bp_sel_c[1]),
495// .sel2( agc_instr_bp_sel_c[2]),
496// .sel3( agc_instr_bp_sel_c[3]),
497// .sel4( agc_instr_bp_sel_c[4]),
498// .dout( ftu_instr_3_c[32:0] ));
499
500assign icd_bus_2_instr_reordered_c[32:0] = {icd_bus_2_instr_c[0], icd_bus_2_instr_c[1] ,icd_bus_2_instr_c[2] ,icd_bus_2_instr_c[3],
501 icd_bus_2_instr_c[4], icd_bus_2_instr_c[5] ,icd_bus_2_instr_c[6] ,icd_bus_2_instr_c[7],
502 icd_bus_2_instr_c[8], icd_bus_2_instr_c[9] ,icd_bus_2_instr_c[10],icd_bus_2_instr_c[11],
503 icd_bus_2_instr_c[12], icd_bus_2_instr_c[13],icd_bus_2_instr_c[14],icd_bus_2_instr_c[15],
504 icd_bus_2_instr_c[16], icd_bus_2_instr_c[17],icd_bus_2_instr_c[18],icd_bus_2_instr_c[19],
505 icd_bus_2_instr_c[20], icd_bus_2_instr_c[21],icd_bus_2_instr_c[22],icd_bus_2_instr_c[23],
506 icd_bus_2_instr_c[24], icd_bus_2_instr_c[25],icd_bus_2_instr_c[26],icd_bus_2_instr_c[27],
507 icd_bus_2_instr_c[28], icd_bus_2_instr_c[29],icd_bus_2_instr_c[30],icd_bus_2_instr_c[31],
508 icd_bus_2_instr_c[32]};
509
510assign icd_bus_3_instr_reordered_c[32:0] = {icd_bus_3_instr_c[0], icd_bus_3_instr_c[1] ,icd_bus_3_instr_c[2] ,icd_bus_3_instr_c[3],
511 icd_bus_3_instr_c[4], icd_bus_3_instr_c[5] ,icd_bus_3_instr_c[6] ,icd_bus_3_instr_c[7],
512 icd_bus_3_instr_c[8], icd_bus_3_instr_c[9] ,icd_bus_3_instr_c[10],icd_bus_3_instr_c[11],
513 icd_bus_3_instr_c[12], icd_bus_3_instr_c[13],icd_bus_3_instr_c[14],icd_bus_3_instr_c[15],
514 icd_bus_3_instr_c[16], icd_bus_3_instr_c[17],icd_bus_3_instr_c[18],icd_bus_3_instr_c[19],
515 icd_bus_3_instr_c[20], icd_bus_3_instr_c[21],icd_bus_3_instr_c[22],icd_bus_3_instr_c[23],
516 icd_bus_3_instr_c[24], icd_bus_3_instr_c[25],icd_bus_3_instr_c[26],icd_bus_3_instr_c[27],
517 icd_bus_3_instr_c[28], icd_bus_3_instr_c[29],icd_bus_3_instr_c[30],icd_bus_3_instr_c[31],
518 icd_bus_3_instr_c[32]};
519
520ifu_ftu_byp_dp_msff_macro__mux_aonpe__ports_4__stack_34c__width_33 asi_word_muxx (
521 .scan_in(asi_word_muxx_scanin),
522 .scan_out(asi_word_muxx_scanout),
523 .clk ( l2clk ),
524 .en ( 1'b1 ),
525 .se ( tcu_se_scancollar_out ) ,
526 .din0( icd_bus_0_instr_c[32:0]),
527 .din1( icd_bus_1_instr_c[32:0]),
528 .din2( icd_bus_2_instr_reordered_c[32:0]),
529 .din3( icd_bus_3_instr_reordered_c[32:0]),
530 .sel0( agc_asi_sel_word_c[0]),
531 .sel1( agc_asi_sel_word_c[1]),
532 .sel2( agc_asi_sel_word_c[2]),
533 .sel3( agc_asi_sel_word_c[3]),
534 .dout( ic_rd_data[32:0] ),
535 .siclk(siclk),
536 .soclk(soclk),
537 .pce_ov(pce_ov),
538 .stop(stop));
539
540ifu_ftu_byp_dp_buff_macro__dbuff_16x__rep_1__stack_34c__width_33 ic_dmo_rd_data_buf (
541 .din (ic_rd_data[32:0] ),
542 .dout(ic_dmo_rd_data[32:0])
543 );
544
545
546ifu_ftu_byp_dp_buff_macro__dbuff_48x__rep_1__stack_30c__width_29 way_0_tag_buff_rep0 (
547 .din (ict_itlb_way_0_tag_f[28:0] ),
548 .dout(ict_itlb_way_0_tag_f_rep0[28:0])
549 );
550
551ifu_ftu_byp_dp_buff_macro__dbuff_48x__rep_1__stack_30c__width_29 way_1_tag_buff_rep0 (
552 .din (ict_itlb_way_1_tag_f[28:0] ),
553 .dout(ict_itlb_way_1_tag_f_rep0[28:0])
554 );
555
556ifu_ftu_byp_dp_buff_macro__dbuff_48x__rep_1__stack_30c__width_29 way_2_tag_buff_rep0 (
557 .din (ict_itlb_way_2_tag_f[28:0] ),
558 .dout(ict_itlb_way_2_tag_f_rep0[28:0])
559 );
560
561ifu_ftu_byp_dp_buff_macro__dbuff_48x__rep_1__stack_30c__width_29 way_3_tag_buff_rep0 (
562 .din (ict_itlb_way_3_tag_f[28:0] ),
563 .dout(ict_itlb_way_3_tag_f_rep0[28:0])
564 );
565
566ifu_ftu_byp_dp_buff_macro__dbuff_48x__rep_1__stack_30c__width_29 way_4_tag_buff_rep0 (
567 .din (ict_itlb_way_4_tag_f[28:0] ),
568 .dout(ict_itlb_way_4_tag_f_rep0[28:0])
569 );
570
571ifu_ftu_byp_dp_buff_macro__dbuff_48x__rep_1__stack_30c__width_29 way_5_tag_buff_rep0 (
572 .din (ict_itlb_way_5_tag_f[28:0] ),
573 .dout(ict_itlb_way_5_tag_f_rep0[28:0])
574 );
575
576ifu_ftu_byp_dp_buff_macro__dbuff_48x__rep_1__stack_30c__width_29 way_6_tag_buff_rep0 (
577 .din (ict_itlb_way_6_tag_f[28:0] ),
578 .dout(ict_itlb_way_6_tag_f_rep0[28:0])
579 );
580
581ifu_ftu_byp_dp_buff_macro__dbuff_48x__rep_1__stack_30c__width_29 way_7_tag_buff_rep0 (
582 .din (ict_itlb_way_7_tag_f[28:0] ),
583 .dout(ict_itlb_way_7_tag_f_rep0[28:0])
584 );
585
586ifu_ftu_byp_dp_msff_macro__mux_aonpe__ports_8__stack_32c__width_30 asi_tag_mux (
587 .scan_in(asi_tag_mux_scanin),
588 .scan_out(asi_tag_mux_scanout),
589 .clk ( l2clk ),
590 .en ( 1'b1 ),
591 .se ( tcu_se_scancollar_out ) ,
592 .din0( ict_itlb_way_0_tag_f[29:0]),
593 .din1( ict_itlb_way_1_tag_f[29:0]),
594 .din2( ict_itlb_way_2_tag_f[29:0]),
595 .din3( ict_itlb_way_3_tag_f[29:0]),
596 .din4( ict_itlb_way_4_tag_f[29:0]),
597 .din5( ict_itlb_way_5_tag_f[29:0]),
598 .din6( ict_itlb_way_6_tag_f[29:0]),
599 .din7( ict_itlb_way_7_tag_f[29:0]),
600 .sel0( agc_sel_tg_data_f[0]),
601 .sel1( agc_sel_tg_data_f[1]),
602 .sel2( agc_sel_tg_data_f[2]),
603 .sel3( agc_sel_tg_data_f[3]),
604 .sel4( agc_sel_tg_data_f[4]),
605 .sel5( agc_sel_tg_data_f[5]),
606 .sel6( agc_sel_tg_data_f[6]),
607 .sel7( agc_sel_tg_data_f[7]),
608 .dout( tg_rd_data[29:0] ),
609 .siclk(siclk),
610 .soclk(soclk),
611 .pce_ov(pce_ov),
612 .stop(stop));
613
614
615// msff_macro itb_cam_hit_reg (width=4) (
616// .scan_in(itb_cam_hit_reg_scanin),
617// .scan_out(itb_cam_hit_reg_scanout),
618// .clk (l2clk),
619// .en ( 1'b1 ),
620// .din({itb_cam_hit_c,
621// itb_itb_mhit_c,
622// itb_tte_data_parity,
623// agc_itb_tag_perr_c}) ,
624// .dout({cam_hit_p,
625// itb_mhit_p,
626// tte_data_parity_p,
627// itb_tag_perr_p}));
628
629
630ifu_ftu_byp_dp_msff_macro__minbuff_1__mux_aonpe__ports_4__stack_64c__width_64 asi_itlb_mux (
631.scan_in(asi_itlb_mux_scanin),
632.scan_out(asi_itlb_mux_scanout),
633.clk ( l2clk ),
634.en ( 1'b1 ),
635.se ( tcu_se_scancollar_out ) ,
636.din0 ({itb_tte_tag[`TAG_PID_HI:`TAG_PID_LO], // PID
637 itb_tte_tag[`TAG_REAL], // REAL
638 itb_tte_data[`TAG_PARITY], // PARITY
639 itb_tte_u_bit, // USED
640 10'b0,
641 itb_tte_tag[`TAG_VA_47_28_HI:`TAG_VA_27_22_LO],
642 itb_tte_tag[`TAG_VA_21_16_HI:`TAG_VA_21_16_LO],
643 itb_tte_tag[`TAG_VA_15_13_HI:`TAG_VA_15_13_LO],
644 itb_tte_tag[`TAG_CNTX0_HI:`TAG_CNTX0_LO] // context
645 }),
646.din1 ({itb_tte_tag[`TAG_PID_HI:`TAG_PID_LO], // PID
647 itb_tte_tag[`TAG_REAL], // REAL
648 itb_tte_data[`TAG_PARITY], // PARITY
649 itb_tte_u_bit, // USED
650 10'b0,
651 itb_tte_tag[`TAG_VA_47_28_HI:`TAG_VA_27_22_LO],
652 itb_tte_tag[`TAG_VA_21_16_HI:`TAG_VA_21_16_LO],
653 itb_tte_tag[`TAG_VA_15_13_HI:`TAG_VA_15_13_LO],
654 itb_tte_tag[`TAG_CNTX1_HI:`TAG_CNTX1_LO] // context
655 }),
656.din2 ({itb_tte_tag[`TAG_V], // V
657 itb_tte_data[`DATA_NFO], // NFO
658 itb_tte_data[`DATA_PARITY], // PARITY
659 5'b0, // SOFT
660 16'b0,
661 itb_tte_data[`DATA_PA_39_28_HI:`DATA_PA_39_28_LO], // PA
662 itb_tte_data[`DATA_PA_27_22_HI:`DATA_PA_27_22_LO],
663 itb_tte_data[`DATA_PA_21_16_HI:`DATA_PA_21_16_LO],
664 itb_tte_data[`DATA_PA_15_13_HI:`DATA_PA_15_13_LO],
665 itb_tte_data[`DATA_IE], // IE
666 itb_tte_data[`DATA_E], // E
667 itb_tte_data[`DATA_CP], // CP
668 1'b0, // CV
669 itb_tte_data[`DATA_P], // P
670 1'b0, // EP
671 itb_tte_data[`DATA_W], // W
672 3'b0,
673 itb_tte_data[`DATA_VA_27_22_V], // SZ
674 itc_itb_data_sz_1,itb_tte_data[`DATA_VA_15_13_V] // SZ
675 }),
676.din3( {itb_cam_hit_c, itb_itb_mhit_c, agc_itb_tag_perr_c, itb_tte_data_parity, 20'b0,ftu_paddr[39:13],13'b0}),
677.sel0( ftp_sel_itlb_tag_cntx0_c),
678.sel1( ftp_sel_itlb_tag_cntx1_c),
679.sel2( ftp_sel_itlb_data_c),
680.sel3( ftp_sel_itlb_pa_c),
681.dout( it_rd_data[63:0] ),
682 .siclk(siclk),
683 .soclk(soclk),
684 .pce_ov(pce_ov),
685 .stop(stop));
686
687
688// mbist_wdata[68:0] = { mbist_wdata_bf[1:0], mbist_wdata_bf[7:0],mbist_wdata_bf[7:6], // [68:56]
689// mbist_wdata_bf[4:2], // [55:53]
690// 1'b0, // [52]
691// mbist_wdata_bf[0],{3{mbist_wdata_bf[7:0]}},mbist_wdata_bf[7], // [51:26]
692// 1'b0, // [25]
693// mbist_wdata_bf[6:0], // [24:18]
694// 1'b0, // [17]
695// mbist_wdata_bf[7:5], // [16:14]
696// 1'b0, // [13]
697// mbist_wdata_bf[4:0],mbist_wdata_bf[7:0]}; // [12:0]
698//
699// data_mbist_wdata[37:0] = { mbist_wdata_bf[4:0],mbist_wdata_bf[7:1], // [37:26]
700// 1'b0, // [25]
701// mbist_wdata_bf[0],mbist_wdata_bf[7:2], // [24:18]
702// 1'b0, // [17]
703// mbist_wdata_bf[0], mbist_wdata_bf[7:6], // [16:14]
704// 1'b0, // [13]
705// mbist_wdata_bf[4:0],mbist_wdata_bf[7:0]}; // [12:0]
706//
707//
708//
709// ifu_agd_pc_bf[47:13] = ({itd_tag[51:32],
710// itd_tag[31:26],
711// itd_tag[23:18],
712// itd_tag[16:14]})
713//
714// tte_tag[65:0] = ({itd_tag[68:52], // [65:49] ---> itd_tag[68:52]--> mbist_wdata_bf[2:0],
715// mbist_wdata_bf[7:0],mbist_data[7:6],mbist_data[4:2],1'b0
716// ifu_agd_pc_bf[47:22], // [48:23] ---> itd_tag[51:26]--> mbist_data[0],{3{mbist_wdata_bf[7:0]}},mbist_wdata_bf[7]
717// itd_tag[24], // [22] ---> itd_tag[24]-----> mbist_data[6]
718// ifu_agd_pc_bf[21:16], // [21:16] ---> itd_tag[23:18]--> mbist_data[5:0]
719// ifu_agd_pc_bf[15:13], // [15:13] ---> itd_tag[16:14]--> mbist_data[7:5]
720// itd_tag[12:0]}), // [12:0] ---> itd_tag[12:0]---> mbist_data[4:0],mbist_data[7:0]
721//
722
723// TAG_CNTX1_HI 65
724// TAG_CNTX1_LO 53
725// TAG_PID_HI 52
726// TAG_PID_LO 50
727// TAG_REAL 49
728// TAG_VA_47_28_HI 48
729// TAG_VA_47_28_LO 29
730// TAG_VA_27_22_HI 28
731// TAG_VA_27_22_LO 23
732// TAG_V 22
733// TAG_VA_21_16_HI 21
734// TAG_VA_21_16_LO 16
735// TAG_VA_15_13_HI 15
736// TAG_VA_15_13_LO 13
737// TAG_CNTX0_HI 12
738// TAG_CNTX0_LO 0
739
740
741
742ifu_ftu_byp_dp_msff_macro__minbuff_1__mux_aonpe__ports_4__stack_32c__width_32 itlb_bist_mux (
743.scan_in(itlb_bist_mux_scanin),
744.scan_out(itlb_bist_mux_scanout),
745.clk ( l2clk ),
746.en ( 1'b1 ),
747.se ( tcu_se_scancollar_out ) ,
748.din0 ( itb_tte_tag[31:0]),
749.din1 ( itb_tte_tag[63:32]),
750.din2 ( itb_tte_data[31:0] ),
751.din3 ( {mbist_wdata_3_ff[7:0],mbist_wdata_3_ff[7:0],mbist_wdata_3_ff[7:1],itb_tte_u_bit,
752 itb_tte_tag[65:64],itb_tte_data[37:32]} ),
753.sel0 ( ftp_sel_mbist_itb_cycle0),
754.sel1 ( ftp_sel_mbist_itb_cycle1),
755.sel2 ( ftp_sel_mbist_itb_cycle2),
756.sel3 ( ftp_sel_mbist_itb_cycle3),
757.dout( itt_itd_cmp_data[31:0] ),
758 .siclk(siclk),
759 .soclk(soclk),
760 .pce_ov(pce_ov),
761 .stop(stop));
762
763assign tag_mbist_wdata[65:0] = ({mbist_wdata_3_ff[1:0],mbist_wdata_3_ff[7:0],mbist_wdata_3_ff[7:5],mbist_wdata_3_ff[4:2],1'b0, // [65:49]
764 mbist_wdata_3_ff[0],{3{mbist_wdata_3_ff[7:0]}},mbist_wdata_3_ff[7], // [48:23]
765 mbist_wdata_3_ff[6], // [22]
766 mbist_wdata_3_ff[5:0], // [21:16]
767 mbist_wdata_3_ff[7:5], // [15:13]
768 mbist_wdata_3_ff[4:0],mbist_wdata_3_ff[7:0] }) ; // [12:0]
769
770assign data_mbist_wdata[37:0] = { mbist_wdata_3_ff[5:0],mbist_wdata_3_ff[7:2], // [37:26]
771 mbist_wdata_3_ff[1], // [25]
772 mbist_wdata_3_ff[0],mbist_wdata_3_ff[7:2], // [24:18]
773 mbist_wdata_3_ff[1], // [17]
774 mbist_wdata_3_ff[0], mbist_wdata_3_ff[7:6], // [16:14]
775 mbist_wdata_3_ff[5], // [13]
776 mbist_wdata_3_ff[4:0],mbist_wdata_3_ff[7:0]}; // [12:0]
777
778
779ifu_ftu_byp_dp_msff_macro__mux_aonpe__ports_4__stack_32c__width_32 itlb_w_bist_data_mux (
780.scan_in(itlb_w_bist_data_mux_scanin),
781.scan_out(itlb_w_bist_data_mux_scanout),
782.clk ( l2clk ),
783.en ( 1'b1 ),
784.se ( tcu_se_scancollar_out ) ,
785.din0 ( tag_mbist_wdata[31:0]),
786.din1 ( tag_mbist_wdata[63:32]),
787.din2 ( data_mbist_wdata[31:0] ),
788.din3 ( {mbist_wdata_3_ff[7:0],mbist_wdata_3_ff[7:0],mbist_wdata_3_ff[7:0],
789 tag_mbist_wdata[65:64],data_mbist_wdata[37:32]} ),
790.sel0 ( ftp_sel_mbist_itb_cycle0),
791.sel1 ( ftp_sel_mbist_itb_cycle1),
792.sel2 ( ftp_sel_mbist_itb_cycle2),
793.sel3 ( ftp_sel_mbist_itb_cycle3),
794.dout( mbist_cmp_data_4_ff[31:0] ),
795 .siclk(siclk),
796 .soclk(soclk),
797 .pce_ov(pce_ov),
798 .stop(stop));
799
800ifu_ftu_byp_dp_msff_macro__stack_16c__width_16 bist_data_stage_a (
801 .scan_in(bist_data_stage_a_scanin),
802 .scan_out(bist_data_stage_a_scanout),
803 .clk ( l2clk ),
804 .en ( 1'b1 ),
805 .din ({agd_mbist_wdata_bf[7:0],mbist_wdata_2_ff[7:3],mbi_cambist_run,mbi_addr[5:4]}),
806 .dout ({mbist_wdata_2_ff[7:0], mbist_wdata_3_ff[7:3],cambist_run_ff,mbist_addr_1[5:4]}),
807 .se(se),
808 .siclk(siclk),
809 .soclk(soclk),
810 .pce_ov(pce_ov),
811 .stop(stop));
812
813ifu_ftu_byp_dp_msff_macro__stack_16c__width_15 bist_data_stage_b (
814 .scan_in(bist_data_stage_b_scanin),
815 .scan_out(bist_data_stage_b_scanout),
816 .clk ( l2clk ),
817 .en ( 1'b1 ),
818 .din ({mbist_wdata_2_ff[2:0],mbist_wdata_3_ff[7:0],mbi_addr[3:0] }),
819 .dout ({mbist_wdata_3_ff[2:0],mbist_wdata_4_ff[7:0],mbist_addr_1[3:0] } ),
820 .se(se),
821 .siclk(siclk),
822 .soclk(soclk),
823 .pce_ov(pce_ov),
824 .stop(stop));
825
826ifu_ftu_byp_dp_msff_macro__stack_16c__width_14 bist_data_stage_dup_b (
827 .scan_in(bist_data_stage_dup_b_scanin),
828 .scan_out(bist_data_stage_dup_b_scanout),
829 .clk ( l2clk ),
830 .en ( 1'b1 ),
831 .din ({mbist_wdata_3_ff[7:0], mbist_addr_1[5:0] }),
832 .dout ({mbist_wdata_4_dup_ff[7:0], mbist_addr_2[5:0] } ),
833 .se(se),
834 .siclk(siclk),
835 .soclk(soclk),
836 .pce_ov(pce_ov),
837 .stop(stop));
838
839ifu_ftu_byp_dp_msff_macro__stack_16c__width_16 bist_data_stage_c (
840 .scan_in(bist_data_stage_c_scanin),
841 .scan_out(bist_data_stage_c_scanout),
842 .clk ( l2clk ),
843 .en ( 1'b1 ),
844 .din ({ mbist_itb_read_en_2_ff,mbist_itb_read_en_3_ff,
845 it_mbist_fail_q ,ftp_mbi_icd_read_en_bf, mbist_icd_read_en_2_ff,
846 mbist_icd_read_en_3_ff, ict_mbist_fail_q,icd_mbist_fail_q,
847 itc_mbi_itb_read_en,ftp_mbi_ict_read_en_bf,mbist_ict_read_en_2_ff,mbist_addr_3[4:0] }),
848 .dout ({ mbist_itb_read_en_3_ff, mbist_itb_read_en_4_ff,
849 ftu_mbi_itb_fail, mbist_icd_read_en_2_ff , mbist_icd_read_en_3_ff,
850 mbist_icd_read_en_4_ff, ftu_mbi_ict_fail,ftu_mbi_icd_fail,
851 mbist_itb_read_en_2_ff,mbist_ict_read_en_2_ff,mbist_ict_read_en_3_ff,mbist_addr_4[4:0]}),
852 .se(se),
853 .siclk(siclk),
854 .soclk(soclk),
855 .pce_ov(pce_ov),
856 .stop(stop));
857
858// mux_macro cmp_data_mux (width=33,ports=2,mux=aonpe,stack=34c) (
859// .din0( {mbist_wdata_3_ff[0],mbist_wdata_3_ff[7:6],tg_rd_data[29:0]}),
860// .din1( ic_rd_data[32:0]),
861// .sel0( mbist_ict_read_en_3_ff),
862// .sel1( mbist_icd_read_en_4_ff),
863// .dout( ict_icd_cmp_data[32:0] ));
864
865ifu_ftu_byp_dp_cmp_macro__dcmp_8x__width_32 ict_fail_detect (
866 .dout( ict_mbist_fail_unq_l),
867 .din0( {mbist_wdata_3_ff[7:0],mbist_wdata_3_ff[7:0],mbist_wdata_3_ff[7:0],mbist_wdata_3_ff[7:0]}),
868 .din1( {mbist_wdata_3_ff[7:6],tg_rd_data[29:0]})
869);
870
871// mux_macro itb_cmp_data_mux_1 (width=16,ports=2,mux=aope,stack=16c) (
872// .din0( {mbist_wdata_4_ff[7:2],it_rd_data[57:48]}),
873// .din1( it_rd_data[31:16]),
874// .sel0( cmpsel_4_ff[0]),
875// .dout( itt_itd_cmp_data[31:16] ));
876
877// mux_macro itb_cmp_data_mux_0 (width=16,ports=2,mux=aope,stack=16c) (
878// .din0( it_rd_data[47:32]),
879// .din1( it_rd_data[15:0]),
880// .sel0( cmpsel_4_ff[0]),
881// .dout( itt_itd_cmp_data[15:0] ));
882
883
884ifu_ftu_byp_dp_cmp_macro__dcmp_8x__width_32 icd_fail_detect (
885 .dout( icd_mbist_fail_31_0_l),
886 .din0( {mbist_wdata_4_dup_ff[7:0],mbist_wdata_4_dup_ff[7:0],mbist_wdata_4_dup_ff[7:0],mbist_wdata_4_dup_ff[7:0]}),
887 .din1( ic_rd_data[31:0])
888);
889ifu_ftu_byp_dp_xor_macro__ports_2__width_1 icd_fail_detect_xnor (
890 .din0( mbist_wdata_4_ff[0]) ,
891 .din1( ic_rd_data[32]) ,
892 .dout( icd_mbist_fail_32)) ;
893
894
895ifu_ftu_byp_dp_cmp_macro__dcmp_8x__width_32 it_fail_detect (
896 .dout( mbist_it_fail_unq_l),
897 .din0( mbist_cmp_data_4_ff[31:0]),
898 .din1( itt_itd_cmp_data[31:0])
899);
900
901 ifu_ftu_byp_dp_inv_macro__width_5 ict_fail_macro (
902 .dout( {ict_mbist_fail_unq,icd_mbist_fail_31_0, mbist_it_fail_unq,cambist_run_ff_l,sel_mbist_itb_cycle1_l}),
903 .din( {ict_mbist_fail_unq_l,icd_mbist_fail_31_0_l, mbist_it_fail_unq_l,cambist_run_ff,ftp_sel_mbist_itb_cycle1})
904);
905
906 ifu_ftu_byp_dp_or_macro__ports_2__width_1 icd_final_fail (
907 .din0 (icd_mbist_fail_32),
908 .din1 (icd_mbist_fail_31_0) ,
909 .dout (icd_mbist_fail_unq)) ;
910
911// or_macro read_or_macro (width=2,ports=2) (
912// .dout( {mbist_read_en,mbist_it_read_en}),
913// .din0( {mbist_ict_read_en_3_ff,1'b0}),
914// .din1( {mbist_icd_read_en_4_ff,mbist_itb_read_en_3_ff})
915// );
916
917// assign mbist_it_read_en = mbist_itb_read_en_4_ff ;
918
919 ifu_ftu_byp_dp_and_macro__width_5 fail_qual (
920 .dout( {ict_mbist_fail_q,icd_mbist_fail_q,it_mbist_fail_q,mbist_it_read_en,rbit_modify_unused}),
921 .din0( {ict_mbist_fail_unq,icd_mbist_fail_unq,mbist_it_fail_unq,cambist_run_ff_l,sel_mbist_itb_cycle1_l_ff}),
922 .din1( {mbist_ict_read_en_3_ff,mbist_icd_read_en_4_ff,mbist_it_read_en,mbist_itb_read_en_4_ff,mbist_wdata_4_ff[1]})) ;
923
924
925// assign ftu_mbi_icd_fail = ftu_mbi_ict_fail ;
926
927ifu_ftu_byp_dp_msff_macro__minbuff_1__stack_16c__width_16 itb_data_for_cam (
928 .scan_in(itb_data_for_cam_scanin),
929 .scan_out(itb_data_for_cam_scanout),
930 .clk ( l2clk ),
931 .en ( 1'b1 ),
932 .din ({itb_tte_data[5:0] , itb_tte_u_bit , itb_tte_tag[`TAG_V],mbist_addr_2[5:0],sel_mbist_itb_cycle1_l,mbist_addr_3[5]}),
933 .dout ({itb_tte_data_1[5:0], ftu_mbi_tlb_used, ftu_mbi_tlb_valid,mbist_addr_3[5:0] , sel_mbist_itb_cycle1_l_ff,mbist_addr_4[5]} ),
934 .se(se),
935 .siclk(siclk),
936 .soclk(soclk),
937 .pce_ov(pce_ov),
938 .stop(stop));
939
940ifu_ftu_byp_dp_cmp_macro__width_8 cambist_cmp (
941 .din0 ({2'b0,mbist_addr_4[5:0]}),
942 .din1 ({2'b0,itb_tte_data_1[5:0]}),
943 .dout (ftu_mbi_tlb_data_cmp)
944);
945
946
947// assign se = tcu_scan_en ;
948// fixscan start:
949assign by_pass_i0i1_f_reg_scanin = scan_in ;
950assign by_pass_i2i3_f_reg_scanin = by_pass_i0i1_f_reg_scanout;
951assign by_pass_i0i1_c_reg_scanin = by_pass_i2i3_f_reg_scanout;
952assign by_pass_i2i3_c_reg_scanin = by_pass_i0i1_c_reg_scanout;
953assign asi_word_muxx_scanin = by_pass_i2i3_c_reg_scanout;
954assign asi_tag_mux_scanin = asi_word_muxx_scanout ;
955assign asi_itlb_mux_scanin = asi_tag_mux_scanout ;
956assign itlb_bist_mux_scanin = asi_itlb_mux_scanout ;
957assign itlb_w_bist_data_mux_scanin = itlb_bist_mux_scanout ;
958assign bist_data_stage_a_scanin = itlb_w_bist_data_mux_scanout;
959assign bist_data_stage_b_scanin = bist_data_stage_a_scanout;
960assign bist_data_stage_dup_b_scanin = bist_data_stage_b_scanout;
961assign bist_data_stage_c_scanin = bist_data_stage_dup_b_scanout;
962assign itb_data_for_cam_scanin = bist_data_stage_c_scanout;
963assign scan_out = itb_data_for_cam_scanout ;
964// fixscan end:
965endmodule
966
967
968//
969// buff macro
970//
971//
972
973
974
975
976
977module ifu_ftu_byp_dp_buff_macro__dbuff_32x__stack_none__width_4 (
978 din,
979 dout);
980 input [3:0] din;
981 output [3:0] dout;
982
983
984
985
986
987
988buff #(4) d0_0 (
989.in(din[3:0]),
990.out(dout[3:0])
991);
992
993
994
995
996
997
998
999
1000endmodule
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010// any PARAMS parms go into naming of macro
1011
1012module ifu_ftu_byp_dp_msff_macro__stack_66c__width_66 (
1013 din,
1014 clk,
1015 en,
1016 se,
1017 scan_in,
1018 siclk,
1019 soclk,
1020 pce_ov,
1021 stop,
1022 dout,
1023 scan_out);
1024wire l1clk;
1025wire siclk_out;
1026wire soclk_out;
1027wire [64:0] so;
1028
1029 input [65:0] din;
1030
1031
1032 input clk;
1033 input en;
1034 input se;
1035 input scan_in;
1036 input siclk;
1037 input soclk;
1038 input pce_ov;
1039 input stop;
1040
1041
1042
1043 output [65:0] dout;
1044
1045
1046 output scan_out;
1047
1048
1049
1050
1051cl_dp1_l1hdr_8x c0_0 (
1052.l2clk(clk),
1053.pce(en),
1054.aclk(siclk),
1055.bclk(soclk),
1056.l1clk(l1clk),
1057 .se(se),
1058 .pce_ov(pce_ov),
1059 .stop(stop),
1060 .siclk_out(siclk_out),
1061 .soclk_out(soclk_out)
1062);
1063dff #(66) d0_0 (
1064.l1clk(l1clk),
1065.siclk(siclk_out),
1066.soclk(soclk_out),
1067.d(din[65:0]),
1068.si({scan_in,so[64:0]}),
1069.so({so[64:0],scan_out}),
1070.q(dout[65:0])
1071);
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092endmodule
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102//
1103// buff macro
1104//
1105//
1106
1107
1108
1109
1110
1111module ifu_ftu_byp_dp_buff_macro__dbuff_48x__width_1 (
1112 din,
1113 dout);
1114 input [0:0] din;
1115 output [0:0] dout;
1116
1117
1118
1119
1120
1121
1122buff #(1) d0_0 (
1123.in(din[0:0]),
1124.out(dout[0:0])
1125);
1126
1127
1128
1129
1130
1131
1132
1133
1134endmodule
1135
1136
1137
1138
1139
1140// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1141// also for pass-gate with decoder
1142
1143
1144
1145
1146
1147// any PARAMS parms go into naming of macro
1148
1149module ifu_ftu_byp_dp_mux_macro__mux_pgpe__ports_4__stack_66c__width_66 (
1150 din0,
1151 din1,
1152 din2,
1153 din3,
1154 sel0,
1155 sel1,
1156 sel2,
1157 muxtst,
1158 test,
1159 dout);
1160wire psel0;
1161wire psel1;
1162wire psel2;
1163wire psel3;
1164
1165 input [65:0] din0;
1166 input [65:0] din1;
1167 input [65:0] din2;
1168 input [65:0] din3;
1169 input sel0;
1170 input sel1;
1171 input sel2;
1172 input muxtst;
1173 input test;
1174 output [65:0] dout;
1175
1176
1177
1178
1179
1180cl_dp1_penc4_8x c0_0 (
1181 .sel0(sel0),
1182 .sel1(sel1),
1183 .sel2(sel2),
1184 .psel0(psel0),
1185 .psel1(psel1),
1186 .psel2(psel2),
1187 .psel3(psel3),
1188 .test(test)
1189);
1190
1191mux4 #(66) d0_0 (
1192 .sel0(psel0),
1193 .sel1(psel1),
1194 .sel2(psel2),
1195 .sel3(psel3),
1196 .in0(din0[65:0]),
1197 .in1(din1[65:0]),
1198 .in2(din2[65:0]),
1199 .in3(din3[65:0]),
1200.dout(dout[65:0]),
1201 .muxtst(muxtst)
1202);
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216endmodule
1217
1218
1219// general mux macro for pass-gate and and-or muxes with/wout priority encoders
1220// also for pass-gate with decoder
1221
1222
1223
1224
1225
1226// any PARAMS parms go into naming of macro
1227
1228module ifu_ftu_byp_dp_mux_macro__dmux_8x__mux_pgpe__ports_4__stack_66c__width_66 (
1229 din0,
1230 din1,
1231 din2,
1232 din3,
1233 sel0,
1234 sel1,
1235 sel2,
1236 muxtst,
1237 test,
1238 dout);
1239wire psel0;
1240wire psel1;
1241wire psel2;
1242wire psel3;
1243
1244 input [65:0] din0;
1245 input [65:0] din1;
1246 input [65:0] din2;
1247 input [65:0] din3;
1248 input sel0;
1249 input sel1;
1250 input sel2;
1251 input muxtst;
1252 input test;
1253 output [65:0] dout;
1254
1255
1256
1257
1258
1259cl_dp1_penc4_8x c0_0 (
1260 .sel0(sel0),
1261 .sel1(sel1),
1262 .sel2(sel2),
1263 .psel0(psel0),
1264 .psel1(psel1),
1265 .psel2(psel2),
1266 .psel3(psel3),
1267 .test(test)
1268);
1269
1270mux4 #(66) d0_0 (
1271 .sel0(psel0),
1272 .sel1(psel1),
1273 .sel2(psel2),
1274 .sel3(psel3),
1275 .in0(din0[65:0]),
1276 .in1(din1[65:0]),
1277 .in2(din2[65:0]),
1278 .in3(din3[65:0]),
1279.dout(dout[65:0]),
1280 .muxtst(muxtst)
1281);
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295endmodule
1296
1297
1298
1299
1300
1301
1302// any PARAMS parms go into naming of macro
1303
1304module ifu_ftu_byp_dp_msff_macro__mux_aonpe__ports_4__stack_34c__width_33 (
1305 din0,
1306 sel0,
1307 din1,
1308 sel1,
1309 din2,
1310 sel2,
1311 din3,
1312 sel3,
1313 clk,
1314 en,
1315 se,
1316 scan_in,
1317 siclk,
1318 soclk,
1319 pce_ov,
1320 stop,
1321 dout,
1322 scan_out);
1323wire buffout0;
1324wire buffout1;
1325wire buffout2;
1326wire buffout3;
1327wire [32:0] muxout;
1328wire l1clk;
1329wire siclk_out;
1330wire soclk_out;
1331wire [31:0] so;
1332
1333 input [32:0] din0;
1334 input sel0;
1335 input [32:0] din1;
1336 input sel1;
1337 input [32:0] din2;
1338 input sel2;
1339 input [32:0] din3;
1340 input sel3;
1341
1342
1343 input clk;
1344 input en;
1345 input se;
1346 input scan_in;
1347 input siclk;
1348 input soclk;
1349 input pce_ov;
1350 input stop;
1351
1352
1353
1354 output [32:0] dout;
1355
1356
1357 output scan_out;
1358
1359
1360
1361
1362cl_dp1_muxbuff4_8x c1_0 (
1363 .in0(sel0),
1364 .in1(sel1),
1365 .in2(sel2),
1366 .in3(sel3),
1367 .out0(buffout0),
1368 .out1(buffout1),
1369 .out2(buffout2),
1370 .out3(buffout3)
1371);
1372mux4s #(33) d1_0 (
1373 .sel0(buffout0),
1374 .sel1(buffout1),
1375 .sel2(buffout2),
1376 .sel3(buffout3),
1377 .in0(din0[32:0]),
1378 .in1(din1[32:0]),
1379 .in2(din2[32:0]),
1380 .in3(din3[32:0]),
1381.dout(muxout[32:0])
1382);
1383cl_dp1_l1hdr_8x c0_0 (
1384.l2clk(clk),
1385.pce(en),
1386.aclk(siclk),
1387.bclk(soclk),
1388.l1clk(l1clk),
1389 .se(se),
1390 .pce_ov(pce_ov),
1391 .stop(stop),
1392 .siclk_out(siclk_out),
1393 .soclk_out(soclk_out)
1394);
1395dff #(33) d0_0 (
1396.l1clk(l1clk),
1397.siclk(siclk_out),
1398.soclk(soclk_out),
1399.d(muxout[32:0]),
1400.si({scan_in,so[31:0]}),
1401.so({so[31:0],scan_out}),
1402.q(dout[32:0])
1403);
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424endmodule
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434//
1435// buff macro
1436//
1437//
1438
1439
1440
1441
1442
1443module ifu_ftu_byp_dp_buff_macro__dbuff_16x__rep_1__stack_34c__width_33 (
1444 din,
1445 dout);
1446 input [32:0] din;
1447 output [32:0] dout;
1448
1449
1450
1451
1452
1453
1454buff #(33) d0_0 (
1455.in(din[32:0]),
1456.out(dout[32:0])
1457);
1458
1459
1460
1461
1462
1463
1464
1465
1466endmodule
1467
1468
1469
1470
1471
1472//
1473// buff macro
1474//
1475//
1476
1477
1478
1479
1480
1481module ifu_ftu_byp_dp_buff_macro__dbuff_48x__rep_1__stack_30c__width_29 (
1482 din,
1483 dout);
1484 input [28:0] din;
1485 output [28:0] dout;
1486
1487
1488
1489
1490
1491
1492buff #(29) d0_0 (
1493.in(din[28:0]),
1494.out(dout[28:0])
1495);
1496
1497
1498
1499
1500
1501
1502
1503
1504endmodule
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514// any PARAMS parms go into naming of macro
1515
1516module ifu_ftu_byp_dp_msff_macro__mux_aonpe__ports_8__stack_32c__width_30 (
1517 din0,
1518 sel0,
1519 din1,
1520 sel1,
1521 din2,
1522 sel2,
1523 din3,
1524 sel3,
1525 din4,
1526 sel4,
1527 din5,
1528 sel5,
1529 din6,
1530 sel6,
1531 din7,
1532 sel7,
1533 clk,
1534 en,
1535 se,
1536 scan_in,
1537 siclk,
1538 soclk,
1539 pce_ov,
1540 stop,
1541 dout,
1542 scan_out);
1543wire buffout0;
1544wire buffout1;
1545wire buffout2;
1546wire buffout3;
1547wire buffout4;
1548wire buffout5;
1549wire buffout6;
1550wire buffout7;
1551wire [29:0] muxout;
1552wire l1clk;
1553wire siclk_out;
1554wire soclk_out;
1555wire [28:0] so;
1556
1557 input [29:0] din0;
1558 input sel0;
1559 input [29:0] din1;
1560 input sel1;
1561 input [29:0] din2;
1562 input sel2;
1563 input [29:0] din3;
1564 input sel3;
1565 input [29:0] din4;
1566 input sel4;
1567 input [29:0] din5;
1568 input sel5;
1569 input [29:0] din6;
1570 input sel6;
1571 input [29:0] din7;
1572 input sel7;
1573
1574
1575 input clk;
1576 input en;
1577 input se;
1578 input scan_in;
1579 input siclk;
1580 input soclk;
1581 input pce_ov;
1582 input stop;
1583
1584
1585
1586 output [29:0] dout;
1587
1588
1589 output scan_out;
1590
1591
1592
1593
1594cl_dp1_muxbuff8_8x c1_0 (
1595 .in0(sel0),
1596 .in1(sel1),
1597 .in2(sel2),
1598 .in3(sel3),
1599 .in4(sel4),
1600 .in5(sel5),
1601 .in6(sel6),
1602 .in7(sel7),
1603 .out0(buffout0),
1604 .out1(buffout1),
1605 .out2(buffout2),
1606 .out3(buffout3),
1607 .out4(buffout4),
1608 .out5(buffout5),
1609 .out6(buffout6),
1610 .out7(buffout7)
1611);
1612mux8s #(30) d1_0 (
1613 .sel0(buffout0),
1614 .sel1(buffout1),
1615 .sel2(buffout2),
1616 .sel3(buffout3),
1617 .sel4(buffout4),
1618 .sel5(buffout5),
1619 .sel6(buffout6),
1620 .sel7(buffout7),
1621 .in0(din0[29:0]),
1622 .in1(din1[29:0]),
1623 .in2(din2[29:0]),
1624 .in3(din3[29:0]),
1625 .in4(din4[29:0]),
1626 .in5(din5[29:0]),
1627 .in6(din6[29:0]),
1628 .in7(din7[29:0]),
1629.dout(muxout[29:0])
1630);
1631cl_dp1_l1hdr_8x c0_0 (
1632.l2clk(clk),
1633.pce(en),
1634.aclk(siclk),
1635.bclk(soclk),
1636.l1clk(l1clk),
1637 .se(se),
1638 .pce_ov(pce_ov),
1639 .stop(stop),
1640 .siclk_out(siclk_out),
1641 .soclk_out(soclk_out)
1642);
1643dff #(30) d0_0 (
1644.l1clk(l1clk),
1645.siclk(siclk_out),
1646.soclk(soclk_out),
1647.d(muxout[29:0]),
1648.si({scan_in,so[28:0]}),
1649.so({so[28:0],scan_out}),
1650.q(dout[29:0])
1651);
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672endmodule
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686// any PARAMS parms go into naming of macro
1687
1688module ifu_ftu_byp_dp_msff_macro__minbuff_1__mux_aonpe__ports_4__stack_64c__width_64 (
1689 din0,
1690 sel0,
1691 din1,
1692 sel1,
1693 din2,
1694 sel2,
1695 din3,
1696 sel3,
1697 clk,
1698 en,
1699 se,
1700 scan_in,
1701 siclk,
1702 soclk,
1703 pce_ov,
1704 stop,
1705 dout,
1706 scan_out);
1707wire buffout0;
1708wire buffout1;
1709wire buffout2;
1710wire buffout3;
1711wire [63:0] muxout;
1712wire l1clk;
1713wire siclk_out;
1714wire soclk_out;
1715wire [62:0] so;
1716
1717 input [63:0] din0;
1718 input sel0;
1719 input [63:0] din1;
1720 input sel1;
1721 input [63:0] din2;
1722 input sel2;
1723 input [63:0] din3;
1724 input sel3;
1725
1726
1727 input clk;
1728 input en;
1729 input se;
1730 input scan_in;
1731 input siclk;
1732 input soclk;
1733 input pce_ov;
1734 input stop;
1735
1736
1737
1738 output [63:0] dout;
1739
1740
1741 output scan_out;
1742
1743
1744
1745
1746cl_dp1_muxbuff4_8x c1_0 (
1747 .in0(sel0),
1748 .in1(sel1),
1749 .in2(sel2),
1750 .in3(sel3),
1751 .out0(buffout0),
1752 .out1(buffout1),
1753 .out2(buffout2),
1754 .out3(buffout3)
1755);
1756mux4s #(64) d1_0 (
1757 .sel0(buffout0),
1758 .sel1(buffout1),
1759 .sel2(buffout2),
1760 .sel3(buffout3),
1761 .in0(din0[63:0]),
1762 .in1(din1[63:0]),
1763 .in2(din2[63:0]),
1764 .in3(din3[63:0]),
1765.dout(muxout[63:0])
1766);
1767cl_dp1_l1hdr_8x c0_0 (
1768.l2clk(clk),
1769.pce(en),
1770.aclk(siclk),
1771.bclk(soclk),
1772.l1clk(l1clk),
1773 .se(se),
1774 .pce_ov(pce_ov),
1775 .stop(stop),
1776 .siclk_out(siclk_out),
1777 .soclk_out(soclk_out)
1778);
1779dff #(64) d0_0 (
1780.l1clk(l1clk),
1781.siclk(siclk_out),
1782.soclk(soclk_out),
1783.d(muxout[63:0]),
1784.si({scan_in,so[62:0]}),
1785.so({so[62:0],scan_out}),
1786.q(dout[63:0])
1787);
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808endmodule
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822// any PARAMS parms go into naming of macro
1823
1824module ifu_ftu_byp_dp_msff_macro__minbuff_1__mux_aonpe__ports_4__stack_32c__width_32 (
1825 din0,
1826 sel0,
1827 din1,
1828 sel1,
1829 din2,
1830 sel2,
1831 din3,
1832 sel3,
1833 clk,
1834 en,
1835 se,
1836 scan_in,
1837 siclk,
1838 soclk,
1839 pce_ov,
1840 stop,
1841 dout,
1842 scan_out);
1843wire buffout0;
1844wire buffout1;
1845wire buffout2;
1846wire buffout3;
1847wire [31:0] muxout;
1848wire l1clk;
1849wire siclk_out;
1850wire soclk_out;
1851wire [30:0] so;
1852
1853 input [31:0] din0;
1854 input sel0;
1855 input [31:0] din1;
1856 input sel1;
1857 input [31:0] din2;
1858 input sel2;
1859 input [31:0] din3;
1860 input sel3;
1861
1862
1863 input clk;
1864 input en;
1865 input se;
1866 input scan_in;
1867 input siclk;
1868 input soclk;
1869 input pce_ov;
1870 input stop;
1871
1872
1873
1874 output [31:0] dout;
1875
1876
1877 output scan_out;
1878
1879
1880
1881
1882cl_dp1_muxbuff4_8x c1_0 (
1883 .in0(sel0),
1884 .in1(sel1),
1885 .in2(sel2),
1886 .in3(sel3),
1887 .out0(buffout0),
1888 .out1(buffout1),
1889 .out2(buffout2),
1890 .out3(buffout3)
1891);
1892mux4s #(32) d1_0 (
1893 .sel0(buffout0),
1894 .sel1(buffout1),
1895 .sel2(buffout2),
1896 .sel3(buffout3),
1897 .in0(din0[31:0]),
1898 .in1(din1[31:0]),
1899 .in2(din2[31:0]),
1900 .in3(din3[31:0]),
1901.dout(muxout[31:0])
1902);
1903cl_dp1_l1hdr_8x c0_0 (
1904.l2clk(clk),
1905.pce(en),
1906.aclk(siclk),
1907.bclk(soclk),
1908.l1clk(l1clk),
1909 .se(se),
1910 .pce_ov(pce_ov),
1911 .stop(stop),
1912 .siclk_out(siclk_out),
1913 .soclk_out(soclk_out)
1914);
1915dff #(32) d0_0 (
1916.l1clk(l1clk),
1917.siclk(siclk_out),
1918.soclk(soclk_out),
1919.d(muxout[31:0]),
1920.si({scan_in,so[30:0]}),
1921.so({so[30:0],scan_out}),
1922.q(dout[31:0])
1923);
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944endmodule
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958// any PARAMS parms go into naming of macro
1959
1960module ifu_ftu_byp_dp_msff_macro__mux_aonpe__ports_4__stack_32c__width_32 (
1961 din0,
1962 sel0,
1963 din1,
1964 sel1,
1965 din2,
1966 sel2,
1967 din3,
1968 sel3,
1969 clk,
1970 en,
1971 se,
1972 scan_in,
1973 siclk,
1974 soclk,
1975 pce_ov,
1976 stop,
1977 dout,
1978 scan_out);
1979wire buffout0;
1980wire buffout1;
1981wire buffout2;
1982wire buffout3;
1983wire [31:0] muxout;
1984wire l1clk;
1985wire siclk_out;
1986wire soclk_out;
1987wire [30:0] so;
1988
1989 input [31:0] din0;
1990 input sel0;
1991 input [31:0] din1;
1992 input sel1;
1993 input [31:0] din2;
1994 input sel2;
1995 input [31:0] din3;
1996 input sel3;
1997
1998
1999 input clk;
2000 input en;
2001 input se;
2002 input scan_in;
2003 input siclk;
2004 input soclk;
2005 input pce_ov;
2006 input stop;
2007
2008
2009
2010 output [31:0] dout;
2011
2012
2013 output scan_out;
2014
2015
2016
2017
2018cl_dp1_muxbuff4_8x c1_0 (
2019 .in0(sel0),
2020 .in1(sel1),
2021 .in2(sel2),
2022 .in3(sel3),
2023 .out0(buffout0),
2024 .out1(buffout1),
2025 .out2(buffout2),
2026 .out3(buffout3)
2027);
2028mux4s #(32) d1_0 (
2029 .sel0(buffout0),
2030 .sel1(buffout1),
2031 .sel2(buffout2),
2032 .sel3(buffout3),
2033 .in0(din0[31:0]),
2034 .in1(din1[31:0]),
2035 .in2(din2[31:0]),
2036 .in3(din3[31:0]),
2037.dout(muxout[31:0])
2038);
2039cl_dp1_l1hdr_8x c0_0 (
2040.l2clk(clk),
2041.pce(en),
2042.aclk(siclk),
2043.bclk(soclk),
2044.l1clk(l1clk),
2045 .se(se),
2046 .pce_ov(pce_ov),
2047 .stop(stop),
2048 .siclk_out(siclk_out),
2049 .soclk_out(soclk_out)
2050);
2051dff #(32) d0_0 (
2052.l1clk(l1clk),
2053.siclk(siclk_out),
2054.soclk(soclk_out),
2055.d(muxout[31:0]),
2056.si({scan_in,so[30:0]}),
2057.so({so[30:0],scan_out}),
2058.q(dout[31:0])
2059);
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080endmodule
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094// any PARAMS parms go into naming of macro
2095
2096module ifu_ftu_byp_dp_msff_macro__stack_16c__width_16 (
2097 din,
2098 clk,
2099 en,
2100 se,
2101 scan_in,
2102 siclk,
2103 soclk,
2104 pce_ov,
2105 stop,
2106 dout,
2107 scan_out);
2108wire l1clk;
2109wire siclk_out;
2110wire soclk_out;
2111wire [14:0] so;
2112
2113 input [15:0] din;
2114
2115
2116 input clk;
2117 input en;
2118 input se;
2119 input scan_in;
2120 input siclk;
2121 input soclk;
2122 input pce_ov;
2123 input stop;
2124
2125
2126
2127 output [15:0] dout;
2128
2129
2130 output scan_out;
2131
2132
2133
2134
2135cl_dp1_l1hdr_8x c0_0 (
2136.l2clk(clk),
2137.pce(en),
2138.aclk(siclk),
2139.bclk(soclk),
2140.l1clk(l1clk),
2141 .se(se),
2142 .pce_ov(pce_ov),
2143 .stop(stop),
2144 .siclk_out(siclk_out),
2145 .soclk_out(soclk_out)
2146);
2147dff #(16) d0_0 (
2148.l1clk(l1clk),
2149.siclk(siclk_out),
2150.soclk(soclk_out),
2151.d(din[15:0]),
2152.si({scan_in,so[14:0]}),
2153.so({so[14:0],scan_out}),
2154.q(dout[15:0])
2155);
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176endmodule
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190// any PARAMS parms go into naming of macro
2191
2192module ifu_ftu_byp_dp_msff_macro__stack_16c__width_15 (
2193 din,
2194 clk,
2195 en,
2196 se,
2197 scan_in,
2198 siclk,
2199 soclk,
2200 pce_ov,
2201 stop,
2202 dout,
2203 scan_out);
2204wire l1clk;
2205wire siclk_out;
2206wire soclk_out;
2207wire [13:0] so;
2208
2209 input [14:0] din;
2210
2211
2212 input clk;
2213 input en;
2214 input se;
2215 input scan_in;
2216 input siclk;
2217 input soclk;
2218 input pce_ov;
2219 input stop;
2220
2221
2222
2223 output [14:0] dout;
2224
2225
2226 output scan_out;
2227
2228
2229
2230
2231cl_dp1_l1hdr_8x c0_0 (
2232.l2clk(clk),
2233.pce(en),
2234.aclk(siclk),
2235.bclk(soclk),
2236.l1clk(l1clk),
2237 .se(se),
2238 .pce_ov(pce_ov),
2239 .stop(stop),
2240 .siclk_out(siclk_out),
2241 .soclk_out(soclk_out)
2242);
2243dff #(15) d0_0 (
2244.l1clk(l1clk),
2245.siclk(siclk_out),
2246.soclk(soclk_out),
2247.d(din[14:0]),
2248.si({scan_in,so[13:0]}),
2249.so({so[13:0],scan_out}),
2250.q(dout[14:0])
2251);
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272endmodule
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286// any PARAMS parms go into naming of macro
2287
2288module ifu_ftu_byp_dp_msff_macro__stack_16c__width_14 (
2289 din,
2290 clk,
2291 en,
2292 se,
2293 scan_in,
2294 siclk,
2295 soclk,
2296 pce_ov,
2297 stop,
2298 dout,
2299 scan_out);
2300wire l1clk;
2301wire siclk_out;
2302wire soclk_out;
2303wire [12:0] so;
2304
2305 input [13:0] din;
2306
2307
2308 input clk;
2309 input en;
2310 input se;
2311 input scan_in;
2312 input siclk;
2313 input soclk;
2314 input pce_ov;
2315 input stop;
2316
2317
2318
2319 output [13:0] dout;
2320
2321
2322 output scan_out;
2323
2324
2325
2326
2327cl_dp1_l1hdr_8x c0_0 (
2328.l2clk(clk),
2329.pce(en),
2330.aclk(siclk),
2331.bclk(soclk),
2332.l1clk(l1clk),
2333 .se(se),
2334 .pce_ov(pce_ov),
2335 .stop(stop),
2336 .siclk_out(siclk_out),
2337 .soclk_out(soclk_out)
2338);
2339dff #(14) d0_0 (
2340.l1clk(l1clk),
2341.siclk(siclk_out),
2342.soclk(soclk_out),
2343.d(din[13:0]),
2344.si({scan_in,so[12:0]}),
2345.so({so[12:0],scan_out}),
2346.q(dout[13:0])
2347);
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368endmodule
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378//
2379// comparator macro (output is 1 if both inputs are equal; 0 otherwise)
2380//
2381//
2382
2383
2384
2385
2386
2387module ifu_ftu_byp_dp_cmp_macro__dcmp_8x__width_32 (
2388 din0,
2389 din1,
2390 dout);
2391 input [31:0] din0;
2392 input [31:0] din1;
2393 output dout;
2394
2395
2396
2397
2398
2399
2400cmp #(32) m0_0 (
2401.in0(din0[31:0]),
2402.in1(din1[31:0]),
2403.out(dout)
2404);
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415endmodule
2416
2417
2418
2419
2420
2421//
2422// xor macro for ports = 2,3
2423//
2424//
2425
2426
2427
2428
2429
2430module ifu_ftu_byp_dp_xor_macro__ports_2__width_1 (
2431 din0,
2432 din1,
2433 dout);
2434 input [0:0] din0;
2435 input [0:0] din1;
2436 output [0:0] dout;
2437
2438
2439
2440
2441
2442xor2 #(1) d0_0 (
2443.in0(din0[0:0]),
2444.in1(din1[0:0]),
2445.out(dout[0:0])
2446);
2447
2448
2449
2450
2451
2452
2453
2454
2455endmodule
2456
2457
2458
2459
2460
2461//
2462// invert macro
2463//
2464//
2465
2466
2467
2468
2469
2470module ifu_ftu_byp_dp_inv_macro__width_5 (
2471 din,
2472 dout);
2473 input [4:0] din;
2474 output [4:0] dout;
2475
2476
2477
2478
2479
2480
2481inv #(5) d0_0 (
2482.in(din[4:0]),
2483.out(dout[4:0])
2484);
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494endmodule
2495
2496
2497
2498
2499
2500//
2501// or macro for ports = 2,3
2502//
2503//
2504
2505
2506
2507
2508
2509module ifu_ftu_byp_dp_or_macro__ports_2__width_1 (
2510 din0,
2511 din1,
2512 dout);
2513 input [0:0] din0;
2514 input [0:0] din1;
2515 output [0:0] dout;
2516
2517
2518
2519
2520
2521
2522or2 #(1) d0_0 (
2523.in0(din0[0:0]),
2524.in1(din1[0:0]),
2525.out(dout[0:0])
2526);
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536endmodule
2537
2538
2539
2540
2541
2542//
2543// and macro for ports = 2,3,4
2544//
2545//
2546
2547
2548
2549
2550
2551module ifu_ftu_byp_dp_and_macro__width_5 (
2552 din0,
2553 din1,
2554 dout);
2555 input [4:0] din0;
2556 input [4:0] din1;
2557 output [4:0] dout;
2558
2559
2560
2561
2562
2563
2564and2 #(5) d0_0 (
2565.in0(din0[4:0]),
2566.in1(din1[4:0]),
2567.out(dout[4:0])
2568);
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578endmodule
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588// any PARAMS parms go into naming of macro
2589
2590module ifu_ftu_byp_dp_msff_macro__minbuff_1__stack_16c__width_16 (
2591 din,
2592 clk,
2593 en,
2594 se,
2595 scan_in,
2596 siclk,
2597 soclk,
2598 pce_ov,
2599 stop,
2600 dout,
2601 scan_out);
2602wire l1clk;
2603wire siclk_out;
2604wire soclk_out;
2605wire [14:0] so;
2606
2607 input [15:0] din;
2608
2609
2610 input clk;
2611 input en;
2612 input se;
2613 input scan_in;
2614 input siclk;
2615 input soclk;
2616 input pce_ov;
2617 input stop;
2618
2619
2620
2621 output [15:0] dout;
2622
2623
2624 output scan_out;
2625
2626
2627
2628
2629cl_dp1_l1hdr_8x c0_0 (
2630.l2clk(clk),
2631.pce(en),
2632.aclk(siclk),
2633.bclk(soclk),
2634.l1clk(l1clk),
2635 .se(se),
2636 .pce_ov(pce_ov),
2637 .stop(stop),
2638 .siclk_out(siclk_out),
2639 .soclk_out(soclk_out)
2640);
2641dff #(16) d0_0 (
2642.l1clk(l1clk),
2643.siclk(siclk_out),
2644.soclk(soclk_out),
2645.d(din[15:0]),
2646.si({scan_in,so[14:0]}),
2647.so({so[14:0],scan_out}),
2648.q(dout[15:0])
2649);
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670endmodule
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680//
2681// comparator macro (output is 1 if both inputs are equal; 0 otherwise)
2682//
2683//
2684
2685
2686
2687
2688
2689module ifu_ftu_byp_dp_cmp_macro__width_8 (
2690 din0,
2691 din1,
2692 dout);
2693 input [7:0] din0;
2694 input [7:0] din1;
2695 output dout;
2696
2697
2698
2699
2700
2701
2702cmp #(8) m0_0 (
2703.in0(din0[7:0]),
2704.in1(din1[7:0]),
2705.out(dout)
2706);
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717endmodule
2718
2719
2720
2721