Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / design / sys / iop / pcie_common / rtl / dmu_common_ccc.v
// ========== Copyright Header Begin ==========================================
//
// OpenSPARC T2 Processor File: dmu_common_ccc.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
// have any questions.
//
// ========== Copyright Header End ============================================
module dmu_common_ccc
(
csr_host_0_done,
csr_host_0_done_status,
csr_host_0_read_data,
csr_host_1_done,
csr_host_1_done_status,
csr_host_1_read_data,
csr_host_2_done,
csr_host_2_done_status,
csr_host_2_read_data,
csr_host_3_done,
csr_host_3_done_status,
csr_host_3_read_data,
csr_ring_out,
clk,
rst_l,
csr_ring_in,
csr_host_0_req,
csr_host_0_addr,
csr_host_0_data,
csr_host_0_wr,
csr_host_0_src_bus_id,
csr_host_1_req,
csr_host_1_addr,
csr_host_1_data,
csr_host_1_wr,
csr_host_1_src_bus_id,
csr_host_2_req,
csr_host_2_addr,
csr_host_2_data,
csr_host_2_wr,
csr_host_2_src_bus_id,
csr_host_3_req,
csr_host_3_addr,
csr_host_3_data,
csr_host_3_wr,
csr_host_3_src_bus_id,
csr_host_bit_check_mask,
done_timeout_value,
ccc_idle
);
// ----------------------------------------------------------------------------
// Parameters
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
// Ports
// ----------------------------------------------------------------------------
output csr_host_0_done;
output [`FIRE_CSR_STTS_BITS] csr_host_0_done_status;
output [`FIRE_CSR_DATA_BITS] csr_host_0_read_data;
output csr_host_1_done;
output [`FIRE_CSR_STTS_BITS] csr_host_1_done_status;
output [`FIRE_CSR_DATA_BITS] csr_host_1_read_data;
output csr_host_2_done;
output [`FIRE_CSR_STTS_BITS] csr_host_2_done_status;
output [`FIRE_CSR_DATA_BITS] csr_host_2_read_data;
output csr_host_3_done;
output [`FIRE_CSR_STTS_BITS] csr_host_3_done_status;
output [`FIRE_CSR_DATA_BITS] csr_host_3_read_data;
output [`FIRE_CSR_RING_BITS] csr_ring_out;
output ccc_idle;
input clk;
input rst_l;
input [`FIRE_CSR_RING_BITS] csr_ring_in;
input csr_host_0_req;
input [`FIRE_CSR_ADDR_BITS] csr_host_0_addr;
input [`FIRE_CSR_DATA_BITS] csr_host_0_data;
input csr_host_0_wr;
input [`FIRE_CSR_SRCB_BITS] csr_host_0_src_bus_id;
input csr_host_1_req;
input [`FIRE_CSR_ADDR_BITS] csr_host_1_addr;
input [`FIRE_CSR_DATA_BITS] csr_host_1_data;
input csr_host_1_wr;
input [`FIRE_CSR_SRCB_BITS] csr_host_1_src_bus_id;
input csr_host_2_req;
input [`FIRE_CSR_ADDR_BITS] csr_host_2_addr;
input [`FIRE_CSR_DATA_BITS] csr_host_2_data;
input csr_host_2_wr;
input [`FIRE_CSR_SRCB_BITS] csr_host_2_src_bus_id;
input csr_host_3_req;
input [`FIRE_CSR_ADDR_BITS] csr_host_3_addr;
input [`FIRE_CSR_DATA_BITS] csr_host_3_data;
input csr_host_3_wr;
input [`FIRE_CSR_SRCB_BITS] csr_host_3_src_bus_id;
input [`FIRE_CSR_ADDR_BITS] csr_host_bit_check_mask;
input [`FIRE_CSR_TOUT_BITS] done_timeout_value;
// ----------------------------------------------------------------------------
// Variables
// ----------------------------------------------------------------------------
wire csr_host_0_done;
wire [`FIRE_CSR_STTS_BITS] csr_host_0_done_status;
wire [`FIRE_CSR_DATA_BITS] csr_host_0_read_data;
wire csr_host_1_done;
wire [`FIRE_CSR_STTS_BITS] csr_host_1_done_status;
wire [`FIRE_CSR_DATA_BITS] csr_host_1_read_data;
wire csr_host_2_done;
wire [`FIRE_CSR_STTS_BITS] csr_host_2_done_status;
wire [`FIRE_CSR_DATA_BITS] csr_host_2_read_data;
wire csr_host_3_done;
wire [`FIRE_CSR_STTS_BITS] csr_host_3_done_status;
wire [`FIRE_CSR_DATA_BITS] csr_host_3_read_data;
wire [`FIRE_CSR_RING_BITS] csr_ring_out;
wire ccc_idle;
wire [`FIRE_CSR_SRCB_BITS] arb2cdp_sel;
wire arb2fsm_valid;
wire cdp2fsm_error;
wire [`FIRE_CSR_ADDR_BITS] cdp2pkt_addr;
wire [`FIRE_CSR_DATA_BITS] cdp2pkt_data;
wire [`FIRE_CSR_SRCB_BITS] cdp2pkt_src_bus;
wire cdp2pkt_wr;
wire [`FIRE_CSR_DATA_BITS] dep2cdp_data;
wire dep2fsm_acc_vio;
wire dep2fsm_done;
wire dep2fsm_mapped;
wire dep2fsm_valid;
wire fsm2arb_done;
wire [`FIRE_CSR_STTS_BITS] fsm2cdp_stts;
wire fsm2pkt_valid;
// ----------------------------------------------------------------------------
// Instantiations
// ----------------------------------------------------------------------------
dmu_common_ccc_arb arb
(
.clk (clk),
.rst_l (rst_l),
.csr_host_0_req (csr_host_0_req),
.csr_host_1_req (csr_host_1_req),
.csr_host_2_req (csr_host_2_req),
.csr_host_3_req (csr_host_3_req),
.fsm2arb_done (fsm2arb_done),
.csr_host_0_done (csr_host_0_done),
.csr_host_1_done (csr_host_1_done),
.csr_host_2_done (csr_host_2_done),
.csr_host_3_done (csr_host_3_done),
.arb2cdp_sel (arb2cdp_sel),
.arb2fsm_valid (arb2fsm_valid)
);
dmu_common_ccc_cdp cdp
(
.clk (clk),
.rst_l (rst_l),
.csr_host_0_addr (csr_host_0_addr),
.csr_host_0_data (csr_host_0_data),
.csr_host_0_src_bus_id (csr_host_0_src_bus_id),
.csr_host_0_wr (csr_host_0_wr),
.csr_host_1_addr (csr_host_1_addr),
.csr_host_1_data (csr_host_1_data),
.csr_host_1_src_bus_id (csr_host_1_src_bus_id),
.csr_host_1_wr (csr_host_1_wr),
.csr_host_2_addr (csr_host_2_addr),
.csr_host_2_data (csr_host_2_data),
.csr_host_2_src_bus_id (csr_host_2_src_bus_id),
.csr_host_2_wr (csr_host_2_wr),
.csr_host_3_addr (csr_host_3_addr),
.csr_host_3_data (csr_host_3_data),
.csr_host_3_src_bus_id (csr_host_3_src_bus_id),
.csr_host_3_wr (csr_host_3_wr),
.csr_host_bit_check_mask (csr_host_bit_check_mask),
.arb2cdp_sel (arb2cdp_sel),
.dep2cdp_data (dep2cdp_data),
.fsm2cdp_stts (fsm2cdp_stts),
.csr_host_0_done_status (csr_host_0_done_status),
.csr_host_0_read_data (csr_host_0_read_data),
.csr_host_1_done_status (csr_host_1_done_status),
.csr_host_1_read_data (csr_host_1_read_data),
.csr_host_2_done_status (csr_host_2_done_status),
.csr_host_2_read_data (csr_host_2_read_data),
.csr_host_3_done_status (csr_host_3_done_status),
.csr_host_3_read_data (csr_host_3_read_data),
.cdp2fsm_error (cdp2fsm_error),
.cdp2pkt_addr (cdp2pkt_addr),
.cdp2pkt_data (cdp2pkt_data),
.cdp2pkt_src_bus (cdp2pkt_src_bus),
.cdp2pkt_wr (cdp2pkt_wr)
);
dmu_common_ccc_dep dep
(
.clk (clk),
.rst_l (rst_l),
.csr_ring_in (csr_ring_in),
.dep2cdp_data (dep2cdp_data),
.dep2fsm_acc_vio (dep2fsm_acc_vio),
.dep2fsm_done (dep2fsm_done),
.dep2fsm_mapped (dep2fsm_mapped),
.dep2fsm_valid (dep2fsm_valid)
);
dmu_common_ccc_fsm fsm
(
.clk (clk),
.rst_l (rst_l),
.done_timeout_value (done_timeout_value),
.arb2fsm_valid (arb2fsm_valid),
.cdp2fsm_error (cdp2fsm_error),
.dep2fsm_acc_vio (dep2fsm_acc_vio),
.dep2fsm_done (dep2fsm_done),
.dep2fsm_mapped (dep2fsm_mapped),
.dep2fsm_valid (dep2fsm_valid),
.ccc_idle (ccc_idle),
.fsm2arb_done (fsm2arb_done),
.fsm2cdp_stts (fsm2cdp_stts),
.fsm2pkt_valid (fsm2pkt_valid)
);
dmu_common_ccc_pkt pkt
(
.clk (clk),
.rst_l (rst_l),
.cdp2pkt_addr (cdp2pkt_addr),
.cdp2pkt_data (cdp2pkt_data),
.cdp2pkt_src_bus (cdp2pkt_src_bus),
.cdp2pkt_wr (cdp2pkt_wr),
.fsm2pkt_valid (fsm2pkt_valid),
.csr_ring_out (csr_ring_out)
);
endmodule // dmu_common_ccc