Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / spc / ifu / rtl / ifu_ftu_tfc_ctl.v
CommitLineData
86530b38
AT
1// ========== Copyright Header Begin ==========================================
2//
3// OpenSPARC T2 Processor File: ifu_ftu_tfc_ctl.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_tfc_ctl (
36 tcu_scan_en,
37 l2clk,
38 scan_in,
39 spc_aclk,
40 spc_bclk,
41 tcu_pce_ov,
42 ftu_thr0_redirect_bf,
43 ftu_thr1_redirect_bf,
44 ftu_thr2_redirect_bf,
45 ftu_thr3_redirect_bf,
46 ftu_thr4_redirect_bf,
47 ftu_thr5_redirect_bf,
48 ftu_thr6_redirect_bf,
49 ftu_thr7_redirect_bf,
50 agc_thr0_err_detect_c,
51 agc_thr1_err_detect_c,
52 agc_thr2_err_detect_c,
53 agc_thr3_err_detect_c,
54 agc_thr4_err_detect_c,
55 agc_thr5_err_detect_c,
56 agc_thr6_err_detect_c,
57 agc_thr7_err_detect_c,
58 ftu_thr0_inv_req_c,
59 ftu_thr1_inv_req_c,
60 ftu_thr2_inv_req_c,
61 ftu_thr3_inv_req_c,
62 ftu_thr4_inv_req_c,
63 ftu_thr5_inv_req_c,
64 ftu_thr6_inv_req_c,
65 ftu_thr7_inv_req_c,
66 agc_thr0_lsu_no_ic_miss,
67 agc_thr1_lsu_no_ic_miss,
68 agc_thr2_lsu_no_ic_miss,
69 agc_thr3_lsu_no_ic_miss,
70 agc_thr4_lsu_no_ic_miss,
71 agc_thr5_lsu_no_ic_miss,
72 agc_thr6_lsu_no_ic_miss,
73 agc_thr7_lsu_no_ic_miss,
74 agc_thr0_tlu_redirect_bf,
75 agc_thr1_tlu_redirect_bf,
76 agc_thr2_tlu_redirect_bf,
77 agc_thr3_tlu_redirect_bf,
78 agc_thr4_tlu_redirect_bf,
79 agc_thr5_tlu_redirect_bf,
80 agc_thr6_tlu_redirect_bf,
81 agc_thr7_tlu_redirect_bf,
82 ftp_thr0_go_to_sf_wait,
83 ftp_thr1_go_to_sf_wait,
84 ftp_thr2_go_to_sf_wait,
85 ftp_thr3_go_to_sf_wait,
86 ftp_thr4_go_to_sf_wait,
87 ftp_thr5_go_to_sf_wait,
88 ftp_thr6_go_to_sf_wait,
89 ftp_thr7_go_to_sf_wait,
90 cmu_inval_ack,
91 cmu_rst_dupmiss,
92 cmu_null_st,
93 cmu_dupmiss_st,
94 cmu_thr0_data_ready,
95 cmu_thr1_data_ready,
96 cmu_thr2_data_ready,
97 cmu_thr3_data_ready,
98 cmu_thr4_data_ready,
99 cmu_thr5_data_ready,
100 cmu_thr6_data_ready,
101 cmu_thr7_data_ready,
102 agc_thr0_cmiss_stm_c,
103 agc_thr1_cmiss_stm_c,
104 agc_thr2_cmiss_stm_c,
105 agc_thr3_cmiss_stm_c,
106 agc_thr4_cmiss_stm_c,
107 agc_thr5_cmiss_stm_c,
108 agc_thr6_cmiss_stm_c,
109 agc_thr7_cmiss_stm_c,
110 agc_thr0_itb_miss_c,
111 agc_thr1_itb_miss_c,
112 agc_thr2_itb_miss_c,
113 agc_thr3_itb_miss_c,
114 agc_thr4_itb_miss_c,
115 agc_thr5_itb_miss_c,
116 agc_thr6_itb_miss_c,
117 agc_thr7_itb_miss_c,
118 cmu_any_data_ready,
119 ftp_reset_fill_wait,
120 ftp_thr0_room_is_less_t_3,
121 ftp_thr1_room_is_less_t_3,
122 ftp_thr2_room_is_less_t_3,
123 ftp_thr3_room_is_less_t_3,
124 ftp_thr4_room_is_less_t_3,
125 ftp_thr5_room_is_less_t_3,
126 ftp_thr6_room_is_less_t_3,
127 ftp_thr7_room_is_less_t_3,
128 itc_demap_next,
129 tlu_flush_ifu,
130 asi_wr_request,
131 asi_rd_request,
132 ftp_asi_rd_done,
133 ftp_asi_wr_done,
134 tsm_thr0_fill_rdy0,
135 tsm_thr1_fill_rdy0,
136 tsm_thr2_fill_rdy0,
137 tsm_thr3_fill_rdy0,
138 tsm_thr4_fill_rdy0,
139 tsm_thr5_fill_rdy0,
140 tsm_thr6_fill_rdy0,
141 tsm_thr7_fill_rdy0,
142 tsm_thr0_no_new_miss,
143 tsm_thr1_no_new_miss,
144 tsm_thr2_no_new_miss,
145 tsm_thr3_no_new_miss,
146 tsm_thr4_no_new_miss,
147 tsm_thr5_no_new_miss,
148 tsm_thr6_no_new_miss,
149 tsm_thr7_no_new_miss,
150 tsm_thr0_ignore_by_pass,
151 tsm_thr1_ignore_by_pass,
152 tsm_thr2_ignore_by_pass,
153 tsm_thr3_ignore_by_pass,
154 tsm_thr4_ignore_by_pass,
155 tsm_thr5_ignore_by_pass,
156 tsm_thr6_ignore_by_pass,
157 tsm_thr7_ignore_by_pass,
158 tsm_thr0_ready_hp_bf_in,
159 tsm_thr1_ready_hp_bf_in,
160 tsm_thr2_ready_hp_bf_in,
161 tsm_thr3_ready_hp_bf_in,
162 tsm_thr4_ready_hp_bf_in,
163 tsm_thr5_ready_hp_bf_in,
164 tsm_thr6_ready_hp_bf_in,
165 tsm_thr7_ready_hp_bf_in,
166 ftu_ifu_quiesce,
167 scan_out) ;
168wire pce_ov;
169wire stop;
170wire l1clk;
171wire tsm0_scanin;
172wire tsm0_scanout;
173wire tsm1_scanin;
174wire tsm1_scanout;
175wire tsm2_scanin;
176wire tsm2_scanout;
177wire tsm3_scanin;
178wire tsm3_scanout;
179wire tsm4_scanin;
180wire tsm4_scanout;
181wire tsm5_scanin;
182wire tsm5_scanout;
183wire tsm6_scanin;
184wire tsm6_scanout;
185wire tsm7_scanin;
186wire tsm7_scanout;
187wire se;
188
189
190input tcu_scan_en ;
191input l2clk;
192input scan_in;
193input spc_aclk;
194input spc_bclk;
195input tcu_pce_ov; // scan signals
196
197input ftu_thr0_redirect_bf;
198input ftu_thr1_redirect_bf;
199input ftu_thr2_redirect_bf;
200input ftu_thr3_redirect_bf;
201input ftu_thr4_redirect_bf;
202input ftu_thr5_redirect_bf;
203input ftu_thr6_redirect_bf;
204input ftu_thr7_redirect_bf;
205
206
207input agc_thr0_err_detect_c ;
208input agc_thr1_err_detect_c ;
209input agc_thr2_err_detect_c ;
210input agc_thr3_err_detect_c ;
211input agc_thr4_err_detect_c ;
212input agc_thr5_err_detect_c ;
213input agc_thr6_err_detect_c ;
214input agc_thr7_err_detect_c ;
215
216input ftu_thr0_inv_req_c ;
217input ftu_thr1_inv_req_c ;
218input ftu_thr2_inv_req_c ;
219input ftu_thr3_inv_req_c ;
220input ftu_thr4_inv_req_c ;
221input ftu_thr5_inv_req_c ;
222input ftu_thr6_inv_req_c ;
223input ftu_thr7_inv_req_c ;
224
225
226input agc_thr0_lsu_no_ic_miss ;
227input agc_thr1_lsu_no_ic_miss ;
228input agc_thr2_lsu_no_ic_miss ;
229input agc_thr3_lsu_no_ic_miss ;
230input agc_thr4_lsu_no_ic_miss ;
231input agc_thr5_lsu_no_ic_miss ;
232input agc_thr6_lsu_no_ic_miss ;
233input agc_thr7_lsu_no_ic_miss ;
234
235input agc_thr0_tlu_redirect_bf;
236input agc_thr1_tlu_redirect_bf;
237input agc_thr2_tlu_redirect_bf;
238input agc_thr3_tlu_redirect_bf;
239input agc_thr4_tlu_redirect_bf;
240input agc_thr5_tlu_redirect_bf;
241input agc_thr6_tlu_redirect_bf;
242input agc_thr7_tlu_redirect_bf;
243
244input ftp_thr0_go_to_sf_wait;
245input ftp_thr1_go_to_sf_wait;
246input ftp_thr2_go_to_sf_wait;
247input ftp_thr3_go_to_sf_wait;
248input ftp_thr4_go_to_sf_wait;
249input ftp_thr5_go_to_sf_wait;
250input ftp_thr6_go_to_sf_wait;
251input ftp_thr7_go_to_sf_wait;
252
253input [7:0] cmu_inval_ack;
254input [7:0] cmu_rst_dupmiss;
255
256
257
258input [7:0] cmu_null_st;
259input [7:0] cmu_dupmiss_st;
260
261input cmu_thr0_data_ready;
262input cmu_thr1_data_ready;
263input cmu_thr2_data_ready;
264input cmu_thr3_data_ready;
265input cmu_thr4_data_ready;
266input cmu_thr5_data_ready;
267input cmu_thr6_data_ready;
268input cmu_thr7_data_ready;
269
270input agc_thr0_cmiss_stm_c;
271input agc_thr1_cmiss_stm_c;
272input agc_thr2_cmiss_stm_c;
273input agc_thr3_cmiss_stm_c;
274input agc_thr4_cmiss_stm_c;
275input agc_thr5_cmiss_stm_c;
276input agc_thr6_cmiss_stm_c;
277input agc_thr7_cmiss_stm_c;
278
279input agc_thr0_itb_miss_c;
280input agc_thr1_itb_miss_c;
281input agc_thr2_itb_miss_c;
282input agc_thr3_itb_miss_c;
283input agc_thr4_itb_miss_c;
284input agc_thr5_itb_miss_c;
285input agc_thr6_itb_miss_c;
286input agc_thr7_itb_miss_c;
287
288
289input cmu_any_data_ready ;
290input ftp_reset_fill_wait;
291// input ftp_go_to_fill_wait;
292// input ftp_thr0_go_to_fill_wait;
293// input ftp_thr1_go_to_fill_wait;
294// input ftp_thr2_go_to_fill_wait;
295// input ftp_thr3_go_to_fill_wait;
296// input ftp_thr4_go_to_fill_wait;
297// input ftp_thr5_go_to_fill_wait;
298// input ftp_thr6_go_to_fill_wait;
299// input ftp_thr7_go_to_fill_wait;
300
301
302input ftp_thr0_room_is_less_t_3;
303input ftp_thr1_room_is_less_t_3;
304input ftp_thr2_room_is_less_t_3;
305input ftp_thr3_room_is_less_t_3;
306input ftp_thr4_room_is_less_t_3;
307input ftp_thr5_room_is_less_t_3;
308input ftp_thr6_room_is_less_t_3;
309input ftp_thr7_room_is_less_t_3;
310
311// input agc_thr0_rst_dmiss_bf;
312// input agc_thr1_rst_dmiss_bf;
313// input agc_thr2_rst_dmiss_bf;
314// input agc_thr3_rst_dmiss_bf;
315// input agc_thr4_rst_dmiss_bf;
316// input agc_thr5_rst_dmiss_bf;
317// input agc_thr6_rst_dmiss_bf;
318// input agc_thr7_rst_dmiss_bf;
319//
320
321input itc_demap_next;
322input [7:0] tlu_flush_ifu;
323
324input asi_wr_request ;
325input asi_rd_request ;
326input ftp_asi_rd_done ;
327input ftp_asi_wr_done ;
328
329
330output tsm_thr0_fill_rdy0 ;
331output tsm_thr1_fill_rdy0 ;
332output tsm_thr2_fill_rdy0 ;
333output tsm_thr3_fill_rdy0 ;
334output tsm_thr4_fill_rdy0 ;
335output tsm_thr5_fill_rdy0 ;
336output tsm_thr6_fill_rdy0 ;
337output tsm_thr7_fill_rdy0 ;
338
339output tsm_thr0_no_new_miss ;
340output tsm_thr1_no_new_miss ;
341output tsm_thr2_no_new_miss ;
342output tsm_thr3_no_new_miss ;
343output tsm_thr4_no_new_miss ;
344output tsm_thr5_no_new_miss ;
345output tsm_thr6_no_new_miss ;
346output tsm_thr7_no_new_miss ;
347
348output tsm_thr0_ignore_by_pass ;
349output tsm_thr1_ignore_by_pass ;
350output tsm_thr2_ignore_by_pass ;
351output tsm_thr3_ignore_by_pass ;
352output tsm_thr4_ignore_by_pass ;
353output tsm_thr5_ignore_by_pass ;
354output tsm_thr6_ignore_by_pass ;
355output tsm_thr7_ignore_by_pass ;
356
357
358
359
360
361output tsm_thr0_ready_hp_bf_in;
362output tsm_thr1_ready_hp_bf_in;
363output tsm_thr2_ready_hp_bf_in;
364output tsm_thr3_ready_hp_bf_in;
365output tsm_thr4_ready_hp_bf_in;
366output tsm_thr5_ready_hp_bf_in;
367output tsm_thr6_ready_hp_bf_in;
368output tsm_thr7_ready_hp_bf_in;
369
370
371
372output [7:0] ftu_ifu_quiesce;
373
374output scan_out;
375
376// scan renames
377assign pce_ov = tcu_pce_ov;
378assign stop = 1'b0;
379// end scan
380
381ifu_ftu_tfc_ctl_l1clkhdr_ctl_macro clkgen (
382 .l2clk(l2clk),
383 .l1en (1'b1 ),
384 .l1clk(l1clk),
385 .pce_ov(pce_ov),
386 .stop(stop),
387 .se(se));
388
389
390ifu_ftu_tsm_ctl tsm0 (
391 .scan_in(tsm0_scanin),
392 .scan_out(tsm0_scanout),
393 .l1clk(l1clk),
394 .agc_redirect_bf(ftu_thr0_redirect_bf),
395 .agc_tlu_redirect_bf(agc_thr0_tlu_redirect_bf),
396 .thrx_go_to_sf_wait(ftp_thr0_go_to_sf_wait),
397 .inv_req_c(ftu_thr0_inv_req_c),
398 .err_detect_c(agc_thr0_err_detect_c),
399 .cmu_inv_req_ack(cmu_inval_ack[0]),
400 .thrx_is_null(cmu_null_st[0]),
401 .thrx_is_dupmiss(cmu_dupmiss_st[0]),
402 .ftu_agc_cmiss_c(agc_thr0_cmiss_stm_c),
403 .data_ready(cmu_thr0_data_ready),
404 .ftp_reset_fill_wait(ftp_reset_fill_wait),
405 .reset_dmiss_bf(cmu_rst_dupmiss[0]),
406 .ftp_room_is_less_t_3(ftp_thr0_room_is_less_t_3),
407 .itb_miss_c(agc_thr0_itb_miss_c),
408 .tlu_flush_thrx_ifu(tlu_flush_ifu[0]),
409 .cmu_any_data_ready(cmu_any_data_ready),
410 .agc_lsu_no_ic_miss(agc_thr0_lsu_no_ic_miss),
411 .next_thrx_is_ready(tsm_thr0_ready_hp_bf_in),
412 .tsm_fill_rdy0(tsm_thr0_fill_rdy0),
413 .tsm_no_new_miss(tsm_thr0_no_new_miss),
414 .tsm_thrx_ifu_quiesce(ftu_ifu_quiesce[0]),
415 .tsm_ignore_by_pass(tsm_thr0_ignore_by_pass),
416 .spc_aclk(spc_aclk),
417 .spc_bclk(spc_bclk),
418 .asi_rd_request(asi_rd_request),
419 .asi_wr_request(asi_wr_request),
420 .ftp_asi_rd_done(ftp_asi_rd_done),
421 .ftp_asi_wr_done(ftp_asi_wr_done),
422 .itc_demap_next(itc_demap_next)
423);
424
425
426ifu_ftu_tsm_ctl tsm1 (
427 .scan_in(tsm1_scanin),
428 .scan_out(tsm1_scanout),
429 .l1clk(l1clk),
430 .agc_redirect_bf(ftu_thr1_redirect_bf),
431 .agc_tlu_redirect_bf(agc_thr1_tlu_redirect_bf),
432 .thrx_go_to_sf_wait(ftp_thr1_go_to_sf_wait),
433 .inv_req_c(ftu_thr1_inv_req_c),
434 .err_detect_c(agc_thr1_err_detect_c),
435 .cmu_inv_req_ack(cmu_inval_ack[1]),
436 .ftu_agc_cmiss_c(agc_thr1_cmiss_stm_c),
437 .thrx_is_null(cmu_null_st[1]),
438 .thrx_is_dupmiss(cmu_dupmiss_st[1]),
439 .data_ready(cmu_thr1_data_ready),
440 .ftp_reset_fill_wait(ftp_reset_fill_wait),
441 .reset_dmiss_bf(cmu_rst_dupmiss[1]),
442 .ftp_room_is_less_t_3(ftp_thr1_room_is_less_t_3),
443 .itb_miss_c(agc_thr1_itb_miss_c),
444 .tlu_flush_thrx_ifu(tlu_flush_ifu[1]),
445 .cmu_any_data_ready(cmu_any_data_ready),
446 .agc_lsu_no_ic_miss(agc_thr1_lsu_no_ic_miss),
447 .next_thrx_is_ready(tsm_thr1_ready_hp_bf_in),
448 .tsm_fill_rdy0(tsm_thr1_fill_rdy0),
449 .tsm_no_new_miss(tsm_thr1_no_new_miss),
450 .tsm_thrx_ifu_quiesce(ftu_ifu_quiesce[1]),
451 .tsm_ignore_by_pass(tsm_thr1_ignore_by_pass),
452 .spc_aclk(spc_aclk),
453 .spc_bclk(spc_bclk),
454 .asi_rd_request(asi_rd_request),
455 .asi_wr_request(asi_wr_request),
456 .ftp_asi_rd_done(ftp_asi_rd_done),
457 .ftp_asi_wr_done(ftp_asi_wr_done),
458 .itc_demap_next(itc_demap_next)
459);
460
461ifu_ftu_tsm_ctl tsm2 (
462 .scan_in(tsm2_scanin),
463 .scan_out(tsm2_scanout),
464 .l1clk(l1clk),
465 .agc_redirect_bf(ftu_thr2_redirect_bf),
466 .agc_tlu_redirect_bf(agc_thr2_tlu_redirect_bf),
467 .thrx_go_to_sf_wait(ftp_thr2_go_to_sf_wait),
468 .inv_req_c(ftu_thr2_inv_req_c),
469 .err_detect_c(agc_thr2_err_detect_c),
470 .thrx_is_null(cmu_null_st[2]),
471 .thrx_is_dupmiss(cmu_dupmiss_st[2]),
472 .cmu_inv_req_ack(cmu_inval_ack[2]),
473 .ftu_agc_cmiss_c(agc_thr2_cmiss_stm_c),
474 .data_ready(cmu_thr2_data_ready),
475 .ftp_reset_fill_wait(ftp_reset_fill_wait),
476 .reset_dmiss_bf(cmu_rst_dupmiss[2]),
477 .ftp_room_is_less_t_3(ftp_thr2_room_is_less_t_3),
478 .itb_miss_c(agc_thr2_itb_miss_c),
479 .tlu_flush_thrx_ifu(tlu_flush_ifu[2]),
480 .cmu_any_data_ready(cmu_any_data_ready),
481 .agc_lsu_no_ic_miss(agc_thr2_lsu_no_ic_miss),
482 .next_thrx_is_ready(tsm_thr2_ready_hp_bf_in),
483 .tsm_fill_rdy0(tsm_thr2_fill_rdy0),
484 .tsm_no_new_miss(tsm_thr2_no_new_miss),
485 .tsm_thrx_ifu_quiesce(ftu_ifu_quiesce[2]),
486 .tsm_ignore_by_pass(tsm_thr2_ignore_by_pass),
487 .spc_aclk(spc_aclk),
488 .spc_bclk(spc_bclk),
489 .asi_rd_request(asi_rd_request),
490 .asi_wr_request(asi_wr_request),
491 .ftp_asi_rd_done(ftp_asi_rd_done),
492 .ftp_asi_wr_done(ftp_asi_wr_done),
493 .itc_demap_next(itc_demap_next)
494);
495
496
497ifu_ftu_tsm_ctl tsm3 (
498 .scan_in(tsm3_scanin),
499 .scan_out(tsm3_scanout),
500 .l1clk(l1clk),
501 .agc_redirect_bf(ftu_thr3_redirect_bf),
502 .agc_tlu_redirect_bf(agc_thr3_tlu_redirect_bf),
503 .thrx_go_to_sf_wait(ftp_thr3_go_to_sf_wait),
504 .inv_req_c(ftu_thr3_inv_req_c),
505 .err_detect_c(agc_thr3_err_detect_c),
506 .cmu_inv_req_ack(cmu_inval_ack[3]),
507 .thrx_is_null(cmu_null_st[3]),
508 .thrx_is_dupmiss(cmu_dupmiss_st[3]),
509 .ftu_agc_cmiss_c(agc_thr3_cmiss_stm_c),
510 .data_ready(cmu_thr3_data_ready),
511 .ftp_reset_fill_wait(ftp_reset_fill_wait),
512 .reset_dmiss_bf(cmu_rst_dupmiss[3]),
513 .ftp_room_is_less_t_3(ftp_thr3_room_is_less_t_3),
514 .itb_miss_c(agc_thr3_itb_miss_c),
515 .tlu_flush_thrx_ifu(tlu_flush_ifu[3]),
516 .cmu_any_data_ready(cmu_any_data_ready),
517 .agc_lsu_no_ic_miss(agc_thr3_lsu_no_ic_miss),
518 .next_thrx_is_ready(tsm_thr3_ready_hp_bf_in),
519 .tsm_fill_rdy0(tsm_thr3_fill_rdy0),
520 .tsm_no_new_miss(tsm_thr3_no_new_miss),
521 .tsm_thrx_ifu_quiesce(ftu_ifu_quiesce[3]),
522 .tsm_ignore_by_pass(tsm_thr3_ignore_by_pass),
523 .spc_aclk(spc_aclk),
524 .spc_bclk(spc_bclk),
525 .asi_rd_request(asi_rd_request),
526 .asi_wr_request(asi_wr_request),
527 .ftp_asi_rd_done(ftp_asi_rd_done),
528 .ftp_asi_wr_done(ftp_asi_wr_done),
529 .itc_demap_next(itc_demap_next)
530);
531
532
533ifu_ftu_tsm_ctl tsm4 (
534 .scan_in(tsm4_scanin),
535 .scan_out(tsm4_scanout),
536 .l1clk(l1clk),
537 .agc_redirect_bf(ftu_thr4_redirect_bf),
538 .agc_tlu_redirect_bf(agc_thr4_tlu_redirect_bf),
539 .thrx_go_to_sf_wait(ftp_thr4_go_to_sf_wait),
540 .inv_req_c(ftu_thr4_inv_req_c),
541 .err_detect_c(agc_thr4_err_detect_c),
542 .cmu_inv_req_ack(cmu_inval_ack[4]),
543 .thrx_is_null(cmu_null_st[4]),
544 .thrx_is_dupmiss(cmu_dupmiss_st[4]),
545 .ftu_agc_cmiss_c(agc_thr4_cmiss_stm_c),
546 .data_ready(cmu_thr4_data_ready),
547 .ftp_reset_fill_wait(ftp_reset_fill_wait),
548 .reset_dmiss_bf(cmu_rst_dupmiss[4]),
549 .ftp_room_is_less_t_3(ftp_thr4_room_is_less_t_3),
550 .itb_miss_c(agc_thr4_itb_miss_c),
551 .tlu_flush_thrx_ifu(tlu_flush_ifu[4]),
552 .cmu_any_data_ready(cmu_any_data_ready),
553 .agc_lsu_no_ic_miss(agc_thr4_lsu_no_ic_miss),
554 .next_thrx_is_ready(tsm_thr4_ready_hp_bf_in),
555 .tsm_fill_rdy0(tsm_thr4_fill_rdy0),
556 .tsm_ignore_by_pass(tsm_thr4_ignore_by_pass),
557 .tsm_thrx_ifu_quiesce(ftu_ifu_quiesce[4]),
558 .tsm_no_new_miss(tsm_thr4_no_new_miss),
559 .spc_aclk(spc_aclk),
560 .spc_bclk(spc_bclk),
561 .asi_rd_request(asi_rd_request),
562 .asi_wr_request(asi_wr_request),
563 .ftp_asi_rd_done(ftp_asi_rd_done),
564 .ftp_asi_wr_done(ftp_asi_wr_done),
565 .itc_demap_next(itc_demap_next)
566);
567
568
569ifu_ftu_tsm_ctl tsm5 (
570 .scan_in(tsm5_scanin),
571 .scan_out(tsm5_scanout),
572 .l1clk(l1clk),
573 .agc_redirect_bf(ftu_thr5_redirect_bf),
574 .thrx_go_to_sf_wait(ftp_thr5_go_to_sf_wait),
575 .agc_tlu_redirect_bf(agc_thr5_tlu_redirect_bf),
576 .inv_req_c(ftu_thr5_inv_req_c),
577 .err_detect_c(agc_thr5_err_detect_c),
578 .cmu_inv_req_ack(cmu_inval_ack[5]),
579 .thrx_is_null(cmu_null_st[5]),
580 .thrx_is_dupmiss(cmu_dupmiss_st[5]),
581 .ftu_agc_cmiss_c(agc_thr5_cmiss_stm_c),
582 .data_ready(cmu_thr5_data_ready),
583 .ftp_reset_fill_wait(ftp_reset_fill_wait),
584 .reset_dmiss_bf(cmu_rst_dupmiss[5]),
585 .ftp_room_is_less_t_3(ftp_thr5_room_is_less_t_3),
586 .itb_miss_c(agc_thr5_itb_miss_c),
587 .tlu_flush_thrx_ifu(tlu_flush_ifu[5]),
588 .cmu_any_data_ready(cmu_any_data_ready),
589 .agc_lsu_no_ic_miss(agc_thr5_lsu_no_ic_miss),
590 .next_thrx_is_ready(tsm_thr5_ready_hp_bf_in),
591 .tsm_fill_rdy0(tsm_thr5_fill_rdy0),
592 .tsm_no_new_miss(tsm_thr5_no_new_miss),
593 .tsm_thrx_ifu_quiesce(ftu_ifu_quiesce[5]),
594 .tsm_ignore_by_pass(tsm_thr5_ignore_by_pass),
595 .spc_aclk(spc_aclk),
596 .spc_bclk(spc_bclk),
597 .asi_rd_request(asi_rd_request),
598 .asi_wr_request(asi_wr_request),
599 .ftp_asi_rd_done(ftp_asi_rd_done),
600 .ftp_asi_wr_done(ftp_asi_wr_done),
601 .itc_demap_next(itc_demap_next)
602);
603
604ifu_ftu_tsm_ctl tsm6 (
605 .scan_in(tsm6_scanin),
606 .scan_out(tsm6_scanout),
607 .l1clk(l1clk),
608 .agc_redirect_bf(ftu_thr6_redirect_bf),
609 .agc_tlu_redirect_bf(agc_thr6_tlu_redirect_bf),
610 .thrx_go_to_sf_wait(ftp_thr6_go_to_sf_wait),
611 .inv_req_c(ftu_thr6_inv_req_c),
612 .err_detect_c(agc_thr6_err_detect_c),
613 .cmu_inv_req_ack(cmu_inval_ack[6]),
614 .thrx_is_null(cmu_null_st[6]),
615 .thrx_is_dupmiss(cmu_dupmiss_st[6]),
616 .ftu_agc_cmiss_c(agc_thr6_cmiss_stm_c),
617 .data_ready(cmu_thr6_data_ready),
618 .ftp_reset_fill_wait(ftp_reset_fill_wait),
619 .reset_dmiss_bf(cmu_rst_dupmiss[6]),
620 .ftp_room_is_less_t_3(ftp_thr6_room_is_less_t_3),
621 .itb_miss_c(agc_thr6_itb_miss_c),
622 .tlu_flush_thrx_ifu(tlu_flush_ifu[6]),
623 .cmu_any_data_ready(cmu_any_data_ready),
624 .agc_lsu_no_ic_miss(agc_thr6_lsu_no_ic_miss),
625 .next_thrx_is_ready(tsm_thr6_ready_hp_bf_in),
626 .tsm_fill_rdy0(tsm_thr6_fill_rdy0),
627 .tsm_no_new_miss(tsm_thr6_no_new_miss),
628 .tsm_thrx_ifu_quiesce(ftu_ifu_quiesce[6]),
629 .tsm_ignore_by_pass(tsm_thr6_ignore_by_pass),
630 .spc_aclk(spc_aclk),
631 .spc_bclk(spc_bclk),
632 .asi_rd_request(asi_rd_request),
633 .asi_wr_request(asi_wr_request),
634 .ftp_asi_rd_done(ftp_asi_rd_done),
635 .ftp_asi_wr_done(ftp_asi_wr_done),
636 .itc_demap_next(itc_demap_next)
637);
638
639
640ifu_ftu_tsm_ctl tsm7 (
641 .scan_in(tsm7_scanin),
642 .scan_out(tsm7_scanout),
643 .l1clk(l1clk),
644 .agc_redirect_bf(ftu_thr7_redirect_bf),
645 .agc_tlu_redirect_bf(agc_thr7_tlu_redirect_bf),
646 .thrx_go_to_sf_wait(ftp_thr7_go_to_sf_wait),
647 .inv_req_c(ftu_thr7_inv_req_c),
648 .err_detect_c(agc_thr7_err_detect_c),
649 .cmu_inv_req_ack(cmu_inval_ack[7]),
650 .thrx_is_null(cmu_null_st[7]),
651 .thrx_is_dupmiss(cmu_dupmiss_st[7]),
652 .ftu_agc_cmiss_c(agc_thr7_cmiss_stm_c),
653 .data_ready(cmu_thr7_data_ready),
654 .ftp_reset_fill_wait(ftp_reset_fill_wait),
655 .reset_dmiss_bf(cmu_rst_dupmiss[7]),
656 .ftp_room_is_less_t_3(ftp_thr7_room_is_less_t_3),
657 .itb_miss_c(agc_thr7_itb_miss_c),
658 .tlu_flush_thrx_ifu(tlu_flush_ifu[7]),
659 .cmu_any_data_ready(cmu_any_data_ready),
660 .agc_lsu_no_ic_miss(agc_thr7_lsu_no_ic_miss),
661 .next_thrx_is_ready(tsm_thr7_ready_hp_bf_in),
662 .tsm_fill_rdy0(tsm_thr7_fill_rdy0),
663 .tsm_no_new_miss(tsm_thr7_no_new_miss),
664 .tsm_thrx_ifu_quiesce(ftu_ifu_quiesce[7]),
665 .tsm_ignore_by_pass(tsm_thr7_ignore_by_pass),
666 .spc_aclk(spc_aclk),
667 .spc_bclk(spc_bclk),
668 .asi_rd_request(asi_rd_request),
669 .asi_wr_request(asi_wr_request),
670 .ftp_asi_rd_done(ftp_asi_rd_done),
671 .ftp_asi_wr_done(ftp_asi_wr_done),
672 .itc_demap_next(itc_demap_next)
673);
674
675
676
677supply0 vss;
678supply1 vdd;
679// fixscan start:
680assign tsm0_scanin = scan_in ;
681assign tsm1_scanin = tsm0_scanout ;
682assign tsm2_scanin = tsm1_scanout ;
683assign tsm3_scanin = tsm2_scanout ;
684assign tsm4_scanin = tsm3_scanout ;
685assign tsm5_scanin = tsm4_scanout ;
686assign tsm6_scanin = tsm5_scanout ;
687assign tsm7_scanin = tsm6_scanout ;
688assign scan_out = tsm7_scanout ;
689// fixscan end:
690assign se = tcu_scan_en ;
691endmodule
692
693
694
695
696
697
698// any PARAMS parms go into naming of macro
699
700module ifu_ftu_tfc_ctl_l1clkhdr_ctl_macro (
701 l2clk,
702 l1en,
703 pce_ov,
704 stop,
705 se,
706 l1clk);
707
708
709 input l2clk;
710 input l1en;
711 input pce_ov;
712 input stop;
713 input se;
714 output l1clk;
715
716
717
718
719
720cl_sc1_l1hdr_8x c_0 (
721
722
723 .l2clk(l2clk),
724 .pce(l1en),
725 .l1clk(l1clk),
726 .se(se),
727 .pce_ov(pce_ov),
728 .stop(stop)
729);
730
731
732
733endmodule
734
735
736
737
738
739
740// any PARAMS parms go into naming of macro
741
742module ifu_ftu_tfc_ctl_msff_ctl_macro__width_1 (
743 din,
744 l1clk,
745 scan_in,
746 siclk,
747 soclk,
748 dout,
749 scan_out);
750wire [0:0] fdin;
751
752 input [0:0] din;
753 input l1clk;
754 input scan_in;
755
756
757 input siclk;
758 input soclk;
759
760 output [0:0] dout;
761 output scan_out;
762assign fdin[0:0] = din[0:0];
763
764
765
766
767
768
769dff #(1) d0_0 (
770.l1clk(l1clk),
771.siclk(siclk),
772.soclk(soclk),
773.d(fdin[0:0]),
774.si(scan_in),
775.so(scan_out),
776.q(dout[0:0])
777);
778
779
780
781
782
783
784
785
786
787
788
789
790endmodule
791
792
793
794
795
796
797
798
799
800
801
802
803
804// any PARAMS parms go into naming of macro
805
806module ifu_ftu_tfc_ctl_msff_ctl_macro__width_2 (
807 din,
808 l1clk,
809 scan_in,
810 siclk,
811 soclk,
812 dout,
813 scan_out);
814wire [1:0] fdin;
815wire [0:0] so;
816
817 input [1:0] din;
818 input l1clk;
819 input scan_in;
820
821
822 input siclk;
823 input soclk;
824
825 output [1:0] dout;
826 output scan_out;
827assign fdin[1:0] = din[1:0];
828
829
830
831
832
833
834dff #(2) d0_0 (
835.l1clk(l1clk),
836.siclk(siclk),
837.soclk(soclk),
838.d(fdin[1:0]),
839.si({scan_in,so[0:0]}),
840.so({so[0:0],scan_out}),
841.q(dout[1:0])
842);
843
844
845
846
847
848
849
850
851
852
853
854
855endmodule
856
857
858
859
860
861
862
863
864
865// Description: Spare gate macro for control blocks
866//
867// Param num controls the number of times the macro is added
868// flops=0 can be used to use only combination spare logic
869
870
871module ifu_ftu_tfc_ctl_spare_ctl_macro__num_1 (
872 l1clk,
873 scan_in,
874 siclk,
875 soclk,
876 scan_out);
877wire si_0;
878wire so_0;
879wire spare0_flop_unused;
880wire spare0_buf_32x_unused;
881wire spare0_nand3_8x_unused;
882wire spare0_inv_8x_unused;
883wire spare0_aoi22_4x_unused;
884wire spare0_buf_8x_unused;
885wire spare0_oai22_4x_unused;
886wire spare0_inv_16x_unused;
887wire spare0_nand2_16x_unused;
888wire spare0_nor3_4x_unused;
889wire spare0_nand2_8x_unused;
890wire spare0_buf_16x_unused;
891wire spare0_nor2_16x_unused;
892wire spare0_inv_32x_unused;
893
894
895input l1clk;
896input scan_in;
897input siclk;
898input soclk;
899output scan_out;
900
901cl_sc1_msff_8x spare0_flop (.l1clk(l1clk),
902 .siclk(siclk),
903 .soclk(soclk),
904 .si(si_0),
905 .so(so_0),
906 .d(1'b0),
907 .q(spare0_flop_unused));
908assign si_0 = scan_in;
909
910cl_u1_buf_32x spare0_buf_32x (.in(1'b1),
911 .out(spare0_buf_32x_unused));
912cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1),
913 .in1(1'b1),
914 .in2(1'b1),
915 .out(spare0_nand3_8x_unused));
916cl_u1_inv_8x spare0_inv_8x (.in(1'b1),
917 .out(spare0_inv_8x_unused));
918cl_u1_aoi22_4x spare0_aoi22_4x (.in00(1'b1),
919 .in01(1'b1),
920 .in10(1'b1),
921 .in11(1'b1),
922 .out(spare0_aoi22_4x_unused));
923cl_u1_buf_8x spare0_buf_8x (.in(1'b1),
924 .out(spare0_buf_8x_unused));
925cl_u1_oai22_4x spare0_oai22_4x (.in00(1'b1),
926 .in01(1'b1),
927 .in10(1'b1),
928 .in11(1'b1),
929 .out(spare0_oai22_4x_unused));
930cl_u1_inv_16x spare0_inv_16x (.in(1'b1),
931 .out(spare0_inv_16x_unused));
932cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1),
933 .in1(1'b1),
934 .out(spare0_nand2_16x_unused));
935cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0),
936 .in1(1'b0),
937 .in2(1'b0),
938 .out(spare0_nor3_4x_unused));
939cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1),
940 .in1(1'b1),
941 .out(spare0_nand2_8x_unused));
942cl_u1_buf_16x spare0_buf_16x (.in(1'b1),
943 .out(spare0_buf_16x_unused));
944cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0),
945 .in1(1'b0),
946 .out(spare0_nor2_16x_unused));
947cl_u1_inv_32x spare0_inv_32x (.in(1'b1),
948 .out(spare0_inv_32x_unused));
949assign scan_out = so_0;
950
951
952
953endmodule
954