////////////////////////////////////////////////////////////////////////////// // File: simple_cluster.h // Author: Alain Greiner // Copyright: UPMC/LIP6 // Date : march 2013 // This program is released under the GNU public license ////////////////////////////////////////////////////////////////////////////// #ifndef TSARV5_SIMPLE_CLUSTER_H #define TSARV5_SIMPLE_CLUSTER_H #include #include #include #include #include #include #include "dspin_packet_generator.h" #include "dspin_local_crossbar.h" #include "vci_dspin_initiator_wrapper.h" #include "vci_dspin_target_wrapper.h" #include "virtual_dspin_router.h" #include "vci_synthetic_target.h" #include "vci_synthetic_initiator.h" namespace soclib { namespace caba { /////////////////////////////////////////////////////////////////////////// template class SimpleCluster /////////////////////////////////////////////////////////////////////////// : public soclib::caba::BaseModule { public: // Ports sc_in p_clk; sc_in p_resetn; soclib::caba::DspinOutput **p_cmd_out; soclib::caba::DspinInput **p_cmd_in; soclib::caba::DspinOutput **p_rsp_out; soclib::caba::DspinInput **p_rsp_in; // DSPIN signals between DSPIN routers and local_crossbars DspinSignals signal_dspin_cmd_l2g_d; DspinSignals signal_dspin_cmd_g2l_d; DspinSignals signal_dspin_cmd_l2g_c; DspinSignals signal_dspin_cmd_g2l_c; DspinSignals signal_dspin_rsp_l2g_d; DspinSignals signal_dspin_rsp_g2l_d; DspinSignals signal_dspin_rsp_l2g_c; DspinSignals signal_dspin_rsp_g2l_c; // signals between VCI components and VCI/DSPIN wrappers VciSignals signal_vci_ini; VciSignals signal_vci_tgt; // DSPIN signals between DSPIN component and local crossbars DspinSignals signal_dspin_ini_cmd_d; DspinSignals signal_dspin_tgt_cmd_d; DspinSignals signal_dspin_ini_rsp_d; DspinSignals signal_dspin_tgt_rsp_d; DspinSignals signal_dspin_ini_cmd_c; DspinSignals signal_dspin_tgt_cmd_c; DspinSignals signal_dspin_ini_rsp_c; DspinSignals signal_dspin_tgt_rsp_c; // pointers on hardware components VciSyntheticInitiator* ini_d; VciSyntheticTarget* tgt_d; VciDspinInitiatorWrapper* w_ini_d; VciDspinTargetWrapper* w_tgt_d; DspinPacketGenerator* ini_c; DspinPacketGenerator* tgt_c; DspinLocalCrossbar* xbar_cmd_d; DspinLocalCrossbar* xbar_rsp_d; DspinLocalCrossbar* xbar_cmd_c; DspinLocalCrossbar* xbar_rsp_c; VirtualDspinRouter* router_cmd; VirtualDspinRouter* router_rsp; // constructor SimpleCluster(sc_module_name name, size_t x, // x coordinate size_t y, // y coordinate size_t x_width, // x field number of bits size_t y_width, // y field number of bits size_t load_d, // load (* 1000) on direct network size_t plen_d, // packet length on direct network size_t load_ini_c, // load (* 1000) on cc network 40 size_t plen_ini_c, // packet length on cc network 40 size_t load_tgt_c, // load (* 1000) on cc network 33 size_t plen_tgt_c, // packet length on cc network 33 size_t bcp_ini, // broadcast period on cc network 40 size_t bcp_tgt ); // broadcast period on cc network 33 }; }} // end namespaces #endif