Ignore:
Timestamp:
Jun 24, 2014, 10:15:26 AM (10 years ago)
Author:
cfuguet
Message:

tsar_generic_iob:

  • Replacing "ad-hoc" dspin_tsar router by standard dspin_router on the RAM interconnect. To do so, in IO clusters (clusters with IOB) two crossbars are implemented:

+ One for commands which interconnects MEMC and IOB to the

local interface of RAM CMD dspin_router.

+ One for responses which interconnects local interface of RAM

RSP dspin_router to MEMC and IOB.

  • Introducing modified vci_io_bridge component
  • Modifying IOX memory segments used by IOX network for routing:

+ bugfix: all segments of IOX interconnect must have

global id = 0.

+ Adding XICU segments with special attribute. This

attribute is used by IOB to determine if a command coming
from external DMA peripheral should be routed
through INT or RAM networks.

+ Using bit 32 of physical address to determine if an

external DMA command should be routed through IOB0
or IOB1.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h

    r714 r718  
    2626#include "vci_dspin_initiator_wrapper.h"
    2727#include "vci_dspin_target_wrapper.h"
    28 #include "dspin_router_tsar.h"
     28#include "dspin_router.h"
    2929#include "virtual_dspin_router.h"
    3030#include "vci_multi_dma.h"
     
    5757    soclib::caba::VciTarget<vci_param_ext>*            p_vci_iob_iox_tgt;
    5858
    59     // These ports are used to connect IOB to RAM network in top cell
    60     soclib::caba::DspinOutput<dspin_ram_cmd_width>*    p_dspin_iob_cmd_out; 
    61     soclib::caba::DspinInput<dspin_ram_rsp_width>*     p_dspin_iob_rsp_in; 
    62 
    6359    // These arrays of ports are used to connect the INT & RAM networks in top cell
    6460    soclib::caba::DspinOutput<dspin_int_cmd_width>**   p_dspin_int_cmd_out;
     
    116112    VciSignals<vci_param_ext>             signal_ram_vci_tgt_xram;
    117113
    118     // RAM network DSPIN signals between VCI/DSPIN wrappers and routers
     114    // RAM network DSPIN signals between VCI/DSPIN wrappers, RAM dspin crossbar
     115    // and routers
    119116    DspinSignals<dspin_ram_cmd_width>     signal_ram_dspin_cmd_xram_t;
    120117    DspinSignals<dspin_ram_rsp_width>     signal_ram_dspin_rsp_xram_t;
    121118    DspinSignals<dspin_ram_cmd_width>     signal_ram_dspin_cmd_memc_i;
    122119    DspinSignals<dspin_ram_rsp_width>     signal_ram_dspin_rsp_memc_i;
     120    DspinSignals<dspin_ram_cmd_width>     signal_ram_dspin_cmd_iob_i;
     121    DspinSignals<dspin_ram_rsp_width>     signal_ram_dspin_rsp_iob_i;
     122    DspinSignals<dspin_ram_cmd_width>     signal_ram_dspin_cmd_xbar;
     123    DspinSignals<dspin_ram_rsp_width>     signal_ram_dspin_rsp_xbar;
     124    DspinSignals<dspin_ram_cmd_width>     signal_ram_dspin_cmd_false;
     125    DspinSignals<dspin_ram_rsp_width>     signal_ram_dspin_rsp_false;
    123126 
    124127    //////////////////////////////////////
     
    166169                          dspin_ram_rsp_width>*       xram_ram_wt;
    167170   
    168     DspinRouterTsar<dspin_ram_cmd_width>*             ram_router_cmd;
    169     DspinRouterTsar<dspin_ram_rsp_width>*             ram_router_rsp;
     171    DspinRouter<dspin_ram_cmd_width>*                 ram_router_cmd;
     172    DspinRouter<dspin_ram_rsp_width>*                 ram_router_rsp;
     173
     174    DspinLocalCrossbar<dspin_ram_cmd_width>*          ram_xbar_cmd;
     175    DspinLocalCrossbar<dspin_ram_rsp_width>*          ram_xbar_rsp;
     176   
    170177
    171178    // IO Network Components (not instanciated in all clusters)
     
    177184                             dspin_ram_cmd_width,
    178185                             dspin_ram_rsp_width>*    iob_ram_wi;
    179    
     186
    180187    // cluster constructor
    181188    TsarIobCluster( sc_module_name                     insname,
     
    195202                    size_t                             l_width,       // l field  bits
    196203
    197                     size_t                             int_memc_tgtid,
    198                     size_t                             int_xicu_tgtid,
    199                     size_t                             int_mdma_tgtid,
    200                     size_t                             int_iobx_tgtid,
    201 
    202                     size_t                             int_proc_srcid,
    203                     size_t                             int_mdma_srcid,
    204                     size_t                             int_iobx_srcid,
    205 
    206                     size_t                             ext_xram_tgtid,
    207 
    208                     size_t                             ext_memc_srcid,
    209                     size_t                             ext_iobx_srcid,
     204                    size_t                             int_memc_tgt_id,
     205                    size_t                             int_xicu_tgt_id,
     206                    size_t                             int_mdma_tgt_id,
     207                    size_t                             int_iobx_tgt_id,
     208                    size_t                             int_proc_ini_id,
     209                    size_t                             int_mdma_ini_id,
     210                    size_t                             int_iobx_ini_id,
     211
     212                    size_t                             ram_xram_tgt_id,
     213                    size_t                             ram_memc_ini_id,
     214                    size_t                             ram_iobx_ini_id,
     215
     216                    bool                               is_io,
     217                    size_t                             iox_iobx_tgt_id,
     218                    size_t                             iox_iobx_ini_id,
    210219
    211220                    size_t                             memc_ways,
     
    226235                    bool                               iob0_debug_ok );
    227236
     237  protected:
     238
     239    SC_HAS_PROCESS(TsarIobCluster);
     240
     241    void init();
     242 
     243
    228244};
    229245
     
    231247
    232248#endif
     249
     250// Local Variables:
     251// tab-width: 3
     252// c-basic-offset: 3
     253// c-file-offsets:((innamespace . 0)(inline-open . 0))
     254// indent-tabs-mode: nil
     255// End:
     256
     257// vim: filetype=cpp:expandtab:shiftwidth=3:tabstop=3:softtabstop=3
     258//
Note: See TracChangeset for help on using the changeset viewer.