Ignore:
Timestamp:
May 16, 2013, 3:32:38 PM (11 years ago)
Author:
cfuguet
Message:

Modifying the tsar_generic_xbar:

  • Modifying the metadata and the sources of the tsar_xbar_cluster to support two differents VCI parameters (one for the DIRECT network and another for the EXTERNAL network).

The DIRECT network use 32 bits for VCI_DATA and the EXTERNAL network use
64 bits.

Location:
trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/metadata/tsar_xbar_cluster.sd

    r378 r389  
    33
    44Module('caba:tsar_xbar_cluster',
    5         classname = 'soclib::caba::TsarXbarCluster',
    6         tmpl_parameters = [
    7                 parameter.Module('vci_param', default = 'caba:vci_param'),
    8                 parameter.Module('iss_t'),
    9                 parameter.Int('cmd_width'),
    10                 parameter.Int('rsp_width'),
    11                 ],
    12         header_files = [ '../source/include/tsar_xbar_cluster.h', ],
    13         implementation_files = [ '../source/src/tsar_xbar_cluster.cpp', ],
    14         uses = [
    15                 Uses('caba:base_module'),
    16                 Uses('common:mapping_table'),
    17                 Uses('common:iss2'),
    18                 Uses('caba:vci_cc_vcache_wrapper',
    19                      iss_t = 'common:gdb_iss',
    20                      gdb_iss_t = 'common:mips32el'),
    21                 Uses('caba:vci_mem_cache'),
    22                 Uses('caba:vci_simple_ram'),
     5    classname = 'soclib::caba::TsarXbarCluster',
     6    tmpl_parameters = [
     7        parameter.Module('iss_t'),
     8        parameter.Int('cmd_width'),
     9        parameter.Int('rsp_width'),
     10        ],
     11    header_files = [ '../source/include/tsar_xbar_cluster.h', ],
     12    implementation_files = [ '../source/src/tsar_xbar_cluster.cpp', ],
     13    uses = [
     14        Uses('caba:base_module'),
     15        Uses('common:mapping_table'),
     16        Uses('common:iss2'),
     17        Uses('caba:vci_cc_vcache_wrapper',
     18              vci_param       = 'caba:vci_param',
     19              dspin_in_width  = parameter.Reference('cmd_width'),
     20              dspin_out_width = parameter.Reference('rsp_width'),
     21              iss_t           = 'common:gdb_iss',
     22              gdb_iss_t       = 'common:mips32el'
     23            ),
     24        Uses('caba:vci_mem_cache',
     25              vci_param_int   = 'caba:vci_param',
     26              vci_param_ext   = 'caba:vci_param_bis',
     27              dspin_in_width  = parameter.Reference('rsp_width'),
     28              dspin_out_width = parameter.Reference('cmd_width')
     29            ),
     30        Uses('caba:vci_simple_ram',
     31              vci_param       = 'caba:vci_param_bis'
     32            ),
     33        Uses('caba:vci_simple_ram',
     34              vci_param       = 'caba:vci_param'
     35            ),
    2336        Uses('caba:vci_xicu'),
    2437        Uses('caba:dspin_local_crossbar',
    25               flit_width = parameter.Reference('cmd_width')),
     38              flit_width      = parameter.Reference('cmd_width')
     39            ),
    2640        Uses('caba:dspin_local_crossbar',
    27               flit_width = parameter.Reference('rsp_width')),
     41              flit_width      = parameter.Reference('rsp_width')
     42            ),
    2843        Uses('caba:vci_dspin_initiator_wrapper',
    2944              dspin_cmd_width = parameter.Reference('cmd_width'),
    30               dspin_rsp_width = parameter.Reference('rsp_width')),
     45              dspin_rsp_width = parameter.Reference('rsp_width')
     46            ),
    3147        Uses('caba:vci_dspin_target_wrapper',
    3248              dspin_cmd_width = parameter.Reference('cmd_width'),
    33               dspin_rsp_width = parameter.Reference('rsp_width')),
     49              dspin_rsp_width = parameter.Reference('rsp_width')
     50            ),
    3451        Uses('caba:virtual_dspin_router',
    35                      flit_width = parameter.Reference('cmd_width')),
     52              flit_width      = parameter.Reference('cmd_width')
     53            ),
    3654        Uses('caba:virtual_dspin_router',
    37                      flit_width = parameter.Reference('rsp_width')),
    38                 Uses('caba:vci_multi_tty'),
    39                 Uses('caba:vci_framebuffer'),
    40                 Uses('caba:vci_multi_nic'),
    41                 Uses('caba:vci_block_device_tsar'),
    42                 Uses('caba:vci_multi_dma'),
    43                 Uses('common:elf_file_loader'),
    44                 ],
    45         ports = [
    46                 Port('caba:bit_in', 'p_resetn', auto = 'resetn'),
    47                 Port('caba:clock_in', 'p_clk', auto = 'clock'),
    48                 Port('caba:dspin_output', 'p_cmd_out', [2, 4], dspin_data_size = parameter.Reference('cmd_width')),
    49                 Port('caba:dspin_input', 'p_cmd_in', [2, 4], dspin_data_size = parameter.Reference('cmd_width')),
    50                 Port('caba:dspin_output', 'p_rsp_out', [2, 4], dspin_data_size = parameter.Reference('rsp_width')),
    51                 Port('caba:dspin_input', 'p_rsp_in', [2, 4], dspin_data_size = parameter.Reference('rsp_width')),
    52                 ],
     55              flit_width      = parameter.Reference('rsp_width')
     56            ),
     57        Uses('caba:vci_multi_tty'),
     58        Uses('caba:vci_framebuffer'),
     59        Uses('caba:vci_multi_nic'),
     60        Uses('caba:vci_block_device_tsar'),
     61        Uses('caba:vci_multi_dma'),
     62        Uses('common:elf_file_loader'),
     63        ],
     64    ports = [
     65        Port('caba:bit_in'      , 'p_resetn' , auto = 'resetn'),
     66        Port('caba:clock_in'    , 'p_clk'    , auto = 'clock'),
     67        Port('caba:dspin_output', 'p_cmd_out', [2, 4], dspin_data_size = parameter.Reference('cmd_width')),
     68        Port('caba:dspin_input' , 'p_cmd_in' , [2, 4], dspin_data_size = parameter.Reference('cmd_width')),
     69        Port('caba:dspin_output', 'p_rsp_out', [2, 4], dspin_data_size = parameter.Reference('rsp_width')),
     70        Port('caba:dspin_input' , 'p_rsp_in' , [2, 4], dspin_data_size = parameter.Reference('rsp_width')),
     71        ],
    5372)
    5473
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/include/tsar_xbar_cluster.h

    r378 r389  
    3434#include "vci_cc_vcache_wrapper.h"
    3535
    36 namespace soclib { namespace caba       {
     36///////////////////////////////////////////////////////////
     37//          VCI parameters for DIRECT network         
     38///////////////////////////////////////////////////////////
     39#define cell_width            4
     40#define address_width         32
     41#define plen_width            8
     42#define error_width           2
     43#define clen_width            1
     44#define rflag_width           1
     45#define srcid_width           14
     46#define pktid_width           4
     47#define trdid_width           4
     48#define wrplen_width          1
     49
     50///////////////////////////////////////////////////////////
     51//          VCI parameters for EXTERNAL network         
     52///////////////////////////////////////////////////////////
     53#define cell_width_ext        8
     54#define address_width_ext     address_width
     55#define plen_width_ext        plen_width   
     56#define error_width_ext       error_width 
     57#define clen_width_ext        clen_width   
     58#define rflag_width_ext       rflag_width 
     59#define srcid_width_ext       srcid_width 
     60#define pktid_width_ext       pktid_width 
     61#define trdid_width_ext       trdid_width 
     62#define wrplen_width_ext      wrplen_width
     63
     64namespace soclib { namespace caba {
    3765
    3866///////////////////////////////////////////////////////////////////////////
    39 template<typename vci_param, typename iss_t, int cmd_width, int rsp_width>
     67template<
     68    typename iss_t, int cmd_width, int rsp_width
     69    >
    4070class TsarXbarCluster
    4171///////////////////////////////////////////////////////////////////////////
    4272    : public soclib::caba::BaseModule
    4373{
     74    // Define VCI parameters
     75    typedef soclib::caba::VciParams<cell_width,
     76            plen_width,
     77            address_width,
     78            error_width,                                   
     79            clen_width,
     80            rflag_width,
     81            srcid_width,
     82            pktid_width,
     83            trdid_width,
     84            wrplen_width> vci_param_d;
     85
     86    typedef soclib::caba::VciParamsBis<cell_width_ext,
     87            plen_width_ext,
     88            address_width_ext,
     89            error_width_ext,                                   
     90            clen_width_ext,
     91            rflag_width_ext,
     92            srcid_width_ext,
     93            pktid_width_ext,
     94            trdid_width_ext,
     95            wrplen_width_ext> vci_param_x;
    4496
    4597  public:
    4698
    47         // Ports
    48     sc_in<bool>                                         p_clk;
    49     sc_in<bool>                                         p_resetn;
    50         soclib::caba::DspinOutput<cmd_width>                    **p_cmd_out;
    51         soclib::caba::DspinInput<cmd_width>                     **p_cmd_in;
    52     soclib::caba::DspinOutput<rsp_width>                **p_rsp_out;
    53     soclib::caba::DspinInput<rsp_width>                 **p_rsp_in;
     99    // Ports
     100    sc_in<bool>                                     p_clk;
     101    sc_in<bool>                                     p_resetn;
     102    soclib::caba::DspinOutput<cmd_width>            **p_cmd_out;
     103    soclib::caba::DspinInput<cmd_width>             **p_cmd_in;
     104    soclib::caba::DspinOutput<rsp_width>            **p_rsp_out;
     105    soclib::caba::DspinInput<rsp_width>             **p_rsp_in;
    54106
    55107    // interrupt signals
    56         sc_signal<bool>         signal_false;
    57         sc_signal<bool>                 signal_proc_it[8];
    58         sc_signal<bool>                 signal_irq_mdma[8];
    59         sc_signal<bool>                 signal_irq_mtty[23];
    60         sc_signal<bool>                 signal_irq_mnic_rx[8];  // unused
    61         sc_signal<bool>                 signal_irq_mnic_tx[8];  // unused
    62         sc_signal<bool>                 signal_irq_bdev;
    63        
    64         // DSPIN signals between DSPIN routers and local_crossbars
    65         DspinSignals<cmd_width>         signal_dspin_cmd_l2g_d;
    66         DspinSignals<cmd_width>         signal_dspin_cmd_g2l_d;
    67         DspinSignals<cmd_width>         signal_dspin_m2p_l2g_c;
    68         DspinSignals<cmd_width>         signal_dspin_m2p_g2l_c;
    69         DspinSignals<rsp_width>         signal_dspin_rsp_l2g_d;
    70         DspinSignals<rsp_width>         signal_dspin_rsp_g2l_d;
    71         DspinSignals<rsp_width>         signal_dspin_p2m_l2g_c;
    72         DspinSignals<rsp_width>         signal_dspin_p2m_g2l_c;
    73 
    74         // Direct VCI signals to VCI/DSPIN wrappers
    75         VciSignals<vci_param>           signal_vci_ini_proc[8];
    76         VciSignals<vci_param>           signal_vci_ini_mdma;
    77         VciSignals<vci_param>           signal_vci_ini_bdev;
    78 
    79         VciSignals<vci_param>           signal_vci_tgt_memc;
    80         VciSignals<vci_param>           signal_vci_tgt_xicu;
    81         VciSignals<vci_param>           signal_vci_tgt_mdma;
    82         VciSignals<vci_param>           signal_vci_tgt_mtty;
    83         VciSignals<vci_param>           signal_vci_tgt_bdev;
    84         VciSignals<vci_param>           signal_vci_tgt_brom;
    85         VciSignals<vci_param>           signal_vci_tgt_fbuf;
    86         VciSignals<vci_param>           signal_vci_tgt_mnic;
    87 
    88         // Direct DSPIN signals to local crossbars
    89         DspinSignals<cmd_width>     signal_dspin_cmd_proc_i[8];
    90         DspinSignals<rsp_width>     signal_dspin_rsp_proc_i[8];
    91         DspinSignals<cmd_width>     signal_dspin_cmd_mdma_i;
    92         DspinSignals<rsp_width>     signal_dspin_rsp_mdma_i;
    93         DspinSignals<cmd_width>     signal_dspin_cmd_bdev_i;
    94         DspinSignals<rsp_width>     signal_dspin_rsp_bdev_i;
    95 
    96         DspinSignals<cmd_width>     signal_dspin_cmd_memc_t;
    97         DspinSignals<rsp_width>     signal_dspin_rsp_memc_t;
    98         DspinSignals<cmd_width>     signal_dspin_cmd_xicu_t;
    99         DspinSignals<rsp_width>     signal_dspin_rsp_xicu_t;
    100         DspinSignals<cmd_width>     signal_dspin_cmd_mdma_t;
    101         DspinSignals<rsp_width>     signal_dspin_rsp_mdma_t;
    102         DspinSignals<cmd_width>     signal_dspin_cmd_mtty_t;
    103         DspinSignals<rsp_width>     signal_dspin_rsp_mtty_t;
    104         DspinSignals<cmd_width>     signal_dspin_cmd_bdev_t;
    105         DspinSignals<rsp_width>     signal_dspin_rsp_bdev_t;
    106         DspinSignals<cmd_width>     signal_dspin_cmd_brom_t;
    107         DspinSignals<rsp_width>     signal_dspin_rsp_brom_t;
    108         DspinSignals<cmd_width>     signal_dspin_cmd_fbuf_t;
    109         DspinSignals<rsp_width>     signal_dspin_rsp_fbuf_t;
    110         DspinSignals<cmd_width>     signal_dspin_cmd_mnic_t;
    111         DspinSignals<rsp_width>     signal_dspin_rsp_mnic_t;
    112 
    113         // Coherence DSPIN signals to local crossbar
    114         DspinSignals<cmd_width>     signal_dspin_m2p_memc;
    115         DspinSignals<rsp_width>     signal_dspin_p2m_memc;
    116         DspinSignals<cmd_width>     signal_dspin_m2p_proc[8];
    117         DspinSignals<rsp_width>     signal_dspin_p2m_proc[8];
    118 
    119         // external RAM VCI signal
    120         VciSignals<vci_param>           signal_vci_xram;
    121        
     108    sc_signal<bool>             signal_false;
     109    sc_signal<bool>             signal_proc_it[8];
     110    sc_signal<bool>             signal_irq_mdma[8];
     111    sc_signal<bool>             signal_irq_mtty[23];
     112    sc_signal<bool>             signal_irq_mnic_rx[8];  // unused
     113    sc_signal<bool>             signal_irq_mnic_tx[8];  // unused
     114    sc_signal<bool>             signal_irq_bdev;
     115   
     116    // DSPIN signals between DSPIN routers and local_crossbars
     117    DspinSignals<cmd_width>     signal_dspin_cmd_l2g_d;
     118    DspinSignals<cmd_width>     signal_dspin_cmd_g2l_d;
     119    DspinSignals<cmd_width>     signal_dspin_m2p_l2g_c;
     120    DspinSignals<cmd_width>     signal_dspin_m2p_g2l_c;
     121    DspinSignals<rsp_width>     signal_dspin_rsp_l2g_d;
     122    DspinSignals<rsp_width>     signal_dspin_rsp_g2l_d;
     123    DspinSignals<rsp_width>     signal_dspin_p2m_l2g_c;
     124    DspinSignals<rsp_width>     signal_dspin_p2m_g2l_c;
     125
     126    // Direct VCI signals to VCI/DSPIN wrappers
     127    VciSignals<vci_param_d>     signal_vci_ini_proc[8];
     128    VciSignals<vci_param_d>     signal_vci_ini_mdma;
     129    VciSignals<vci_param_d>     signal_vci_ini_bdev;
     130
     131    VciSignals<vci_param_d>     signal_vci_tgt_memc;
     132    VciSignals<vci_param_d>     signal_vci_tgt_xicu;
     133    VciSignals<vci_param_d>     signal_vci_tgt_mdma;
     134    VciSignals<vci_param_d>     signal_vci_tgt_mtty;
     135    VciSignals<vci_param_d>     signal_vci_tgt_bdev;
     136    VciSignals<vci_param_d>     signal_vci_tgt_brom;
     137    VciSignals<vci_param_d>     signal_vci_tgt_fbuf;
     138    VciSignals<vci_param_d>     signal_vci_tgt_mnic;
     139
     140    // Direct DSPIN signals to local crossbars
     141    DspinSignals<cmd_width>     signal_dspin_cmd_proc_i[8];
     142    DspinSignals<rsp_width>     signal_dspin_rsp_proc_i[8];
     143    DspinSignals<cmd_width>     signal_dspin_cmd_mdma_i;
     144    DspinSignals<rsp_width>     signal_dspin_rsp_mdma_i;
     145    DspinSignals<cmd_width>     signal_dspin_cmd_bdev_i;
     146    DspinSignals<rsp_width>     signal_dspin_rsp_bdev_i;
     147
     148    DspinSignals<cmd_width>     signal_dspin_cmd_memc_t;
     149    DspinSignals<rsp_width>     signal_dspin_rsp_memc_t;
     150    DspinSignals<cmd_width>     signal_dspin_cmd_xicu_t;
     151    DspinSignals<rsp_width>     signal_dspin_rsp_xicu_t;
     152    DspinSignals<cmd_width>     signal_dspin_cmd_mdma_t;
     153    DspinSignals<rsp_width>     signal_dspin_rsp_mdma_t;
     154    DspinSignals<cmd_width>     signal_dspin_cmd_mtty_t;
     155    DspinSignals<rsp_width>     signal_dspin_rsp_mtty_t;
     156    DspinSignals<cmd_width>     signal_dspin_cmd_bdev_t;
     157    DspinSignals<rsp_width>     signal_dspin_rsp_bdev_t;
     158    DspinSignals<cmd_width>     signal_dspin_cmd_brom_t;
     159    DspinSignals<rsp_width>     signal_dspin_rsp_brom_t;
     160    DspinSignals<cmd_width>     signal_dspin_cmd_fbuf_t;
     161    DspinSignals<rsp_width>     signal_dspin_rsp_fbuf_t;
     162    DspinSignals<cmd_width>     signal_dspin_cmd_mnic_t;
     163    DspinSignals<rsp_width>     signal_dspin_rsp_mnic_t;
     164
     165    // Coherence DSPIN signals to local crossbar
     166    DspinSignals<cmd_width>     signal_dspin_m2p_memc;
     167    DspinSignals<rsp_width>     signal_dspin_p2m_memc;
     168    DspinSignals<cmd_width>     signal_dspin_m2p_proc[8];
     169    DspinSignals<rsp_width>     signal_dspin_p2m_proc[8];
     170
     171    // external RAM VCI signal
     172    VciSignals<vci_param_x>   signal_vci_xram;
     173   
    122174    // Components
    123175
    124     VciCcVCacheWrapper<vci_param, iss_t>*                           proc[8];
    125     VciDspinInitiatorWrapper<vci_param,cmd_width,rsp_width>*    wi_proc[4];
    126 
    127     VciMemCache<vci_param>*                                         memc;
    128     VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>*       wt_memc;
    129 
    130     VciXicu<vci_param>*                                         xicu;
    131     VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>*       wt_xicu;
    132 
    133     VciMultiDma<vci_param>*                                     mdma;
    134     VciDspinInitiatorWrapper<vci_param,cmd_width,rsp_width>*    wi_mdma;
    135     VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>*       wt_mdma;
    136 
    137     VciSimpleRam<vci_param>*                                    xram;
    138     VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>*       wt_xram;
    139 
    140     VciSimpleRam<vci_param>*                                    brom;
    141     VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>*       wt_brom;
    142 
    143     VciMultiTty<vci_param>*                                     mtty;
    144     VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>*       wt_mtty;
    145 
    146     VciFrameBuffer<vci_param>*                                  fbuf;
    147     VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>*       wt_fbuf;
    148 
    149     VciMultiNic<vci_param>*                                     mnic;
    150     VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>*       wt_mnic;
    151 
    152     VciBlockDeviceTsar<vci_param>*                              bdev;
    153     VciDspinInitiatorWrapper<vci_param,cmd_width,rsp_width>*    wi_bdev;
    154     VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>*       wt_bdev;
    155 
    156     DspinLocalCrossbar<cmd_width>*                              xbar_cmd_d;
    157     DspinLocalCrossbar<rsp_width>*                              xbar_rsp_d;
    158     DspinLocalCrossbar<cmd_width>*                              xbar_m2p_c;
    159     DspinLocalCrossbar<rsp_width>*                              xbar_p2m_c;
    160 
    161     VirtualDspinRouter<cmd_width>*                                      router_cmd;
    162     VirtualDspinRouter<rsp_width>*                              router_rsp;
    163 
    164         TsarXbarCluster( sc_module_name                     insname,
     176    VciCcVCacheWrapper<vci_param_d, cmd_width, rsp_width, iss_t>* proc[8];
     177    VciDspinInitiatorWrapper<vci_param_d,cmd_width,rsp_width>*    wi_proc[4];
     178
     179    VciMemCache<vci_param_d, vci_param_x, rsp_width, cmd_width> * memc;
     180    VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>*       wt_memc;
     181
     182    VciXicu<vci_param_d>*                                         xicu;
     183    VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>*       wt_xicu;
     184
     185    VciMultiDma<vci_param_d>*                                     mdma;
     186    VciDspinInitiatorWrapper<vci_param_d,cmd_width,rsp_width>*    wi_mdma;
     187    VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>*       wt_mdma;
     188
     189    VciSimpleRam<vci_param_x>*                                    xram;
     190
     191    VciSimpleRam<vci_param_d>*                                    brom;
     192    VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>*       wt_brom;
     193
     194    VciMultiTty<vci_param_d>*                                     mtty;
     195    VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>*       wt_mtty;
     196
     197    VciFrameBuffer<vci_param_d>*                                  fbuf;
     198    VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>*       wt_fbuf;
     199
     200    VciMultiNic<vci_param_d>*                                     mnic;
     201    VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>*       wt_mnic;
     202
     203    VciBlockDeviceTsar<vci_param_d>*                              bdev;
     204    VciDspinInitiatorWrapper<vci_param_d,cmd_width,rsp_width>*    wi_bdev;
     205    VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>*       wt_bdev;
     206
     207    DspinLocalCrossbar<cmd_width>*                                xbar_cmd_d;
     208    DspinLocalCrossbar<rsp_width>*                                xbar_rsp_d;
     209    DspinLocalCrossbar<cmd_width>*                                xbar_m2p_c;
     210    DspinLocalCrossbar<rsp_width>*                                xbar_p2m_c;
     211
     212    VirtualDspinRouter<cmd_width>*                                router_cmd;
     213    VirtualDspinRouter<rsp_width>*                                router_rsp;
     214
     215    TsarXbarCluster( sc_module_name                     insname,
    165216                     size_t                             nb_procs,      // number of processors
    166217                     size_t                             nb_ttys,       // number of TTY terminals
     
    171222                     const soclib::common::MappingTable &mtd,          // direct mapping table
    172223                     const soclib::common::MappingTable &mtx,          // xram mapping table
    173                      size_t                                 x_width,       // x field number of bits
    174                      size_t                                 y_width,       // y field number of bits
    175                      size_t                                 l_width,       // l field number of bits
    176                      size_t                                 tgtid_memc,
    177                      size_t                                 tgtid_xicu,
     224                     size_t                             x_width,       // x field number of bits
     225                     size_t                             y_width,       // y field number of bits
     226                     size_t                             l_width,       // l field number of bits
     227                     size_t                             tgtid_memc,
     228                     size_t                             tgtid_xicu,
    178229                     size_t                             tgtid_mdma,
    179                      size_t                                 tgtid_fbuf,
     230                     size_t                             tgtid_fbuf,
    180231                     size_t                             tgtid_mtty,
    181232                     size_t                             tgtid_brom,
     
    187238                     size_t                             l1_i_sets,
    188239                     size_t                             l1_d_ways,
    189                      size_t                             l1_d_sets,     
     240                     size_t                             l1_d_sets, 
    190241                     size_t                             xram_latency,  // external ram latency
    191                      bool                               io,                // I/O cluster if true
     242                     bool                               io,            // I/O cluster if true
    192243                     size_t                             xfb,           // frame buffer pixels
    193244                     size_t                             yfb,           // frame buffer lines
     
    197248                     char*                              nic_rx_name,   // file name rx packets
    198249                     char*                              nic_tx_name,   // file name tx packets
    199                      uint32_t                                                   nic_timeout,   // number of cycles
    200                                  const Loader                       &loader,       // loader for BROM
     250                     uint32_t                           nic_timeout,   // number of cycles
     251                     const Loader                       &loader,       // loader for BROM
    201252                     uint32_t                           frozen_cycles, // max frozen cycles
    202253                     uint32_t                           start_debug_cycle,
     
    204255                     bool                               proc_debug_ok);
    205256
    206         ~TsarXbarCluster();
     257    ~TsarXbarCluster();
    207258};
    208259}}
  • trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp

    r379 r389  
    2626#include "../include/tsar_xbar_cluster.h"
    2727
     28#define tmpl(x) template<\
     29   typename iss_t,int cmd_width, int rsp_width> \
     30   x TsarXbarCluster<\
     31   iss_t, cmd_width, rsp_width\
     32   >
     33
    2834namespace soclib {
    2935namespace caba  {
     
    3238//                 Constructor
    3339//////////////////////////////////////////////////////////////////////////
    34 template<typename vci_param, typename iss_t, int cmd_width, int rsp_width>
    35 TsarXbarCluster<vci_param, iss_t, cmd_width, rsp_width>::TsarXbarCluster(
     40tmpl(/**/)::TsarXbarCluster(
    3641         sc_module_name                     insname,
    3742         size_t                             nb_procs,
     
    103108        std::ostringstream sproc;
    104109        sproc << "proc_" << p;
    105         proc[p] = new VciCcVCacheWrapper<vci_param, iss_t>(
     110        proc[p] = new VciCcVCacheWrapper<vci_param_d, cmd_width, rsp_width, iss_t>(
    106111                      sproc.str().c_str(),
    107112                      cluster_id*nb_procs + p,        // GLOBAL PROC_ID
     
    125130        std::ostringstream swip;
    126131        swip << "wi_proc_" << x_id << "_" << y_id << p;
    127         wi_proc[p] = new VciDspinInitiatorWrapper<vci_param,cmd_width,rsp_width>(
     132        wi_proc[p] = new VciDspinInitiatorWrapper<vci_param_d,cmd_width,rsp_width>(
    128133                     swip.str().c_str(),
    129134                     x_width + y_width + l_width);
     
    133138    std::cout << "  - building memc_" << x_id << "_" << y_id << std::endl;
    134139
    135     memc = new VciMemCache<vci_param>(
     140    memc = new VciMemCache<vci_param_d, vci_param_x, rsp_width, cmd_width>(
    136141                     "memc",
    137142                     mtd,                                // Mapping Table direct space
     
    148153                     memc_debug_ok );
    149154
    150     wt_memc = new VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>(
     155    wt_memc = new VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>(
    151156                     "wt_memc",
    152157                     x_width + y_width + l_width);
     
    155160    std::cout << "  - building xram_" << x_id << "_" << y_id << std::endl;
    156161
    157     xram = new VciSimpleRam<vci_param>(
     162    xram = new VciSimpleRam<vci_param_x>(
    158163                     "xram",
    159164                     IntTab(cluster_id),
     
    165170    std::cout << "  - building xicu_" << x_id << "_" << y_id << std::endl;
    166171
    167     xicu = new VciXicu<vci_param>(
     172    xicu = new VciXicu<vci_param_d>(
    168173                     "xicu",
    169174                     mtd,                               // mapping table
     
    171176                     nb_procs,                          // number of timer IRQs
    172177                     32,                                // number of hard IRQs
    173                      0,                                 // number of soft IRQs
     178                     32,                                // number of soft IRQs
    174179                     nb_procs);                         // number of output IRQs
    175180
    176     wt_xicu = new VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>(
     181    wt_xicu = new VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>(
    177182                     "wt_xicu",
    178183                     x_width + y_width + l_width);
     
    181186    std::cout << "  - building mdma_" << x_id << "_" << y_id << std::endl;
    182187
    183     mdma = new VciMultiDma<vci_param>(
     188    mdma = new VciMultiDma<vci_param_d>(
    184189                     "mdma",
    185190                     mtd,
     
    189194                     nb_dmas);                            // number of IRQs
    190195
    191     wt_mdma = new VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>(
     196    wt_mdma = new VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>(
    192197                     "wt_mdma",
    193198                     x_width + y_width + l_width);
    194199
    195     wi_mdma = new VciDspinInitiatorWrapper<vci_param,cmd_width,rsp_width>(
     200    wi_mdma = new VciDspinInitiatorWrapper<vci_param_d,cmd_width,rsp_width>(
    196201                     "wi_mdma",
    197202                     x_width + y_width + l_width);
     
    285290        std::cout << "  - building brom" << std::endl;
    286291
    287         brom = new VciSimpleRam<vci_param>(
     292        brom = new VciSimpleRam<vci_param_d>(
    288293                        "brom",
    289294                        IntTab(cluster_id, tgtid_brom),
     
    291296                        loader);
    292297
    293         wt_brom = new VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>("wt_brom",
     298        wt_brom = new VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>("wt_brom",
    294299                     x_width + y_width + l_width);
    295300
     
    297302        std::cout << "  - building fbuf" << std::endl;
    298303
    299         fbuf = new VciFrameBuffer<vci_param>(
     304        fbuf = new VciFrameBuffer<vci_param_d>(
    300305                        "fbuf",
    301306                        IntTab(cluster_id, tgtid_fbuf),
     
    303308                        xfb, yfb);
    304309
    305         wt_fbuf = new VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>("wt_fbuf",
     310        wt_fbuf = new VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>("wt_fbuf",
    306311                     x_width + y_width + l_width);
    307312
     
    309314        std::cout << "  - building bdev" << std::endl;
    310315
    311         bdev = new VciBlockDeviceTsar<vci_param>(
     316        bdev = new VciBlockDeviceTsar<vci_param_d>(
    312317                        "bdev",
    313318                        mtd,
     
    318323                        64);            // burst size
    319324
    320         wt_bdev = new VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>("wt_bdev",
    321                      x_width + y_width + l_width);
    322         wi_bdev = new VciDspinInitiatorWrapper<vci_param,cmd_width,rsp_width>("wi_bdev",
     325        wt_bdev = new VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>("wt_bdev",
     326                     x_width + y_width + l_width);
     327        wi_bdev = new VciDspinInitiatorWrapper<vci_param_d,cmd_width,rsp_width>("wi_bdev",
    323328                     x_width + y_width + l_width);
    324329
     
    326331        std::cout << "  - building mnic" << std::endl;
    327332
    328         mnic = new VciMultiNic<vci_param>(
     333        mnic = new VciMultiNic<vci_param_d>(
    329334                        "mnic",
    330335                        IntTab(cluster_id, tgtid_mnic),
     
    336341                        0 );           // mac_2 address
    337342
    338         wt_mnic = new VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>("wt_mnic",
     343        wt_mnic = new VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>("wt_mnic",
    339344                     x_width + y_width + l_width);
    340345
     
    349354            vect_names.push_back(term_name.str().c_str());
    350355        }
    351         mtty = new VciMultiTty<vci_param>(
     356        mtty = new VciMultiTty<vci_param_d>(
    352357                        "mtty",
    353358                        IntTab(cluster_id, tgtid_mtty),
     
    355360                        vect_names);
    356361
    357         wt_mtty = new VciDspinTargetWrapper<vci_param,cmd_width,rsp_width>("wt_mtty",
     362        wt_mtty = new VciDspinTargetWrapper<vci_param_d,cmd_width,rsp_width>("wt_mtty",
    358363                     x_width + y_width + l_width);
    359364
     
    677682//    destructor
    678683///////////////////////////////////////////////////////////////////////////
    679 template<typename vci_param, typename iss_t, int cmd_width, int rsp_width>
    680 TsarXbarCluster<vci_param, iss_t, cmd_width, rsp_width>::~TsarXbarCluster() {}
    681 
     684tmpl(/**/)::~TsarXbarCluster() {}
    682685}
    683686}
Note: See TracChangeset for help on using the changeset viewer.