Commit | Line | Data |
---|---|---|
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 ============================================ | |
35 | module 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) ; | |
168 | wire pce_ov; | |
169 | wire stop; | |
170 | wire l1clk; | |
171 | wire tsm0_scanin; | |
172 | wire tsm0_scanout; | |
173 | wire tsm1_scanin; | |
174 | wire tsm1_scanout; | |
175 | wire tsm2_scanin; | |
176 | wire tsm2_scanout; | |
177 | wire tsm3_scanin; | |
178 | wire tsm3_scanout; | |
179 | wire tsm4_scanin; | |
180 | wire tsm4_scanout; | |
181 | wire tsm5_scanin; | |
182 | wire tsm5_scanout; | |
183 | wire tsm6_scanin; | |
184 | wire tsm6_scanout; | |
185 | wire tsm7_scanin; | |
186 | wire tsm7_scanout; | |
187 | wire se; | |
188 | ||
189 | ||
190 | input tcu_scan_en ; | |
191 | input l2clk; | |
192 | input scan_in; | |
193 | input spc_aclk; | |
194 | input spc_bclk; | |
195 | input tcu_pce_ov; // scan signals | |
196 | ||
197 | input ftu_thr0_redirect_bf; | |
198 | input ftu_thr1_redirect_bf; | |
199 | input ftu_thr2_redirect_bf; | |
200 | input ftu_thr3_redirect_bf; | |
201 | input ftu_thr4_redirect_bf; | |
202 | input ftu_thr5_redirect_bf; | |
203 | input ftu_thr6_redirect_bf; | |
204 | input ftu_thr7_redirect_bf; | |
205 | ||
206 | ||
207 | input agc_thr0_err_detect_c ; | |
208 | input agc_thr1_err_detect_c ; | |
209 | input agc_thr2_err_detect_c ; | |
210 | input agc_thr3_err_detect_c ; | |
211 | input agc_thr4_err_detect_c ; | |
212 | input agc_thr5_err_detect_c ; | |
213 | input agc_thr6_err_detect_c ; | |
214 | input agc_thr7_err_detect_c ; | |
215 | ||
216 | input ftu_thr0_inv_req_c ; | |
217 | input ftu_thr1_inv_req_c ; | |
218 | input ftu_thr2_inv_req_c ; | |
219 | input ftu_thr3_inv_req_c ; | |
220 | input ftu_thr4_inv_req_c ; | |
221 | input ftu_thr5_inv_req_c ; | |
222 | input ftu_thr6_inv_req_c ; | |
223 | input ftu_thr7_inv_req_c ; | |
224 | ||
225 | ||
226 | input agc_thr0_lsu_no_ic_miss ; | |
227 | input agc_thr1_lsu_no_ic_miss ; | |
228 | input agc_thr2_lsu_no_ic_miss ; | |
229 | input agc_thr3_lsu_no_ic_miss ; | |
230 | input agc_thr4_lsu_no_ic_miss ; | |
231 | input agc_thr5_lsu_no_ic_miss ; | |
232 | input agc_thr6_lsu_no_ic_miss ; | |
233 | input agc_thr7_lsu_no_ic_miss ; | |
234 | ||
235 | input agc_thr0_tlu_redirect_bf; | |
236 | input agc_thr1_tlu_redirect_bf; | |
237 | input agc_thr2_tlu_redirect_bf; | |
238 | input agc_thr3_tlu_redirect_bf; | |
239 | input agc_thr4_tlu_redirect_bf; | |
240 | input agc_thr5_tlu_redirect_bf; | |
241 | input agc_thr6_tlu_redirect_bf; | |
242 | input agc_thr7_tlu_redirect_bf; | |
243 | ||
244 | input ftp_thr0_go_to_sf_wait; | |
245 | input ftp_thr1_go_to_sf_wait; | |
246 | input ftp_thr2_go_to_sf_wait; | |
247 | input ftp_thr3_go_to_sf_wait; | |
248 | input ftp_thr4_go_to_sf_wait; | |
249 | input ftp_thr5_go_to_sf_wait; | |
250 | input ftp_thr6_go_to_sf_wait; | |
251 | input ftp_thr7_go_to_sf_wait; | |
252 | ||
253 | input [7:0] cmu_inval_ack; | |
254 | input [7:0] cmu_rst_dupmiss; | |
255 | ||
256 | ||
257 | ||
258 | input [7:0] cmu_null_st; | |
259 | input [7:0] cmu_dupmiss_st; | |
260 | ||
261 | input cmu_thr0_data_ready; | |
262 | input cmu_thr1_data_ready; | |
263 | input cmu_thr2_data_ready; | |
264 | input cmu_thr3_data_ready; | |
265 | input cmu_thr4_data_ready; | |
266 | input cmu_thr5_data_ready; | |
267 | input cmu_thr6_data_ready; | |
268 | input cmu_thr7_data_ready; | |
269 | ||
270 | input agc_thr0_cmiss_stm_c; | |
271 | input agc_thr1_cmiss_stm_c; | |
272 | input agc_thr2_cmiss_stm_c; | |
273 | input agc_thr3_cmiss_stm_c; | |
274 | input agc_thr4_cmiss_stm_c; | |
275 | input agc_thr5_cmiss_stm_c; | |
276 | input agc_thr6_cmiss_stm_c; | |
277 | input agc_thr7_cmiss_stm_c; | |
278 | ||
279 | input agc_thr0_itb_miss_c; | |
280 | input agc_thr1_itb_miss_c; | |
281 | input agc_thr2_itb_miss_c; | |
282 | input agc_thr3_itb_miss_c; | |
283 | input agc_thr4_itb_miss_c; | |
284 | input agc_thr5_itb_miss_c; | |
285 | input agc_thr6_itb_miss_c; | |
286 | input agc_thr7_itb_miss_c; | |
287 | ||
288 | ||
289 | input cmu_any_data_ready ; | |
290 | input 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 | ||
302 | input ftp_thr0_room_is_less_t_3; | |
303 | input ftp_thr1_room_is_less_t_3; | |
304 | input ftp_thr2_room_is_less_t_3; | |
305 | input ftp_thr3_room_is_less_t_3; | |
306 | input ftp_thr4_room_is_less_t_3; | |
307 | input ftp_thr5_room_is_less_t_3; | |
308 | input ftp_thr6_room_is_less_t_3; | |
309 | input 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 | ||
321 | input itc_demap_next; | |
322 | input [7:0] tlu_flush_ifu; | |
323 | ||
324 | input asi_wr_request ; | |
325 | input asi_rd_request ; | |
326 | input ftp_asi_rd_done ; | |
327 | input ftp_asi_wr_done ; | |
328 | ||
329 | ||
330 | output tsm_thr0_fill_rdy0 ; | |
331 | output tsm_thr1_fill_rdy0 ; | |
332 | output tsm_thr2_fill_rdy0 ; | |
333 | output tsm_thr3_fill_rdy0 ; | |
334 | output tsm_thr4_fill_rdy0 ; | |
335 | output tsm_thr5_fill_rdy0 ; | |
336 | output tsm_thr6_fill_rdy0 ; | |
337 | output tsm_thr7_fill_rdy0 ; | |
338 | ||
339 | output tsm_thr0_no_new_miss ; | |
340 | output tsm_thr1_no_new_miss ; | |
341 | output tsm_thr2_no_new_miss ; | |
342 | output tsm_thr3_no_new_miss ; | |
343 | output tsm_thr4_no_new_miss ; | |
344 | output tsm_thr5_no_new_miss ; | |
345 | output tsm_thr6_no_new_miss ; | |
346 | output tsm_thr7_no_new_miss ; | |
347 | ||
348 | output tsm_thr0_ignore_by_pass ; | |
349 | output tsm_thr1_ignore_by_pass ; | |
350 | output tsm_thr2_ignore_by_pass ; | |
351 | output tsm_thr3_ignore_by_pass ; | |
352 | output tsm_thr4_ignore_by_pass ; | |
353 | output tsm_thr5_ignore_by_pass ; | |
354 | output tsm_thr6_ignore_by_pass ; | |
355 | output tsm_thr7_ignore_by_pass ; | |
356 | ||
357 | ||
358 | ||
359 | ||
360 | ||
361 | output tsm_thr0_ready_hp_bf_in; | |
362 | output tsm_thr1_ready_hp_bf_in; | |
363 | output tsm_thr2_ready_hp_bf_in; | |
364 | output tsm_thr3_ready_hp_bf_in; | |
365 | output tsm_thr4_ready_hp_bf_in; | |
366 | output tsm_thr5_ready_hp_bf_in; | |
367 | output tsm_thr6_ready_hp_bf_in; | |
368 | output tsm_thr7_ready_hp_bf_in; | |
369 | ||
370 | ||
371 | ||
372 | output [7:0] ftu_ifu_quiesce; | |
373 | ||
374 | output scan_out; | |
375 | ||
376 | // scan renames | |
377 | assign pce_ov = tcu_pce_ov; | |
378 | assign stop = 1'b0; | |
379 | // end scan | |
380 | ||
381 | ifu_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 | ||
390 | ifu_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 | ||
426 | ifu_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 | ||
461 | ifu_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 | ||
497 | ifu_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 | ||
533 | ifu_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 | ||
569 | ifu_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 | ||
604 | ifu_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 | ||
640 | ifu_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 | ||
677 | supply0 vss; | |
678 | supply1 vdd; | |
679 | // fixscan start: | |
680 | assign tsm0_scanin = scan_in ; | |
681 | assign tsm1_scanin = tsm0_scanout ; | |
682 | assign tsm2_scanin = tsm1_scanout ; | |
683 | assign tsm3_scanin = tsm2_scanout ; | |
684 | assign tsm4_scanin = tsm3_scanout ; | |
685 | assign tsm5_scanin = tsm4_scanout ; | |
686 | assign tsm6_scanin = tsm5_scanout ; | |
687 | assign tsm7_scanin = tsm6_scanout ; | |
688 | assign scan_out = tsm7_scanout ; | |
689 | // fixscan end: | |
690 | assign se = tcu_scan_en ; | |
691 | endmodule | |
692 | ||
693 | ||
694 | ||
695 | ||
696 | ||
697 | ||
698 | // any PARAMS parms go into naming of macro | |
699 | ||
700 | module 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 | ||
720 | cl_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 | ||
733 | endmodule | |
734 | ||
735 | ||
736 | ||
737 | ||
738 | ||
739 | ||
740 | // any PARAMS parms go into naming of macro | |
741 | ||
742 | module 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); | |
750 | wire [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; | |
762 | assign fdin[0:0] = din[0:0]; | |
763 | ||
764 | ||
765 | ||
766 | ||
767 | ||
768 | ||
769 | dff #(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 | ||
790 | endmodule | |
791 | ||
792 | ||
793 | ||
794 | ||
795 | ||
796 | ||
797 | ||
798 | ||
799 | ||
800 | ||
801 | ||
802 | ||
803 | ||
804 | // any PARAMS parms go into naming of macro | |
805 | ||
806 | module 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); | |
814 | wire [1:0] fdin; | |
815 | wire [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; | |
827 | assign fdin[1:0] = din[1:0]; | |
828 | ||
829 | ||
830 | ||
831 | ||
832 | ||
833 | ||
834 | dff #(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 | ||
855 | endmodule | |
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 | ||
871 | module ifu_ftu_tfc_ctl_spare_ctl_macro__num_1 ( | |
872 | l1clk, | |
873 | scan_in, | |
874 | siclk, | |
875 | soclk, | |
876 | scan_out); | |
877 | wire si_0; | |
878 | wire so_0; | |
879 | wire spare0_flop_unused; | |
880 | wire spare0_buf_32x_unused; | |
881 | wire spare0_nand3_8x_unused; | |
882 | wire spare0_inv_8x_unused; | |
883 | wire spare0_aoi22_4x_unused; | |
884 | wire spare0_buf_8x_unused; | |
885 | wire spare0_oai22_4x_unused; | |
886 | wire spare0_inv_16x_unused; | |
887 | wire spare0_nand2_16x_unused; | |
888 | wire spare0_nor3_4x_unused; | |
889 | wire spare0_nand2_8x_unused; | |
890 | wire spare0_buf_16x_unused; | |
891 | wire spare0_nor2_16x_unused; | |
892 | wire spare0_inv_32x_unused; | |
893 | ||
894 | ||
895 | input l1clk; | |
896 | input scan_in; | |
897 | input siclk; | |
898 | input soclk; | |
899 | output scan_out; | |
900 | ||
901 | cl_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)); | |
908 | assign si_0 = scan_in; | |
909 | ||
910 | cl_u1_buf_32x spare0_buf_32x (.in(1'b1), | |
911 | .out(spare0_buf_32x_unused)); | |
912 | cl_u1_nand3_8x spare0_nand3_8x (.in0(1'b1), | |
913 | .in1(1'b1), | |
914 | .in2(1'b1), | |
915 | .out(spare0_nand3_8x_unused)); | |
916 | cl_u1_inv_8x spare0_inv_8x (.in(1'b1), | |
917 | .out(spare0_inv_8x_unused)); | |
918 | cl_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)); | |
923 | cl_u1_buf_8x spare0_buf_8x (.in(1'b1), | |
924 | .out(spare0_buf_8x_unused)); | |
925 | cl_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)); | |
930 | cl_u1_inv_16x spare0_inv_16x (.in(1'b1), | |
931 | .out(spare0_inv_16x_unused)); | |
932 | cl_u1_nand2_16x spare0_nand2_16x (.in0(1'b1), | |
933 | .in1(1'b1), | |
934 | .out(spare0_nand2_16x_unused)); | |
935 | cl_u1_nor3_4x spare0_nor3_4x (.in0(1'b0), | |
936 | .in1(1'b0), | |
937 | .in2(1'b0), | |
938 | .out(spare0_nor3_4x_unused)); | |
939 | cl_u1_nand2_8x spare0_nand2_8x (.in0(1'b1), | |
940 | .in1(1'b1), | |
941 | .out(spare0_nand2_8x_unused)); | |
942 | cl_u1_buf_16x spare0_buf_16x (.in(1'b1), | |
943 | .out(spare0_buf_16x_unused)); | |
944 | cl_u1_nor2_16x spare0_nor2_16x (.in0(1'b0), | |
945 | .in1(1'b0), | |
946 | .out(spare0_nor2_16x_unused)); | |
947 | cl_u1_inv_32x spare0_inv_32x (.in(1'b1), | |
948 | .out(spare0_inv_32x_unused)); | |
949 | assign scan_out = so_0; | |
950 | ||
951 | ||
952 | ||
953 | endmodule | |
954 |