Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | // ========== Copyright Header Begin ========================================== |
2 | // | |
3 | // OpenSPARC T2 Processor File: niu_rdmc_dp_master.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 niu_rdmc_dp_master ( | |
36 | clk, | |
37 | reset, | |
38 | rx_addr_32b_mode, | |
39 | pt_drr_wt0_reg, | |
40 | pt_drr_wt1_reg, | |
41 | pt_drr_wt2_reg, | |
42 | pt_drr_wt3_reg, | |
43 | port_err_status, | |
44 | muxed_port_rdc_num, | |
45 | full_hdr_bits, | |
46 | drop_pkt, | |
47 | pkt_buf_gnt, | |
48 | pkt_buf_addr0, | |
49 | pkt_buf_addr1, | |
50 | pkt_buf_addr2, | |
51 | pkt_buf_addr3, | |
52 | pkt_buf_addr4, | |
53 | pkt_buf_addr5, | |
54 | pkt_buf_addr6, | |
55 | pkt_buf_addr7, | |
56 | pkt_buf_addr8, | |
57 | pkt_buf_addr9, | |
58 | pkt_buf_addr10, | |
59 | pkt_buf_addr11, | |
60 | pkt_buf_addr12, | |
61 | pkt_buf_addr13, | |
62 | pkt_buf_addr14, | |
63 | pkt_buf_addr15, | |
64 | pkt_buf_size0, | |
65 | pkt_buf_size1, | |
66 | pkt_buf_size2, | |
67 | pkt_buf_size3, | |
68 | pkt_buf_size4, | |
69 | pkt_buf_size5, | |
70 | pkt_buf_size6, | |
71 | pkt_buf_size7, | |
72 | pkt_buf_size8, | |
73 | pkt_buf_size9, | |
74 | pkt_buf_size10, | |
75 | pkt_buf_size11, | |
76 | pkt_buf_size12, | |
77 | pkt_buf_size13, | |
78 | pkt_buf_size14, | |
79 | pkt_buf_size15, | |
80 | orig_buf_addr0, | |
81 | orig_buf_addr1, | |
82 | orig_buf_addr2, | |
83 | orig_buf_addr3, | |
84 | orig_buf_addr4, | |
85 | orig_buf_addr5, | |
86 | orig_buf_addr6, | |
87 | orig_buf_addr7, | |
88 | orig_buf_addr8, | |
89 | orig_buf_addr9, | |
90 | orig_buf_addr10, | |
91 | orig_buf_addr11, | |
92 | orig_buf_addr12, | |
93 | orig_buf_addr13, | |
94 | orig_buf_addr14, | |
95 | orig_buf_addr15, | |
96 | dma_func_num0, | |
97 | dma_func_num1, | |
98 | dma_func_num2, | |
99 | dma_func_num3, | |
100 | dma_func_num4, | |
101 | dma_func_num5, | |
102 | dma_func_num6, | |
103 | dma_func_num7, | |
104 | dma_func_num8, | |
105 | dma_func_num9, | |
106 | dma_func_num10, | |
107 | dma_func_num11, | |
108 | dma_func_num12, | |
109 | dma_func_num13, | |
110 | dma_func_num14, | |
111 | dma_func_num15, | |
112 | pref_buf_used_num0, | |
113 | pref_buf_used_num1, | |
114 | pref_buf_used_num2, | |
115 | pref_buf_used_num3, | |
116 | pref_buf_used_num4, | |
117 | pref_buf_used_num5, | |
118 | pref_buf_used_num6, | |
119 | pref_buf_used_num7, | |
120 | pref_buf_used_num8, | |
121 | pref_buf_used_num9, | |
122 | pref_buf_used_num10, | |
123 | pref_buf_used_num11, | |
124 | pref_buf_used_num12, | |
125 | pref_buf_used_num13, | |
126 | pref_buf_used_num14, | |
127 | pref_buf_used_num15, | |
128 | pkt_trans_len0, | |
129 | pkt_trans_len1, | |
130 | pkt_trans_len2, | |
131 | pkt_trans_len3, | |
132 | pkt_trans_len4, | |
133 | pkt_trans_len5, | |
134 | pkt_trans_len6, | |
135 | pkt_trans_len7, | |
136 | pkt_trans_len8, | |
137 | pkt_trans_len9, | |
138 | pkt_trans_len10, | |
139 | pkt_trans_len11, | |
140 | pkt_trans_len12, | |
141 | pkt_trans_len13, | |
142 | pkt_trans_len14, | |
143 | pkt_trans_len15, | |
144 | ipp_dmc_ful_pkt0, | |
145 | ipp_dmc_dat_ack0, | |
146 | ipp_dmc_dat_err0, | |
147 | ipp_dmc_data0, | |
148 | ipp_dmc_ful_pkt1, | |
149 | ipp_dmc_dat_ack1, | |
150 | ipp_dmc_dat_err1, | |
151 | ipp_dmc_data1, | |
152 | ipp_dmc_ful_pkt2, | |
153 | ipp_dmc_dat_ack2, | |
154 | ipp_dmc_dat_err2, | |
155 | ipp_dmc_data2, | |
156 | ipp_dmc_ful_pkt3, | |
157 | ipp_dmc_dat_ack3, | |
158 | ipp_dmc_dat_err3, | |
159 | ipp_dmc_data3, | |
160 | ||
161 | zcp_dmc_ful_pkt0, | |
162 | zcp_dmc_ack0, | |
163 | zcp_dmc_dat0, | |
164 | zcp_dmc_dat_err0, | |
165 | zcp_dmc_ful_pkt1, | |
166 | zcp_dmc_ack1, | |
167 | zcp_dmc_dat1, | |
168 | zcp_dmc_dat_err1, | |
169 | zcp_dmc_ful_pkt2, | |
170 | zcp_dmc_ack2, | |
171 | zcp_dmc_dat2, | |
172 | zcp_dmc_dat_err2, | |
173 | zcp_dmc_ful_pkt3, | |
174 | zcp_dmc_ack3, | |
175 | zcp_dmc_dat3, | |
176 | zcp_dmc_dat_err3, | |
177 | ||
178 | meta0_rdmc_wr_req_accept, | |
179 | meta0_rdmc_wr_data_req, | |
180 | ||
181 | //output | |
182 | port_gnt, | |
183 | muxed_pkt_len, | |
184 | muxed_rdc_num_r, | |
185 | muxed_drop_pkt_r, | |
186 | muxed_s_event_r, | |
187 | stage1_en_r, | |
188 | sel_buf_en, | |
189 | pkt_req_cnt_e_done_mod, | |
190 | pkt_buf_done, | |
191 | is_hdr_wr_data, | |
192 | is_jmb1_wr_data, | |
193 | wr_last_pkt_data, | |
194 | update_rcr_shadw, | |
195 | rcr_wrbk_data, | |
196 | muxed_data_err_r2, | |
197 | rdmc_wr_data_dma_num, | |
198 | ||
199 | dmc_ipp_dat_req0, | |
200 | dmc_ipp_dat_req1, | |
201 | dmc_ipp_dat_req2, | |
202 | dmc_ipp_dat_req3, | |
203 | ||
204 | dmc_zcp_req0, | |
205 | dmc_zcp_req1, | |
206 | dmc_zcp_req2, | |
207 | dmc_zcp_req3, | |
208 | ||
209 | rdmc_meta0_wr_req, | |
210 | rdmc_meta0_wr_req_cmd, | |
211 | rdmc_meta0_wr_req_address, | |
212 | rdmc_meta0_wr_req_length, | |
213 | rdmc_meta0_wr_req_port_num, | |
214 | rdmc_meta0_wr_req_dma_num, | |
215 | rdmc_meta0_wr_req_func_num, | |
216 | ||
217 | rdmc_meta0_wr_data_valid, | |
218 | rdmc_meta0_wr_data, | |
219 | rdmc_meta0_wr_req_byteenable, | |
220 | rdmc_meta0_wr_transfer_comp, | |
221 | rdmc_meta0_wr_transfer_comp_int, | |
222 | rdmc_meta0_wr_status, | |
223 | ||
224 | port_err_event, | |
225 | ipp_dat_req0_data, | |
226 | ipp_dat_req1_data, | |
227 | ipp_dat_req2_data, | |
228 | ipp_dat_req3_data, | |
229 | wr_debug_data | |
230 | ||
231 | ); | |
232 | ||
233 | ||
234 | input clk; | |
235 | input reset; | |
236 | input rx_addr_32b_mode; | |
237 | input[15:0] pt_drr_wt0_reg; | |
238 | input[15:0] pt_drr_wt1_reg; | |
239 | input[15:0] pt_drr_wt2_reg; | |
240 | input[15:0] pt_drr_wt3_reg; | |
241 | input[3:0] port_err_status; | |
242 | input[4:0] muxed_port_rdc_num; | |
243 | input[15:0] full_hdr_bits; | |
244 | input[15:0] drop_pkt; | |
245 | input[15:0] pkt_buf_gnt; | |
246 | input[63:0] pkt_buf_addr0; | |
247 | input[63:0] pkt_buf_addr1; | |
248 | input[63:0] pkt_buf_addr2; | |
249 | input[63:0] pkt_buf_addr3; | |
250 | input[63:0] pkt_buf_addr4; | |
251 | input[63:0] pkt_buf_addr5; | |
252 | input[63:0] pkt_buf_addr6; | |
253 | input[63:0] pkt_buf_addr7; | |
254 | input[63:0] pkt_buf_addr8; | |
255 | input[63:0] pkt_buf_addr9; | |
256 | input[63:0] pkt_buf_addr10; | |
257 | input[63:0] pkt_buf_addr11; | |
258 | input[63:0] pkt_buf_addr12; | |
259 | input[63:0] pkt_buf_addr13; | |
260 | input[63:0] pkt_buf_addr14; | |
261 | input[63:0] pkt_buf_addr15; | |
262 | input[1:0] pkt_buf_size0; | |
263 | input[1:0] pkt_buf_size1; | |
264 | input[1:0] pkt_buf_size2; | |
265 | input[1:0] pkt_buf_size3; | |
266 | input[1:0] pkt_buf_size4; | |
267 | input[1:0] pkt_buf_size5; | |
268 | input[1:0] pkt_buf_size6; | |
269 | input[1:0] pkt_buf_size7; | |
270 | input[1:0] pkt_buf_size8; | |
271 | input[1:0] pkt_buf_size9; | |
272 | input[1:0] pkt_buf_size10; | |
273 | input[1:0] pkt_buf_size11; | |
274 | input[1:0] pkt_buf_size12; | |
275 | input[1:0] pkt_buf_size13; | |
276 | input[1:0] pkt_buf_size14; | |
277 | input[1:0] pkt_buf_size15; | |
278 | input[35:0] orig_buf_addr0; | |
279 | input[35:0] orig_buf_addr1; | |
280 | input[35:0] orig_buf_addr2; | |
281 | input[35:0] orig_buf_addr3; | |
282 | input[35:0] orig_buf_addr4; | |
283 | input[35:0] orig_buf_addr5; | |
284 | input[35:0] orig_buf_addr6; | |
285 | input[35:0] orig_buf_addr7; | |
286 | input[35:0] orig_buf_addr8; | |
287 | input[35:0] orig_buf_addr9; | |
288 | input[35:0] orig_buf_addr10; | |
289 | input[35:0] orig_buf_addr11; | |
290 | input[35:0] orig_buf_addr12; | |
291 | input[35:0] orig_buf_addr13; | |
292 | input[35:0] orig_buf_addr14; | |
293 | input[35:0] orig_buf_addr15; | |
294 | input[1:0] dma_func_num0; | |
295 | input[1:0] dma_func_num1; | |
296 | input[1:0] dma_func_num2; | |
297 | input[1:0] dma_func_num3; | |
298 | input[1:0] dma_func_num4; | |
299 | input[1:0] dma_func_num5; | |
300 | input[1:0] dma_func_num6; | |
301 | input[1:0] dma_func_num7; | |
302 | input[1:0] dma_func_num8; | |
303 | input[1:0] dma_func_num9; | |
304 | input[1:0] dma_func_num10; | |
305 | input[1:0] dma_func_num11; | |
306 | input[1:0] dma_func_num12; | |
307 | input[1:0] dma_func_num13; | |
308 | input[1:0] dma_func_num14; | |
309 | input[1:0] dma_func_num15; | |
310 | input[1:0] pref_buf_used_num0; | |
311 | input[1:0] pref_buf_used_num1; | |
312 | input[1:0] pref_buf_used_num2; | |
313 | input[1:0] pref_buf_used_num3; | |
314 | input[1:0] pref_buf_used_num4; | |
315 | input[1:0] pref_buf_used_num5; | |
316 | input[1:0] pref_buf_used_num6; | |
317 | input[1:0] pref_buf_used_num7; | |
318 | input[1:0] pref_buf_used_num8; | |
319 | input[1:0] pref_buf_used_num9; | |
320 | input[1:0] pref_buf_used_num10; | |
321 | input[1:0] pref_buf_used_num11; | |
322 | input[1:0] pref_buf_used_num12; | |
323 | input[1:0] pref_buf_used_num13; | |
324 | input[1:0] pref_buf_used_num14; | |
325 | input[1:0] pref_buf_used_num15; | |
326 | input[13:0] pkt_trans_len0; | |
327 | input[13:0] pkt_trans_len1; | |
328 | input[13:0] pkt_trans_len2; | |
329 | input[13:0] pkt_trans_len3; | |
330 | input[13:0] pkt_trans_len4; | |
331 | input[13:0] pkt_trans_len5; | |
332 | input[13:0] pkt_trans_len6; | |
333 | input[13:0] pkt_trans_len7; | |
334 | input[13:0] pkt_trans_len8; | |
335 | input[13:0] pkt_trans_len9; | |
336 | input[13:0] pkt_trans_len10; | |
337 | input[13:0] pkt_trans_len11; | |
338 | input[13:0] pkt_trans_len12; | |
339 | input[13:0] pkt_trans_len13; | |
340 | input[13:0] pkt_trans_len14; | |
341 | input[13:0] pkt_trans_len15; | |
342 | input ipp_dmc_ful_pkt0; | |
343 | input ipp_dmc_dat_ack0; | |
344 | input ipp_dmc_dat_err0; | |
345 | input[129:0] ipp_dmc_data0; | |
346 | input ipp_dmc_ful_pkt1; | |
347 | input ipp_dmc_dat_ack1; | |
348 | input ipp_dmc_dat_err1; | |
349 | input[129:0] ipp_dmc_data1; | |
350 | input ipp_dmc_ful_pkt2; | |
351 | input ipp_dmc_dat_ack2; | |
352 | input ipp_dmc_dat_err2; | |
353 | input[129:0] ipp_dmc_data2; | |
354 | input ipp_dmc_ful_pkt3; | |
355 | input ipp_dmc_dat_ack3; | |
356 | input ipp_dmc_dat_err3; | |
357 | input[129:0] ipp_dmc_data3; | |
358 | ||
359 | input zcp_dmc_ful_pkt0; | |
360 | input zcp_dmc_ack0; | |
361 | input[129:0] zcp_dmc_dat0; | |
362 | input zcp_dmc_dat_err0; | |
363 | input zcp_dmc_ful_pkt1; | |
364 | input zcp_dmc_ack1; | |
365 | input[129:0] zcp_dmc_dat1; | |
366 | input zcp_dmc_dat_err1; | |
367 | input zcp_dmc_ful_pkt2; | |
368 | input zcp_dmc_ack2; | |
369 | input[129:0] zcp_dmc_dat2; | |
370 | input zcp_dmc_dat_err2; | |
371 | input zcp_dmc_ful_pkt3; | |
372 | input zcp_dmc_ack3; | |
373 | input[129:0] zcp_dmc_dat3; | |
374 | input zcp_dmc_dat_err3; | |
375 | ||
376 | input meta0_rdmc_wr_req_accept; | |
377 | input meta0_rdmc_wr_data_req; | |
378 | ||
379 | output[3:0] port_gnt; | |
380 | output[13:0] muxed_pkt_len; | |
381 | output[4:0] muxed_rdc_num_r; | |
382 | output muxed_drop_pkt_r; | |
383 | output muxed_s_event_r; | |
384 | output stage1_en_r; | |
385 | output sel_buf_en; | |
386 | output pkt_req_cnt_e_done_mod; | |
387 | output pkt_buf_done; | |
388 | output is_hdr_wr_data; | |
389 | output is_jmb1_wr_data; | |
390 | output wr_last_pkt_data; | |
391 | output update_rcr_shadw; | |
392 | output[63:0] rcr_wrbk_data; | |
393 | output muxed_data_err_r2; | |
394 | output[4:0] rdmc_wr_data_dma_num; | |
395 | output dmc_ipp_dat_req0; | |
396 | output dmc_ipp_dat_req1; | |
397 | output dmc_ipp_dat_req2; | |
398 | output dmc_ipp_dat_req3; | |
399 | output dmc_zcp_req0; | |
400 | output dmc_zcp_req1; | |
401 | output dmc_zcp_req2; | |
402 | output dmc_zcp_req3; | |
403 | ||
404 | output rdmc_meta0_wr_req; | |
405 | output[7:0] rdmc_meta0_wr_req_cmd; | |
406 | output[63:0] rdmc_meta0_wr_req_address; | |
407 | output[13:0] rdmc_meta0_wr_req_length; | |
408 | output[1:0] rdmc_meta0_wr_req_port_num; | |
409 | output[4:0] rdmc_meta0_wr_req_dma_num; | |
410 | output[1:0] rdmc_meta0_wr_req_func_num; | |
411 | ||
412 | output rdmc_meta0_wr_data_valid; | |
413 | output[127:0] rdmc_meta0_wr_data; | |
414 | output[15:0] rdmc_meta0_wr_req_byteenable; | |
415 | output rdmc_meta0_wr_transfer_comp; | |
416 | output rdmc_meta0_wr_transfer_comp_int; | |
417 | output[3:0] rdmc_meta0_wr_status; | |
418 | ||
419 | output[8:0] port_err_event; | |
420 | output ipp_dat_req0_data; | |
421 | output ipp_dat_req1_data; | |
422 | output ipp_dat_req2_data; | |
423 | output ipp_dat_req3_data; | |
424 | output[31:0] wr_debug_data; | |
425 | ||
426 | ||
427 | wire rdmc_meta0_wr_req; | |
428 | wire[7:0] rdmc_meta0_wr_req_cmd; | |
429 | wire[63:0] rdmc_meta0_wr_req_address; | |
430 | wire[13:0] rdmc_meta0_wr_req_length; | |
431 | wire[1:0] rdmc_meta0_wr_req_port_num; | |
432 | wire[4:0] rdmc_meta0_wr_req_dma_num; | |
433 | wire[4:0] rdmc_meta0_wr_req_dma_num_int; | |
434 | wire[1:0] rdmc_meta0_wr_req_func_num; | |
435 | wire full_hdr_r; | |
436 | wire[13:0] pkt_trans_len_r; | |
437 | wire[1:0] pref_buf_used_num_r; | |
438 | wire drop_pkt_en_sm; | |
439 | wire drop_pkt_en; | |
440 | wire[3:0] drop_pkt_port_gnt; | |
441 | wire drop_pad_data; | |
442 | wire is_zcp0_wr_req; | |
443 | wire is_zcp1_wr_req; | |
444 | wire is_zcp2_wr_req; | |
445 | wire is_zcp3_wr_req; | |
446 | wire rdmc_wr_req_accept_hdr; | |
447 | wire rdmc_wr_req_accept_jmb; | |
448 | wire rdmc_wr_req_accept_zcp0; | |
449 | wire rdmc_wr_req_accept_zcp1; | |
450 | wire rdmc_wr_req_accept_zcp2; | |
451 | wire rdmc_wr_req_accept_zcp3; | |
452 | wire[3:0] port_gnt; | |
453 | wire[3:0] port_gnt_r; | |
454 | wire stage0_en; | |
455 | wire stage1_en_r; | |
456 | wire sel_buf_en; | |
457 | wire pkt_buf_done; | |
458 | wire is_hdr_wr_data; | |
459 | wire is_jmb1_wr_data; | |
460 | wire wr_last_pkt_data; | |
461 | wire update_rcr_shadw; | |
462 | wire[63:0] rcr_wrbk_data; | |
463 | wire[4:0] wr_sched_sm_state; | |
464 | wire[4:0] wr_dp_sm_state; | |
465 | ||
466 | wire[4:0] muxed_rdc_num_r; | |
467 | wire muxed_drop_pkt_r; | |
468 | wire muxed_s_event_r; | |
469 | wire[13:0] muxed_pkt_len; | |
470 | wire[13:0] muxed_pkt_len_r; | |
471 | wire[13:0] muxed_l2_len_r; | |
472 | wire rdmc_eop_for_padding; | |
473 | wire pkt_req_cnt_pre_done; | |
474 | wire pkt_req_cnt_done; | |
475 | wire pkt_req_cnt_done_r; | |
476 | wire pkt_req_cnt_e_done_mod; | |
477 | wire[22:0] pkt_wrbk_data; | |
478 | wire drop_pkt_done; | |
479 | wire[4:0] rdmc_wr_data_dma_num; | |
480 | wire[3:0] ipp_full_pkt; | |
481 | wire[3:0] zcp_full_pkt; | |
482 | wire[3:0] ipp_pkt_sop; | |
483 | wire[3:0] zcp_pkt_sop; | |
484 | wire muxed_zcopy_mode_r; | |
485 | wire muxed_data_err_r2; | |
486 | wire zcopy_mode; | |
487 | wire[1:0] jmb_pkt_type; | |
488 | wire[1:0] zcp_wr_type; | |
489 | wire[4:0] zcp_rdc_num; | |
490 | wire[63:0] zcp_vaddr0; | |
491 | wire[63:0] zcp_vaddr1; | |
492 | wire[63:0] zcp_vaddr2; | |
493 | wire[63:0] zcp_vaddr3; | |
494 | wire[13:0] zcp_len0; | |
495 | wire[13:0] zcp_len1; | |
496 | wire[13:0] zcp_len2; | |
497 | wire[13:0] zcp_len3; | |
498 | wire[1:0] zcp_func_num; | |
499 | wire dmc_ipp_dat_req0; | |
500 | wire dmc_ipp_dat_req1; | |
501 | wire dmc_ipp_dat_req2; | |
502 | wire dmc_ipp_dat_req3; | |
503 | wire dmc_zcp_req0; | |
504 | wire dmc_zcp_req1; | |
505 | wire dmc_zcp_req2; | |
506 | wire dmc_zcp_req3; | |
507 | ||
508 | wire rdmc_meta0_wr_data_valid; | |
509 | wire[127:0] rdmc_meta0_wr_data; | |
510 | wire[15:0] rdmc_meta0_wr_req_byteenable; | |
511 | wire rdmc_meta0_wr_transfer_comp; | |
512 | wire rdmc_meta0_wr_transfer_comp_int; | |
513 | wire[3:0] rdmc_meta0_wr_status; | |
514 | ||
515 | wire[8:0] port_err_event; | |
516 | wire ipp_dat_req0_data; | |
517 | wire ipp_dat_req1_data; | |
518 | wire ipp_dat_req2_data; | |
519 | wire ipp_dat_req3_data; | |
520 | ||
521 | wire[31:0] wr_debug_data = {wr_dp_sm_state, wr_sched_sm_state, port_gnt, muxed_pkt_len_r, muxed_rdc_num_r[3:0]}; | |
522 | ||
523 | ||
524 | `ifdef NEPTUNE | |
525 | wire [3:0] do_nad; | |
526 | wire [3:0] do_nor; | |
527 | wire [3:0] do_inv; | |
528 | wire [3:0] do_mux; | |
529 | wire [3:0] do_q; | |
530 | wire so; | |
531 | ||
532 | nep_spare_rdmc spare_rdmc_0 ( | |
533 | .di_nd3 ({1'h1, 1'h1, do_q[3]}), | |
534 | .di_nd2 ({1'h1, 1'h1, do_q[2]}), | |
535 | .di_nd1 ({1'h1, 1'h1, do_q[1]}), | |
536 | .di_nd0 ({1'h1, 1'h1, do_q[0]}), | |
537 | .di_nr3 ({1'h0, 1'h0}), | |
538 | .di_nr2 ({1'h0, 1'h0}), | |
539 | .di_nr1 ({1'h0, 1'h0}), | |
540 | .di_nr0 ({1'h0, 1'h0}), | |
541 | .di_inv (do_nad[3:0]), | |
542 | .di_mx3 ({1'h0, 1'h0}), | |
543 | .di_mx2 ({1'h0, 1'h0}), | |
544 | .di_mx1 ({1'h0, 1'h0}), | |
545 | .di_mx0 ({1'h0, 1'h0}), | |
546 | .mx_sel (do_nor[3:0]), | |
547 | .di_reg (do_inv[3:0]), | |
548 | .wt_ena (do_mux[3:0]), | |
549 | .rst ({reset,reset,reset,reset}), | |
550 | .si (1'h0), | |
551 | .se (1'h0), | |
552 | .clk (clk), | |
553 | .do_nad (do_nad[3:0]), | |
554 | .do_nor (do_nor[3:0]), | |
555 | .do_inv (do_inv[3:0]), | |
556 | .do_mux (do_mux[3:0]), | |
557 | .do_q (do_q[3:0]), | |
558 | .so (so) | |
559 | ); | |
560 | `endif | |
561 | ||
562 | ||
563 | niu_rdmc_wr_sched niu_rdmc_wr_sched0 ( | |
564 | .clk (clk), | |
565 | .reset (reset), | |
566 | .rx_addr_32b_mode (rx_addr_32b_mode), | |
567 | .pt_drr_wt0_reg (pt_drr_wt0_reg), | |
568 | .pt_drr_wt1_reg (pt_drr_wt1_reg), | |
569 | .pt_drr_wt2_reg (pt_drr_wt2_reg), | |
570 | .pt_drr_wt3_reg (pt_drr_wt3_reg), | |
571 | .muxed_l2_len_r (muxed_l2_len_r), | |
572 | .muxed_pkt_len_r (muxed_pkt_len_r), | |
573 | .rdmc_eop_for_padding (rdmc_eop_for_padding), | |
574 | .pkt_req_cnt_pre_done (pkt_req_cnt_pre_done), | |
575 | .pkt_req_cnt_done (pkt_req_cnt_done), | |
576 | .pkt_req_cnt_done_r (pkt_req_cnt_done_r), | |
577 | .pkt_wrbk_data (pkt_wrbk_data), | |
578 | .drop_pkt_done (drop_pkt_done), | |
579 | .ipp_full_pkt (ipp_full_pkt), | |
580 | .zcp_full_pkt (zcp_full_pkt), | |
581 | .ipp_pkt_sop (ipp_pkt_sop), | |
582 | .zcp_pkt_sop (zcp_pkt_sop), | |
583 | .muxed_zcopy_mode_r (muxed_zcopy_mode_r), | |
584 | .muxed_data_err_r2 (muxed_data_err_r2), | |
585 | .zcopy_mode (zcopy_mode), | |
586 | .jmb_pkt_type (jmb_pkt_type), | |
587 | .zcp_wr_type (zcp_wr_type), | |
588 | .zcp_rdc_num (zcp_rdc_num), | |
589 | .zcp_vaddr0 (zcp_vaddr0), | |
590 | .zcp_vaddr1 (zcp_vaddr1), | |
591 | .zcp_vaddr2 (zcp_vaddr2), | |
592 | .zcp_vaddr3 (zcp_vaddr3), | |
593 | .zcp_len0 (zcp_len0), | |
594 | .zcp_len1 (zcp_len1), | |
595 | .zcp_len2 (zcp_len2), | |
596 | .zcp_len3 (zcp_len3), | |
597 | .zcp_func_num (zcp_func_num), | |
598 | .full_hdr_bits (full_hdr_bits), | |
599 | .drop_pkt (drop_pkt), | |
600 | .pkt_buf_gnt (pkt_buf_gnt), | |
601 | .pkt_buf_addr0 (pkt_buf_addr0), | |
602 | .pkt_buf_addr1 (pkt_buf_addr1), | |
603 | .pkt_buf_addr2 (pkt_buf_addr2), | |
604 | .pkt_buf_addr3 (pkt_buf_addr3), | |
605 | .pkt_buf_addr4 (pkt_buf_addr4), | |
606 | .pkt_buf_addr5 (pkt_buf_addr5), | |
607 | .pkt_buf_addr6 (pkt_buf_addr6), | |
608 | .pkt_buf_addr7 (pkt_buf_addr7), | |
609 | .pkt_buf_addr8 (pkt_buf_addr8), | |
610 | .pkt_buf_addr9 (pkt_buf_addr9), | |
611 | .pkt_buf_addr10 (pkt_buf_addr10), | |
612 | .pkt_buf_addr11 (pkt_buf_addr11), | |
613 | .pkt_buf_addr12 (pkt_buf_addr12), | |
614 | .pkt_buf_addr13 (pkt_buf_addr13), | |
615 | .pkt_buf_addr14 (pkt_buf_addr14), | |
616 | .pkt_buf_addr15 (pkt_buf_addr15), | |
617 | .pkt_buf_size0 (pkt_buf_size0), | |
618 | .pkt_buf_size1 (pkt_buf_size1), | |
619 | .pkt_buf_size2 (pkt_buf_size2), | |
620 | .pkt_buf_size3 (pkt_buf_size3), | |
621 | .pkt_buf_size4 (pkt_buf_size4), | |
622 | .pkt_buf_size5 (pkt_buf_size5), | |
623 | .pkt_buf_size6 (pkt_buf_size6), | |
624 | .pkt_buf_size7 (pkt_buf_size7), | |
625 | .pkt_buf_size8 (pkt_buf_size8), | |
626 | .pkt_buf_size9 (pkt_buf_size9), | |
627 | .pkt_buf_size10 (pkt_buf_size10), | |
628 | .pkt_buf_size11 (pkt_buf_size11), | |
629 | .pkt_buf_size12 (pkt_buf_size12), | |
630 | .pkt_buf_size13 (pkt_buf_size13), | |
631 | .pkt_buf_size14 (pkt_buf_size14), | |
632 | .pkt_buf_size15 (pkt_buf_size15), | |
633 | .orig_buf_addr0 (orig_buf_addr0), | |
634 | .orig_buf_addr1 (orig_buf_addr1), | |
635 | .orig_buf_addr2 (orig_buf_addr2), | |
636 | .orig_buf_addr3 (orig_buf_addr3), | |
637 | .orig_buf_addr4 (orig_buf_addr4), | |
638 | .orig_buf_addr5 (orig_buf_addr5), | |
639 | .orig_buf_addr6 (orig_buf_addr6), | |
640 | .orig_buf_addr7 (orig_buf_addr7), | |
641 | .orig_buf_addr8 (orig_buf_addr8), | |
642 | .orig_buf_addr9 (orig_buf_addr9), | |
643 | .orig_buf_addr10 (orig_buf_addr10), | |
644 | .orig_buf_addr11 (orig_buf_addr11), | |
645 | .orig_buf_addr12 (orig_buf_addr12), | |
646 | .orig_buf_addr13 (orig_buf_addr13), | |
647 | .orig_buf_addr14 (orig_buf_addr14), | |
648 | .orig_buf_addr15 (orig_buf_addr15), | |
649 | .dma_func_num0 (dma_func_num0), | |
650 | .dma_func_num1 (dma_func_num1), | |
651 | .dma_func_num2 (dma_func_num2), | |
652 | .dma_func_num3 (dma_func_num3), | |
653 | .dma_func_num4 (dma_func_num4), | |
654 | .dma_func_num5 (dma_func_num5), | |
655 | .dma_func_num6 (dma_func_num6), | |
656 | .dma_func_num7 (dma_func_num7), | |
657 | .dma_func_num8 (dma_func_num8), | |
658 | .dma_func_num9 (dma_func_num9), | |
659 | .dma_func_num10 (dma_func_num10), | |
660 | .dma_func_num11 (dma_func_num11), | |
661 | .dma_func_num12 (dma_func_num12), | |
662 | .dma_func_num13 (dma_func_num13), | |
663 | .dma_func_num14 (dma_func_num14), | |
664 | .dma_func_num15 (dma_func_num15), | |
665 | .pref_buf_used_num0 (pref_buf_used_num0), | |
666 | .pref_buf_used_num1 (pref_buf_used_num1), | |
667 | .pref_buf_used_num2 (pref_buf_used_num2), | |
668 | .pref_buf_used_num3 (pref_buf_used_num3), | |
669 | .pref_buf_used_num4 (pref_buf_used_num4), | |
670 | .pref_buf_used_num5 (pref_buf_used_num5), | |
671 | .pref_buf_used_num6 (pref_buf_used_num6), | |
672 | .pref_buf_used_num7 (pref_buf_used_num7), | |
673 | .pref_buf_used_num8 (pref_buf_used_num8), | |
674 | .pref_buf_used_num9 (pref_buf_used_num9), | |
675 | .pref_buf_used_num10 (pref_buf_used_num10), | |
676 | .pref_buf_used_num11 (pref_buf_used_num11), | |
677 | .pref_buf_used_num12 (pref_buf_used_num12), | |
678 | .pref_buf_used_num13 (pref_buf_used_num13), | |
679 | .pref_buf_used_num14 (pref_buf_used_num14), | |
680 | .pref_buf_used_num15 (pref_buf_used_num15), | |
681 | .pkt_trans_len0 (pkt_trans_len0), | |
682 | .pkt_trans_len1 (pkt_trans_len1), | |
683 | .pkt_trans_len2 (pkt_trans_len2), | |
684 | .pkt_trans_len3 (pkt_trans_len3), | |
685 | .pkt_trans_len4 (pkt_trans_len4), | |
686 | .pkt_trans_len5 (pkt_trans_len5), | |
687 | .pkt_trans_len6 (pkt_trans_len6), | |
688 | .pkt_trans_len7 (pkt_trans_len7), | |
689 | .pkt_trans_len8 (pkt_trans_len8), | |
690 | .pkt_trans_len9 (pkt_trans_len9), | |
691 | .pkt_trans_len10 (pkt_trans_len10), | |
692 | .pkt_trans_len11 (pkt_trans_len11), | |
693 | .pkt_trans_len12 (pkt_trans_len12), | |
694 | .pkt_trans_len13 (pkt_trans_len13), | |
695 | .pkt_trans_len14 (pkt_trans_len14), | |
696 | .pkt_trans_len15 (pkt_trans_len15), | |
697 | .meta0_rdmc_wr_req_accept (meta0_rdmc_wr_req_accept), | |
698 | ||
699 | .rdmc_meta0_wr_req (rdmc_meta0_wr_req), | |
700 | .rdmc_meta0_wr_req_cmd (rdmc_meta0_wr_req_cmd), | |
701 | .rdmc_meta0_wr_req_address (rdmc_meta0_wr_req_address), | |
702 | .rdmc_meta0_wr_req_length (rdmc_meta0_wr_req_length), | |
703 | .rdmc_meta0_wr_req_port_num (rdmc_meta0_wr_req_port_num), | |
704 | .rdmc_meta0_wr_req_dma_num (rdmc_meta0_wr_req_dma_num), | |
705 | .rdmc_meta0_wr_req_dma_num_int (rdmc_meta0_wr_req_dma_num_int), | |
706 | .rdmc_meta0_wr_req_func_num (rdmc_meta0_wr_req_func_num), | |
707 | .full_hdr_r (full_hdr_r), | |
708 | .pkt_trans_len_r (pkt_trans_len_r), | |
709 | .pref_buf_used_num_r (pref_buf_used_num_r), | |
710 | .drop_pkt_en_sm (drop_pkt_en_sm), | |
711 | .drop_pkt_en (drop_pkt_en), | |
712 | .drop_pkt_port_gnt (drop_pkt_port_gnt), | |
713 | .drop_pad_data (drop_pad_data), | |
714 | .is_zcp0_wr_req (is_zcp0_wr_req), | |
715 | .is_zcp1_wr_req (is_zcp1_wr_req), | |
716 | .is_zcp2_wr_req (is_zcp2_wr_req), | |
717 | .is_zcp3_wr_req (is_zcp3_wr_req), | |
718 | .rdmc_wr_req_accept_hdr (rdmc_wr_req_accept_hdr), | |
719 | .rdmc_wr_req_accept_jmb (rdmc_wr_req_accept_jmb), | |
720 | .rdmc_wr_req_accept_zcp0 (rdmc_wr_req_accept_zcp0), | |
721 | .rdmc_wr_req_accept_zcp1 (rdmc_wr_req_accept_zcp1), | |
722 | .rdmc_wr_req_accept_zcp2 (rdmc_wr_req_accept_zcp2), | |
723 | .rdmc_wr_req_accept_zcp3 (rdmc_wr_req_accept_zcp3), | |
724 | .port_gnt (port_gnt), | |
725 | .port_gnt_r (port_gnt_r), | |
726 | .stage0_en (stage0_en), | |
727 | .stage1_en_r (stage1_en_r), | |
728 | .sel_buf_en (sel_buf_en), | |
729 | .pkt_buf_done (pkt_buf_done), | |
730 | .is_hdr_wr_data (is_hdr_wr_data), | |
731 | .is_jmb1_wr_data (is_jmb1_wr_data), | |
732 | .wr_last_pkt_data (wr_last_pkt_data), | |
733 | .update_rcr_shadw (update_rcr_shadw), | |
734 | .rcr_wrbk_data (rcr_wrbk_data), | |
735 | .wr_sched_sm_state (wr_sched_sm_state) | |
736 | ||
737 | ); | |
738 | ||
739 | ||
740 | niu_rdmc_wr_dp niu_rdmc_wr_dp0 ( | |
741 | .clk (clk), | |
742 | .reset (reset), | |
743 | .port_err_status (port_err_status), | |
744 | .muxed_port_rdc_num (muxed_port_rdc_num), | |
745 | .full_hdr_r (full_hdr_r), | |
746 | .pkt_trans_len_r (pkt_trans_len_r), | |
747 | .pref_buf_used_num_r (pref_buf_used_num_r), | |
748 | .drop_pkt_en_sm (drop_pkt_en_sm), | |
749 | .drop_pkt_en (drop_pkt_en), | |
750 | .drop_pkt_port_gnt (drop_pkt_port_gnt), | |
751 | .drop_pad_data (drop_pad_data), | |
752 | .is_zcp0_wr_req (is_zcp0_wr_req), | |
753 | .is_zcp1_wr_req (is_zcp1_wr_req), | |
754 | .is_zcp2_wr_req (is_zcp2_wr_req), | |
755 | .is_zcp3_wr_req (is_zcp3_wr_req), | |
756 | .rdmc_wr_req_accept_hdr (rdmc_wr_req_accept_hdr), | |
757 | .rdmc_wr_req_accept_jmb (rdmc_wr_req_accept_jmb), | |
758 | .rdmc_wr_req_accept_zcp0 (rdmc_wr_req_accept_zcp0), | |
759 | .rdmc_wr_req_accept_zcp1 (rdmc_wr_req_accept_zcp1), | |
760 | .rdmc_wr_req_accept_zcp2 (rdmc_wr_req_accept_zcp2), | |
761 | .rdmc_wr_req_accept_zcp3 (rdmc_wr_req_accept_zcp3), | |
762 | .port_gnt (port_gnt), | |
763 | .port_gnt_r (port_gnt_r), | |
764 | .stage0_en (stage0_en), | |
765 | .rdmc_meta0_wr_req_dma_num_int (rdmc_meta0_wr_req_dma_num_int), | |
766 | .ipp_dmc_ful_pkt0 (ipp_dmc_ful_pkt0), | |
767 | .ipp_dmc_dat_ack0 (ipp_dmc_dat_ack0), | |
768 | .ipp_dmc_dat_err0 (ipp_dmc_dat_err0), | |
769 | .ipp_dmc_data0 (ipp_dmc_data0), | |
770 | .ipp_dmc_ful_pkt1 (ipp_dmc_ful_pkt1), | |
771 | .ipp_dmc_dat_ack1 (ipp_dmc_dat_ack1), | |
772 | .ipp_dmc_dat_err1 (ipp_dmc_dat_err1), | |
773 | .ipp_dmc_data1 (ipp_dmc_data1), | |
774 | .ipp_dmc_ful_pkt2 (ipp_dmc_ful_pkt2), | |
775 | .ipp_dmc_dat_ack2 (ipp_dmc_dat_ack2), | |
776 | .ipp_dmc_dat_err2 (ipp_dmc_dat_err2), | |
777 | .ipp_dmc_data2 (ipp_dmc_data2), | |
778 | .ipp_dmc_ful_pkt3 (ipp_dmc_ful_pkt3), | |
779 | .ipp_dmc_dat_ack3 (ipp_dmc_dat_ack3), | |
780 | .ipp_dmc_dat_err3 (ipp_dmc_dat_err3), | |
781 | .ipp_dmc_data3 (ipp_dmc_data3), | |
782 | .zcp_dmc_ful_pkt0 (zcp_dmc_ful_pkt0), | |
783 | .zcp_dmc_ack0 (zcp_dmc_ack0), | |
784 | .zcp_dmc_dat0 (zcp_dmc_dat0), | |
785 | .zcp_dmc_dat_err0 (zcp_dmc_dat_err0), | |
786 | .zcp_dmc_ful_pkt1 (zcp_dmc_ful_pkt1), | |
787 | .zcp_dmc_ack1 (zcp_dmc_ack1), | |
788 | .zcp_dmc_dat1 (zcp_dmc_dat1), | |
789 | .zcp_dmc_dat_err1 (zcp_dmc_dat_err1), | |
790 | .zcp_dmc_ful_pkt2 (zcp_dmc_ful_pkt2), | |
791 | .zcp_dmc_ack2 (zcp_dmc_ack2), | |
792 | .zcp_dmc_dat2 (zcp_dmc_dat2), | |
793 | .zcp_dmc_dat_err2 (zcp_dmc_dat_err2), | |
794 | .zcp_dmc_ful_pkt3 (zcp_dmc_ful_pkt3), | |
795 | .zcp_dmc_ack3 (zcp_dmc_ack3), | |
796 | .zcp_dmc_dat3 (zcp_dmc_dat3), | |
797 | .zcp_dmc_dat_err3 (zcp_dmc_dat_err3), | |
798 | .meta0_rdmc_wr_data_req (meta0_rdmc_wr_data_req), | |
799 | ||
800 | .muxed_rdc_num_r (muxed_rdc_num_r), | |
801 | .muxed_drop_pkt_r (muxed_drop_pkt_r), | |
802 | .muxed_s_event_r (muxed_s_event_r), | |
803 | .muxed_pkt_len (muxed_pkt_len), | |
804 | .muxed_pkt_len_r (muxed_pkt_len_r), | |
805 | .muxed_l2_len_r (muxed_l2_len_r), | |
806 | .rdmc_eop_for_padding (rdmc_eop_for_padding), | |
807 | .pkt_req_cnt_pre_done (pkt_req_cnt_pre_done), | |
808 | .pkt_req_cnt_done (pkt_req_cnt_done), | |
809 | .pkt_req_cnt_done_r (pkt_req_cnt_done_r), | |
810 | .pkt_req_cnt_e_done_mod (pkt_req_cnt_e_done_mod), | |
811 | .pkt_wrbk_data (pkt_wrbk_data), | |
812 | .drop_pkt_done (drop_pkt_done), | |
813 | .rdmc_wr_data_dma_num (rdmc_wr_data_dma_num), | |
814 | .ipp_full_pkt (ipp_full_pkt), | |
815 | .zcp_full_pkt (zcp_full_pkt), | |
816 | .ipp_pkt_sop (ipp_pkt_sop), | |
817 | .zcp_pkt_sop (zcp_pkt_sop), | |
818 | .muxed_zcopy_mode_r (muxed_zcopy_mode_r), | |
819 | .muxed_data_err_r2 (muxed_data_err_r2), | |
820 | .zcopy_mode (zcopy_mode), | |
821 | .jmb_pkt_type (jmb_pkt_type), | |
822 | .zcp_wr_type (zcp_wr_type), | |
823 | .zcp_rdc_num (zcp_rdc_num), | |
824 | .zcp_vaddr0 (zcp_vaddr0), | |
825 | .zcp_vaddr1 (zcp_vaddr1), | |
826 | .zcp_vaddr2 (zcp_vaddr2), | |
827 | .zcp_vaddr3 (zcp_vaddr3), | |
828 | .zcp_len0 (zcp_len0), | |
829 | .zcp_len1 (zcp_len1), | |
830 | .zcp_len2 (zcp_len2), | |
831 | .zcp_len3 (zcp_len3), | |
832 | .zcp_func_num (zcp_func_num), | |
833 | .dmc_ipp_dat_req0 (dmc_ipp_dat_req0), | |
834 | .dmc_ipp_dat_req1 (dmc_ipp_dat_req1), | |
835 | .dmc_ipp_dat_req2 (dmc_ipp_dat_req2), | |
836 | .dmc_ipp_dat_req3 (dmc_ipp_dat_req3), | |
837 | .dmc_zcp_req0 (dmc_zcp_req0), | |
838 | .dmc_zcp_req1 (dmc_zcp_req1), | |
839 | .dmc_zcp_req2 (dmc_zcp_req2), | |
840 | .dmc_zcp_req3 (dmc_zcp_req3), | |
841 | .rdmc_meta0_wr_data_valid (rdmc_meta0_wr_data_valid), | |
842 | .rdmc_meta0_wr_data (rdmc_meta0_wr_data), | |
843 | .rdmc_meta0_wr_req_byteenable (rdmc_meta0_wr_req_byteenable), | |
844 | .rdmc_meta0_wr_transfer_comp (rdmc_meta0_wr_transfer_comp), | |
845 | .rdmc_meta0_wr_transfer_comp_int(rdmc_meta0_wr_transfer_comp_int), | |
846 | .rdmc_meta0_wr_status (rdmc_meta0_wr_status), | |
847 | .port_err_event (port_err_event), | |
848 | .ipp_dat_req0_data (ipp_dat_req0_data), | |
849 | .ipp_dat_req1_data (ipp_dat_req1_data), | |
850 | .ipp_dat_req2_data (ipp_dat_req2_data), | |
851 | .ipp_dat_req3_data (ipp_dat_req3_data), | |
852 | .wr_dp_sm_state (wr_dp_sm_state) | |
853 | ||
854 | ); | |
855 | ||
856 | ||
857 | endmodule |