Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / niu / rtl / niu_rdmc_dp_master.v
CommitLineData
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 ============================================
35module 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
234input clk;
235input reset;
236input rx_addr_32b_mode;
237input[15:0] pt_drr_wt0_reg;
238input[15:0] pt_drr_wt1_reg;
239input[15:0] pt_drr_wt2_reg;
240input[15:0] pt_drr_wt3_reg;
241input[3:0] port_err_status;
242input[4:0] muxed_port_rdc_num;
243input[15:0] full_hdr_bits;
244input[15:0] drop_pkt;
245input[15:0] pkt_buf_gnt;
246input[63:0] pkt_buf_addr0;
247input[63:0] pkt_buf_addr1;
248input[63:0] pkt_buf_addr2;
249input[63:0] pkt_buf_addr3;
250input[63:0] pkt_buf_addr4;
251input[63:0] pkt_buf_addr5;
252input[63:0] pkt_buf_addr6;
253input[63:0] pkt_buf_addr7;
254input[63:0] pkt_buf_addr8;
255input[63:0] pkt_buf_addr9;
256input[63:0] pkt_buf_addr10;
257input[63:0] pkt_buf_addr11;
258input[63:0] pkt_buf_addr12;
259input[63:0] pkt_buf_addr13;
260input[63:0] pkt_buf_addr14;
261input[63:0] pkt_buf_addr15;
262input[1:0] pkt_buf_size0;
263input[1:0] pkt_buf_size1;
264input[1:0] pkt_buf_size2;
265input[1:0] pkt_buf_size3;
266input[1:0] pkt_buf_size4;
267input[1:0] pkt_buf_size5;
268input[1:0] pkt_buf_size6;
269input[1:0] pkt_buf_size7;
270input[1:0] pkt_buf_size8;
271input[1:0] pkt_buf_size9;
272input[1:0] pkt_buf_size10;
273input[1:0] pkt_buf_size11;
274input[1:0] pkt_buf_size12;
275input[1:0] pkt_buf_size13;
276input[1:0] pkt_buf_size14;
277input[1:0] pkt_buf_size15;
278input[35:0] orig_buf_addr0;
279input[35:0] orig_buf_addr1;
280input[35:0] orig_buf_addr2;
281input[35:0] orig_buf_addr3;
282input[35:0] orig_buf_addr4;
283input[35:0] orig_buf_addr5;
284input[35:0] orig_buf_addr6;
285input[35:0] orig_buf_addr7;
286input[35:0] orig_buf_addr8;
287input[35:0] orig_buf_addr9;
288input[35:0] orig_buf_addr10;
289input[35:0] orig_buf_addr11;
290input[35:0] orig_buf_addr12;
291input[35:0] orig_buf_addr13;
292input[35:0] orig_buf_addr14;
293input[35:0] orig_buf_addr15;
294input[1:0] dma_func_num0;
295input[1:0] dma_func_num1;
296input[1:0] dma_func_num2;
297input[1:0] dma_func_num3;
298input[1:0] dma_func_num4;
299input[1:0] dma_func_num5;
300input[1:0] dma_func_num6;
301input[1:0] dma_func_num7;
302input[1:0] dma_func_num8;
303input[1:0] dma_func_num9;
304input[1:0] dma_func_num10;
305input[1:0] dma_func_num11;
306input[1:0] dma_func_num12;
307input[1:0] dma_func_num13;
308input[1:0] dma_func_num14;
309input[1:0] dma_func_num15;
310input[1:0] pref_buf_used_num0;
311input[1:0] pref_buf_used_num1;
312input[1:0] pref_buf_used_num2;
313input[1:0] pref_buf_used_num3;
314input[1:0] pref_buf_used_num4;
315input[1:0] pref_buf_used_num5;
316input[1:0] pref_buf_used_num6;
317input[1:0] pref_buf_used_num7;
318input[1:0] pref_buf_used_num8;
319input[1:0] pref_buf_used_num9;
320input[1:0] pref_buf_used_num10;
321input[1:0] pref_buf_used_num11;
322input[1:0] pref_buf_used_num12;
323input[1:0] pref_buf_used_num13;
324input[1:0] pref_buf_used_num14;
325input[1:0] pref_buf_used_num15;
326input[13:0] pkt_trans_len0;
327input[13:0] pkt_trans_len1;
328input[13:0] pkt_trans_len2;
329input[13:0] pkt_trans_len3;
330input[13:0] pkt_trans_len4;
331input[13:0] pkt_trans_len5;
332input[13:0] pkt_trans_len6;
333input[13:0] pkt_trans_len7;
334input[13:0] pkt_trans_len8;
335input[13:0] pkt_trans_len9;
336input[13:0] pkt_trans_len10;
337input[13:0] pkt_trans_len11;
338input[13:0] pkt_trans_len12;
339input[13:0] pkt_trans_len13;
340input[13:0] pkt_trans_len14;
341input[13:0] pkt_trans_len15;
342input ipp_dmc_ful_pkt0;
343input ipp_dmc_dat_ack0;
344input ipp_dmc_dat_err0;
345input[129:0] ipp_dmc_data0;
346input ipp_dmc_ful_pkt1;
347input ipp_dmc_dat_ack1;
348input ipp_dmc_dat_err1;
349input[129:0] ipp_dmc_data1;
350input ipp_dmc_ful_pkt2;
351input ipp_dmc_dat_ack2;
352input ipp_dmc_dat_err2;
353input[129:0] ipp_dmc_data2;
354input ipp_dmc_ful_pkt3;
355input ipp_dmc_dat_ack3;
356input ipp_dmc_dat_err3;
357input[129:0] ipp_dmc_data3;
358
359input zcp_dmc_ful_pkt0;
360input zcp_dmc_ack0;
361input[129:0] zcp_dmc_dat0;
362input zcp_dmc_dat_err0;
363input zcp_dmc_ful_pkt1;
364input zcp_dmc_ack1;
365input[129:0] zcp_dmc_dat1;
366input zcp_dmc_dat_err1;
367input zcp_dmc_ful_pkt2;
368input zcp_dmc_ack2;
369input[129:0] zcp_dmc_dat2;
370input zcp_dmc_dat_err2;
371input zcp_dmc_ful_pkt3;
372input zcp_dmc_ack3;
373input[129:0] zcp_dmc_dat3;
374input zcp_dmc_dat_err3;
375
376input meta0_rdmc_wr_req_accept;
377input meta0_rdmc_wr_data_req;
378
379output[3:0] port_gnt;
380output[13:0] muxed_pkt_len;
381output[4:0] muxed_rdc_num_r;
382output muxed_drop_pkt_r;
383output muxed_s_event_r;
384output stage1_en_r;
385output sel_buf_en;
386output pkt_req_cnt_e_done_mod;
387output pkt_buf_done;
388output is_hdr_wr_data;
389output is_jmb1_wr_data;
390output wr_last_pkt_data;
391output update_rcr_shadw;
392output[63:0] rcr_wrbk_data;
393output muxed_data_err_r2;
394output[4:0] rdmc_wr_data_dma_num;
395output dmc_ipp_dat_req0;
396output dmc_ipp_dat_req1;
397output dmc_ipp_dat_req2;
398output dmc_ipp_dat_req3;
399output dmc_zcp_req0;
400output dmc_zcp_req1;
401output dmc_zcp_req2;
402output dmc_zcp_req3;
403
404output rdmc_meta0_wr_req;
405output[7:0] rdmc_meta0_wr_req_cmd;
406output[63:0] rdmc_meta0_wr_req_address;
407output[13:0] rdmc_meta0_wr_req_length;
408output[1:0] rdmc_meta0_wr_req_port_num;
409output[4:0] rdmc_meta0_wr_req_dma_num;
410output[1:0] rdmc_meta0_wr_req_func_num;
411
412output rdmc_meta0_wr_data_valid;
413output[127:0] rdmc_meta0_wr_data;
414output[15:0] rdmc_meta0_wr_req_byteenable;
415output rdmc_meta0_wr_transfer_comp;
416output rdmc_meta0_wr_transfer_comp_int;
417output[3:0] rdmc_meta0_wr_status;
418
419output[8:0] port_err_event;
420output ipp_dat_req0_data;
421output ipp_dat_req1_data;
422output ipp_dat_req2_data;
423output ipp_dat_req3_data;
424output[31:0] wr_debug_data;
425
426
427wire rdmc_meta0_wr_req;
428wire[7:0] rdmc_meta0_wr_req_cmd;
429wire[63:0] rdmc_meta0_wr_req_address;
430wire[13:0] rdmc_meta0_wr_req_length;
431wire[1:0] rdmc_meta0_wr_req_port_num;
432wire[4:0] rdmc_meta0_wr_req_dma_num;
433wire[4:0] rdmc_meta0_wr_req_dma_num_int;
434wire[1:0] rdmc_meta0_wr_req_func_num;
435wire full_hdr_r;
436wire[13:0] pkt_trans_len_r;
437wire[1:0] pref_buf_used_num_r;
438wire drop_pkt_en_sm;
439wire drop_pkt_en;
440wire[3:0] drop_pkt_port_gnt;
441wire drop_pad_data;
442wire is_zcp0_wr_req;
443wire is_zcp1_wr_req;
444wire is_zcp2_wr_req;
445wire is_zcp3_wr_req;
446wire rdmc_wr_req_accept_hdr;
447wire rdmc_wr_req_accept_jmb;
448wire rdmc_wr_req_accept_zcp0;
449wire rdmc_wr_req_accept_zcp1;
450wire rdmc_wr_req_accept_zcp2;
451wire rdmc_wr_req_accept_zcp3;
452wire[3:0] port_gnt;
453wire[3:0] port_gnt_r;
454wire stage0_en;
455wire stage1_en_r;
456wire sel_buf_en;
457wire pkt_buf_done;
458wire is_hdr_wr_data;
459wire is_jmb1_wr_data;
460wire wr_last_pkt_data;
461wire update_rcr_shadw;
462wire[63:0] rcr_wrbk_data;
463wire[4:0] wr_sched_sm_state;
464wire[4:0] wr_dp_sm_state;
465
466wire[4:0] muxed_rdc_num_r;
467wire muxed_drop_pkt_r;
468wire muxed_s_event_r;
469wire[13:0] muxed_pkt_len;
470wire[13:0] muxed_pkt_len_r;
471wire[13:0] muxed_l2_len_r;
472wire rdmc_eop_for_padding;
473wire pkt_req_cnt_pre_done;
474wire pkt_req_cnt_done;
475wire pkt_req_cnt_done_r;
476wire pkt_req_cnt_e_done_mod;
477wire[22:0] pkt_wrbk_data;
478wire drop_pkt_done;
479wire[4:0] rdmc_wr_data_dma_num;
480wire[3:0] ipp_full_pkt;
481wire[3:0] zcp_full_pkt;
482wire[3:0] ipp_pkt_sop;
483wire[3:0] zcp_pkt_sop;
484wire muxed_zcopy_mode_r;
485wire muxed_data_err_r2;
486wire zcopy_mode;
487wire[1:0] jmb_pkt_type;
488wire[1:0] zcp_wr_type;
489wire[4:0] zcp_rdc_num;
490wire[63:0] zcp_vaddr0;
491wire[63:0] zcp_vaddr1;
492wire[63:0] zcp_vaddr2;
493wire[63:0] zcp_vaddr3;
494wire[13:0] zcp_len0;
495wire[13:0] zcp_len1;
496wire[13:0] zcp_len2;
497wire[13:0] zcp_len3;
498wire[1:0] zcp_func_num;
499wire dmc_ipp_dat_req0;
500wire dmc_ipp_dat_req1;
501wire dmc_ipp_dat_req2;
502wire dmc_ipp_dat_req3;
503wire dmc_zcp_req0;
504wire dmc_zcp_req1;
505wire dmc_zcp_req2;
506wire dmc_zcp_req3;
507
508wire rdmc_meta0_wr_data_valid;
509wire[127:0] rdmc_meta0_wr_data;
510wire[15:0] rdmc_meta0_wr_req_byteenable;
511wire rdmc_meta0_wr_transfer_comp;
512wire rdmc_meta0_wr_transfer_comp_int;
513wire[3:0] rdmc_meta0_wr_status;
514
515wire[8:0] port_err_event;
516wire ipp_dat_req0_data;
517wire ipp_dat_req1_data;
518wire ipp_dat_req2_data;
519wire ipp_dat_req3_data;
520
521wire[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
525wire [3:0] do_nad;
526wire [3:0] do_nor;
527wire [3:0] do_inv;
528wire [3:0] do_mux;
529wire [3:0] do_q;
530wire so;
531
532nep_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
563niu_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
740niu_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
857endmodule