Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: pku.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 pku ( | |
36 | tlu_halted, | |
37 | tcu_do_mode, | |
38 | dec_block_store_stall, | |
39 | dec_ierr_d, | |
40 | lsu_spec_enable, | |
41 | spc_core_running_status, | |
42 | lsu_pku_pmen, | |
43 | tlu_retry_state, | |
44 | tlu_flush_ifu, | |
45 | dec_true_valid_e, | |
46 | dec_decode0_d, | |
47 | dec_decode1_d, | |
48 | dec_valid0_d, | |
49 | dec_valid1_d, | |
50 | lsu_sync, | |
51 | lsu_complete, | |
52 | dec_br_taken_e, | |
53 | fgu_divide_completion, | |
54 | ifu_ibuffer_write_c, | |
55 | lsu_stb_alloc, | |
56 | lsu_stb_dealloc, | |
57 | lsu_block_store_kill, | |
58 | ifu_buf0_inst0, | |
59 | ifu_buf0_inst1, | |
60 | ifu_buf0_inst2, | |
61 | ifu_buf0_inst3, | |
62 | ifu_buf0_inst4, | |
63 | ifu_buf0_inst5, | |
64 | ifu_buf0_inst6, | |
65 | ifu_buf0_inst7, | |
66 | ifu_buf0_valid_p, | |
67 | ifu_upper_buffer_valid_p, | |
68 | l2clk, | |
69 | scan_in, | |
70 | tcu_pce_ov, | |
71 | spc_aclk, | |
72 | spc_bclk, | |
73 | tcu_scan_en, | |
74 | pku_raw_pick0_p, | |
75 | pku_raw_pick1_p, | |
76 | pku_base_pick_p, | |
77 | pku_pick_p, | |
78 | pku_lsu_p, | |
79 | pku_fgu_p, | |
80 | pku_pdist_p, | |
81 | pku_twocycle_p, | |
82 | pku_idest_p, | |
83 | pku_fdest_p, | |
84 | pku_fsrc_rd_p, | |
85 | pku_isrc_rs1_p, | |
86 | pku_isrc_rs2_p, | |
87 | pku_isrc_rd_p, | |
88 | pku_valid_e, | |
89 | pku_annul_ds_dcti_brtaken0_e, | |
90 | pku_annul_ds_dcti_brtaken1_e, | |
91 | pku_flush_f1, | |
92 | pku_flush_f2, | |
93 | pku_flush_lb, | |
94 | pku_flush_lm, | |
95 | pku_flush_m, | |
96 | pku_flush_b, | |
97 | pku_load_flush_w, | |
98 | pku_ds_e, | |
99 | pku_flush_upper_buffer, | |
100 | pku_flush_buffer0, | |
101 | pku_quiesce, | |
102 | pku_inst_cnt_brtaken00, | |
103 | pku_inst_cnt_brtaken01, | |
104 | pku_inst_cnt_brtaken02, | |
105 | pku_inst_cnt_brtaken03, | |
106 | pku_inst_cnt_brtaken04, | |
107 | pku_inst_cnt_brtaken05, | |
108 | pku_inst_cnt_brtaken06, | |
109 | pku_inst_cnt_brtaken07, | |
110 | pku_inst_cnt_brtaken10, | |
111 | pku_inst_cnt_brtaken11, | |
112 | pku_inst_cnt_brtaken12, | |
113 | pku_inst_cnt_brtaken13, | |
114 | pku_inst_cnt_brtaken14, | |
115 | pku_inst_cnt_brtaken15, | |
116 | pku_inst_cnt_brtaken16, | |
117 | pku_inst_cnt_brtaken17, | |
118 | scan_out); | |
119 | wire [7:0] swl_divide_wait; | |
120 | wire swl0_scanin; | |
121 | wire swl0_scanout; | |
122 | wire [7:0] swl_ready_p; | |
123 | wire [7:0] swl_spec_ready_p; | |
124 | wire [7:0] swl_cancel_pick_p; | |
125 | wire swl1_scanin; | |
126 | wire swl1_scanout; | |
127 | wire swl2_scanin; | |
128 | wire swl2_scanout; | |
129 | wire swl3_scanin; | |
130 | wire swl3_scanout; | |
131 | wire pck0_scanin; | |
132 | wire pck0_scanout; | |
133 | wire swl4_scanin; | |
134 | wire swl4_scanout; | |
135 | wire swl5_scanin; | |
136 | wire swl5_scanout; | |
137 | wire swl6_scanin; | |
138 | wire swl6_scanout; | |
139 | wire swl7_scanin; | |
140 | wire swl7_scanout; | |
141 | wire pck1_scanin; | |
142 | wire pck1_scanout; | |
143 | ||
144 | ||
145 | input [7:0] tlu_halted; // thread is in halted state | |
146 | ||
147 | input tcu_do_mode; | |
148 | ||
149 | input [7:0] dec_block_store_stall; // prevent window ops from coming too early after a block store | |
150 | input [1:0] dec_ierr_d; // tell pku that an inst error has occurred: illegal, parity error or ifetch error | |
151 | ||
152 | input [7:0] lsu_spec_enable; // enable speculation; assume this is serializing (if not pipeline it) | |
153 | input [7:0] spc_core_running_status; // active bits for each of the threads | |
154 | ||
155 | input lsu_pku_pmen; // power management enable for pku | |
156 | ||
157 | input [7:0] tlu_retry_state; // IF the first part of a retry, must let it go even in dcti w/out DS (part of address optimization) | |
158 | input [7:0] tlu_flush_ifu; // flush this thread (traps) | |
159 | input [1:0] dec_true_valid_e; // instruction at e stage is valid taking exceptions into account | |
160 | input dec_decode0_d; // instruction at d stage is decoded this cycle (TG0) | |
161 | input dec_decode1_d; // instruction at d stage is decoded this cycle (TG1) | |
162 | input dec_valid0_d; // instruction at d stage is valid (TG0) | |
163 | input dec_valid1_d; // instruction at d stage is valid (TG1) | |
164 | input [7:0] lsu_sync; // lsu needs thread to resync due to dcache_miss, ASI register access, etc. | |
165 | input [7:0] lsu_complete; // completion of lsu sync event | |
166 | input [1:0] dec_br_taken_e; // br is taken for e stage (br mispredict) | |
167 | ||
168 | input [7:0] fgu_divide_completion; // divide completion for any thread | |
169 | input [7:0] ifu_ibuffer_write_c; // any write to the ibuffer (C stage) | |
170 | input [7:0] lsu_stb_alloc; // lsu has allocated store in stb; sent in b_stage; increment ccnt by 1 | |
171 | input [7:0] lsu_stb_dealloc; // lsu is deallocating store in stb; decrement sscnt,ccnt by 1 | |
172 | input [7:0] lsu_block_store_kill; // error occured in block store sequence; use this to set scnt=ccnt=0 | |
173 | ||
174 | input [31:0] ifu_buf0_inst0; // oldest instruction for each of the instruction buffers | |
175 | input [31:0] ifu_buf0_inst1; | |
176 | input [31:0] ifu_buf0_inst2; | |
177 | input [31:0] ifu_buf0_inst3; | |
178 | input [31:0] ifu_buf0_inst4; | |
179 | input [31:0] ifu_buf0_inst5; | |
180 | input [31:0] ifu_buf0_inst6; | |
181 | input [31:0] ifu_buf0_inst7; | |
182 | ||
183 | input [7:0] ifu_buf0_valid_p; // instruction valid signals for each of the buffers (oldest instruction) | |
184 | input [7:0] ifu_upper_buffer_valid_p; // instruction after oldest instruction is valid for each buffer | |
185 | ||
186 | input l2clk; | |
187 | input scan_in; | |
188 | input tcu_pce_ov; // scan signals | |
189 | input spc_aclk; | |
190 | input spc_bclk; | |
191 | input tcu_scan_en; | |
192 | ||
193 | output [3:0] pku_raw_pick0_p; // raw pick signals to ifu to mux pc addresses (no swl_cancel_pick or decode cancel) | |
194 | output [7:4] pku_raw_pick1_p; | |
195 | ||
196 | output [7:0] pku_base_pick_p; // base pick signals to dec (no decode cancel) | |
197 | ||
198 | output [7:0] pku_pick_p; // final pick signals (with everything) | |
199 | ||
200 | output [7:0] pku_lsu_p; // lsu op at pick | |
201 | output [7:0] pku_fgu_p; // fgu op at pick | |
202 | output [7:0] pku_pdist_p; // pdist inst at pick | |
203 | output [7:0] pku_twocycle_p; // twocycle op at pick (std or casa) | |
204 | output [7:0] pku_idest_p; // op has integer dest at pick | |
205 | output [7:0] pku_fdest_p; // op has fp dest at pick | |
206 | ||
207 | output [7:0] pku_fsrc_rd_p; // fgu sources rd | |
208 | ||
209 | output [7:0] pku_isrc_rs1_p; // int op has rs1 source | |
210 | output [7:0] pku_isrc_rs2_p; // int op has rs2 source | |
211 | output [7:0] pku_isrc_rd_p; // int op has rd dest | |
212 | ||
213 | output [7:0] pku_valid_e; // inst is valid at e stage | |
214 | ||
215 | output [7:0] pku_annul_ds_dcti_brtaken0_e; // DS of dcti at e stage is annulled | |
216 | output [7:0] pku_annul_ds_dcti_brtaken1_e; // DS of dcti at e stage is annulled | |
217 | ||
218 | output [7:0] pku_flush_f1; // flush inst at f1 pipe stage of the fgu | |
219 | output [7:0] pku_flush_f2; // flush inst at f2 pipe stage of the fgu | |
220 | ||
221 | output [7:0] pku_flush_lb; // flush inst at b pipe stage of the lsu | |
222 | output [7:0] pku_flush_lm; // flush inst at m pipe stage of the lsu | |
223 | ||
224 | output [7:0] pku_flush_m; // flush inst at m pipe stage of trap | |
225 | output [7:0] pku_flush_b; // flush inst at b pipe stage of trap | |
226 | ||
227 | output [7:0] pku_load_flush_w; // tell ifu to flush this thread and fetch the npc of inst at w stage (due to load mispredict) | |
228 | ||
229 | output [7:0] pku_ds_e; // inst at e stage is a DS | |
230 | ||
231 | output [7:0] pku_flush_upper_buffer; // flush upper instruction buffers | |
232 | output [7:0] pku_flush_buffer0; // flush buffer0 of instruction buffers (oldest) | |
233 | ||
234 | output [7:0] pku_quiesce; // quiesce signal for each thread to tlu | |
235 | ||
236 | output [1:0] pku_inst_cnt_brtaken00; // inst cnts at e,m,b pipe stages for each thread | |
237 | output [1:0] pku_inst_cnt_brtaken01; | |
238 | output [1:0] pku_inst_cnt_brtaken02; | |
239 | output [1:0] pku_inst_cnt_brtaken03; | |
240 | output [1:0] pku_inst_cnt_brtaken04; | |
241 | output [1:0] pku_inst_cnt_brtaken05; | |
242 | output [1:0] pku_inst_cnt_brtaken06; | |
243 | output [1:0] pku_inst_cnt_brtaken07; | |
244 | output [1:0] pku_inst_cnt_brtaken10; // inst cnts at e,m,b pipe stages for each thread | |
245 | output [1:0] pku_inst_cnt_brtaken11; | |
246 | output [1:0] pku_inst_cnt_brtaken12; | |
247 | output [1:0] pku_inst_cnt_brtaken13; | |
248 | output [1:0] pku_inst_cnt_brtaken14; | |
249 | output [1:0] pku_inst_cnt_brtaken15; | |
250 | output [1:0] pku_inst_cnt_brtaken16; | |
251 | output [1:0] pku_inst_cnt_brtaken17; | |
252 | ||
253 | output scan_out; | |
254 | ||
255 | ||
256 | pku_swl_ctl swl0 ( | |
257 | .tlu_halted(tlu_halted[0]), | |
258 | .dec_block_store_stall(dec_block_store_stall[0]), | |
259 | .dec_ierr_d(dec_ierr_d[0]), | |
260 | .ifu_ibuffer_write_c(ifu_ibuffer_write_c[0]), | |
261 | .ifu_buf0_inst(ifu_buf0_inst0[31:0]), | |
262 | .swl_divide_wait_all(swl_divide_wait[7:0]), | |
263 | .fgu_divide_completion(fgu_divide_completion[0]), | |
264 | .lsu_spec_enable(lsu_spec_enable[0]), | |
265 | .spc_core_running_status(spc_core_running_status[0]), | |
266 | .ifu_buf0_valid_p(ifu_buf0_valid_p[0]), | |
267 | .ifu_upper_buffer_valid_p(ifu_upper_buffer_valid_p[0]), | |
268 | .pku_raw_pick_p(pku_raw_pick0_p[0]), | |
269 | .tlu_flush_ifu(tlu_flush_ifu[0]), | |
270 | .dec_true_valid_e(dec_true_valid_e[0]), | |
271 | .dec_decode_d(dec_decode0_d), | |
272 | .dec_valid_d(dec_valid0_d), | |
273 | .tlu_retry_state(tlu_retry_state[0]), | |
274 | .lsu_stb_dealloc(lsu_stb_dealloc[0]), | |
275 | .lsu_stb_alloc(lsu_stb_alloc[0]), | |
276 | .lsu_block_store_kill(lsu_block_store_kill[0]), | |
277 | .lsu_sync(lsu_sync[0]), | |
278 | .lsu_complete(lsu_complete[0]), | |
279 | .dec_br_taken_e(dec_br_taken_e[0]), | |
280 | .scan_in(swl0_scanin), | |
281 | .scan_out(swl0_scanout), | |
282 | .l2clk(l2clk), | |
283 | .pku_quiesce(pku_quiesce[0]), | |
284 | .pku_lsu_p(pku_lsu_p[0]), | |
285 | .pku_fgu_p(pku_fgu_p[0]), | |
286 | .pku_pdist_p(pku_pdist_p[0]), | |
287 | .pku_twocycle_p(pku_twocycle_p[0]), | |
288 | .pku_idest_p(pku_idest_p[0]), | |
289 | .pku_fdest_p(pku_fdest_p[0]), | |
290 | .pku_isrc_rs1_p(pku_isrc_rs1_p[0]), | |
291 | .pku_isrc_rs2_p(pku_isrc_rs2_p[0]), | |
292 | .pku_isrc_rd_p(pku_isrc_rd_p[0]), | |
293 | .pku_fsrc_rd_p(pku_fsrc_rd_p[0]), | |
294 | .swl_ready_p(swl_ready_p[0]), | |
295 | .swl_spec_ready_p(swl_spec_ready_p[0]), | |
296 | .pku_load_flush_w(pku_load_flush_w[0]), | |
297 | .pku_flush_upper_buffer(pku_flush_upper_buffer[0]), | |
298 | .pku_flush_buffer0(pku_flush_buffer0[0]), | |
299 | .pku_valid_e(pku_valid_e[0]), | |
300 | .pku_annul_ds_dcti_brtaken0_e(pku_annul_ds_dcti_brtaken0_e[0]), | |
301 | .pku_annul_ds_dcti_brtaken1_e(pku_annul_ds_dcti_brtaken1_e[0]), | |
302 | .pku_flush_m(pku_flush_m[0]), | |
303 | .pku_flush_b(pku_flush_b[0]), | |
304 | .pku_flush_lm(pku_flush_lm[0]), | |
305 | .pku_flush_lb(pku_flush_lb[0]), | |
306 | .pku_flush_f1(pku_flush_f1[0]), | |
307 | .pku_flush_f2(pku_flush_f2[0]), | |
308 | .pku_inst_cnt_brtaken0(pku_inst_cnt_brtaken00[1:0]), | |
309 | .pku_inst_cnt_brtaken1(pku_inst_cnt_brtaken10[1:0]), | |
310 | .pku_ds_e(pku_ds_e[0]), | |
311 | .swl_divide_wait(swl_divide_wait[0]), | |
312 | .swl_cancel_pick_p(swl_cancel_pick_p[0]), | |
313 | .tcu_do_mode(tcu_do_mode), | |
314 | .lsu_pku_pmen(lsu_pku_pmen), | |
315 | .tcu_pce_ov(tcu_pce_ov), | |
316 | .spc_aclk(spc_aclk), | |
317 | .spc_bclk(spc_bclk), | |
318 | .tcu_scan_en(tcu_scan_en) | |
319 | ); | |
320 | ||
321 | pku_swl_ctl swl1 ( | |
322 | .tlu_halted(tlu_halted[1]), | |
323 | .dec_block_store_stall(dec_block_store_stall[1]), | |
324 | .dec_ierr_d(dec_ierr_d[0]), | |
325 | .ifu_ibuffer_write_c(ifu_ibuffer_write_c[1]), | |
326 | .ifu_buf0_inst(ifu_buf0_inst1[31:0]), | |
327 | .swl_divide_wait_all(swl_divide_wait[7:0]), | |
328 | .fgu_divide_completion(fgu_divide_completion[1]), | |
329 | .lsu_spec_enable(lsu_spec_enable[1]), | |
330 | .spc_core_running_status(spc_core_running_status[1]), | |
331 | .ifu_buf0_valid_p(ifu_buf0_valid_p[1]), | |
332 | .ifu_upper_buffer_valid_p(ifu_upper_buffer_valid_p[1]), | |
333 | .pku_raw_pick_p(pku_raw_pick0_p[1]), | |
334 | .tlu_flush_ifu(tlu_flush_ifu[1]), | |
335 | .dec_true_valid_e(dec_true_valid_e[0]), | |
336 | .dec_decode_d(dec_decode0_d), | |
337 | .dec_valid_d(dec_valid0_d), | |
338 | .tlu_retry_state(tlu_retry_state[1]), | |
339 | .lsu_stb_dealloc(lsu_stb_dealloc[1]), | |
340 | .lsu_stb_alloc(lsu_stb_alloc[1]), | |
341 | .lsu_block_store_kill(lsu_block_store_kill[1]), | |
342 | .lsu_sync(lsu_sync[1]), | |
343 | .lsu_complete(lsu_complete[1]), | |
344 | .dec_br_taken_e(dec_br_taken_e[0]), | |
345 | .scan_in(swl1_scanin), | |
346 | .scan_out(swl1_scanout), | |
347 | .l2clk(l2clk), | |
348 | .pku_quiesce(pku_quiesce[1]), | |
349 | .pku_lsu_p(pku_lsu_p[1]), | |
350 | .pku_fgu_p(pku_fgu_p[1]), | |
351 | .pku_pdist_p(pku_pdist_p[1]), | |
352 | .pku_twocycle_p(pku_twocycle_p[1]), | |
353 | .pku_idest_p(pku_idest_p[1]), | |
354 | .pku_fdest_p(pku_fdest_p[1]), | |
355 | .pku_isrc_rs1_p(pku_isrc_rs1_p[1]), | |
356 | .pku_isrc_rs2_p(pku_isrc_rs2_p[1]), | |
357 | .pku_isrc_rd_p(pku_isrc_rd_p[1]), | |
358 | .pku_fsrc_rd_p(pku_fsrc_rd_p[1]), | |
359 | .swl_ready_p(swl_ready_p[1]), | |
360 | .swl_spec_ready_p(swl_spec_ready_p[1]), | |
361 | .pku_load_flush_w(pku_load_flush_w[1]), | |
362 | .pku_flush_upper_buffer(pku_flush_upper_buffer[1]), | |
363 | .pku_flush_buffer0(pku_flush_buffer0[1]), | |
364 | .pku_valid_e(pku_valid_e[1]), | |
365 | .pku_annul_ds_dcti_brtaken0_e(pku_annul_ds_dcti_brtaken0_e[1]), | |
366 | .pku_annul_ds_dcti_brtaken1_e(pku_annul_ds_dcti_brtaken1_e[1]), | |
367 | .pku_flush_m(pku_flush_m[1]), | |
368 | .pku_flush_b(pku_flush_b[1]), | |
369 | .pku_flush_lm(pku_flush_lm[1]), | |
370 | .pku_flush_lb(pku_flush_lb[1]), | |
371 | .pku_flush_f1(pku_flush_f1[1]), | |
372 | .pku_flush_f2(pku_flush_f2[1]), | |
373 | .pku_inst_cnt_brtaken0(pku_inst_cnt_brtaken01[1:0]), | |
374 | .pku_inst_cnt_brtaken1(pku_inst_cnt_brtaken11[1:0]), | |
375 | .pku_ds_e(pku_ds_e[1]), | |
376 | .swl_divide_wait(swl_divide_wait[1]), | |
377 | .swl_cancel_pick_p(swl_cancel_pick_p[1]), | |
378 | .tcu_do_mode(tcu_do_mode), | |
379 | .lsu_pku_pmen(lsu_pku_pmen), | |
380 | .tcu_pce_ov(tcu_pce_ov), | |
381 | .spc_aclk(spc_aclk), | |
382 | .spc_bclk(spc_bclk), | |
383 | .tcu_scan_en(tcu_scan_en) | |
384 | ); | |
385 | ||
386 | pku_swl_ctl swl2 ( | |
387 | .tlu_halted(tlu_halted[2]), | |
388 | .dec_block_store_stall(dec_block_store_stall[2]), | |
389 | .dec_ierr_d(dec_ierr_d[0]), | |
390 | .ifu_ibuffer_write_c(ifu_ibuffer_write_c[2]), | |
391 | .ifu_buf0_inst(ifu_buf0_inst2[31:0]), | |
392 | .swl_divide_wait_all(swl_divide_wait[7:0]), | |
393 | .fgu_divide_completion(fgu_divide_completion[2]), | |
394 | .lsu_spec_enable(lsu_spec_enable[2]), | |
395 | .spc_core_running_status(spc_core_running_status[2]), | |
396 | .ifu_buf0_valid_p(ifu_buf0_valid_p[2]), | |
397 | .ifu_upper_buffer_valid_p(ifu_upper_buffer_valid_p[2]), | |
398 | .pku_raw_pick_p(pku_raw_pick0_p[2]), | |
399 | .tlu_flush_ifu(tlu_flush_ifu[2]), | |
400 | .dec_true_valid_e(dec_true_valid_e[0]), | |
401 | .dec_decode_d(dec_decode0_d), | |
402 | .dec_valid_d(dec_valid0_d), | |
403 | .tlu_retry_state(tlu_retry_state[2]), | |
404 | .lsu_stb_dealloc(lsu_stb_dealloc[2]), | |
405 | .lsu_stb_alloc(lsu_stb_alloc[2]), | |
406 | .lsu_block_store_kill(lsu_block_store_kill[2]), | |
407 | .lsu_sync(lsu_sync[2]), | |
408 | .lsu_complete(lsu_complete[2]), | |
409 | .dec_br_taken_e(dec_br_taken_e[0]), | |
410 | .scan_in(swl2_scanin), | |
411 | .scan_out(swl2_scanout), | |
412 | .l2clk(l2clk), | |
413 | .pku_quiesce(pku_quiesce[2]), | |
414 | .pku_lsu_p(pku_lsu_p[2]), | |
415 | .pku_fgu_p(pku_fgu_p[2]), | |
416 | .pku_pdist_p(pku_pdist_p[2]), | |
417 | .pku_twocycle_p(pku_twocycle_p[2]), | |
418 | .pku_idest_p(pku_idest_p[2]), | |
419 | .pku_fdest_p(pku_fdest_p[2]), | |
420 | .pku_isrc_rs1_p(pku_isrc_rs1_p[2]), | |
421 | .pku_isrc_rs2_p(pku_isrc_rs2_p[2]), | |
422 | .pku_isrc_rd_p(pku_isrc_rd_p[2]), | |
423 | .pku_fsrc_rd_p(pku_fsrc_rd_p[2]), | |
424 | .swl_ready_p(swl_ready_p[2]), | |
425 | .swl_spec_ready_p(swl_spec_ready_p[2]), | |
426 | .pku_load_flush_w(pku_load_flush_w[2]), | |
427 | .pku_flush_upper_buffer(pku_flush_upper_buffer[2]), | |
428 | .pku_flush_buffer0(pku_flush_buffer0[2]), | |
429 | .pku_valid_e(pku_valid_e[2]), | |
430 | .pku_annul_ds_dcti_brtaken0_e(pku_annul_ds_dcti_brtaken0_e[2]), | |
431 | .pku_annul_ds_dcti_brtaken1_e(pku_annul_ds_dcti_brtaken1_e[2]), | |
432 | .pku_flush_m(pku_flush_m[2]), | |
433 | .pku_flush_b(pku_flush_b[2]), | |
434 | .pku_flush_lm(pku_flush_lm[2]), | |
435 | .pku_flush_lb(pku_flush_lb[2]), | |
436 | .pku_flush_f1(pku_flush_f1[2]), | |
437 | .pku_flush_f2(pku_flush_f2[2]), | |
438 | .pku_inst_cnt_brtaken0(pku_inst_cnt_brtaken02[1:0]), | |
439 | .pku_inst_cnt_brtaken1(pku_inst_cnt_brtaken12[1:0]), | |
440 | .pku_ds_e(pku_ds_e[2]), | |
441 | .swl_divide_wait(swl_divide_wait[2]), | |
442 | .swl_cancel_pick_p(swl_cancel_pick_p[2]), | |
443 | .tcu_do_mode(tcu_do_mode), | |
444 | .lsu_pku_pmen(lsu_pku_pmen), | |
445 | .tcu_pce_ov(tcu_pce_ov), | |
446 | .spc_aclk(spc_aclk), | |
447 | .spc_bclk(spc_bclk), | |
448 | .tcu_scan_en(tcu_scan_en) | |
449 | ); | |
450 | ||
451 | pku_swl_ctl swl3 ( | |
452 | .tlu_halted(tlu_halted[3]), | |
453 | .dec_block_store_stall(dec_block_store_stall[3]), | |
454 | .dec_ierr_d(dec_ierr_d[0]), | |
455 | .ifu_ibuffer_write_c(ifu_ibuffer_write_c[3]), | |
456 | .ifu_buf0_inst(ifu_buf0_inst3[31:0]), | |
457 | .swl_divide_wait_all(swl_divide_wait[7:0]), | |
458 | .fgu_divide_completion(fgu_divide_completion[3]), | |
459 | .lsu_spec_enable(lsu_spec_enable[3]), | |
460 | .spc_core_running_status(spc_core_running_status[3]), | |
461 | .ifu_buf0_valid_p(ifu_buf0_valid_p[3]), | |
462 | .ifu_upper_buffer_valid_p(ifu_upper_buffer_valid_p[3]), | |
463 | .pku_raw_pick_p(pku_raw_pick0_p[3]), | |
464 | .tlu_flush_ifu(tlu_flush_ifu[3]), | |
465 | .dec_true_valid_e(dec_true_valid_e[0]), | |
466 | .dec_decode_d(dec_decode0_d), | |
467 | .dec_valid_d(dec_valid0_d), | |
468 | .tlu_retry_state(tlu_retry_state[3]), | |
469 | .lsu_stb_dealloc(lsu_stb_dealloc[3]), | |
470 | .lsu_stb_alloc(lsu_stb_alloc[3]), | |
471 | .lsu_block_store_kill(lsu_block_store_kill[3]), | |
472 | .lsu_sync(lsu_sync[3]), | |
473 | .lsu_complete(lsu_complete[3]), | |
474 | .dec_br_taken_e(dec_br_taken_e[0]), | |
475 | .scan_in(swl3_scanin), | |
476 | .scan_out(swl3_scanout), | |
477 | .l2clk(l2clk), | |
478 | .pku_quiesce(pku_quiesce[3]), | |
479 | .pku_lsu_p(pku_lsu_p[3]), | |
480 | .pku_fgu_p(pku_fgu_p[3]), | |
481 | .pku_pdist_p(pku_pdist_p[3]), | |
482 | .pku_twocycle_p(pku_twocycle_p[3]), | |
483 | .pku_idest_p(pku_idest_p[3]), | |
484 | .pku_fdest_p(pku_fdest_p[3]), | |
485 | .pku_isrc_rs1_p(pku_isrc_rs1_p[3]), | |
486 | .pku_isrc_rs2_p(pku_isrc_rs2_p[3]), | |
487 | .pku_isrc_rd_p(pku_isrc_rd_p[3]), | |
488 | .pku_fsrc_rd_p(pku_fsrc_rd_p[3]), | |
489 | .swl_ready_p(swl_ready_p[3]), | |
490 | .swl_spec_ready_p(swl_spec_ready_p[3]), | |
491 | .pku_load_flush_w(pku_load_flush_w[3]), | |
492 | .pku_flush_upper_buffer(pku_flush_upper_buffer[3]), | |
493 | .pku_flush_buffer0(pku_flush_buffer0[3]), | |
494 | .pku_annul_ds_dcti_brtaken0_e(pku_annul_ds_dcti_brtaken0_e[3]), | |
495 | .pku_annul_ds_dcti_brtaken1_e(pku_annul_ds_dcti_brtaken1_e[3]), | |
496 | .pku_valid_e(pku_valid_e[3]), | |
497 | .pku_flush_m(pku_flush_m[3]), | |
498 | .pku_flush_b(pku_flush_b[3]), | |
499 | .pku_flush_lm(pku_flush_lm[3]), | |
500 | .pku_flush_lb(pku_flush_lb[3]), | |
501 | .pku_flush_f1(pku_flush_f1[3]), | |
502 | .pku_flush_f2(pku_flush_f2[3]), | |
503 | .pku_inst_cnt_brtaken0(pku_inst_cnt_brtaken03[1:0]), | |
504 | .pku_inst_cnt_brtaken1(pku_inst_cnt_brtaken13[1:0]), | |
505 | .pku_ds_e(pku_ds_e[3]), | |
506 | .swl_divide_wait(swl_divide_wait[3]), | |
507 | .swl_cancel_pick_p(swl_cancel_pick_p[3]), | |
508 | .tcu_do_mode(tcu_do_mode), | |
509 | .lsu_pku_pmen(lsu_pku_pmen), | |
510 | .tcu_pce_ov(tcu_pce_ov), | |
511 | .spc_aclk(spc_aclk), | |
512 | .spc_bclk(spc_bclk), | |
513 | .tcu_scan_en(tcu_scan_en) | |
514 | ); | |
515 | ||
516 | pku_pkd_dp pkd0 ( | |
517 | .pku_raw_pick_p(pku_raw_pick0_p[3:0]), | |
518 | .dec_decode_d(dec_decode0_d), | |
519 | .dec_valid_d(dec_valid0_d), | |
520 | .swl_cancel_pick_p(swl_cancel_pick_p[3:0]), | |
521 | .pku_flush_buffer0(pku_flush_buffer0[3:0]), | |
522 | .pku_pick_p(pku_pick_p[3:0]), | |
523 | .pku_base_pick_p(pku_base_pick_p[3:0]) | |
524 | ); | |
525 | ||
526 | pku_pck_ctl pck0 ( | |
527 | .pku_pick_p(pku_pick_p[3:0]), | |
528 | .swl_ready_p(swl_ready_p[3:0]), | |
529 | .swl_spec_ready_p(swl_spec_ready_p[3:0]), | |
530 | .ifu_buf0_valid_p(ifu_buf0_valid_p[3:0]), | |
531 | .scan_in(pck0_scanin), | |
532 | .scan_out(pck0_scanout), | |
533 | .l2clk(l2clk), | |
534 | .pku_raw_pick_p(pku_raw_pick0_p[3:0]), | |
535 | .lsu_pku_pmen(lsu_pku_pmen), | |
536 | .tcu_pce_ov(tcu_pce_ov), | |
537 | .spc_aclk(spc_aclk), | |
538 | .spc_bclk(spc_bclk), | |
539 | .tcu_scan_en(tcu_scan_en) | |
540 | ); | |
541 | ||
542 | ||
543 | pku_swl_ctl swl4 ( | |
544 | .tlu_halted(tlu_halted[4]), | |
545 | .dec_block_store_stall(dec_block_store_stall[4]), | |
546 | .dec_ierr_d(dec_ierr_d[1]), | |
547 | .ifu_ibuffer_write_c(ifu_ibuffer_write_c[4]), | |
548 | .ifu_buf0_inst(ifu_buf0_inst4[31:0]), | |
549 | .swl_divide_wait_all(swl_divide_wait[7:0]), | |
550 | .fgu_divide_completion(fgu_divide_completion[4]), | |
551 | .lsu_spec_enable(lsu_spec_enable[4]), | |
552 | .spc_core_running_status(spc_core_running_status[4]), | |
553 | .ifu_buf0_valid_p(ifu_buf0_valid_p[4]), | |
554 | .ifu_upper_buffer_valid_p(ifu_upper_buffer_valid_p[4]), | |
555 | .pku_raw_pick_p(pku_raw_pick1_p[4]), | |
556 | .tlu_flush_ifu(tlu_flush_ifu[4]), | |
557 | .dec_true_valid_e(dec_true_valid_e[1]), | |
558 | .dec_decode_d(dec_decode1_d), | |
559 | .dec_valid_d(dec_valid1_d), | |
560 | .tlu_retry_state(tlu_retry_state[4]), | |
561 | .lsu_stb_dealloc(lsu_stb_dealloc[4]), | |
562 | .lsu_stb_alloc(lsu_stb_alloc[4]), | |
563 | .lsu_block_store_kill(lsu_block_store_kill[4]), | |
564 | .lsu_sync(lsu_sync[4]), | |
565 | .lsu_complete(lsu_complete[4]), | |
566 | .dec_br_taken_e(dec_br_taken_e[1]), | |
567 | .scan_in(swl4_scanin), | |
568 | .scan_out(swl4_scanout), | |
569 | .l2clk(l2clk), | |
570 | .pku_quiesce(pku_quiesce[4]), | |
571 | .pku_lsu_p(pku_lsu_p[4]), | |
572 | .pku_fgu_p(pku_fgu_p[4]), | |
573 | .pku_pdist_p(pku_pdist_p[4]), | |
574 | .pku_twocycle_p(pku_twocycle_p[4]), | |
575 | .pku_idest_p(pku_idest_p[4]), | |
576 | .pku_fdest_p(pku_fdest_p[4]), | |
577 | .pku_isrc_rs1_p(pku_isrc_rs1_p[4]), | |
578 | .pku_isrc_rs2_p(pku_isrc_rs2_p[4]), | |
579 | .pku_isrc_rd_p(pku_isrc_rd_p[4]), | |
580 | .pku_fsrc_rd_p(pku_fsrc_rd_p[4]), | |
581 | .swl_ready_p(swl_ready_p[4]), | |
582 | .swl_spec_ready_p(swl_spec_ready_p[4]), | |
583 | .pku_load_flush_w(pku_load_flush_w[4]), | |
584 | .pku_flush_upper_buffer(pku_flush_upper_buffer[4]), | |
585 | .pku_flush_buffer0(pku_flush_buffer0[4]), | |
586 | .pku_annul_ds_dcti_brtaken0_e(pku_annul_ds_dcti_brtaken0_e[4]), | |
587 | .pku_annul_ds_dcti_brtaken1_e(pku_annul_ds_dcti_brtaken1_e[4]), | |
588 | .pku_valid_e(pku_valid_e[4]), | |
589 | .pku_flush_m(pku_flush_m[4]), | |
590 | .pku_flush_b(pku_flush_b[4]), | |
591 | .pku_flush_lm(pku_flush_lm[4]), | |
592 | .pku_flush_lb(pku_flush_lb[4]), | |
593 | .pku_flush_f1(pku_flush_f1[4]), | |
594 | .pku_flush_f2(pku_flush_f2[4]), | |
595 | .pku_inst_cnt_brtaken0(pku_inst_cnt_brtaken04[1:0]), | |
596 | .pku_inst_cnt_brtaken1(pku_inst_cnt_brtaken14[1:0]), | |
597 | .pku_ds_e(pku_ds_e[4]), | |
598 | .swl_divide_wait(swl_divide_wait[4]), | |
599 | .swl_cancel_pick_p(swl_cancel_pick_p[4]), | |
600 | .tcu_do_mode(tcu_do_mode), | |
601 | .lsu_pku_pmen(lsu_pku_pmen), | |
602 | .tcu_pce_ov(tcu_pce_ov), | |
603 | .spc_aclk(spc_aclk), | |
604 | .spc_bclk(spc_bclk), | |
605 | .tcu_scan_en(tcu_scan_en) | |
606 | ); | |
607 | ||
608 | pku_swl_ctl swl5 ( | |
609 | .tlu_halted(tlu_halted[5]), | |
610 | .dec_block_store_stall(dec_block_store_stall[5]), | |
611 | .dec_ierr_d(dec_ierr_d[1]), | |
612 | .ifu_ibuffer_write_c(ifu_ibuffer_write_c[5]), | |
613 | .ifu_buf0_inst(ifu_buf0_inst5[31:0]), | |
614 | .swl_divide_wait_all(swl_divide_wait[7:0]), | |
615 | .fgu_divide_completion(fgu_divide_completion[5]), | |
616 | .lsu_spec_enable(lsu_spec_enable[5]), | |
617 | .spc_core_running_status(spc_core_running_status[5]), | |
618 | .ifu_buf0_valid_p(ifu_buf0_valid_p[5]), | |
619 | .ifu_upper_buffer_valid_p(ifu_upper_buffer_valid_p[5]), | |
620 | .pku_raw_pick_p(pku_raw_pick1_p[5]), | |
621 | .tlu_flush_ifu(tlu_flush_ifu[5]), | |
622 | .dec_true_valid_e(dec_true_valid_e[1]), | |
623 | .dec_decode_d(dec_decode1_d), | |
624 | .dec_valid_d(dec_valid1_d), | |
625 | .tlu_retry_state(tlu_retry_state[5]), | |
626 | .lsu_stb_dealloc(lsu_stb_dealloc[5]), | |
627 | .lsu_stb_alloc(lsu_stb_alloc[5]), | |
628 | .lsu_block_store_kill(lsu_block_store_kill[5]), | |
629 | .lsu_sync(lsu_sync[5]), | |
630 | .lsu_complete(lsu_complete[5]), | |
631 | .dec_br_taken_e(dec_br_taken_e[1]), | |
632 | .scan_in(swl5_scanin), | |
633 | .scan_out(swl5_scanout), | |
634 | .l2clk(l2clk), | |
635 | .pku_quiesce(pku_quiesce[5]), | |
636 | .pku_lsu_p(pku_lsu_p[5]), | |
637 | .pku_fgu_p(pku_fgu_p[5]), | |
638 | .pku_pdist_p(pku_pdist_p[5]), | |
639 | .pku_twocycle_p(pku_twocycle_p[5]), | |
640 | .pku_idest_p(pku_idest_p[5]), | |
641 | .pku_fdest_p(pku_fdest_p[5]), | |
642 | .pku_isrc_rs1_p(pku_isrc_rs1_p[5]), | |
643 | .pku_isrc_rs2_p(pku_isrc_rs2_p[5]), | |
644 | .pku_isrc_rd_p(pku_isrc_rd_p[5]), | |
645 | .pku_fsrc_rd_p(pku_fsrc_rd_p[5]), | |
646 | .swl_ready_p(swl_ready_p[5]), | |
647 | .swl_spec_ready_p(swl_spec_ready_p[5]), | |
648 | .pku_load_flush_w(pku_load_flush_w[5]), | |
649 | .pku_flush_upper_buffer(pku_flush_upper_buffer[5]), | |
650 | .pku_flush_buffer0(pku_flush_buffer0[5]), | |
651 | .pku_valid_e(pku_valid_e[5]), | |
652 | .pku_annul_ds_dcti_brtaken0_e(pku_annul_ds_dcti_brtaken0_e[5]), | |
653 | .pku_annul_ds_dcti_brtaken1_e(pku_annul_ds_dcti_brtaken1_e[5]), | |
654 | .pku_flush_m(pku_flush_m[5]), | |
655 | .pku_flush_b(pku_flush_b[5]), | |
656 | .pku_flush_lm(pku_flush_lm[5]), | |
657 | .pku_flush_lb(pku_flush_lb[5]), | |
658 | .pku_flush_f1(pku_flush_f1[5]), | |
659 | .pku_flush_f2(pku_flush_f2[5]), | |
660 | .pku_inst_cnt_brtaken0(pku_inst_cnt_brtaken05[1:0]), | |
661 | .pku_inst_cnt_brtaken1(pku_inst_cnt_brtaken15[1:0]), | |
662 | .pku_ds_e(pku_ds_e[5]), | |
663 | .swl_divide_wait(swl_divide_wait[5]), | |
664 | .swl_cancel_pick_p(swl_cancel_pick_p[5]), | |
665 | .tcu_do_mode(tcu_do_mode), | |
666 | .lsu_pku_pmen(lsu_pku_pmen), | |
667 | .tcu_pce_ov(tcu_pce_ov), | |
668 | .spc_aclk(spc_aclk), | |
669 | .spc_bclk(spc_bclk), | |
670 | .tcu_scan_en(tcu_scan_en) | |
671 | ); | |
672 | ||
673 | pku_swl_ctl swl6 ( | |
674 | .tlu_halted(tlu_halted[6]), | |
675 | .dec_block_store_stall(dec_block_store_stall[6]), | |
676 | .dec_ierr_d(dec_ierr_d[1]), | |
677 | .ifu_ibuffer_write_c(ifu_ibuffer_write_c[6]), | |
678 | .ifu_buf0_inst(ifu_buf0_inst6[31:0]), | |
679 | .swl_divide_wait_all(swl_divide_wait[7:0]), | |
680 | .fgu_divide_completion(fgu_divide_completion[6]), | |
681 | .lsu_spec_enable(lsu_spec_enable[6]), | |
682 | .spc_core_running_status(spc_core_running_status[6]), | |
683 | .ifu_buf0_valid_p(ifu_buf0_valid_p[6]), | |
684 | .ifu_upper_buffer_valid_p(ifu_upper_buffer_valid_p[6]), | |
685 | .pku_raw_pick_p(pku_raw_pick1_p[6]), | |
686 | .tlu_flush_ifu(tlu_flush_ifu[6]), | |
687 | .dec_true_valid_e(dec_true_valid_e[1]), | |
688 | .dec_decode_d(dec_decode1_d), | |
689 | .dec_valid_d(dec_valid1_d), | |
690 | .tlu_retry_state(tlu_retry_state[6]), | |
691 | .lsu_stb_dealloc(lsu_stb_dealloc[6]), | |
692 | .lsu_stb_alloc(lsu_stb_alloc[6]), | |
693 | .lsu_block_store_kill(lsu_block_store_kill[6]), | |
694 | .lsu_sync(lsu_sync[6]), | |
695 | .lsu_complete(lsu_complete[6]), | |
696 | .dec_br_taken_e(dec_br_taken_e[1]), | |
697 | .scan_in(swl6_scanin), | |
698 | .scan_out(swl6_scanout), | |
699 | .l2clk(l2clk), | |
700 | .pku_quiesce(pku_quiesce[6]), | |
701 | .pku_lsu_p(pku_lsu_p[6]), | |
702 | .pku_fgu_p(pku_fgu_p[6]), | |
703 | .pku_pdist_p(pku_pdist_p[6]), | |
704 | .pku_twocycle_p(pku_twocycle_p[6]), | |
705 | .pku_idest_p(pku_idest_p[6]), | |
706 | .pku_fdest_p(pku_fdest_p[6]), | |
707 | .pku_isrc_rs1_p(pku_isrc_rs1_p[6]), | |
708 | .pku_isrc_rs2_p(pku_isrc_rs2_p[6]), | |
709 | .pku_isrc_rd_p(pku_isrc_rd_p[6]), | |
710 | .pku_fsrc_rd_p(pku_fsrc_rd_p[6]), | |
711 | .swl_ready_p(swl_ready_p[6]), | |
712 | .swl_spec_ready_p(swl_spec_ready_p[6]), | |
713 | .pku_load_flush_w(pku_load_flush_w[6]), | |
714 | .pku_flush_upper_buffer(pku_flush_upper_buffer[6]), | |
715 | .pku_flush_buffer0(pku_flush_buffer0[6]), | |
716 | .pku_valid_e(pku_valid_e[6]), | |
717 | .pku_annul_ds_dcti_brtaken0_e(pku_annul_ds_dcti_brtaken0_e[6]), | |
718 | .pku_annul_ds_dcti_brtaken1_e(pku_annul_ds_dcti_brtaken1_e[6]), | |
719 | .pku_flush_m(pku_flush_m[6]), | |
720 | .pku_flush_b(pku_flush_b[6]), | |
721 | .pku_flush_lm(pku_flush_lm[6]), | |
722 | .pku_flush_lb(pku_flush_lb[6]), | |
723 | .pku_flush_f1(pku_flush_f1[6]), | |
724 | .pku_flush_f2(pku_flush_f2[6]), | |
725 | .pku_inst_cnt_brtaken0(pku_inst_cnt_brtaken06[1:0]), | |
726 | .pku_inst_cnt_brtaken1(pku_inst_cnt_brtaken16[1:0]), | |
727 | .pku_ds_e(pku_ds_e[6]), | |
728 | .swl_divide_wait(swl_divide_wait[6]), | |
729 | .swl_cancel_pick_p(swl_cancel_pick_p[6]), | |
730 | .tcu_do_mode(tcu_do_mode), | |
731 | .lsu_pku_pmen(lsu_pku_pmen), | |
732 | .tcu_pce_ov(tcu_pce_ov), | |
733 | .spc_aclk(spc_aclk), | |
734 | .spc_bclk(spc_bclk), | |
735 | .tcu_scan_en(tcu_scan_en) | |
736 | ); | |
737 | ||
738 | pku_swl_ctl swl7 ( | |
739 | .tlu_halted(tlu_halted[7]), | |
740 | .dec_block_store_stall(dec_block_store_stall[7]), | |
741 | .dec_ierr_d(dec_ierr_d[1]), | |
742 | .ifu_ibuffer_write_c(ifu_ibuffer_write_c[7]), | |
743 | .ifu_buf0_inst(ifu_buf0_inst7[31:0]), | |
744 | .swl_divide_wait_all(swl_divide_wait[7:0]), | |
745 | .fgu_divide_completion(fgu_divide_completion[7]), | |
746 | .lsu_spec_enable(lsu_spec_enable[7]), | |
747 | .spc_core_running_status(spc_core_running_status[7]), | |
748 | .ifu_buf0_valid_p(ifu_buf0_valid_p[7]), | |
749 | .ifu_upper_buffer_valid_p(ifu_upper_buffer_valid_p[7]), | |
750 | .pku_raw_pick_p(pku_raw_pick1_p[7]), | |
751 | .tlu_flush_ifu(tlu_flush_ifu[7]), | |
752 | .dec_true_valid_e(dec_true_valid_e[1]), | |
753 | .dec_decode_d(dec_decode1_d), | |
754 | .dec_valid_d(dec_valid1_d), | |
755 | .tlu_retry_state(tlu_retry_state[7]), | |
756 | .lsu_stb_dealloc(lsu_stb_dealloc[7]), | |
757 | .lsu_stb_alloc(lsu_stb_alloc[7]), | |
758 | .lsu_block_store_kill(lsu_block_store_kill[7]), | |
759 | .lsu_sync(lsu_sync[7]), | |
760 | .lsu_complete(lsu_complete[7]), | |
761 | .dec_br_taken_e(dec_br_taken_e[1]), | |
762 | .scan_in(swl7_scanin), | |
763 | .scan_out(swl7_scanout), | |
764 | .l2clk(l2clk), | |
765 | .pku_quiesce(pku_quiesce[7]), | |
766 | .pku_lsu_p(pku_lsu_p[7]), | |
767 | .pku_fgu_p(pku_fgu_p[7]), | |
768 | .pku_pdist_p(pku_pdist_p[7]), | |
769 | .pku_twocycle_p(pku_twocycle_p[7]), | |
770 | .pku_idest_p(pku_idest_p[7]), | |
771 | .pku_fdest_p(pku_fdest_p[7]), | |
772 | .pku_isrc_rs1_p(pku_isrc_rs1_p[7]), | |
773 | .pku_isrc_rs2_p(pku_isrc_rs2_p[7]), | |
774 | .pku_isrc_rd_p(pku_isrc_rd_p[7]), | |
775 | .pku_fsrc_rd_p(pku_fsrc_rd_p[7]), | |
776 | .swl_ready_p(swl_ready_p[7]), | |
777 | .swl_spec_ready_p(swl_spec_ready_p[7]), | |
778 | .pku_load_flush_w(pku_load_flush_w[7]), | |
779 | .pku_flush_upper_buffer(pku_flush_upper_buffer[7]), | |
780 | .pku_flush_buffer0(pku_flush_buffer0[7]), | |
781 | .pku_valid_e(pku_valid_e[7]), | |
782 | .pku_annul_ds_dcti_brtaken0_e(pku_annul_ds_dcti_brtaken0_e[7]), | |
783 | .pku_annul_ds_dcti_brtaken1_e(pku_annul_ds_dcti_brtaken1_e[7]), | |
784 | .pku_flush_m(pku_flush_m[7]), | |
785 | .pku_flush_b(pku_flush_b[7]), | |
786 | .pku_flush_lm(pku_flush_lm[7]), | |
787 | .pku_flush_lb(pku_flush_lb[7]), | |
788 | .pku_flush_f1(pku_flush_f1[7]), | |
789 | .pku_flush_f2(pku_flush_f2[7]), | |
790 | .pku_inst_cnt_brtaken0(pku_inst_cnt_brtaken07[1:0]), | |
791 | .pku_inst_cnt_brtaken1(pku_inst_cnt_brtaken17[1:0]), | |
792 | .pku_ds_e(pku_ds_e[7]), | |
793 | .swl_divide_wait(swl_divide_wait[7]), | |
794 | .swl_cancel_pick_p(swl_cancel_pick_p[7]), | |
795 | .tcu_do_mode(tcu_do_mode), | |
796 | .lsu_pku_pmen(lsu_pku_pmen), | |
797 | .tcu_pce_ov(tcu_pce_ov), | |
798 | .spc_aclk(spc_aclk), | |
799 | .spc_bclk(spc_bclk), | |
800 | .tcu_scan_en(tcu_scan_en) | |
801 | ); | |
802 | ||
803 | ||
804 | pku_pkd_dp pkd1 ( | |
805 | .pku_raw_pick_p(pku_raw_pick1_p[7:4]), | |
806 | .dec_decode_d(dec_decode1_d), | |
807 | .dec_valid_d(dec_valid1_d), | |
808 | .swl_cancel_pick_p(swl_cancel_pick_p[7:4]), | |
809 | .pku_flush_buffer0(pku_flush_buffer0[7:4]), | |
810 | .pku_pick_p(pku_pick_p[7:4]), | |
811 | .pku_base_pick_p(pku_base_pick_p[7:4]) | |
812 | ); | |
813 | ||
814 | pku_pck_ctl pck1 ( | |
815 | .pku_pick_p(pku_pick_p[7:4]), | |
816 | .swl_ready_p(swl_ready_p[7:4]), | |
817 | .swl_spec_ready_p(swl_spec_ready_p[7:4]), | |
818 | .ifu_buf0_valid_p(ifu_buf0_valid_p[7:4]), | |
819 | .scan_in(pck1_scanin), | |
820 | .scan_out(pck1_scanout), | |
821 | .l2clk(l2clk), | |
822 | .pku_raw_pick_p(pku_raw_pick1_p[7:4]), | |
823 | .lsu_pku_pmen(lsu_pku_pmen), | |
824 | .tcu_pce_ov(tcu_pce_ov), | |
825 | .spc_aclk(spc_aclk), | |
826 | .spc_bclk(spc_bclk), | |
827 | .tcu_scan_en(tcu_scan_en) | |
828 | ); | |
829 | ||
830 | // fixscan start: | |
831 | assign swl0_scanin = scan_in ; | |
832 | assign swl1_scanin = swl0_scanout ; | |
833 | assign swl2_scanin = swl1_scanout ; | |
834 | assign swl3_scanin = swl2_scanout ; | |
835 | assign pck0_scanin = swl3_scanout ; | |
836 | assign swl4_scanin = pck0_scanout ; | |
837 | assign swl5_scanin = swl4_scanout ; | |
838 | assign swl6_scanin = swl5_scanout ; | |
839 | assign swl7_scanin = swl6_scanout ; | |
840 | assign pck1_scanin = swl7_scanout ; | |
841 | assign scan_out = pck1_scanout ; | |
842 | // fixscan end: | |
843 | endmodule |