Changeset 693


Ignore:
Timestamp:
May 17, 2014, 11:54:12 AM (11 years ago)
Author:
cfuguet
Message:

tsar_generic_iob:

  • Replacing tsar_iob_cluster dspin_local_crossbar by vci_local_crossbar (Direct Network)
  • Display real simulation clock frequency in top.cpp
Location:
trunk/platforms/tsar_generic_iob
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsar_generic_iob/top.cpp

    r618 r693  
    214214#define WEST                  3
    215215
    216 #define cluster(x,y)   ((y) + (x<<4))
     216#define cluster(x,y)   ((y) + ((x) << 4))
    217217
    218218////////////////////////////////////////////////////////////
     
    13931393    signal_resetn = true;
    13941394
     1395    struct timeval t1,t2;
     1396    gettimeofday(&t1, NULL);
    13951397    for (size_t n = 1; n < ncycles; n++)
    13961398    {
     1399        // stats display
     1400        if( (n % 5000000) == 0)
     1401        {
     1402            gettimeofday(&t2, NULL);
     1403
     1404            uint64_t ms1 = (uint64_t) t1.tv_sec  * 1000ULL +
     1405                           (uint64_t) t1.tv_usec / 1000;
     1406            uint64_t ms2 = (uint64_t) t2.tv_sec  * 1000ULL +
     1407                           (uint64_t) t2.tv_usec / 1000;
     1408            std::cerr << "platform clock frequency "
     1409                      << (double) 5000000 / (double) (ms2 - ms1) << "Khz"
     1410                      << std::endl;
     1411
     1412            gettimeofday(&t1, NULL);
     1413        }
     1414
    13971415        // Monitor a specific address for one L1 cache
    13981416        // clusters[1][1]->proc[0]->cache_monitor(0x50090ULL);
  • trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd

    r550 r693  
    33
    44Module('caba:tsar_iob_cluster',
    5         classname = 'soclib::caba::TsarIobCluster',
     5    classname = 'soclib::caba::TsarIobCluster',
    66
    7         tmpl_parameters = [
    8                 parameter.Module('vci_param_int', default = 'caba:vci_param',
     7    tmpl_parameters = [
     8        parameter.Module('vci_param_int', default = 'caba:vci_param',
    99                          cell_size = parameter.Reference('vci_data_width_int')),
    10                 parameter.Module('vci_param_ext', default = 'caba:vci_param',
     10        parameter.Module('vci_param_ext', default = 'caba:vci_param',
    1111                          cell_size = parameter.Reference('vci_data_width_ext')),
    12                 parameter.Int('dspin_int_cmd_width'),
    13                 parameter.Int('dspin_int_rsp_width'),
    14                 parameter.Int('dspin_ram_cmd_width'),
    15                 parameter.Int('dspin_ram_rsp_width'),
    16         ],
     12        parameter.Int('dspin_int_cmd_width'),
     13        parameter.Int('dspin_int_rsp_width'),
     14        parameter.Int('dspin_ram_cmd_width'),
     15        parameter.Int('dspin_ram_rsp_width'),
     16    ],
    1717
    18         header_files = [
     18    header_files = [
    1919        '../source/include/tsar_iob_cluster.h',
    2020    ],
    2121
    22         implementation_files = [
     22    implementation_files = [
    2323        '../source/src/tsar_iob_cluster.cpp',
    2424    ],
    2525
    26         uses = [
    27                 Uses('caba:base_module'),
    28                 Uses('common:mapping_table'),
    29                 Uses('common:iss2'),
    30                 Uses('common:elf_file_loader'),
     26    uses = [
     27        Uses('caba:base_module'),
     28        Uses('common:mapping_table'),
     29        Uses('common:iss2'),
     30        Uses('common:elf_file_loader'),
    3131
    3232        # internal network components
    33                 Uses('caba:vci_cc_vcache_wrapper',
     33        Uses('caba:vci_cc_vcache_wrapper',
    3434              cell_size          = parameter.Reference('vci_data_width_int'),
    3535              dspin_in_width     = parameter.Reference('dspin_int_cmd_width'),
     
    3838              gdb_iss_t          = 'common:mips32el'),
    3939
    40                 Uses('caba:vci_mem_cache',
     40        Uses('caba:vci_mem_cache',
    4141              memc_cell_size_int = parameter.Reference('vci_data_width_int'),
    4242              memc_cell_size_ext = parameter.Reference('vci_data_width_ext'),
     
    4747              cell_size          = parameter.Reference('vci_data_width_int')),
    4848
    49                 Uses('caba:vci_multi_dma',
     49        Uses('caba:vci_multi_dma',
     50              cell_size          = parameter.Reference('vci_data_width_int')),
     51
     52        Uses('caba:vci_local_crossbar',
    5053              cell_size          = parameter.Reference('vci_data_width_int')),
    5154
     
    8992              flit_width         = parameter.Reference('dspin_ram_rsp_width')),
    9093
    91                 Uses('caba:vci_simple_ram',
     94        Uses('caba:vci_simple_ram',
    9295              cell_size          = parameter.Reference('vci_data_width_ext')),
    9396
     
    9699              iob_cell_size_int  = parameter.Reference('vci_data_width_int'),
    97100              iob_cell_size_ext  = parameter.Reference('vci_data_width_ext')),
    98                 ],
     101        ],
    99102
    100         ports = [
    101                 Port('caba:bit_in', 'p_resetn', auto = 'resetn'),
    102                 Port('caba:clock_in', 'p_clk', auto = 'clock'),
     103    ports = [
     104        Port('caba:bit_in', 'p_resetn', auto = 'resetn'),
     105        Port('caba:clock_in', 'p_clk', auto = 'clock'),
    103106
    104                 Port('caba:dspin_output', 'p_int_cmd_out', [4, 3],
     107        Port('caba:dspin_output', 'p_int_cmd_out', [4, 3],
    105108              dspin_data_size = parameter.Reference('dspin_int_cmd_width')),
    106                 Port('caba:dspin_input', 'p_int_cmd_in', [4, 3],
     109        Port('caba:dspin_input', 'p_int_cmd_in', [4, 3],
    107110              dspin_data_size = parameter.Reference('dspin_int_cmd_width')),
    108                 Port('caba:dspin_output', 'p_int_rsp_out', [4, 2],
     111        Port('caba:dspin_output', 'p_int_rsp_out', [4, 2],
    109112              dspin_data_size = parameter.Reference('dspin_int_rsp_width')),
    110                 Port('caba:dspin_input', 'p_int_rsp_in', [4, 2],
     113        Port('caba:dspin_input', 'p_int_rsp_in', [4, 2],
    111114              dspin_data_size = parameter.Reference('dspin_int_rsp_width')),
    112115
    113                 Port('caba:dspin_output', 'p_ram_cmd_out', [4],
     116        Port('caba:dspin_output', 'p_ram_cmd_out', [4],
    114117              dspin_data_size = parameter.Reference('dspin_ram_cmd_width')),
    115                 Port('caba:dspin_input', 'p_ram_cmd_in', [4],
     118        Port('caba:dspin_input', 'p_ram_cmd_in', [4],
    116119              dspin_data_size = parameter.Reference('dspin_ram_cmd_width')),
    117                 Port('caba:dspin_output', 'p_ram_rsp_out', [4],
     120        Port('caba:dspin_output', 'p_ram_rsp_out', [4],
    118121              dspin_data_size = parameter.Reference('dspin_ram_rsp_width')),
    119                 Port('caba:dspin_input', 'p_ram_rsp_in', [4],
     122        Port('caba:dspin_input', 'p_ram_rsp_in', [4],
    120123              dspin_data_size = parameter.Reference('dspin_ram_rsp_width')),
    121                 ],
     124        ],
    122125)
    123126
  • trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h

    r607 r693  
    2222#include "vci_simple_ram.h"
    2323#include "vci_xicu.h"
     24#include "vci_local_crossbar.h"
    2425#include "dspin_local_crossbar.h"
    2526#include "vci_dspin_initiator_wrapper.h"
     
    3233#include "vci_io_bridge.h"
    3334
    34 namespace soclib { namespace caba       {
     35namespace soclib { namespace caba   {
    3536
    3637///////////////////////////////////////////////////////////////////////////
     
    4849  public:
    4950
    50         // Ports
    51     sc_in<bool>                                            p_clk;
    52     sc_in<bool>                                            p_resetn;
     51    // Ports
     52    sc_in<bool>                                        p_clk;
     53    sc_in<bool>                                        p_resetn;
    5354
    5455    // Thes two ports are used to connect IOB to IOX nework in top cell
     
    6465
    6566    // These arrays of ports are used to connect the INT & RAM networks in top cell
    66         soclib::caba::DspinOutput<dspin_int_cmd_width>**   p_dspin_int_cmd_out;
    67         soclib::caba::DspinInput<dspin_int_cmd_width>**    p_dspin_int_cmd_in;
     67    soclib::caba::DspinOutput<dspin_int_cmd_width>**   p_dspin_int_cmd_out;
     68    soclib::caba::DspinInput<dspin_int_cmd_width>**    p_dspin_int_cmd_in;
    6869    soclib::caba::DspinOutput<dspin_int_rsp_width>**   p_dspin_int_rsp_out;
    6970    soclib::caba::DspinInput<dspin_int_rsp_width>**    p_dspin_int_rsp_in;
    7071
    71         soclib::caba::DspinOutput<dspin_ram_cmd_width>*    p_dspin_ram_cmd_out;
    72         soclib::caba::DspinInput<dspin_ram_cmd_width>*     p_dspin_ram_cmd_in;
     72    soclib::caba::DspinOutput<dspin_ram_cmd_width>*    p_dspin_ram_cmd_out;
     73    soclib::caba::DspinInput<dspin_ram_cmd_width>*     p_dspin_ram_cmd_in;
    7374    soclib::caba::DspinOutput<dspin_ram_rsp_width>*    p_dspin_ram_rsp_out;
    7475    soclib::caba::DspinInput<dspin_ram_rsp_width>*     p_dspin_ram_rsp_in;
    7576
    7677    // interrupt signals
    77         sc_signal<bool>                       signal_false;
    78         sc_signal<bool>                               signal_proc_it[8];
    79         sc_signal<bool>                               signal_irq_mdma[8];
    80         sc_signal<bool>                               signal_irq_memc;
    81        
    82         // INT network DSPIN signals between DSPIN routers and DSPIN local_crossbars
    83         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_l2g_d;
    84         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_g2l_d;
    85         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_m2p_l2g_c;
    86         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_m2p_g2l_c;
    87         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_clack_l2g_c;
    88         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_clack_g2l_c;
    89         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_l2g_d;
    90         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_g2l_d;
    91         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_p2m_l2g_c;
    92         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_p2m_g2l_c;
    93 
    94         // INT network VCI signals between VCI components and VCI/DSPIN wrappers
    95         VciSignals<vci_param_int>                 signal_int_vci_ini_proc[8];
    96         VciSignals<vci_param_int>                 signal_int_vci_ini_mdma;
    97         VciSignals<vci_param_int>                 signal_int_vci_ini_iobx;
    98 
    99         VciSignals<vci_param_int>                 signal_int_vci_tgt_memc;
    100         VciSignals<vci_param_int>                 signal_int_vci_tgt_xicu;
    101         VciSignals<vci_param_int>             signal_int_vci_tgt_mdma;
    102         VciSignals<vci_param_int>             signal_int_vci_tgt_iobx;
    103 
    104         // INT network DSPIN signals between DSPIN local crossbars and VCI/DSPIN wrappers
    105         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_proc_i[8];
    106         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_proc_i[8];
    107         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_mdma_i;
    108         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_mdma_i;
    109         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_iobx_i;
    110         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_iobx_i;
    111 
    112         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_memc_t;
    113         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_memc_t;
    114         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_xicu_t;
    115         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_xicu_t;
    116         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_mdma_t;
    117         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_mdma_t;
    118         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_iobx_t;
    119         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_iobx_t;
    120 
    121         // Coherence DSPIN signals between DSPIN local crossbars and CC components
    122         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_m2p_memc;
    123         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_clack_memc;
    124         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_p2m_memc;
    125         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_m2p_proc[8];
    126         DspinSignals<dspin_int_cmd_width>     signal_int_dspin_clack_proc[8];
    127         DspinSignals<dspin_int_rsp_width>     signal_int_dspin_p2m_proc[8];
    128 
    129         // RAM network VCI signals between VCI components and VCI/DSPIN wrappers
    130         VciSignals<vci_param_ext>             signal_ram_vci_ini_memc;
    131         VciSignals<vci_param_ext>             signal_ram_vci_ini_iobx;
    132         VciSignals<vci_param_ext>             signal_ram_vci_tgt_xram;
     78    sc_signal<bool>                       signal_false;
     79    sc_signal<bool>                       signal_proc_it[8];
     80    sc_signal<bool>                       signal_irq_mdma[8];
     81    sc_signal<bool>                       signal_irq_memc;
     82   
     83    // INT network DSPIN signals between DSPIN routers and DSPIN local_crossbars
     84    DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_l2g_d;
     85    DspinSignals<dspin_int_cmd_width>     signal_int_dspin_cmd_g2l_d;
     86    DspinSignals<dspin_int_cmd_width>     signal_int_dspin_m2p_l2g_c;
     87    DspinSignals<dspin_int_cmd_width>     signal_int_dspin_m2p_g2l_c;
     88    DspinSignals<dspin_int_cmd_width>     signal_int_dspin_clack_l2g_c;
     89    DspinSignals<dspin_int_cmd_width>     signal_int_dspin_clack_g2l_c;
     90    DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_l2g_d;
     91    DspinSignals<dspin_int_rsp_width>     signal_int_dspin_rsp_g2l_d;
     92    DspinSignals<dspin_int_rsp_width>     signal_int_dspin_p2m_l2g_c;
     93    DspinSignals<dspin_int_rsp_width>     signal_int_dspin_p2m_g2l_c;
     94
     95    // INT network VCI signals between VCI components and VCI local crossbar
     96    VciSignals<vci_param_int>             signal_int_vci_ini_proc[8];
     97    VciSignals<vci_param_int>             signal_int_vci_ini_mdma;
     98    VciSignals<vci_param_int>             signal_int_vci_ini_iobx;
     99
     100    VciSignals<vci_param_int>             signal_int_vci_tgt_memc;
     101    VciSignals<vci_param_int>             signal_int_vci_tgt_xicu;
     102    VciSignals<vci_param_int>             signal_int_vci_tgt_mdma;
     103    VciSignals<vci_param_int>             signal_int_vci_tgt_iobx;
     104
     105    VciSignals<vci_param_int>             signal_int_vci_l2g;
     106    VciSignals<vci_param_int>             signal_int_vci_g2l;
     107
     108    // Coherence DSPIN signals between DSPIN local crossbars and CC components
     109    DspinSignals<dspin_int_cmd_width>     signal_int_dspin_m2p_memc;
     110    DspinSignals<dspin_int_cmd_width>     signal_int_dspin_clack_memc;
     111    DspinSignals<dspin_int_rsp_width>     signal_int_dspin_p2m_memc;
     112    DspinSignals<dspin_int_cmd_width>     signal_int_dspin_m2p_proc[8];
     113    DspinSignals<dspin_int_cmd_width>     signal_int_dspin_clack_proc[8];
     114    DspinSignals<dspin_int_rsp_width>     signal_int_dspin_p2m_proc[8];
     115
     116    // RAM network VCI signals between VCI components and VCI/DSPIN wrappers
     117    VciSignals<vci_param_ext>             signal_ram_vci_ini_memc;
     118    VciSignals<vci_param_ext>             signal_ram_vci_ini_iobx;
     119    VciSignals<vci_param_ext>             signal_ram_vci_tgt_xram;
    133120
    134121    // RAM network DSPIN signals between VCI/DSPIN wrappers and routers
    135         DspinSignals<dspin_ram_cmd_width>     signal_ram_dspin_cmd_xram_t;
    136         DspinSignals<dspin_ram_rsp_width>     signal_ram_dspin_rsp_xram_t;
    137         DspinSignals<dspin_ram_cmd_width>     signal_ram_dspin_cmd_memc_i;
    138         DspinSignals<dspin_ram_rsp_width>     signal_ram_dspin_rsp_memc_i;
     122    DspinSignals<dspin_ram_cmd_width>     signal_ram_dspin_cmd_xram_t;
     123    DspinSignals<dspin_ram_rsp_width>     signal_ram_dspin_rsp_xram_t;
     124    DspinSignals<dspin_ram_cmd_width>     signal_ram_dspin_cmd_memc_i;
     125    DspinSignals<dspin_ram_rsp_width>     signal_ram_dspin_rsp_memc_i;
    139126 
    140127    //////////////////////////////////////
     
    146133                       GdbServer<Mips32ElIss> >*      proc[8];
    147134
    148     VciDspinInitiatorWrapper<vci_param_int,
    149                              dspin_int_cmd_width,
    150                              dspin_int_rsp_width>*    proc_wi[8];
    151 
    152135    VciMemCache<vci_param_int,
    153136                vci_param_ext,
     
    155138                dspin_int_cmd_width>*                 memc;
    156139
    157     VciDspinTargetWrapper<vci_param_int,
    158                           dspin_int_cmd_width,
    159                           dspin_int_rsp_width>*       memc_int_wt;
    160 
    161140    VciDspinInitiatorWrapper<vci_param_ext,
    162141                             dspin_ram_cmd_width,
    163142                             dspin_ram_rsp_width>*    memc_ram_wi;
    164143
    165     VciXicu<vci_param_int>*                           xicu;
     144    VciXicu<vci_param_int>*                           xicu;
     145
     146    VciMultiDma<vci_param_int>*                       mdma;
     147
     148    VciLocalCrossbar<vci_param_int>*                  int_xbar_d;
     149   
     150    VciDspinInitiatorWrapper<vci_param_int,
     151                             dspin_int_cmd_width,
     152                             dspin_int_rsp_width>*    int_wi_gate_d;
    166153
    167154    VciDspinTargetWrapper<vci_param_int,
    168155                          dspin_int_cmd_width,
    169                           dspin_int_rsp_width>*       xicu_int_wt;
    170 
    171     VciMultiDma<vci_param_int>*                       mdma;
    172 
    173     VciDspinInitiatorWrapper<vci_param_int,
    174                              dspin_int_cmd_width,
    175                              dspin_int_rsp_width>*    mdma_int_wi;
    176 
    177     VciDspinTargetWrapper<vci_param_int,
    178                           dspin_int_cmd_width,
    179                           dspin_int_rsp_width>*       mdma_int_wt;
    180 
    181     DspinLocalCrossbar<dspin_int_cmd_width>*          int_xbar_cmd_d;
    182     DspinLocalCrossbar<dspin_int_rsp_width>*          int_xbar_rsp_d;
     156                          dspin_int_rsp_width>*       int_wt_gate_d;
     157
    183158    DspinLocalCrossbar<dspin_int_cmd_width>*          int_xbar_m2p_c;
    184159    DspinLocalCrossbar<dspin_int_rsp_width>*          int_xbar_p2m_c;
    185160    DspinLocalCrossbar<dspin_int_cmd_width>*          int_xbar_clack_c;
    186161
    187     VirtualDspinRouter<dspin_int_cmd_width>*          int_router_cmd;
     162    VirtualDspinRouter<dspin_int_cmd_width>*          int_router_cmd;
    188163    VirtualDspinRouter<dspin_int_rsp_width>*          int_router_rsp;
    189164
     
    193168                          dspin_ram_cmd_width,
    194169                          dspin_ram_rsp_width>*       xram_ram_wt;
    195        
    196     DspinRouterTsar<dspin_ram_cmd_width>*                 ram_router_cmd;
     170   
     171    DspinRouterTsar<dspin_ram_cmd_width>*             ram_router_cmd;
    197172    DspinRouterTsar<dspin_ram_rsp_width>*             ram_router_rsp;
    198173
    199         // IO Network Components (not instanciated in all clusters)
     174    // IO Network Components (not instanciated in all clusters)
    200175
    201176    VciIoBridge<vci_param_int,
    202177                vci_param_ext>*                       iob;
    203 
    204     VciDspinInitiatorWrapper<vci_param_int,
    205                              dspin_int_cmd_width,
    206                              dspin_int_rsp_width>*    iob_int_wi;
    207 
    208     VciDspinTargetWrapper<vci_param_int,
    209                           dspin_int_cmd_width,
    210                           dspin_int_rsp_width>*       iob_int_wt;
    211178
    212179    VciDspinInitiatorWrapper<vci_param_ext,
    213180                             dspin_ram_cmd_width,
    214181                             dspin_ram_rsp_width>*    iob_ram_wi;
    215        
     182   
    216183    // cluster constructor
    217         TsarIobCluster( sc_module_name                     insname,
     184    TsarIobCluster( sc_module_name                     insname,
    218185                    size_t                             nb_procs,   
    219186                    size_t                             nb_dmas, 
     
    227194                    const soclib::common::MappingTable &mt_iox,
    228195
    229                     size_t                                 x_width,       // x field  bits
    230                     size_t                                 y_width,       // y field  bits
    231                     size_t                                 l_width,       // l field  bits
    232 
    233                     size_t                                 int_memc_tgtid,
    234                     size_t                                 int_xicu_tgtid,
    235                     size_t                                 int_mdma_tgtid,
    236                     size_t                                 int_iobx_tgtid,
     196                    size_t                             x_width,       // x field  bits
     197                    size_t                             y_width,       // y field  bits
     198                    size_t                             l_width,       // l field  bits
     199
     200                    size_t                             int_memc_tgtid,
     201                    size_t                             int_xicu_tgtid,
     202                    size_t                             int_mdma_tgtid,
     203                    size_t                             int_iobx_tgtid,
    237204
    238205                    size_t                             int_proc_srcid,
     
    250217                    size_t                             l1_i_sets,
    251218                    size_t                             l1_d_ways,
    252                     size_t                             l1_d_sets,       
     219                    size_t                             l1_d_sets,   
    253220                    size_t                             xram_latency,
    254221
  • trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp

    r607 r693  
    149149                      debug_start_cycle,
    150150                      proc_debug_ok);
    151 
    152         std::ostringstream s_wi_proc;
    153         s_wi_proc << "proc_wi_" << x_id << "_" << y_id << "_" << p;
    154         proc_wi[p] = new VciDspinInitiatorWrapper<vci_param_int,
    155                                                       dspin_int_cmd_width,
    156                                                       dspin_int_rsp_width>(
    157                      s_wi_proc.str().c_str(),
    158                      x_width + y_width + l_width);
    159151    }
    160152
     
    182174                     memc_debug_ok );
    183175
    184     std::ostringstream s_wt_memc;
    185     s_wt_memc << "memc_wt_" << x_id << "_" << y_id;
    186     memc_int_wt = new VciDspinTargetWrapper<vci_param_int,
    187                                             dspin_int_cmd_width,
    188                                             dspin_int_rsp_width>(
    189                      s_wt_memc.str().c_str(),
    190                      x_width + y_width + l_width);
    191 
    192176    std::ostringstream s_wi_memc;
    193177    s_wi_memc << "memc_wi_" << x_id << "_" << y_id;
     
    210194                     nb_procs);                         // number of output IRQs
    211195
    212     std::ostringstream s_wt_xicu;
    213     s_wt_xicu << "xicu_wt_" << x_id << "_" << y_id;
    214     xicu_int_wt = new VciDspinTargetWrapper<vci_param_int,
    215                                         dspin_int_cmd_width,
    216                                         dspin_int_rsp_width>(
    217                      s_wt_xicu.str().c_str(),
    218                      x_width + y_width + l_width);
    219 
    220196    ////////////  MDMA
    221197    std::ostringstream s_mdma;
     
    229205                     nb_dmas);                            // number of IRQs
    230206
    231     std::ostringstream s_wt_mdma;
    232     s_wt_mdma << "mdma_wt_" << x_id << "_" << y_id;
    233     mdma_int_wt = new VciDspinTargetWrapper<vci_param_int,
    234                                             dspin_int_cmd_width,
    235                                             dspin_int_rsp_width>(
    236                      s_wt_mdma.str().c_str(),
    237                      x_width + y_width + l_width);
    238 
    239     std::ostringstream s_wi_mdma;
    240     s_wi_mdma << "mdma_wi_" << x_id << "_" << y_id;
    241     mdma_int_wi = new VciDspinInitiatorWrapper<vci_param_int,
    242                                                dspin_int_cmd_width,
    243                                                dspin_int_rsp_width>(
    244                      s_wi_mdma.str().c_str(),
    245                      x_width + y_width + l_width);
    246 
    247207    ///////////  Direct LOCAL_XBAR(S)
    248208    size_t nb_direct_initiators      = nb_procs + 1;
     
    254214    }
    255215
    256     std::ostringstream s_int_xbar_cmd_d;
    257     s_int_xbar_cmd_d << "int_xbar_cmd_d_" << x_id << "_" << y_id;
    258     int_xbar_cmd_d = new DspinLocalCrossbar<dspin_int_cmd_width>(
    259                      s_int_xbar_cmd_d.str().c_str(),
     216    std::ostringstream s_int_xbar_d;
     217    s_int_xbar_d << "int_xbar_cmd_d_" << x_id << "_" << y_id;
     218    int_xbar_d = new VciLocalCrossbar<vci_param_int>(
     219                     s_int_xbar_d.str().c_str(),
    260220                     mt_int,                       // mapping table
    261                      x_id, y_id,                   // cluster coordinates
    262                      x_width, y_width, l_width,
    263                      nb_direct_initiators,         // number of local of sources
    264                      nb_direct_targets,            // number of local dests
    265                      2, 2,                         // fifo depths 
    266                      true,                         // CMD crossbar
    267                      true,                         // use routing table
    268                      false );                      // no broacast
    269 
    270     std::ostringstream s_int_xbar_rsp_d;
    271     s_int_xbar_rsp_d << "int_xbar_rsp_d_" << x_id << "_" << y_id;
    272     int_xbar_rsp_d = new DspinLocalCrossbar<dspin_int_rsp_width>(
    273                      s_int_xbar_rsp_d.str().c_str(),
    274                      mt_int,                       // mapping table
    275                      x_id, y_id,                   // cluster coordinates
    276                      x_width, y_width, l_width,
    277                      nb_direct_targets,            // number of local sources     
    278                      nb_direct_initiators,         // number of local dests
    279                      2, 2,                         // fifo depths
    280                      false,                        // RSP crossbar 
    281                      false,                        // don't use routing table
    282                      false );                      // no broacast
     221                     cluster_id,                   // cluster id
     222                     nb_direct_initiators,         // number of local initiators
     223                     nb_direct_targets,            // number of local targets
     224                     0 );                          // default target
     225
     226    std::ostringstream s_int_dspin_ini_wrapper_gate_d;
     227    s_int_dspin_ini_wrapper_gate_d << "int_dspin_ini_wrapper_gate_d_"
     228                                   << x_id << "_" << y_id;
     229    int_wi_gate_d = new VciDspinInitiatorWrapper<vci_param_int,
     230                                           dspin_int_cmd_width,
     231                                           dspin_int_rsp_width>(
     232                     s_int_dspin_ini_wrapper_gate_d.str().c_str(),
     233                     x_width + y_width + l_width);
     234
     235    std::ostringstream s_int_dspin_tgt_wrapper_gate_d;
     236    s_int_dspin_tgt_wrapper_gate_d << "int_dspin_tgt_wrapper_gate_d_"
     237                                   << x_id << "_" << y_id;
     238    int_wt_gate_d = new VciDspinTargetWrapper<vci_param_int,
     239                                        dspin_int_cmd_width,
     240                                        dspin_int_rsp_width>(
     241                     s_int_dspin_tgt_wrapper_gate_d.str().c_str(),
     242                     x_width + y_width + l_width);
     243
    283244
    284245    ////////////  Coherence LOCAL_XBAR(S)
     
    430391                     iob_debug_ok );
    431392       
    432         std::ostringstream s_iob_int_wi;
    433         s_iob_int_wi << "iob_int_wi_" << x_id << "_" << y_id;   
    434         iob_int_wi = new VciDspinInitiatorWrapper<vci_param_int,
    435                                                   dspin_int_cmd_width,
    436                                                   dspin_int_rsp_width>(
    437                      s_iob_int_wi.str().c_str(),
    438                      x_width + y_width + l_width);
    439 
    440         std::ostringstream s_iob_int_wt;
    441         s_iob_int_wt << "iob_int_wt_" << x_id << "_" << y_id;   
    442         iob_int_wt = new VciDspinTargetWrapper<vci_param_int,
    443                                                dspin_int_cmd_width,
    444                                                dspin_int_rsp_width>(
    445                      s_iob_int_wt.str().c_str(),
    446                      x_width + y_width + l_width);
    447 
    448393        std::ostringstream s_iob_ram_wi;
    449394        s_iob_ram_wi << "iob_ram_wi_" << x_id << "_" << y_id;   
     
    500445
    501446    ///////////////////// CMD DSPIN  local crossbar direct
    502     int_xbar_cmd_d->p_clk                        (this->p_clk);
    503     int_xbar_cmd_d->p_resetn                     (this->p_resetn);
    504     int_xbar_cmd_d->p_global_out                 (signal_int_dspin_cmd_l2g_d);
    505     int_xbar_cmd_d->p_global_in                  (signal_int_dspin_cmd_g2l_d);
    506 
    507     int_xbar_cmd_d->p_local_out[memc_int_tgtid]  (signal_int_dspin_cmd_memc_t);
    508     int_xbar_cmd_d->p_local_out[xicu_int_tgtid]  (signal_int_dspin_cmd_xicu_t);
    509     int_xbar_cmd_d->p_local_out[mdma_int_tgtid]  (signal_int_dspin_cmd_mdma_t);
    510 
    511     int_xbar_cmd_d->p_local_in[mdma_int_srcid]   (signal_int_dspin_cmd_mdma_i);
    512 
     447    int_xbar_d->p_clk                                 (this->p_clk);
     448    int_xbar_d->p_resetn                              (this->p_resetn);
     449    int_xbar_d->p_initiator_to_up                     (signal_int_vci_l2g);
     450    int_xbar_d->p_target_to_up                        (signal_int_vci_g2l);
     451
     452    int_xbar_d->p_to_target[memc_int_tgtid]           (signal_int_vci_tgt_memc);
     453    int_xbar_d->p_to_target[xicu_int_tgtid]           (signal_int_vci_tgt_xicu);
     454    int_xbar_d->p_to_target[mdma_int_tgtid]           (signal_int_vci_tgt_mdma);
     455    int_xbar_d->p_to_initiator[mdma_int_srcid]        (signal_int_vci_ini_mdma);
    513456    for (size_t p = 0; p < nb_procs; p++)
    514     int_xbar_cmd_d->p_local_in[proc_int_srcid+p] (signal_int_dspin_cmd_proc_i[p]);
     457       int_xbar_d->p_to_initiator[proc_int_srcid + p] (signal_int_vci_ini_proc[p]);
    515458
    516459    if ( (cluster_id == cluster_iob0) or (cluster_id == cluster_iob1) )
    517460    {
    518     int_xbar_cmd_d->p_local_out[iobx_int_tgtid]  (signal_int_dspin_cmd_iobx_t);
    519     int_xbar_cmd_d->p_local_in[iobx_int_srcid]   (signal_int_dspin_cmd_iobx_i);
    520     }
    521 
    522     //////////////////////// RSP DSPIN  local crossbar direct
    523     int_xbar_rsp_d->p_clk                        (this->p_clk);
    524     int_xbar_rsp_d->p_resetn                     (this->p_resetn);
    525     int_xbar_rsp_d->p_global_out                 (signal_int_dspin_rsp_l2g_d);
    526     int_xbar_rsp_d->p_global_in                  (signal_int_dspin_rsp_g2l_d);
    527 
    528     int_xbar_rsp_d->p_local_in[memc_int_tgtid]   (signal_int_dspin_rsp_memc_t);
    529     int_xbar_rsp_d->p_local_in[xicu_int_tgtid]   (signal_int_dspin_rsp_xicu_t);
    530     int_xbar_rsp_d->p_local_in[mdma_int_tgtid]   (signal_int_dspin_rsp_mdma_t);
    531 
    532     int_xbar_rsp_d->p_local_out[mdma_int_srcid]  (signal_int_dspin_rsp_mdma_i);
    533 
    534     for (size_t p = 0; p < nb_procs; p++)
    535     int_xbar_rsp_d->p_local_out[proc_int_srcid+p] (signal_int_dspin_rsp_proc_i[p]);
    536 
    537     if ( (cluster_id == cluster_iob0) or (cluster_id == cluster_iob1) )
    538     {
    539     int_xbar_rsp_d->p_local_in[iobx_int_tgtid]   (signal_int_dspin_rsp_iobx_t);
    540     int_xbar_rsp_d->p_local_out[iobx_int_srcid]  (signal_int_dspin_rsp_iobx_i);
    541     }
    542 
     461       int_xbar_d->p_to_target[iobx_int_tgtid]        (signal_int_vci_tgt_iobx);
     462       int_xbar_d->p_to_initiator[iobx_int_srcid]     (signal_int_vci_ini_iobx);
     463    }
     464
     465    int_wi_gate_d->p_clk                           (this->p_clk);
     466    int_wi_gate_d->p_resetn                        (this->p_resetn);
     467    int_wi_gate_d->p_vci                           (signal_int_vci_l2g);
     468    int_wi_gate_d->p_dspin_cmd                     (signal_int_dspin_cmd_l2g_d);
     469    int_wi_gate_d->p_dspin_rsp                     (signal_int_dspin_rsp_g2l_d);
     470
     471    int_wt_gate_d->p_clk                           (this->p_clk);
     472    int_wt_gate_d->p_resetn                        (this->p_resetn);
     473    int_wt_gate_d->p_vci                           (signal_int_vci_g2l);
     474    int_wt_gate_d->p_dspin_cmd                     (signal_int_dspin_cmd_g2l_d);
     475    int_wt_gate_d->p_dspin_rsp                     (signal_int_dspin_rsp_l2g_d);
     476   
    543477    ////////////////////// M2P DSPIN local crossbar coherence
    544478    int_xbar_m2p_c->p_clk                        (this->p_clk);
     
    582516            proc[p]->p_irq[j]                    (signal_false);
    583517        }
    584 
    585         proc_wi[p]->p_clk                        (this->p_clk);
    586         proc_wi[p]->p_resetn                     (this->p_resetn);
    587         proc_wi[p]->p_dspin_cmd                  (signal_int_dspin_cmd_proc_i[p]);
    588         proc_wi[p]->p_dspin_rsp                  (signal_int_dspin_rsp_proc_i[p]);
    589         proc_wi[p]->p_vci                        (signal_int_vci_ini_proc[p]);
    590518    }
    591519
     
    605533            xicu->p_hwi[i]                       (signal_false);
    606534    }                     
    607 
    608     // wrapper XICU
    609     xicu_int_wt->p_clk                           (this->p_clk);
    610     xicu_int_wt->p_resetn                        (this->p_resetn);
    611     xicu_int_wt->p_dspin_cmd                     (signal_int_dspin_cmd_xicu_t);
    612     xicu_int_wt->p_dspin_rsp                     (signal_int_dspin_rsp_xicu_t);
    613     xicu_int_wt->p_vci                           (signal_int_vci_tgt_xicu);
    614535
    615536    ///////////////////////////////////// MEMC
     
    623544    memc->p_irq                                  (signal_irq_memc);
    624545
    625     // wrapper to INT network
    626     memc_int_wt->p_clk                           (this->p_clk);
    627     memc_int_wt->p_resetn                        (this->p_resetn);
    628     memc_int_wt->p_dspin_cmd                     (signal_int_dspin_cmd_memc_t);
    629     memc_int_wt->p_dspin_rsp                     (signal_int_dspin_rsp_memc_t);
    630     memc_int_wt->p_vci                           (signal_int_vci_tgt_memc);
    631 
    632546    // wrapper to RAM network
    633547    memc_ram_wi->p_clk                           (this->p_clk);
     
    656570    for (size_t i=0 ; i<nb_dmas ; i++)
    657571        mdma->p_irq[i]                           (signal_irq_mdma[i]);
    658 
    659     // target wrapper
    660     mdma_int_wt->p_clk                           (this->p_clk);
    661     mdma_int_wt->p_resetn                        (this->p_resetn);
    662     mdma_int_wt->p_dspin_cmd                     (signal_int_dspin_cmd_mdma_t);
    663     mdma_int_wt->p_dspin_rsp                     (signal_int_dspin_rsp_mdma_t);
    664     mdma_int_wt->p_vci                           (signal_int_vci_tgt_mdma);
    665 
    666     // initiator wrapper
    667     mdma_int_wi->p_clk                           (this->p_clk);
    668     mdma_int_wi->p_resetn                        (this->p_resetn);
    669     mdma_int_wi->p_dspin_cmd                     (signal_int_dspin_cmd_mdma_i);
    670     mdma_int_wi->p_dspin_rsp                     (signal_int_dspin_rsp_mdma_i);
    671     mdma_int_wi->p_vci                           (signal_int_vci_ini_mdma);
    672572
    673573    //////////////////////////// RAM network CMD & RSP routers
     
    710610        iob_ram_wi->p_dspin_rsp                  (*(this->p_dspin_iob_rsp_in));
    711611        iob_ram_wi->p_vci                        (signal_ram_vci_ini_iobx);
    712 
    713         // initiator wrapper to INT network
    714         iob_int_wi->p_clk                        (this->p_clk);
    715         iob_int_wi->p_resetn                     (this->p_resetn);
    716         iob_int_wi->p_dspin_cmd                  (signal_int_dspin_cmd_iobx_i);
    717         iob_int_wi->p_dspin_rsp                  (signal_int_dspin_rsp_iobx_i);
    718         iob_int_wi->p_vci                        (signal_int_vci_ini_iobx);
    719 
    720         // target wrapper to INT network
    721         iob_int_wt->p_clk                        (this->p_clk);
    722         iob_int_wt->p_resetn                     (this->p_resetn);
    723         iob_int_wt->p_dspin_cmd                  (signal_int_dspin_cmd_iobx_t);
    724         iob_int_wt->p_dspin_rsp                  (signal_int_dspin_rsp_iobx_t);
    725         iob_int_wt->p_vci                        (signal_int_vci_tgt_iobx);
    726612    }
    727613
Note: See TracChangeset for help on using the changeset viewer.