// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: niu_zcp.v
// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
// For the avoidance of doubt, and except that if any non-GPL license
// choice is available it will apply instead, Sun elects to use only
// the General Public License version 2 (GPLv2) at this time for any
// software where a choice of GPL license versions is made
// available with the language indicating that GPLv2 or any later version
// may be used, or where a choice of which version of the GPL is applied is
// otherwise unspecified.
// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// ========== Copyright Header End ============================================
/*************************************************************************
* Description : Zero Copy Processor
* Date Created : 3/25/2004
* Copyright (c) 2020, Sun Microsystems, Inc.
* Sun Proprietary and Confidential
*************************************************************************/
fflp_zcp_data,// 27 bytes = 216 bits
page_handle, // 20 bit per handle
// META RESPONSE control info
meta_zcp_resp_ready, // Resp Command Request
meta_zcp_resp_cmd_status, // Command Status
meta_zcp_resp_length, // Packet Length
meta_zcp_resp_client, // bit 0
meta_zcp_resp_dma_num, // Channel Number
meta_zcp_resp_complete, // bitwise ZCP_CLIENT[0]
meta_zcp_resp_transfer_cmpl,// bitwise ZCP_CLIENT[0]
zcp_meta_resp_accept, // bitwise client accept
meta_zcp_data_valid, // Transfer Data Ack
meta_zcp_data, // Transfer Data
meta_zcp_resp_byteenable, // First/Last BE
meta_zcp_data_status, // Transfer Data Status
niu_mb7_cntrl_fifo_zcp_scan_in,
niu_mb7_cntrl_fifo_zcp_scan_out,
rtx_rxc_zcp0_mb7_dmo_dout,
rtx_rxc_zcp1_mb7_dmo_dout,
// mbist controller related
niu_mb8_cntrl_fifo_zcp_scan_in,
niu_mb8_cntrl_fifo_zcp_scan_out,
input [19:0] pio_clients_addr;
input [31:0] pio_clients_wdata;
output [63:0] zcp_pio_rdata;
input [215:0] fflp_zcp_data;// 27 bytes = 216 bits
output [129:0] zcp_dmc_dat0;
output [129:0] zcp_dmc_dat1;
input [31:0] rdmc_zcp_func_num;
input [319:0] page_handle; // 20 bit per handle
output [129:0] zcp_dmc_dat2;
output [129:0] zcp_dmc_dat3;
output [7:0] zcp_arb1_req_cmd;
output [63:0] zcp_arb1_req_address;
output [13:0] zcp_arb1_req_length;
output [1:0] zcp_arb1_req_port_num;
output [4:0] zcp_arb1_req_dma_num;
output [1:0] zcp_arb1_req_func_num;
input arb1_zcp_req_accept;
// META RESPONSE control info
input meta_zcp_resp_ready; // Resp Command Request
input [7:0] meta_zcp_resp_cmd; // cmd
input [3:0] meta_zcp_resp_cmd_status; // cmd status
input [13:0] meta_zcp_resp_length; // Packet Length
input [4:0] meta_zcp_resp_dma_num; // Channel Number
input meta_zcp_resp_client; // bit 0
output zcp_meta_resp_accept; // bitwise client accept
input [127:0] meta_zcp_data; // Transfer Data
input [15:0] meta_zcp_resp_byteenable; // First/Last BE
input [3:0] meta_zcp_data_status; // Transfer Data Status
input meta_zcp_data_valid; // Transfer Data Ack
input meta_zcp_resp_complete; // bitwise ZCP_CLIENT[0]
input meta_zcp_resp_transfer_cmpl;// bitwise ZCP_CLIENT[0]
input tcu_mbist_user_mode;
input tcu_se_scancollar_in;
input tcu_se_scancollar_out;
input tcu_array_wr_inhibit;
input niu_mb7_cntrl_fifo_zcp_scan_in;
output niu_mb7_cntrl_fifo_zcp_scan_out;
input [6:0] hdr_sram_rvalue_zcp0;
input [1:0] hdr_sram_rid_zcp0;
input hdr_sram_wr_en_zcp0;
input hdr_sram_red_clr_zcp0;
output [6:0] sram_hdr_read_data_zcp0;
output [39:0] rtx_rxc_zcp0_mb7_dmo_dout;
input [6:0] hdr_sram_rvalue_zcp1;
input [1:0] hdr_sram_rid_zcp1;
input hdr_sram_wr_en_zcp1;
input hdr_sram_red_clr_zcp1;
output [6:0] sram_hdr_read_data_zcp1;
output [39:0] rtx_rxc_zcp1_mb7_dmo_dout;
// mbist controller related
output niu_tcu_mbist_fail_7;
output niu_tcu_mbist_done_7;
input tcu_niu_mbist_start_7;
input niu_mb8_cntrl_fifo_zcp_scan_in;
output niu_mb8_cntrl_fifo_zcp_scan_out;
output niu_tcu_mbist_fail_8;
output niu_tcu_mbist_done_8;
input tcu_niu_mbist_start_8;
output [31:0] zcp_debug_port;
// vlint flag_dangling_net_within_module off
// vlint flag_net_has_no_load off
// vlint flag_net_never_driven off
wire cfifo_ren0; // From niu_zcp_slv of niu_zcp_slv.v
wire cfifo_ren1; // From niu_zcp_slv of niu_zcp_slv.v
wire cfifo_ren2; // From niu_zcp_slv of niu_zcp_slv.v
wire cfifo_ren3; // From niu_zcp_slv of niu_zcp_slv.v
wire cfifo_wen0; // From niu_zcp_slv of niu_zcp_slv.v
wire cfifo_wen1; // From niu_zcp_slv of niu_zcp_slv.v
wire cfifo_wen2; // From niu_zcp_slv of niu_zcp_slv.v
wire cfifo_wen3; // From niu_zcp_slv of niu_zcp_slv.v
wire [16:0] chk_bit_data; // From niu_zcp_slv of niu_zcp_slv.v
wire [4:0] default_rdc; // From niu_zcp_slv of niu_zcp_slv.v
wire [10:0] dmaw_threshold; // From niu_zcp_slv of niu_zcp_slv.v
wire dn_ram_ren; // From niu_zcp_slv of niu_zcp_slv.v
wire dn_ram_wen; // From niu_zcp_slv of niu_zcp_slv.v
wire [`DN_R] dram_slv_rdata; // From dn_ram of niu_dn_ram.v
wire [9:0] ds_offset0; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] ds_offset1; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] ds_offset2; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] ds_offset3; // From niu_zcp_slv of niu_zcp_slv.v
wire ecc_chk_dis; // From niu_zcp_slv of niu_zcp_slv.v
wire [19:0] handle; // From niu_zcp_slv of niu_zcp_slv.v
wire latch_rspfifo_dout; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire par_chk_dis; // From niu_zcp_slv of niu_zcp_slv.v
wire req_dis; // From niu_zcp_slv of niu_zcp_slv.v
wire [1:0] req_load_state; // From niu_zcp_req_intf of niu_zcp_req_intf.v
wire [1:0] req_unload_state; // From niu_zcp_req_intf of niu_zcp_req_intf.v
wire reqfifo_uncorr_err; // From niu_zcp_req_intf of niu_zcp_req_intf.v
wire rrfifo_overrun; // From niu_zcp_req_intf
wire rrfifo_underrun; // From niu_zcp_req_intfrrun;
wire [`VAFIFO_A_PTR] reqfifo_wp; // From niu_zcp_req_intf of niu_zcp_req_intf.v
wire [`RRFIFO_W_R] rrfifo_rd_data; // From niu_zcp_req_intf of niu_zcp_req_intf.v
wire rsp_accepted; // From niu_zcp_arb2 of niu_zcp_arb2.v
wire rsp_dis; // From niu_zcp_slv of niu_zcp_slv.v
wire [3:0] rsp_load_state; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire [31:0] rsp_ram_mapped_in; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire [`RSPFIFO_W_R] rsp_ram_wr_data; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire rsp_request; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire [11:0] rsp_tt_index;
wire [11:0] rsp_tt_index1;
wire [11:0] rsp_tt_index2;
wire rsp_tt_index_err; // From va_ram of niu_va_ram.v
wire [3:0] rsp_unload_state; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire rspfifo_ren; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire [`VAFIFO_A_PTR] rspfifo_rp; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire rspfifo_uncorr_err; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire slv_accepted; // From niu_zcp_arb2 of niu_zcp_arb2.v
wire [10:0] slv_ram_addr; // From niu_zcp_slv of niu_zcp_slv.v
wire [16:0] slv_ram_be; // From niu_zcp_slv of niu_zcp_slv.v
wire [`DN_R] slv_ram_wdata; // From niu_zcp_slv of niu_zcp_slv.v
wire slv_request; // From niu_zcp_slv of niu_zcp_slv.v
wire [11:0] slv_tt_index; // From niu_zcp_slv of niu_zcp_slv.v
wire slv_tt_index_err; // From va_ram of niu_va_ram.v
wire [`ST_R] sram_slv_rdata; // From st_ram of niu_st_ram.v
wire st_ram_ren; // From niu_zcp_slv of niu_zcp_slv.v
wire st_ram_wen; // From niu_zcp_slv of niu_zcp_slv.v
wire [4:0] table_rdc; // From niu_zcp_slv of niu_zcp_slv.v
wire tt_en; // From niu_zcp_slv of niu_zcp_slv.v
wire tt_index_chk0; // From niu_zcp_slv of niu_zcp_slv.v
wire tt_index_chk1; // From niu_zcp_slv of niu_zcp_slv.v
wire tt_index_chk2; // From niu_zcp_slv of niu_zcp_slv.v
wire tt_index_chk3; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] tt_index_end0; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] tt_index_end1; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] tt_index_end2; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] tt_index_end3; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] tt_index_start0; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] tt_index_start1; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] tt_index_start2; // From niu_zcp_slv of niu_zcp_slv.v
wire [9:0] tt_index_start3; // From niu_zcp_slv of niu_zcp_slv.v
wire [7:0] tt_offset0; // From niu_zcp_slv of niu_zcp_slv.v
wire [7:0] tt_offset1; // From niu_zcp_slv of niu_zcp_slv.v
wire [7:0] tt_offset2; // From niu_zcp_slv of niu_zcp_slv.v
wire [7:0] tt_offset3; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_ren; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_rwen; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_rwen0; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_rwen1; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_rwen2; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_rwen3; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_rwen4; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_rwen5; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_rwen6; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_rwen7; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_wen; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_ren0; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_ren1; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_ren2; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_ren3; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_ren4; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_ren5; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_ren6; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_ren7; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_wen0; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_wen1; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_wen2; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_wen3; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_wen4; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_wen5; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_wen6; // From niu_zcp_slv of niu_zcp_slv.v
wire va_ram_wen7; // From niu_zcp_slv of niu_zcp_slv.v
wire [1023:0] vram_slv_rdata; // From va_ram of niu_va_ram.v
wire [4:0] zc_rdc; // From niu_zcp_slv of niu_zcp_slv.v
wire [7:0] zcp_debug_sel; // From niu_zcp_slv of niu_zcp_slv.v
wire zcp_tt_index_err; // From va_ram of niu_va_ram.v
wire [`CFIFO_W_R] zcp_dmc_dat0;
wire [`CFIFO_W_R] zcp_dmc_dat1;
wire [`CFIFO_W_R] zcp_dmc_dat2;
wire [`CFIFO_W_R] zcp_dmc_dat3;
wire [`CFIFO_W_R] wr_data; // 130 bits: [129:0]
wire [`IFIFO_W_R] fflp_data;
wire [31:0] zcp_debug_port;
wire [2:0] ram_access_state;
wire set_tt_program_err ; // zcp_slv.v
// vlint flag_net_never_driven on
// vlint flag_net_has_no_load on
// vlint flag_dangling_net_within_module on
reg [3:0] inv_reset_reg_l;
wire [`CFIFO_W_R] cfifo_slv_rdata0;
wire [`CFIFO_W_R] cfifo_slv_rdata1;
wire [`CFIFO_W_R] cfifo_slv_rdata2;
wire [`CFIFO_W_R] cfifo_slv_rdata3;
wire [31:0] training_vector;
wire [31:0] rdmc_zcp_func_num;
wire [`PMS15:0] page_handle;
wire [`IFIFO_W_R] ififo_dout;
/////////////////////////////////////////////////////////////////
// Start ifdef else endif instantiation section
/////////////////////////////////////////////////////////////////
// Beginning of automatic wires (for undeclared instantiated-module outputs)
wire [5:0] bitmap_total_num_buf_requested;// From niu_zcp_req_intf of niu_zcp_req_intf.v
wire [1:0] bitmap_tt_index_11_10; // From niu_zcp_req_intf of niu_zcp_req_intf.v
wire [1:0] rot_sft1_tt_index_11_10;// From niu_zcp_req_intf of niu_zcp_req_intf.v
wire [1:0] rot_sft32_tt_index_11_10;// From niu_zcp_req_intf of niu_zcp_req_intf.v
wire rotate; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire rotate_done; // From niu_zcp_req_intf of niu_zcp_req_intf.v
wire rsp_ram_wr_en0; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire rsp_ram_wr_en1; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire rsp_ram_wr_en2; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire [3:0] rspfifo_ren2; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire rspfifo_ren3; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire rst_rotate; // From niu_zcp_req_intf of niu_zcp_req_intf.v
wire rst_shift; // From niu_zcp_req_intf of niu_zcp_req_intf.v
wire shift; // From niu_zcp_rsp_intf of niu_zcp_rsp_intf.v
wire shift_done; // From niu_zcp_req_intf of niu_zcp_req_intf.v
wire [11:0] tt_index_4va; // from tt (fflp)
wire [11:0] tt_index_4dn; // from tt (fflp)
wire [11:0] tt_index_4st; // from tt (fflp)
wire zcp_tt_index_err_lv;
wire [15:0] wptr_HoQ_reg ;
wire [3:0] ring_size_reg ;
wire [38:0] ring_base_addr_reg ;
wire [5:0] total_num_buf_requested_reg;
wire [15:0] tcp_payld_len;
wire [`XPAN_TCP_SEQ_SPACE]TL;
wire [`XPAN_TCP_SEQ_SPACE]S;
wire [`PKT_LEN_R] payload_len; // registered wire .
wire [`PKT_LEN_R] header_delta; // registered wire .
wire [`XPAN_TCP_SEQ_SPACE]UE;
wire qual_ulp_end_fail_reg;
wire [`TCP_SEQ_SPACE] running_anchor_seq;
wire [5:0] first_byte_buf;
wire [20:0] last_byte_buf;
wire dmaw_threshold_fail;
// vlint flag_dangling_net_within_module off
// vlint flag_net_has_no_load off
// vlint flag_dangling_net_within_module on
// vlint flag_net_has_no_load on
assign neptune_signature = 1;
/* --------------- request interface ------------------------- */
niu_zcp_req_intf niu_zcp_req_intf
.rot_sft32_tt_index_11_10 (rot_sft32_tt_index_11_10[1:0]),
.rot_sft1_tt_index_11_10 (rot_sft1_tt_index_11_10[1:0]),
.bitmap_total_num_buf_requested (bitmap_total_num_buf_requested[5:0]),
.bitmap_tt_index_11_10 (bitmap_tt_index_11_10[1:0]),
.rotate_done (rotate_done),
.shift_done (shift_done),
.rst_rotate (rst_rotate),
.reqfifo_wp (reqfifo_wp[`VAFIFO_A_PTR]),
.zcp_arb1_req (zcp_arb1_req),
.zcp_arb1_req_cmd (zcp_arb1_req_cmd[7:0]),
.zcp_arb1_req_address (zcp_arb1_req_address[63:0]),
.zcp_arb1_req_length (zcp_arb1_req_length[13:0]),
.zcp_arb1_req_func_num (zcp_arb1_req_func_num[1:0]),
.zcp_arb1_req_port_num (zcp_arb1_req_port_num[1:0]),
.zcp_arb1_req_dma_num (zcp_arb1_req_dma_num[4:0]),
.req_load_state (req_load_state[1:0]),
.req_unload_state (req_unload_state[1:0]),
.rrfifo_overrun (rrfifo_overrun),
.rrfifo_underrun (rrfifo_underrun),
.rsp_tt_index (rsp_tt_index[11:0]),
.rsp_tt_index1 (rsp_tt_index1[11:0]),
.rsp_tt_index2 (rsp_tt_index2[11:0]),
.rrfifo_rd_data (rrfifo_rd_data[`RRFIFO_W_R]),
.req_reset (req_reset[11:0]),
.tt_index (tt_index[11:0]),
.wptr_HoQ_reg (wptr_HoQ_reg[14:0]),
.cross_q_end_reg (cross_q_end_reg),
.cross_4KB_reg (cross_4KB_reg),
.total_num_buf_requested_reg (total_num_buf_requested_reg[5:0]),
.ring_size_reg (ring_size_reg[3:0]),
.ring_base_addr_reg (ring_base_addr_reg[38:0]),
.rspfifo_rp (rspfifo_rp[`VAFIFO_A_PTR]),
.rspfifo_ren2 (rspfifo_ren2[3:0]),
.arb1_zcp_req_accept (arb1_zcp_req_accept),
.zcp_32bit_mode (zcp_32bit_mode),
/* --------------- response interface ------------------------ */
niu_zcp_rsp_intf niu_zcp_rsp_intf
.rsp_request (rsp_request),
.rsp_ram_wr_en0 (rsp_ram_wr_en0),
.rsp_ram_wr_en1 (rsp_ram_wr_en1),
.rsp_ram_wr_en2 (rsp_ram_wr_en2),
.rsp_ram_wr_data (rsp_ram_wr_data[`RSPFIFO_W_R]),
.rsp_ram_mapped_in (rsp_ram_mapped_in[31:0]),
.rspfifo_rp (rspfifo_rp[`VAFIFO_A_PTR]),
.rspfifo_ren2 (rspfifo_ren2[3:0]),
.rspfifo_ren3 (rspfifo_ren3),
.latch_rspfifo_dout (latch_rspfifo_dout),
.zcp_meta_resp_accept (zcp_meta_resp_accept),
.rsp_load_state (rsp_load_state[3:0]),
.rsp_unload_state (rsp_unload_state[3:0]),
.rspfifo_uncorr_err (rspfifo_uncorr_err),
.rsp_reset (rsp_reset[25:0]),
.rsp_accepted (rsp_accepted),
.rot_sft32_tt_index_11_10 (rot_sft32_tt_index_11_10[1:0]),
.rot_sft1_tt_index_11_10 (rot_sft1_tt_index_11_10[1:0]),
.bitmap_total_num_buf_requested (bitmap_total_num_buf_requested[5:0]),
.bitmap_tt_index_11_10 (bitmap_tt_index_11_10[1:0]),
.rotate_done (rotate_done),
.shift_done (shift_done),
.rst_rotate (rst_rotate),
.reqfifo_wp (reqfifo_wp[`VAFIFO_A_PTR]),
.meta_zcp_resp_cmd (meta_zcp_resp_cmd[7:0]),
.meta_zcp_resp_length (meta_zcp_resp_length[13:0]),
.meta_zcp_resp_ready (meta_zcp_resp_ready),
.meta_zcp_resp_cmd_status (meta_zcp_resp_cmd_status[3:0]),
.meta_zcp_resp_dma_num (meta_zcp_resp_dma_num[4:0]),
.meta_zcp_resp_client (meta_zcp_resp_client),
.meta_zcp_data (meta_zcp_data[127:0]),
.meta_zcp_resp_byteenable (meta_zcp_resp_byteenable[15:0]),
.meta_zcp_data_status (meta_zcp_data_status[3:0]),
.meta_zcp_data_valid (meta_zcp_data_valid),
.meta_zcp_resp_complete (meta_zcp_resp_complete),
.meta_zcp_resp_transfer_cmpl (meta_zcp_resp_transfer_cmpl),
/* --------------- arbiter -------------------------- */
niu_zcp_arb2 niu_zcp_arb2
.rsp_accepted (rsp_accepted),
.slv_accepted (slv_accepted),
.tt_index (tt_index[11:0]),
.rsp_request (rsp_request),
.rsp_tt_index (rsp_tt_index[11:0]),
.slv_request (slv_request),
.slv_tt_index (slv_tt_index[11:0]));
/* --------------- translation table ------------------------- */
.va_ram_perr (va_ram_perr),
.zcp_tt_index_err (zcp_tt_index_err),
.zcp_tt_index_err_lv (zcp_tt_index_err_lv),
.va_dout (va_dout[1023:0]),
.rsp_tt_index_err (rsp_tt_index_err),
.slv_tt_index_err (slv_tt_index_err),
.vram_slv_rdata (vram_slv_rdata[1023:0]),
.va_reset (va_reset[36:0]),
.par_chk_dis (par_chk_dis),
.chk_bit_data (chk_bit_data[15:0]),
.tt_offset0 (tt_offset0[7:0]),
.tt_index_start0 (tt_index_start0[9:0]),
.tt_index_end0 (tt_index_end0[9:0]),
.tt_index_chk0 (tt_index_chk0),
.tt_offset1 (tt_offset1[7:0]),
.tt_index_start1 (tt_index_start1[9:0]),
.tt_index_end1 (tt_index_end1[9:0]),
.tt_index_chk1 (tt_index_chk1),
.tt_offset2 (tt_offset2[7:0]),
.tt_index_start2 (tt_index_start2[9:0]),
.tt_index_end2 (tt_index_end2[9:0]),
.tt_index_chk2 (tt_index_chk2),
.tt_offset3 (tt_offset3[7:0]),
.tt_index_start3 (tt_index_start3[9:0]),
.tt_index_end3 (tt_index_end3[9:0]),
.tt_index_chk3 (tt_index_chk3),
.tt_index_4va (tt_index_4va[11:0]),
.rsp_ram_wr_en0 (rsp_ram_wr_en0),
.rsp_ram_wr_data (rsp_ram_wr_data[`RSPFIFO_W_R]),
.rsp_ram_mapped_in (rsp_ram_mapped_in[31:0]),
.rsp_tt_index1 (rsp_tt_index1[11:0]),
.slv_tt_index (slv_tt_index[11:0]),
.slv_ram_wdata (slv_ram_wdata[`VA_R]),
.slv_ram_be (slv_ram_be[3:0]),
.va_ram_ren (va_ram_ren),
.va_ram_wen (va_ram_wen),
.va_ram_wen0 (va_ram_wen0),
.va_ram_wen1 (va_ram_wen1),
.va_ram_wen2 (va_ram_wen2),
.va_ram_wen3 (va_ram_wen3),
.va_ram_wen4 (va_ram_wen4),
.va_ram_wen5 (va_ram_wen5),
.va_ram_wen6 (va_ram_wen6),
.va_ram_wen7 (va_ram_wen7),
.va_ram_rwen (va_ram_rwen),
.va_ram_rwen0 (va_ram_rwen0),
.va_ram_rwen1 (va_ram_rwen1),
.va_ram_rwen2 (va_ram_rwen2),
.va_ram_rwen3 (va_ram_rwen3),
.va_ram_rwen4 (va_ram_rwen4),
.va_ram_rwen5 (va_ram_rwen5),
.va_ram_rwen6 (va_ram_rwen6),
.va_ram_rwen7 (va_ram_rwen7));
.st_ram_perr (st_ram_perr),
.st_dout (st_dout[`ST_R]),
.sram_slv_rdata (sram_slv_rdata[`ST_R]),
.st_reset (st_reset[3:0]),
.par_chk_dis (par_chk_dis),
.chk_bit_data (chk_bit_data[13:0]),
.tt_index_4st (tt_index_4st[11:0]),
.slv_tt_index (slv_tt_index[11:0]),
.st_ram_wen (st_ram_wen),
.st_ram_ren (st_ram_ren),
.slv_ram_wdata (slv_ram_wdata[`ST_R]),
.slv_ram_be (slv_ram_be[`ST_PR]),
.ds_offset0 (ds_offset0[9:0]),
.ds_offset1 (ds_offset1[9:0]),
.ds_offset2 (ds_offset2[9:0]),
.ds_offset3 (ds_offset3[9:0]));
.dn_ram_perr (dn_ram_perr),
.dn_dout (dn_dout[`DN_R]),
.dram_slv_rdata (dram_slv_rdata[`DN_R]),
.dn_reset (dn_reset[4:0]),
.par_chk_dis (par_chk_dis),
.chk_bit_data (chk_bit_data[16:0]),
.tt_index_4dn (tt_index_4dn[11:0]),
.wb_dn_reg (wb_dn_reg[`DN_R]),
.slv_tt_index (slv_tt_index[11:0]),
.dn_ram_wen (dn_ram_wen),
.dn_ram_ren (dn_ram_ren),
.slv_ram_wdata (slv_ram_wdata[`DN_R]),
.slv_ram_be (slv_ram_be[`DN_PR]),
.ds_offset0 (ds_offset0[9:0]),
.ds_offset1 (ds_offset1[9:0]),
.ds_offset2 (ds_offset2[9:0]),
.ds_offset3 (ds_offset3[9:0]),
.rsp_ram_wr_en1 (rsp_ram_wr_en1),
.rsp_ram_mapped_in (rsp_ram_mapped_in[31:0]),
.rsp_tt_index2 (rsp_tt_index2[11:0]));
/* --------------- control fifo instantiation ---------------- */
niu_zcp_cfifo32KB niu_zcp_cfifo32KB_port0
.zcp_dmc_ack(zcp_dmc_ack0),
.zcp_dmc_dat(zcp_dmc_dat0[`CFIFO_W_R]),
.zcp_dmc_dat_err(zcp_dmc_dat_err0),
.zcp_dmc_ful_pkt(zcp_dmc_ful_pkt0),
.reset(c0_reset|reset_cfifo0),
.wr_data(wr_data[`CFIFO_W_R]),
.dmc_zcp_req(dmc_zcp_req0),
.double_bit_err(double_bit_err0),
.single_bit_err(single_bit_err0),
.last_line_err(last_line_err0),
.second_line_err(second_line_err0),
.first_line_err(first_line_err0),
.second_line(second_line0),
.first_line(first_line0),
.ecc_chk_dis(ecc_chk_dis | ecc_chk_bypass0),
.chk_bit_data(chk_bit_data[15:0]),
.cfifo_slv_rdata(cfifo_slv_rdata0[`CFIFO_W_R]),
.slv_ram_wdata(slv_ram_wdata[`CFIFO_W_R]),
.slv_ram_addr(slv_ram_addr[10:0])
niu_zcp_cfifo32KB niu_zcp_cfifo32KB_port1
.zcp_dmc_ack(zcp_dmc_ack1),
.zcp_dmc_dat(zcp_dmc_dat1[`CFIFO_W_R]),
.zcp_dmc_dat_err(zcp_dmc_dat_err1),
.zcp_dmc_ful_pkt(zcp_dmc_ful_pkt1),
.reset(c1_reset|reset_cfifo1),
.wr_data(wr_data[`CFIFO_W_R]),
.dmc_zcp_req(dmc_zcp_req1),
.double_bit_err(double_bit_err1),
.single_bit_err(single_bit_err1),
.last_line_err(last_line_err1),
.second_line_err(second_line_err1),
.first_line_err(first_line_err1),
.second_line(second_line1),
.first_line(first_line1),
.ecc_chk_dis(ecc_chk_dis | ecc_chk_bypass1),
.chk_bit_data(chk_bit_data[15:0]),
.cfifo_slv_rdata(cfifo_slv_rdata1[`CFIFO_W_R]),
.slv_ram_wdata(slv_ram_wdata[`CFIFO_W_R]),
.slv_ram_addr(slv_ram_addr[10:0])
niu_zcp_cfifo16KB niu_zcp_cfifo16KB_port2
.zcp_dmc_ack(zcp_dmc_ack2),
.zcp_dmc_dat(zcp_dmc_dat2[`CFIFO_W_R]),
.zcp_dmc_dat_err(zcp_dmc_dat_err2),
.zcp_dmc_ful_pkt(zcp_dmc_ful_pkt2),
.reset(c2_reset|reset_cfifo2),
.wr_data(wr_data[`CFIFO_W_R]),
.dmc_zcp_req(dmc_zcp_req2),
.double_bit_err(double_bit_err2),
.single_bit_err(single_bit_err2),
.last_line_err(last_line_err2),
.second_line_err(second_line_err2),
.first_line_err(first_line_err2),
.second_line(second_line2),
.first_line(first_line2),
.ecc_chk_dis(ecc_chk_dis | ecc_chk_bypass2),
.chk_bit_data(chk_bit_data[15:0]),
.cfifo_slv_rdata(cfifo_slv_rdata2[`CFIFO_W_R]),
.slv_ram_wdata(slv_ram_wdata[`CFIFO_W_R]),
.slv_ram_addr(slv_ram_addr[9:0])
niu_zcp_cfifo16KB niu_zcp_cfifo16KB_port3
.zcp_dmc_ack(zcp_dmc_ack3),
.zcp_dmc_dat(zcp_dmc_dat3[`CFIFO_W_R]),
.zcp_dmc_dat_err(zcp_dmc_dat_err3),
.zcp_dmc_ful_pkt(zcp_dmc_ful_pkt3),
.reset(c3_reset|reset_cfifo3),
.wr_data(wr_data[`CFIFO_W_R]),
.dmc_zcp_req(dmc_zcp_req3),
.double_bit_err(double_bit_err3),
.single_bit_err(single_bit_err3),
.last_line_err(last_line_err3),
.second_line_err(second_line_err3),
.first_line_err(first_line_err3),
.second_line(second_line3),
.first_line(first_line3),
.ecc_chk_dis(ecc_chk_dis | ecc_chk_bypass3),
.chk_bit_data(chk_bit_data[15:0]),
.cfifo_slv_rdata(cfifo_slv_rdata3[`CFIFO_W_R]),
.slv_ram_wdata(slv_ram_wdata[`CFIFO_W_R]),
.slv_ram_addr(slv_ram_addr[9:0])
assign rdmc_zcp_func_num = 0;
assign zcp_dmc_dat_err2 = 0;
assign zcp_dmc_dat_err3 = 0;
assign dram_slv_rdata = 0;
assign sram_slv_rdata = 0;
assign vram_slv_rdata = 0;
assign slv_accepted = 1'b1;
assign rspfifo_uncorr_err = 0;
assign reqfifo_uncorr_err = 0;
assign rsp_tt_index_err = 0;
assign slv_tt_index_err = 0;
assign zcp_tt_index_err = 0;
assign rsp_unload_state = 0;
assign rsp_load_state = 0;
assign req_unload_state = 0;
assign req_load_state = 0;
assign rrfifo_overrun = 0;
assign rrfifo_underrun = 0;
assign cfifo_slv_rdata2 = 0;
assign cfifo_slv_rdata3 = 0;
wire [6:0] hdr_sram_rvalue_zcp0;
wire [1:0] hdr_sram_rid_zcp0;
wire [6:0] sram_hdr_read_data_zcp0;
wire [6:0] hdr_sram_rvalue_zcp1;
wire [1:0] hdr_sram_rid_zcp1;
wire [6:0] sram_hdr_read_data_zcp1;
niu_zcp_cfifo8KB niu_zcp_cfifo8KB_port0(
.reset(c0_reset|reset_cfifo0),
// from niu_zcp_tt for write to cfifo
.wr_data(wr_data[`CFIFO_W_R]),
// dmc intf for read from cfifo
.dmc_zcp_req(dmc_zcp_req0),
.zcp_dmc_ack(zcp_dmc_ack0),
.zcp_dmc_dat(zcp_dmc_dat0[`CFIFO_W_R]),
.zcp_dmc_dat_err(zcp_dmc_dat_err0),
.zcp_dmc_ful_pkt(zcp_dmc_ful_pkt0),
.double_bit_err(double_bit_err0),
.single_bit_err(single_bit_err0),
.last_line_err(last_line_err0),
.second_line_err(second_line_err0),
.first_line_err(first_line_err0),
.second_line(second_line0),
.first_line(first_line0),
.ecc_chk_dis(ecc_chk_dis | ecc_chk_bypass0),
.chk_bit_data(chk_bit_data[15:0]),
.cfifo_slv_rdata(cfifo_slv_rdata0[`CFIFO_W_R]),
.slv_ram_wdata(slv_ram_wdata[`CFIFO_W_R]),
.slv_ram_addr(slv_ram_addr[8:0]),
.tcu_mbist_user_mode(tcu_mbist_user_mode),
.tcu_se_scancollar_in(tcu_se_scancollar_in),
.tcu_se_scancollar_out(tcu_se_scancollar_out),
.tcu_array_wr_inhibit(tcu_array_wr_inhibit),
.scan_in(niu_mb7_cntrl_fifo_zcp_scan_in),
.scan_out(niu_mb7_cntrl_fifo_zcp_scan_out),
.hdr_sram_rvalue(hdr_sram_rvalue_zcp0),
.hdr_sram_rid(hdr_sram_rid_zcp0),
.hdr_sram_wr_en(hdr_sram_wr_en_zcp0),
.hdr_sram_red_clr(hdr_sram_red_clr_zcp0),
.sram_hdr_read_data(sram_hdr_read_data_zcp0),
.mb_dmo_dout(rtx_rxc_zcp0_mb7_dmo_dout[39:0]),
// mbist controller related
.niu_tcu_mbist_fail(niu_tcu_mbist_fail_7),
.niu_tcu_mbist_done(niu_tcu_mbist_done_7),
.mb_scan_in(mb7_scan_in),
.mb_scan_out(mb7_scan_out),
.tcu_niu_mbist_start(tcu_niu_mbist_start_7), // exception
.tcu_mbist_bisi_en(tcu_mbist_bisi_en),
.tcu_scan_en(tcu_scan_en)
niu_zcp_cfifo8KB niu_zcp_cfifo8KB_port1(
.reset(c1_reset|reset_cfifo1),
// from niu_zcp_tt for write to cfifo
.wr_data(wr_data[`CFIFO_W_R]),
// dmc intf for read from cfifo
.dmc_zcp_req(dmc_zcp_req1),
.zcp_dmc_ack(zcp_dmc_ack1),
.zcp_dmc_dat(zcp_dmc_dat1[`CFIFO_W_R]),
.zcp_dmc_dat_err(zcp_dmc_dat_err1),
.zcp_dmc_ful_pkt(zcp_dmc_ful_pkt1),
.double_bit_err(double_bit_err1),
.single_bit_err(single_bit_err1),
.last_line_err(last_line_err1),
.second_line_err(second_line_err1),
.first_line_err(first_line_err1),
.second_line(second_line1),
.first_line(first_line1),
.ecc_chk_dis(ecc_chk_dis | ecc_chk_bypass1),
.chk_bit_data(chk_bit_data[15:0]),
.cfifo_slv_rdata(cfifo_slv_rdata1[`CFIFO_W_R]),
.slv_ram_wdata(slv_ram_wdata[`CFIFO_W_R]),
.slv_ram_addr(slv_ram_addr[8:0]),
.tcu_mbist_user_mode(tcu_mbist_user_mode),
.tcu_se_scancollar_in(tcu_se_scancollar_in),
.tcu_se_scancollar_out(tcu_se_scancollar_out),
.tcu_array_wr_inhibit(tcu_array_wr_inhibit),
.scan_in(niu_mb8_cntrl_fifo_zcp_scan_in),
.scan_out(niu_mb8_cntrl_fifo_zcp_scan_out),
.hdr_sram_rvalue(hdr_sram_rvalue_zcp1),
.hdr_sram_rid(hdr_sram_rid_zcp1),
.hdr_sram_wr_en(hdr_sram_wr_en_zcp1),
.hdr_sram_red_clr(hdr_sram_red_clr_zcp1),
.sram_hdr_read_data(sram_hdr_read_data_zcp1),
.mb_dmo_dout(rtx_rxc_zcp1_mb7_dmo_dout[39:0]),
// mbist controller related
.niu_tcu_mbist_fail(niu_tcu_mbist_fail_8),
.niu_tcu_mbist_done(niu_tcu_mbist_done_8),
.mb_scan_in(mb8_scan_in),
.mb_scan_out(mb8_scan_out),
.tcu_niu_mbist_start(tcu_niu_mbist_start_8), // exception
.tcu_mbist_bisi_en(tcu_mbist_bisi_en),
.tcu_scan_en(tcu_scan_en)
/////////////////////////////////////////////////////////////////
// common shared modules instantiation section
/////////////////////////////////////////////////////////////////
/* --------------- reset logic ------------------------- */
zcp_RegDff #(4) reset_reg_l_RegDff(.din({4{reset_l}}), .clk(clk),.qout(reset_reg_l[3:0]));
inv_reset_reg_l <= ~reset_reg_l;
zcp_RegDff #(1) reset_RegDff (.din( inv_reset_reg_l[0]), .clk(clk),.qout(reset));
zcp_RegDff #(1) c0_reset_RegDff (.din( inv_reset_reg_l[0]), .clk(clk),.qout(c0_reset)); // cfifo0 local reset
zcp_RegDff #(1) c1_reset_RegDff (.din( inv_reset_reg_l[0]), .clk(clk),.qout(c1_reset)); // cfifo1 local reset
zcp_RegDff #(1) c2_reset_RegDff (.din( inv_reset_reg_l[0]), .clk(clk),.qout(c2_reset)); // cfifo2 local reset
zcp_RegDff #(1) c3_reset_RegDff (.din( inv_reset_reg_l[0]), .clk(clk),.qout(c3_reset)); // cfifo3 local reset
zcp_RegDff #(4) st_reset_RegDff (.din( {4{inv_reset_reg_l[0]}}),.clk(clk),.qout(st_reset[3:0]));
zcp_RegDff #(5) dn_reset_RegDff (.din( {5{inv_reset_reg_l[0]}}),.clk(clk),.qout(dn_reset[4:0]));
zcp_RegDff #(6) fflp_reset_RegDff(.din( {6{inv_reset_reg_l[0]}}),.clk(clk),.qout(fflp_reset[5:0]));// niu_zcp_fflp_intf
zcp_RegDff #(26) rsp_reset_RegDff(.din({26{inv_reset_reg_l[1]}}),.clk(clk),.qout(rsp_reset[25:0]));
zcp_RegDff #(11)tt_reset_RegDff (.din({11{inv_reset_reg_l[1]}}),.clk(clk),.qout(tt_reset[10:0])); // niu_zcp_tt
zcp_RegDff #(12) req_reset_RegDff(.din({12{inv_reset_reg_l[2]}}),.clk(clk),.qout(req_reset[11:0]));
zcp_RegDff #(22) slv_reset_RegDff(.din({22{inv_reset_reg_l[2]}}),.clk(clk),.qout(slv_reset[21:0])); // niu_zcp_slv
zcp_RegDff #(37)va_reset_RegDff (.din({37{inv_reset_reg_l[3]}}),.clk(clk),.qout(va_reset[36:0]));
/* --------------- zcp_fflp_intf instantiation ------------------------- */
niu_zcp_fflp_intf niu_zcp_fflp_intf
.ififo_ren (ififo_ren[2:0]),
.ififo_dout (ififo_dout[`IFIFO_W_R]),
.ififo_overrun (ififo_overrun),
.ififo_state (ififo_state[2:0]),
.fflp_reset (fflp_reset[5:0]),
.fflp_zcp_wr (fflp_zcp_wr[4:0]),
.fflp_zcp_data (fflp_zcp_data[`IFIFO_W_R]));
/* --------------- tt instantiation -------------------------- */
.dmaw_threshold(dmaw_threshold[10:0]),
.va_ram_perr(va_ram_perr),
.dn_ram_perr(dn_ram_perr),
.st_ram_perr(st_ram_perr),
.va_dout(va_dout[1023:0]),
.st_dout(st_dout[`ST_R]),
.dn_dout(dn_dout[`DN_R]),
.tt_index_4va(tt_index_4va[11:0]),
.tt_index_4dn(tt_index_4dn[11:0]),
.tt_index_4st(tt_index_4st[11:0]),
.zcp_tt_index_err_lv(zcp_tt_index_err_lv),
.tt_index(tt_index[11:0]),
.wptr_HoQ_reg(wptr_HoQ_reg[15:0]),
.cross_q_end_reg(cross_q_end_reg),
.cross_4KB_reg(cross_4KB_reg),
.ring_size_reg(ring_size_reg[3:0]),
.ring_base_addr_reg(ring_base_addr_reg[38:0]),
.reach_buf_end_reg(reach_buf_end_reg),
.total_num_buf_requested_reg(total_num_buf_requested_reg[5:0]),
.wb_dn_reg(wb_dn_reg[`DN_R]),
.tcp_payld_len(tcp_payld_len[15:0]),
.l2_hdr_len(l2_hdr_len[9:0]),
.l3_hdr_len(l3_hdr_len[9:0]),
.header_len(header_len[9:0]),
.TL(TL[`XPAN_TCP_SEQ_SPACE]),
.S(S[`XPAN_TCP_SEQ_SPACE]),
.payload_len(payload_len[`PKT_LEN_R]),
.header_delta(header_delta[`PKT_LEN_R]),
.UE(UE[`XPAN_TCP_SEQ_SPACE]),
.qual_ulp_end_fail_reg(qual_ulp_end_fail_reg),
.running_anchor_seq(running_anchor_seq[`TCP_SEQ_SPACE]),
.first_byte_buf(first_byte_buf[5:0]),
.last_byte_buf(last_byte_buf[20:0]),
.ulp_end_fail(ulp_end_fail),
.mapped_in_fail(mapped_in_fail),
.dmaw_threshold_fail(dmaw_threshold_fail),
.unmap_on_left_oc(unmap_on_left_oc),
.second_line2(second_line2),
.first_line2(first_line2),
.second_line3(second_line3),
.first_line3(first_line3),
.second_line0(second_line0),
.first_line0(first_line0),
.second_line1(second_line1),
.first_line1(first_line1),
.kickoff_tt_reg(kickoff_tt_reg),
.set_tt_program_err(set_tt_program_err),
.fflp_data(fflp_data[`IFIFO_W_R]),
.ififo_ren(ififo_ren[2:0]),
.ififo_dout(ififo_dout[`IFIFO_W_R]),
.decode_default_rdc(decode_default_rdc),
.decode_table_rdc(decode_table_rdc),
.decode_zc_rdc(decode_zc_rdc),
.tt_rdc_reg(tt_rdc_reg[7:0]),
.fflp_rdc(fflp_rdc[7:0]),
.default_rdc(default_rdc[4:0]),
.table_rdc(table_rdc[4:0]),
.wr_data(wr_data[`CFIFO_W_R]),
/* --------------- pio interface ----------------------------- */
.zcp_debug_sel (zcp_debug_sel[7:0]),
.ecc_chk_bypass0 (ecc_chk_bypass0),
.double_bit_err0 (double_bit_err0),
.single_bit_err0 (single_bit_err0),
.last_line_err0 (last_line_err0),
.second_line_err0 (second_line_err0),
.first_line_err0 (first_line_err0),
.ecc_chk_bypass1 (ecc_chk_bypass1),
.double_bit_err1 (double_bit_err1),
.single_bit_err1 (single_bit_err1),
.last_line_err1 (last_line_err1),
.second_line_err1 (second_line_err1),
.first_line_err1 (first_line_err1),
.ecc_chk_bypass2 (ecc_chk_bypass2),
.double_bit_err2 (double_bit_err2),
.single_bit_err2 (single_bit_err2),
.last_line_err2 (last_line_err2),
.second_line_err2 (second_line_err2),
.first_line_err2 (first_line_err2),
.ecc_chk_bypass3 (ecc_chk_bypass3),
.double_bit_err3 (double_bit_err3),
.single_bit_err3 (single_bit_err3),
.last_line_err3 (last_line_err3),
.second_line_err3 (second_line_err3),
.first_line_err3 (first_line_err3),
.zcp_pio_ack (zcp_pio_ack),
.zcp_pio_rdata (zcp_pio_rdata[63:0]),
.zcp_pio_err (zcp_pio_err),
.zcp_pio_intr (zcp_pio_intr),
.default_rdc (default_rdc[4:0]),
.table_rdc (table_rdc[4:0]),
.zcp_32bit_mode (zcp_32bit_mode),
.par_chk_dis (par_chk_dis),
.ecc_chk_dis (ecc_chk_dis),
.dmaw_threshold (dmaw_threshold[10:0]),
.reset_cfifo0 (reset_cfifo0),
.reset_cfifo1 (reset_cfifo1),
.reset_cfifo2 (reset_cfifo2),
.reset_cfifo3 (reset_cfifo3),
.training_vector (training_vector[31:0]),
.slv_request (slv_request),
.slv_tt_index (slv_tt_index[11:0]),
.slv_ram_addr (slv_ram_addr[10:0]),
.slv_ram_wdata (slv_ram_wdata[`DN_R]),
.slv_ram_be (slv_ram_be[16:0]),
.va_ram_rwen (va_ram_rwen),
.va_ram_rwen0 (va_ram_rwen0),
.va_ram_rwen1 (va_ram_rwen1),
.va_ram_rwen2 (va_ram_rwen2),
.va_ram_rwen3 (va_ram_rwen3),
.va_ram_rwen4 (va_ram_rwen4),
.va_ram_rwen5 (va_ram_rwen5),
.va_ram_rwen6 (va_ram_rwen6),
.va_ram_rwen7 (va_ram_rwen7),
.va_ram_ren (va_ram_ren),
.va_ram_wen (va_ram_wen),
.va_ram_ren0 (va_ram_ren0),
.va_ram_wen0 (va_ram_wen0),
.va_ram_ren1 (va_ram_ren1),
.va_ram_wen1 (va_ram_wen1),
.va_ram_ren2 (va_ram_ren2),
.va_ram_wen2 (va_ram_wen2),
.va_ram_ren3 (va_ram_ren3),
.va_ram_wen3 (va_ram_wen3),
.va_ram_ren4 (va_ram_ren4),
.va_ram_wen4 (va_ram_wen4),
.va_ram_ren5 (va_ram_ren5),
.va_ram_wen5 (va_ram_wen5),
.va_ram_ren6 (va_ram_ren6),
.va_ram_wen6 (va_ram_wen6),
.va_ram_ren7 (va_ram_ren7),
.va_ram_wen7 (va_ram_wen7),
.st_ram_ren (st_ram_ren),
.st_ram_wen (st_ram_wen),
.dn_ram_ren (dn_ram_ren),
.dn_ram_wen (dn_ram_wen),
.cfifo_ren0 (cfifo_ren0),
.cfifo_wen0 (cfifo_wen0),
.cfifo_ren1 (cfifo_ren1),
.cfifo_wen1 (cfifo_wen1),
.cfifo_ren2 (cfifo_ren2),
.cfifo_wen2 (cfifo_wen2),
.cfifo_ren3 (cfifo_ren3),
.cfifo_wen3 (cfifo_wen3),
.tt_offset0 (tt_offset0[7:0]),
.tt_index_start0 (tt_index_start0[9:0]),
.tt_index_end0 (tt_index_end0[9:0]),
.tt_index_chk0 (tt_index_chk0),
.tt_offset1 (tt_offset1[7:0]),
.tt_index_start1 (tt_index_start1[9:0]),
.tt_index_end1 (tt_index_end1[9:0]),
.tt_index_chk1 (tt_index_chk1),
.tt_offset2 (tt_offset2[7:0]),
.tt_index_start2 (tt_index_start2[9:0]),
.tt_index_end2 (tt_index_end2[9:0]),
.tt_index_chk2 (tt_index_chk2),
.tt_offset3 (tt_offset3[7:0]),
.tt_index_start3 (tt_index_start3[9:0]),
.tt_index_end3 (tt_index_end3[9:0]),
.tt_index_chk3 (tt_index_chk3),
.ds_offset0 (ds_offset0[9:0]),
.ds_offset1 (ds_offset1[9:0]),
.ds_offset2 (ds_offset2[9:0]),
.ds_offset3 (ds_offset3[9:0]),
.chk_bit_data (chk_bit_data[16:0]),
.ram_access_state (ram_access_state[2:0]),
.slv_reset (slv_reset[21:0]),
.kickoff_tt_reg (kickoff_tt_reg),
.ififo_state (ififo_state[2:0]),
.tt_state (tt_state[3:0]),
.req_load_state (req_load_state[1:0]),
.req_unload_state (req_unload_state[1:0]),
.rsp_load_state (rsp_load_state[3:0]),
.rsp_unload_state (rsp_unload_state[3:0]),
.ififo_overrun (ififo_overrun),
.set_tt_program_err (set_tt_program_err),
.zcp_tt_index_err (zcp_tt_index_err),
.slv_tt_index_err (slv_tt_index_err),
.rsp_tt_index_err (rsp_tt_index_err),
.va_ram_perr (va_ram_perr),
.dn_ram_perr (dn_ram_perr),
.st_ram_perr (st_ram_perr),
.rrfifo_overrun (rrfifo_overrun),
.rrfifo_underrun (rrfifo_underrun),
.rspfifo_uncorr_err (rspfifo_uncorr_err),
.pio_clients_addr (pio_clients_addr[19:0]),
.pio_clients_rd (pio_clients_rd),
.pio_clients_wdata (pio_clients_wdata[31:0]),
.pio_zcp_sel (pio_zcp_sel),
.zcp_dmc_dat_err0 (zcp_dmc_dat_err0),
.zcp_dmc_dat_err1 (zcp_dmc_dat_err1),
.zcp_dmc_dat_err2 (zcp_dmc_dat_err2),
.zcp_dmc_dat_err3 (zcp_dmc_dat_err3),
.decode_default_rdc (decode_default_rdc),
.decode_table_rdc (decode_table_rdc),
.decode_zc_rdc (decode_zc_rdc),
.tt_rdc_reg (tt_rdc_reg[7:0]),
.fflp_rdc (fflp_rdc[7:0]),
.rdmc_zcp_func_num (rdmc_zcp_func_num[31:0]),
.page_handle (page_handle[`PMS15:0]),
.slv_accepted (slv_accepted),
.vram_slv_rdata (vram_slv_rdata[1023:0]),
.sram_slv_rdata (sram_slv_rdata[`ST_R]),
.dram_slv_rdata (dram_slv_rdata[`DN_R]),
.cfifo_slv_rdata0 (cfifo_slv_rdata0[`CFIFO_W_R]),
.cfifo_slv_rdata1 (cfifo_slv_rdata1[`CFIFO_W_R]),
.cfifo_slv_rdata2 (cfifo_slv_rdata2[`CFIFO_W_R]),
.cfifo_slv_rdata3 (cfifo_slv_rdata3[`CFIFO_W_R]));
niu_zcp_debug niu_zcp_debug (
/* ----- tt module ----- */
.va_ram_perr(va_ram_perr),
.dn_ram_perr(dn_ram_perr),
.st_ram_perr(st_ram_perr),
.tt_index_4va(tt_index_4va[11:0]),
.tt_index_4dn(tt_index_4dn[11:0]),
.tt_index_4st(tt_index_4st[11:0]),
.zcp_tt_index_err_lv(zcp_tt_index_err_lv),
.tt_index(tt_index[11:0]),
.wptr_HoQ_reg(wptr_HoQ_reg[15:0]),
.cross_q_end_reg(cross_q_end_reg),
.cross_4KB_reg(cross_4KB_reg),
.ring_size_reg(ring_size_reg[3:0]),
.ring_base_addr_reg(ring_base_addr_reg[38:0]),
.reach_buf_end_reg(reach_buf_end_reg),
.total_num_buf_requested_reg(total_num_buf_requested_reg[5:0]),
.wb_dn_reg(wb_dn_reg[`DN_R]),
.tt_rd_en0(tt_rd_en0), // loj
.tcp_payld_len(tcp_payld_len[15:0]),
.l2_hdr_len(l2_hdr_len[9:0]),
.l3_hdr_len(l3_hdr_len[9:0]),
.header_len(header_len[9:0]),
.TL(TL[`XPAN_TCP_SEQ_SPACE]), // MCP debug
.S(S[`XPAN_TCP_SEQ_SPACE]), // MCP debug
.payload_len(payload_len[`PKT_LEN_R]), // MCP debug
.header_delta(header_delta[`PKT_LEN_R]), // MCP debug
.UE(UE[`XPAN_TCP_SEQ_SPACE]), // MCP debug
.TL_bt_UE(TL_bt_UE), // MCP debug
.TL_eq_UE(TL_eq_UE), // MCP debug
.qual_ulp_end_fail_reg(qual_ulp_end_fail_reg), // MCP debug
.running_anchor_seq(running_anchor_seq[`TCP_SEQ_SPACE] ),// MCP debug
.first_byte_buf(first_byte_buf[5:0]), // MCP debug
.last_byte_buf(last_byte_buf[20:0]), // MCP debug
.index0(index0[5:0]), // MCP debug
.index1(index1[5:0]), // MCP debug
.index2(index2[5:0]), // MCP debug
.index3(index3[5:0]), // MCP debug
.win_ok(win_ok), // MCP debug
.ulp_end_fail(ulp_end_fail), // MCP debug
.mapped_in_fail(mapped_in_fail), // MCP debug
.dmaw_threshold_fail(dmaw_threshold_fail), // MCP debug
.unmap_on_left_oc(unmap_on_left_oc), // MCP debug
/* ----- req_intf module ----- */
.latch_rspfifo_dout(latch_rspfifo_dout),
.zcp_arb1_req(zcp_arb1_req),
.zcp_arb1_req_cmd(zcp_arb1_req_cmd[7:0]),
.zcp_arb1_req_address(zcp_arb1_req_address[63:0]),
.zcp_arb1_req_length(zcp_arb1_req_length[13:0]),
.zcp_arb1_req_port_num(zcp_arb1_req_port_num[1:0]),
.zcp_arb1_req_dma_num(zcp_arb1_req_dma_num[4:0]),
.arb1_zcp_req_accept(arb1_zcp_req_accept),
/* ----- rsp_intf module ----- */
.rsp_accepted(rsp_accepted),
.rsp_request(rsp_request),
.rsp_ram_wr_en2(rsp_ram_wr_en2),
.rsp_ram_wr_data(rsp_ram_wr_data[127:0]),
.rsp_tt_index(rsp_tt_index[11:0]),
.rsp_ram_mapped_in(rsp_ram_mapped_in[31:0]),
.rspfifo_ren3(rspfifo_ren3),
.rspfifo_rp(rspfifo_rp[`VAFIFO_A_PTR]),
.reqfifo_wp(reqfifo_wp[`VAFIFO_A_PTR]),
.rrfifo_rd_data(rrfifo_rd_data[`RRFIFO_W_R]),
// META RESPONSE control info
.meta_zcp_resp_ready(meta_zcp_resp_ready), // Resp Command Request
.meta_zcp_resp_cmd(meta_zcp_resp_cmd[7:0]), // cmd
.meta_zcp_resp_cmd_status(meta_zcp_resp_cmd_status[3:0]), // cmd
.meta_zcp_resp_length(meta_zcp_resp_length[11:0]), // Packet Length
.meta_zcp_resp_dma_num(meta_zcp_resp_dma_num[4:0]), // Channel Number
.meta_zcp_resp_client(meta_zcp_resp_client), // bit 0
.zcp_meta_resp_accept(zcp_meta_resp_accept), // bitwise client accept
.meta_zcp_data(meta_zcp_data[127:0]), // Transfer Data
.meta_zcp_resp_byteenable(meta_zcp_resp_byteenable[15:0]),// First/Last BE
.meta_zcp_data_status(meta_zcp_data_status[3:0]), // Transfer Data Status
.meta_zcp_data_valid(meta_zcp_data_valid), // Transfer Data Ack
.meta_zcp_resp_complete(meta_zcp_resp_complete), // bitwise ZCP_CLIENT[0]
.meta_zcp_resp_transfer_cmpl(meta_zcp_resp_transfer_cmpl),// bitwise ZCP_CLIENT[0]
/* ----- va ram module ----- */
.va_dout(va_dout[127:0]),
.va_ram_ren0(va_ram_ren0),
.va_ram_wen0(va_ram_wen0),
.va_ram_ren1(va_ram_ren1),
.va_ram_wen1(va_ram_wen1),
.va_ram_ren2(va_ram_ren2),
.va_ram_wen2(va_ram_wen2),
.va_ram_ren3(va_ram_ren3),
.va_ram_wen3(va_ram_wen3),
.va_ram_ren4(va_ram_ren4),
.va_ram_wen4(va_ram_wen4),
.va_ram_ren5(va_ram_ren5),
.va_ram_wen5(va_ram_wen5),
.va_ram_ren6(va_ram_ren6),
.va_ram_wen6(va_ram_wen6),
.va_ram_ren7(va_ram_ren7),
.va_ram_wen7(va_ram_wen7),
/* ----- dn ram module ----- */
.dn_dout(dn_dout[`DN_R]),
/* ----- st ram module ----- */
.st_dout(st_dout[`ST_R]),
.kickoff_tt_reg(kickoff_tt_reg),
.ififo_state(ififo_state[2:0]),
.tt_state(tt_state[3:0]),
.req_load_state(req_load_state),
.req_unload_state(req_unload_state),
.rsp_load_state(rsp_load_state),
.rsp_unload_state(rsp_unload_state),
.ram_access_state(ram_access_state[2:0]),
.default_rdc(default_rdc[4:0]),
.table_rdc(table_rdc[4:0]),
.fflp_data(fflp_data[`IFIFO_W_R]),
.zcp_debug_sel(zcp_debug_sel[7:0]),
.training_vector(training_vector[31:0]),
.zcp_debug_port(zcp_debug_port[31:0])
/* --------------- spare gates --------------- */
zcp_spare_gates zcp_top_spare_gates (
.di_nd3 ({1'h1, 1'h1, do_q[3]}),
.di_nd2 ({1'h1, 1'h1, do_q[2]}),
.di_nd1 ({1'h1, 1'h1, do_q[1]}),
.di_nd0 ({1'h1, 1'h1, do_q[0]}),
.rst ({reset,reset,reset,reset}),