* ========== Copyright Header Begin ==========================================
* OpenSPARC T2 Processor File: peu_top.h
* 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
* 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 ============================================
#ifndef INC_peu_top_hpp__
#define INC_peu_top_hpp__
#include "peu_defines.hpp"
sc_in
<bool> d2p_ihb_clk
; // IHB clk
sc_in
<bool> d2p_ihb_rd
; // Read En
sc_in
<sc_bv
<D2P_IHB_ADDR_WDTH
> > d2p_ihb_addr
; // Addr
sc_out
<sc_bv
<P2D_IHB_DATA_WDTH
> > p2d_ihb_data
; // Data
sc_out
<sc_bv
<P2D_IHB_DPAR_WDTH
> > p2d_ihb_dpar
; // Data Parity
sc_out
<sc_bv
<P2D_IHB_WPTR_WDTH
> > p2d_ihb_wptr
; // Wr Ptr (GC)
sc_in
<bool> d2p_idb_clk
; // IDB clk
sc_in
<bool> d2p_idb_rd
; // Read En
sc_in
<sc_bv
<D2P_IDB_ADDR_WDTH
> > d2p_idb_addr
; // Addr
sc_out
<sc_bv
<P2D_IDB_DATA_WDTH
> > p2d_idb_data
; // Data
sc_out
<sc_bv
<P2D_IDB_DPAR_WDTH
> > p2d_idb_dpar
; // Data Parity
Ingress Buffer Credit Interface
sc_in
<bool> d2p_ibc_req
; // Ingr cr req
sc_out
<bool> p2d_ibc_ack
; // Ack
sc_in
<sc_bv
<D2P_IBC_NHC_WDTH
> > d2p_ibc_nhc
; // NPH credits
sc_in
<sc_bv
<D2P_IBC_PHC_WDTH
> > d2p_ibc_phc
; // PH credits
sc_in
<sc_bv
<D2P_IBC_PDC_WDTH
> > d2p_ibc_pdc
; // PD credits
Completion Timeout Interface
sc_out
<bool> p2d_cto_req
;
sc_out
<sc_bv
<P2D_CTO_TAG_WDTH
> > p2d_cto_tag
;
sc_out
<bool> p2d_drain
; // Drain signal to ILU
sc_out
<sc_bv
<P2D_MPS_WDTH
> > p2d_mps
; // Max Payld size
sc_out
<bool> p2d_ue_int
; // uncorrectable error
sc_out
<bool> p2d_ce_int
; // correctable error
sc_out
<bool> p2d_oe_int
; // other error
Buffer Management Interface (all pointer values are gray coded)
sc_in
<sc_bv
<D2P_ECH_WPTR_WDTH
> > d2p_ech_wptr
; // Cpl buf EHB wr ptr
sc_out
<sc_bv
<P2D_ECH_RPTR_WDTH
> > p2d_ech_rptr
; // Cpl buf EHB rd ptr
sc_in
<sc_bv
<D2P_ERH_WPTR_WDTH
> > d2p_erh_wptr
; // Req buf EHB wr ptr
sc_out
<sc_bv
<P2D_ERH_RPTR_WDTH
> > p2d_erh_rptr
; // Req buf EHB rd ptr
sc_out
<sc_bv
<P2D_ECD_RPTR_WDTH
> > p2d_ecd_rptr
; // DMA cpl buf rd ptr
sc_out
<sc_bv
<P2D_ERD_RPTR_WDTH
> > p2d_erd_rptr
; // PIO Wr buf rd ptr
sc_in
<bool> d2p_ehb_we
; // EHB Write
sc_in
<sc_bv
<D2P_EHB_ADDR_WDTH
> > d2p_ehb_addr
; // EHB Wr ptr
sc_in
<sc_bv
<D2P_EHB_DATA_WDTH
> > d2p_ehb_data
; // EHB record
sc_in
<sc_bv
<D2P_EHB_DPAR_WDTH
> > d2p_ehb_dpar
; // EHB Wd Parity
sc_in
<bool> d2p_edb_we
; // EDB Write
sc_in
<sc_bv
<D2P_EDB_ADDR_WDTH
> > d2p_edb_addr
; // EDB Wr ptr
sc_in
<sc_bv
<D2P_EDB_DATA_WDTH
> > d2p_edb_data
; // EDB record
sc_in
<sc_bv
<D2P_EDB_DPAR_WDTH
> > d2p_edb_dpar
; // EDB Wd Parity
sc_in
<sc_bv
<D2P_CSR_RING_WDTH
> > d2p_csr_rcd
;
sc_in
<sc_bv
<CSR_RING_WDTH
> > dcd2csr_ring_data
;
sc_out
<sc_bv
<CSR_RING_WDTH
> > csr2dcs_ring_data
;
// Inputs from the deserializer
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in0
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in1
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in2
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in3
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in4
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in5
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in6
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in7
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in8
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in9
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in0_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in1_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in2_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in3_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in4_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in5_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in6_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in7_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in8_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in9_b
;
sc_out
<bool > sym_boundary
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in
; // For input going into the ltssm
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in_bar
; // For input going into the ltssm
sc_in
<bool> link_clk
; // Input clk to ltssm
// Outputs to the serializer
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data0
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data1
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data2
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data3
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data4
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data5
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data6
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data7
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data8
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data9
;
sc_out
<bool> ts1_pattern_received
;
sc_in
<bool> frm_boundary_deser
;
sc_out
<sc_lv
<LINK_WIDTH
> > lane_out
; // For output going from the ltssm
sc_out
<sc_lv
<LINK_WIDTH
> > lane_out_bar
; // For output going from the ltssm
sc_out
<bool> init_done
; // For init done signal from ltssm
sc_out
<bool> init_done_rx
; // For init done signal from ltssm
sc_out
<bool> frame_boundary_ltssm_rx
; // Output frame boundary from LTSSM
sc_out
<bool> frame_boundary_ltssm_tx
; // Output frame boundary from LTSSM
sc_out
<bool> last_idle_frame
;
sc_out
<bool> last_idle_frame_retraining
;
sc_out
<bool> start_reinit
;
sc_out
<bool> stage_reinit
;
sc_signal
<bool> q_not_empty
;
sc_signal
<bool> disable_scrambling
;
/// CSR Omni Interface Signals
sc_out
<sc_bv
<64> > tlu_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ilu_err_rw1s_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > ilu_err_rw1s_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_sts_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_sts_csrbus_omni_data
;
sc_out
<sc_bv
<64> > trn_off_csrbus_read_data
;
sc_in
<sc_bv
<64> > trn_off_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_ici_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_ici_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_diag_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_diag_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_ecc_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_ecc_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_ecl_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_ecl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_erb_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_erb_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_ica_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_ica_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_icr_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_icr_csrbus_omni_data
;
sc_out
<sc_bv
<64> > oe_log_csrbus_read_data
;
sc_in
<sc_bv
<64> > oe_log_csrbus_omni_data
;
sc_out
<sc_bv
<64> > oe_int_en_csrbus_read_data
;
sc_in
<sc_bv
<64> > oe_int_en_csrbus_omni_data
;
sc_out
<sc_bv
<64> > oe_en_err_csrbus_read_data
;
sc_in
<sc_bv
<64> > oe_en_err_csrbus_omni_data
;
sc_out
<sc_bv
<64> > oe_err_rw1c_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > oe_err_rw1c_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > oe_err_rw1s_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > oe_err_rw1s_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > roe_hdr1_csrbus_read_data
;
sc_in
<sc_bv
<64> > roe_hdr1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > roe_hdr2_csrbus_read_data
;
sc_in
<sc_bv
<64> > roe_hdr2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > toe_hdr1_csrbus_read_data
;
sc_in
<sc_bv
<64> > toe_hdr1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > toe_hdr2_csrbus_read_data
;
sc_in
<sc_bv
<64> > toe_hdr2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_prfc_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_prfc_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_prf0_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_prf0_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_prf1_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_prf1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_prf2_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_prf2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_dbg_sel_a_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_dbg_sel_a_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_dbg_sel_b_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_dbg_sel_b_csrbus_omni_data
;
sc_out
<sc_bv
<64> > dev_cap_csrbus_read_data
;
sc_in
<sc_bv
<64> > dev_cap_csrbus_omni_data
;
sc_out
<sc_bv
<64> > dev_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > dev_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > dev_sts_csrbus_read_data
;
sc_in
<sc_bv
<64> > dev_sts_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lnk_cap_csrbus_read_data
;
sc_in
<sc_bv
<64> > lnk_cap_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lnk_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > lnk_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lnk_sts_csrbus_read_data
;
sc_in
<sc_bv
<64> > lnk_sts_csrbus_omni_data
;
sc_out
<sc_bv
<64> > slt_cap_csrbus_read_data
;
sc_in
<sc_bv
<64> > slt_cap_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ue_log_csrbus_read_data
;
sc_in
<sc_bv
<64> > ue_log_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ue_int_en_csrbus_read_data
;
sc_in
<sc_bv
<64> > ue_int_en_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ue_en_err_csrbus_read_data
;
sc_in
<sc_bv
<64> > ue_en_err_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ue_err_rw1c_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > ue_err_rw1c_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ue_err_rw1s_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > ue_err_rw1s_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > rue_hdr1_csrbus_read_data
;
sc_in
<sc_bv
<64> > rue_hdr1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > rue_hdr2_csrbus_read_data
;
sc_in
<sc_bv
<64> > rue_hdr2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tue_hdr1_csrbus_read_data
;
sc_in
<sc_bv
<64> > tue_hdr1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tue_hdr2_csrbus_read_data
;
sc_in
<sc_bv
<64> > tue_hdr2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ce_log_csrbus_read_data
;
sc_in
<sc_bv
<64> > ce_log_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ce_int_en_csrbus_read_data
;
sc_in
<sc_bv
<64> > ce_int_en_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ce_en_err_csrbus_read_data
;
sc_in
<sc_bv
<64> > ce_en_err_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ce_err_rw1c_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > ce_err_rw1c_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ce_err_rw1s_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > ce_err_rw1s_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > peu_dlpl_serdes_rev_csrbus_read_data
;
sc_in
<sc_bv
<64> > peu_dlpl_serdes_rev_csrbus_omni_data
;
sc_out
<sc_bv
<64> > acknak_thresh_csrbus_read_data
;
sc_in
<sc_bv
<64> > acknak_thresh_csrbus_omni_data
;
sc_out
<sc_bv
<64> > acknak_timer_csrbus_read_data
;
sc_in
<sc_bv
<64> > acknak_timer_csrbus_omni_data
;
sc_out
<sc_bv
<64> > replay_tim_thresh_csrbus_read_data
;
sc_in
<sc_bv
<64> > replay_tim_thresh_csrbus_omni_data
;
sc_out
<sc_bv
<64> > replay_timer_csrbus_read_data
;
sc_in
<sc_bv
<64> > replay_timer_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ven_dllp_msg_csrbus_read_data
;
sc_in
<sc_bv
<64> > ven_dllp_msg_csrbus_omni_data
;
sc_out
<sc_bv
<64> > force_ltssm_csrbus_read_data
;
sc_in
<sc_bv
<64> > force_ltssm_csrbus_omni_data
;
sc_out
<sc_bv
<64> > link_cfg_csrbus_read_data
;
sc_in
<sc_bv
<64> > link_cfg_csrbus_omni_data
;
sc_out
<sc_bv
<64> > link_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > link_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lane_skew_csrbus_read_data
;
sc_in
<sc_bv
<64> > lane_skew_csrbus_omni_data
;
sc_out
<sc_bv
<64> > symbol_num_csrbus_read_data
;
sc_in
<sc_bv
<64> > symbol_num_csrbus_omni_data
;
sc_out
<sc_bv
<64> > symbol_timer_csrbus_read_data
;
sc_in
<sc_bv
<64> > symbol_timer_csrbus_omni_data
;
sc_out
<sc_bv
<64> > core_status_csrbus_read_data
;
sc_in
<sc_bv
<64> > core_status_csrbus_omni_data
;
sc_out
<sc_bv
<64> > event_err_log_en_csrbus_read_data
;
sc_in
<sc_bv
<64> > event_err_log_en_csrbus_omni_data
;
sc_out
<sc_bv
<64> > event_err_int_en_csrbus_read_data
;
sc_in
<sc_bv
<64> > event_err_int_en_csrbus_omni_data
;
sc_out
<sc_bv
<64> > event_err_int_sts_csrbus_read_data
;
sc_in
<sc_bv
<64> > event_err_int_sts_csrbus_omni_data
;
sc_out
<sc_bv
<64> > event_err_sts_clr_rw1c_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > event_err_sts_clr_rw1c_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > event_err_sts_clr_rw1s_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > event_err_sts_clr_rw1s_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lnk_bit_err_cnt_1_csrbus_read_data
;
sc_in
<sc_bv
<64> > lnk_bit_err_cnt_1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lnk_bit_err_cnt_2_csrbus_read_data
;
sc_in
<sc_bv
<64> > lnk_bit_err_cnt_2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_pll_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_pll_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_receiver_lane_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_receiver_lane_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_receiver_lane_status_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_receiver_lane_status_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_xmitter_lane_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_xmitter_lane_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_xmitter_lane_status_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_xmitter_lane_status_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_macro_test_cfg_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_macro_test_cfg_csrbus_omni_data
;
peu_top ( sc_module_name module_name
);
#include "pcie_common/config.hpp"
#include "peu_csr_omni.h"
#include "pcie_common/tlm/tlm_data_channel.hpp"
#include "pcie_common/tlm/tlm_fifo_channel.hpp"
using tlm::tlm_fifo_channel
;
class peu_top
: public sc_module
typedef tlm_data_channel
< RefPciePacket
> data_channel
;
peu_top ( sc_module_name module_name
);
sc_in
<bool> d2p_ihb_clk
; // IHB clk
sc_in
<bool> d2p_ihb_rd
; // Read En
sc_in
<sc_bv
<D2P_IHB_ADDR_WDTH
> > d2p_ihb_addr
; // Addr
sc_out
<sc_bv
<P2D_IHB_DATA_WDTH
> > p2d_ihb_data
; // Data
sc_out
<sc_bv
<P2D_IHB_DPAR_WDTH
> > p2d_ihb_dpar
; // Data Parity
sc_out
<sc_bv
<P2D_IHB_WPTR_WDTH
> > p2d_ihb_wptr
; // Wr Ptr (GC)
sc_in
<bool> d2p_idb_clk
; // IDB clk
sc_in
<bool> d2p_idb_rd
; // Read En
sc_in
<sc_bv
<D2P_IDB_ADDR_WDTH
> > d2p_idb_addr
; // Addr
sc_out
<sc_bv
<P2D_IDB_DATA_WDTH
> > p2d_idb_data
; // Data
sc_out
<sc_bv
<P2D_IDB_DPAR_WDTH
> > p2d_idb_dpar
; // Data Parity
Ingress Buffer Credit Interface
sc_in
<bool> d2p_ibc_req
; // Ingr cr req
sc_out
<bool> p2d_ibc_ack
; // Ack
sc_in
<sc_bv
<D2P_IBC_NHC_WDTH
> > d2p_ibc_nhc
; // NPH credits
sc_in
<sc_bv
<D2P_IBC_PHC_WDTH
> > d2p_ibc_phc
; // PH credits
sc_in
<sc_bv
<D2P_IBC_PDC_WDTH
> > d2p_ibc_pdc
; // PD credits
Completion Timeout Interface
sc_out
<bool> p2d_cto_req
;
sc_out
<sc_bv
<P2D_CTO_TAG_WDTH
> > p2d_cto_tag
;
sc_out
<bool> p2d_drain
; // Drain signal to ILU
sc_out
<sc_bv
<P2D_MPS_WDTH
> > p2d_mps
; // Max Payld size
sc_out
<bool> p2d_ue_int
; // uncorrectable error
sc_out
<bool> p2d_ce_int
; // correctable error
sc_out
<bool> p2d_oe_int
; // other error
Buffer Management Interface (all pointer values are gray coded)
sc_in
<sc_bv
<D2P_ECH_WPTR_WDTH
> > d2p_ech_wptr
; // Cpl buf EHB wr ptr
sc_out
<sc_bv
<P2D_ECH_RPTR_WDTH
> > p2d_ech_rptr
; // Cpl buf EHB rd ptr
sc_in
<sc_bv
<D2P_ERH_WPTR_WDTH
> > d2p_erh_wptr
; // Req buf EHB wr ptr
sc_out
<sc_bv
<P2D_ERH_RPTR_WDTH
> > p2d_erh_rptr
; // Req buf EHB rd ptr
sc_out
<sc_bv
<P2D_ECD_RPTR_WDTH
> > p2d_ecd_rptr
; // DMA cpl buf rd ptr
sc_out
<sc_bv
<P2D_ERD_RPTR_WDTH
> > p2d_erd_rptr
; // PIO Wr buf rd ptr
sc_in
<bool> d2p_ehb_we
; // EHB Write
sc_in
<sc_bv
<D2P_EHB_ADDR_WDTH
> > d2p_ehb_addr
; // EHB Wr ptr
sc_in
<sc_bv
<D2P_EHB_DATA_WDTH
> > d2p_ehb_data
; // EHB record
sc_in
<sc_bv
<D2P_EHB_DPAR_WDTH
> > d2p_ehb_dpar
; // EHB Wd Parity
sc_in
<bool> d2p_edb_we
; // EDB Write
sc_in
<sc_bv
<D2P_EDB_ADDR_WDTH
> > d2p_edb_addr
; // EDB Wr ptr
sc_in
<sc_bv
<D2P_EDB_DATA_WDTH
> > d2p_edb_data
; // EDB record
sc_in
<sc_bv
<D2P_EDB_DPAR_WDTH
> > d2p_edb_dpar
; // EDB Wd Parity
sc_in
<sc_bv
<D2P_CSR_RING_WDTH
> > d2p_csr_rcd
;
sc_in
<sc_bv
<CSR_RING_WDTH
> > dcd2csr_ring_data
;
sc_out
<sc_bv
<CSR_RING_WDTH
> > csr2dcs_ring_data
;
// Inputs from the deserializer
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in0
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in1
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in2
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in3
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in4
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in5
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in6
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in7
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in8
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in9
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in0_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in1_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in2_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in3_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in4_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in5_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in6_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in7_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in8_b
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in9_b
;
sc_in
<bool> frm_boundary_deser
;
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in
; // For input going into the ltssm
sc_in
<sc_lv
<LINK_WIDTH
> > lane_in_bar
; // For input going into the ltssm
sc_in
<bool> link_clk
; // Input clk to ltssm
//Outputs to the serializer
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data0
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data1
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data2
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data3
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data4
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data5
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data6
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data7
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data8
;
sc_out
<sc_lv
<LINK_WIDTH
> > encoded_data9
;
sc_out
<bool> ts1_pattern_received
;
sc_out
<bool > sym_boundary
;
sc_out
<sc_lv
<LINK_WIDTH
> > lane_out
; // For output going from the ltssm
sc_out
<sc_lv
<LINK_WIDTH
> > lane_out_bar
; // For output going from the ltssm
sc_out
<bool> init_done
; // For init done signal from ltssm
sc_out
<bool> init_done_rx
; // For init done signal from ltssm
sc_out
<bool> frame_boundary_ltssm_rx
; // Output frame boundary from LTSSM
sc_out
<bool> frame_boundary_ltssm_tx
; // Output frame boundary from LTSSM
sc_out
<bool> last_idle_frame
;
sc_out
<bool> last_idle_frame_retraining
;
sc_out
<bool> start_reinit
;
sc_out
<bool> stage_reinit
;
sc_signal
<bool> disable_scrambling
;
sc_signal
<bool> q_not_empty
;
/// CSR Omni Interface Signals
sc_out
<sc_bv
<64> > tlu_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ilu_err_rw1s_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > ilu_err_rw1s_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_sts_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_sts_csrbus_omni_data
;
sc_out
<sc_bv
<64> > trn_off_csrbus_read_data
;
sc_in
<sc_bv
<64> > trn_off_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_ici_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_ici_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_diag_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_diag_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_ecc_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_ecc_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_ecl_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_ecl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_erb_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_erb_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_ica_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_ica_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_icr_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_icr_csrbus_omni_data
;
sc_out
<sc_bv
<64> > oe_log_csrbus_read_data
;
sc_in
<sc_bv
<64> > oe_log_csrbus_omni_data
;
sc_out
<sc_bv
<64> > oe_int_en_csrbus_read_data
;
sc_in
<sc_bv
<64> > oe_int_en_csrbus_omni_data
;
sc_out
<sc_bv
<64> > oe_en_err_csrbus_read_data
;
sc_in
<sc_bv
<64> > oe_en_err_csrbus_omni_data
;
sc_out
<sc_bv
<64> > oe_err_rw1c_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > oe_err_rw1c_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > oe_err_rw1s_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > oe_err_rw1s_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > roe_hdr1_csrbus_read_data
;
sc_in
<sc_bv
<64> > roe_hdr1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > roe_hdr2_csrbus_read_data
;
sc_in
<sc_bv
<64> > roe_hdr2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > toe_hdr1_csrbus_read_data
;
sc_in
<sc_bv
<64> > toe_hdr1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > toe_hdr2_csrbus_read_data
;
sc_in
<sc_bv
<64> > toe_hdr2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_prfc_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_prfc_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_prf0_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_prf0_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_prf1_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_prf1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_prf2_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_prf2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_dbg_sel_a_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_dbg_sel_a_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tlu_dbg_sel_b_csrbus_read_data
;
sc_in
<sc_bv
<64> > tlu_dbg_sel_b_csrbus_omni_data
;
sc_out
<sc_bv
<64> > dev_cap_csrbus_read_data
;
sc_in
<sc_bv
<64> > dev_cap_csrbus_omni_data
;
sc_out
<sc_bv
<64> > dev_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > dev_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > dev_sts_csrbus_read_data
;
sc_in
<sc_bv
<64> > dev_sts_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lnk_cap_csrbus_read_data
;
sc_in
<sc_bv
<64> > lnk_cap_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lnk_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > lnk_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lnk_sts_csrbus_read_data
;
sc_in
<sc_bv
<64> > lnk_sts_csrbus_omni_data
;
sc_out
<sc_bv
<64> > slt_cap_csrbus_read_data
;
sc_in
<sc_bv
<64> > slt_cap_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ue_log_csrbus_read_data
;
sc_in
<sc_bv
<64> > ue_log_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ue_int_en_csrbus_read_data
;
sc_in
<sc_bv
<64> > ue_int_en_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ue_en_err_csrbus_read_data
;
sc_in
<sc_bv
<64> > ue_en_err_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ue_err_rw1c_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > ue_err_rw1c_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ue_err_rw1s_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > ue_err_rw1s_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > rue_hdr1_csrbus_read_data
;
sc_in
<sc_bv
<64> > rue_hdr1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > rue_hdr2_csrbus_read_data
;
sc_in
<sc_bv
<64> > rue_hdr2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tue_hdr1_csrbus_read_data
;
sc_in
<sc_bv
<64> > tue_hdr1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > tue_hdr2_csrbus_read_data
;
sc_in
<sc_bv
<64> > tue_hdr2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ce_log_csrbus_read_data
;
sc_in
<sc_bv
<64> > ce_log_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ce_int_en_csrbus_read_data
;
sc_in
<sc_bv
<64> > ce_int_en_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ce_en_err_csrbus_read_data
;
sc_in
<sc_bv
<64> > ce_en_err_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ce_err_rw1c_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > ce_err_rw1c_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ce_err_rw1s_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > ce_err_rw1s_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > peu_dlpl_serdes_rev_csrbus_read_data
;
sc_in
<sc_bv
<64> > peu_dlpl_serdes_rev_csrbus_omni_data
;
sc_out
<sc_bv
<64> > acknak_thresh_csrbus_read_data
;
sc_in
<sc_bv
<64> > acknak_thresh_csrbus_omni_data
;
sc_out
<sc_bv
<64> > acknak_timer_csrbus_read_data
;
sc_in
<sc_bv
<64> > acknak_timer_csrbus_omni_data
;
sc_out
<sc_bv
<64> > replay_tim_thresh_csrbus_read_data
;
sc_in
<sc_bv
<64> > replay_tim_thresh_csrbus_omni_data
;
sc_out
<sc_bv
<64> > replay_timer_csrbus_read_data
;
sc_in
<sc_bv
<64> > replay_timer_csrbus_omni_data
;
sc_out
<sc_bv
<64> > ven_dllp_msg_csrbus_read_data
;
sc_in
<sc_bv
<64> > ven_dllp_msg_csrbus_omni_data
;
sc_out
<sc_bv
<64> > force_ltssm_csrbus_read_data
;
sc_in
<sc_bv
<64> > force_ltssm_csrbus_omni_data
;
sc_out
<sc_bv
<64> > link_cfg_csrbus_read_data
;
sc_in
<sc_bv
<64> > link_cfg_csrbus_omni_data
;
sc_out
<sc_bv
<64> > link_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > link_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lane_skew_csrbus_read_data
;
sc_in
<sc_bv
<64> > lane_skew_csrbus_omni_data
;
sc_out
<sc_bv
<64> > symbol_num_csrbus_read_data
;
sc_in
<sc_bv
<64> > symbol_num_csrbus_omni_data
;
sc_out
<sc_bv
<64> > symbol_timer_csrbus_read_data
;
sc_in
<sc_bv
<64> > symbol_timer_csrbus_omni_data
;
sc_out
<sc_bv
<64> > core_status_csrbus_read_data
;
sc_in
<sc_bv
<64> > core_status_csrbus_omni_data
;
sc_out
<sc_bv
<64> > event_err_log_en_csrbus_read_data
;
sc_in
<sc_bv
<64> > event_err_log_en_csrbus_omni_data
;
sc_out
<sc_bv
<64> > event_err_int_en_csrbus_read_data
;
sc_in
<sc_bv
<64> > event_err_int_en_csrbus_omni_data
;
sc_out
<sc_bv
<64> > event_err_int_sts_csrbus_read_data
;
sc_in
<sc_bv
<64> > event_err_int_sts_csrbus_omni_data
;
sc_out
<sc_bv
<64> > event_err_sts_clr_rw1c_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > event_err_sts_clr_rw1c_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > event_err_sts_clr_rw1s_alias_csrbus_read_data
;
sc_in
<sc_bv
<64> > event_err_sts_clr_rw1s_alias_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lnk_bit_err_cnt_1_csrbus_read_data
;
sc_in
<sc_bv
<64> > lnk_bit_err_cnt_1_csrbus_omni_data
;
sc_out
<sc_bv
<64> > lnk_bit_err_cnt_2_csrbus_read_data
;
sc_in
<sc_bv
<64> > lnk_bit_err_cnt_2_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_pll_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_pll_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_receiver_lane_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_receiver_lane_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_receiver_lane_status_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_receiver_lane_status_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_xmitter_lane_ctl_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_xmitter_lane_ctl_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_xmitter_lane_status_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_xmitter_lane_status_csrbus_omni_data
;
sc_out
<sc_bv
<64> > serdes_macro_test_cfg_csrbus_read_data
;
sc_in
<sc_bv
<64> > serdes_macro_test_cfg_csrbus_omni_data
;
csr_top
<NUM_CSR_PORTS
> *csr_i
;
pcie_top
*pcie_i
; // pcie_top
peu_csr_omni
*peu_csr_omni_i
;
data_channel
*tl_in_data_chnl
;
data_channel
*tl_out_data_chnl
;
data_channel
*tl_req_data_chnl
;
data_channel
*tl_preq_data_chnl
;
data_channel
*tl_npreq_data_chnl
;
data_channel
*tl_cmpl_data_chnl
;
data_channel
*tl_tc0_data_chnl
;
data_channel
*tl_tc1_data_chnl
;
data_channel
*tl_tc2_data_chnl
;
data_channel
*tl_tc3_data_chnl
;
data_channel
*tl_tc4_data_chnl
;
data_channel
*tl_tc5_data_chnl
;
data_channel
*tl_tc6_data_chnl
;
data_channel
*tl_tc7_data_chnl
;
tlm_fifo_channel
<sc_uint
<5> > *tl_cto_req_chnl
;
#endif //INC_peu_top_hpp__