Ignore:
Timestamp:
Aug 26, 2014, 3:08:14 PM (10 years ago)
Author:
cfuguet
Message:

reconfiguration/tsar_generic_iob: introducing simhelper component

Location:
branches/reconfiguration/platforms/tsar_generic_iob
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/reconfiguration/platforms/tsar_generic_iob/arch.py

    r768 r769  
    109109    pic_size  = 0x1000                     # 4 Kbytes
    110110
     111    sim_base  = 0x00B9000000 + offset_io
     112    sim_size  = 0x1000                     # 4 kbytes
     113
    111114    iob_base  = 0x00BE000000 + offset_io
    112115    iob_size  = 0x1000                     # 4 kbytes
    113 
    114116
    115117    ### GIET_VM specifics virtual segments
     
    179181    pic = mapping.addPeriph( 'PIC', base = pic_base, size = pic_size, ptype = 'PIC', channels = 32 )
    180182
     183    sim = mapping.addPeriph( 'SIM', base = sim_base, size = sim_size, ptype = 'SIM' )
     184
    181185    mapping.addIrq( pic, index = 0, isrtype = 'ISR_NIC_RX', channel = 0 )
    182186    mapping.addIrq( pic, index = 1, isrtype = 'ISR_NIC_RX', channel = 1 )
     
    304308                       identity = True )
    305309
     310    mapping.addGlobal( 'seg_sim', sim_base, sim_size, '__W_',
     311                       vtype = 'PERI', x = 0, y = 0, pseg = 'SIM',
     312                       identity = True )
    306313
    307314    ### global vsegs for internal peripherals, and for schedulers
  • branches/reconfiguration/platforms/tsar_generic_iob/run.py

    r768 r769  
    6262            "-SOFT"   , "soft/build/soft.elf",
    6363            "-DISK"   , "/dev/null",
    64             "-NCYCLES", "500000"],
     64            "-NCYCLES", "10000000"],
    6565            stdout=log_file,
    6666            stderr=log_file,
  • branches/reconfiguration/platforms/tsar_generic_iob/top.cpp

    r766 r769  
    134134#include "vci_iox_network.h"
    135135#include "vci_iopic.h"
     136#include "vci_simhelper.h"
    136137
    137138#include "alloc_elems.h"
     
    303304#define IOX_MTTY_TGT_ID              4
    304305#define IOX_IOPI_TGT_ID              5
    305 #define IOX_IOB0_TGT_ID              6
    306 #define IOX_IOB1_TGT_ID              7
     306#define IOX_SIMH_TGT_ID              6
     307#define IOX_IOB0_TGT_ID              7
     308#define IOX_IOB1_TGT_ID              8
    307309
    308310#define IOX_BDEV_INI_ID              0
     
    597599            maptab_int.add(Segment(spic.str(), SEG_PIC_BASE+offset, SEG_PIC_SIZE,
    598600                        IntTab(cluster(x,y), INT_IOBX_TGT_ID), not cacheable));
     601
     602            std::ostringstream    ssim;
     603            ssim << "int_seg_simh_" << x << "_" << y;
     604            maptab_int.add(Segment(ssim.str(), SEG_SIM_BASE+offset, SEG_SIM_SIZE,
     605                        IntTab(cluster(x,y), INT_IOBX_TGT_ID), not cacheable));
    599606         }
    600607
     
    710717    maptab_iox.add(Segment("iox_seg_iopi_0", SEG_PIC_BASE + iob0_base, SEG_PIC_SIZE,
    711718                   IntTab(0, IOX_IOPI_TGT_ID), false));
     719    maptab_iox.add(Segment("iox_seg_simh_0", SEG_SIM_BASE + iob0_base, SEG_SIM_SIZE,
     720                   IntTab(0, IOX_SIMH_TGT_ID), false));
    712721
    713722    if ( cluster_iob0 != cluster_iob1 )
     
    728737        maptab_iox.add(Segment("iox_seg_iopi_1", SEG_PIC_BASE + iob1_base, SEG_PIC_SIZE,
    729738                   IntTab(0, IOX_IOPI_TGT_ID), false));
     739        maptab_iox.add(Segment("iox_seg_simh_1", SEG_SIM_BASE + iob1_base, SEG_SIM_SIZE,
     740                   IntTab(0, IOX_SIMH_TGT_ID), false));
    730741    }
    731742
     
    822833    VciSignals<vci_param_ext>         signal_vci_tgt_cdma("signal_vci_tgt_cdma");
    823834    VciSignals<vci_param_ext>         signal_vci_tgt_iopi("signal_vci_ini_iopi");
     835    VciSignals<vci_param_ext>         signal_vci_tgt_simh("signal_vci_ini_simh");
    824836
    825837   // Horizontal inter-clusters INT network DSPIN
     
    910922
    911923   const size_t nb_iox_initiators = (cluster_iob0 != cluster_iob1) ? 5 : 4;
    912    const size_t nb_iox_targets = (cluster_iob0 != cluster_iob1) ? 8 : 7;
     924   const size_t nb_iox_targets = (cluster_iob0 != cluster_iob1) ? 9 : 8;
    913925
    914926   // IOX network
     
    981993                                       32 );        // number of input HWI
    982994
     995   // Simhelper
     996   VciSimhelper<vci_param_ext>* simh;
     997   simh = new VciSimhelper<vci_param_ext>("simh",
     998                                          IntTab(0, IOX_SIMH_TGT_ID),
     999                                          maptab_iox );
     1000
    9831001   // Clusters
    9841002   TsarIobCluster<vci_param_int,
     
    11111129    iox_network->p_to_tgt[IOX_CDMA_TGT_ID]               (signal_vci_tgt_cdma);
    11121130    iox_network->p_to_tgt[IOX_IOPI_TGT_ID]               (signal_vci_tgt_iopi);
     1131    iox_network->p_to_tgt[IOX_SIMH_TGT_ID]               (signal_vci_tgt_simh);
    11131132
    11141133    if (cluster_iob0 != cluster_iob1)
     
    11861205    std::cout << "  - IOPIC connected" << std::endl;
    11871206
     1207    // Simhelper connexion
     1208    simh->p_clk(signal_clk);
     1209    simh->p_resetn(signal_resetn);
     1210    simh->p_vci(signal_vci_tgt_simh);
    11881211
    11891212    // IOB0 cluster connexion to IOX network
     
    15321555            signal_vci_ini_iopi.print_trace("[SIG]IOPI_INI");
    15331556            signal_vci_tgt_iopi.print_trace("[SIG]IOPI_TGT");
     1557
     1558            signal_vci_tgt_simh.print_trace("[SIG]SIMH_TGT");
     1559
    15341560            iox_network->print_trace();
    15351561
     
    15531579   try {
    15541580      return _main(argc, argv);
     1581   } catch (soclib::exception::RunTimeError &e) {
     1582      std::cout << "RunTimeError: " << e.what() << std::endl;
    15551583   } catch (std::exception &e) {
    15561584      std::cout << e.what() << std::endl;
  • branches/reconfiguration/platforms/tsar_generic_iob/top.desc

    r748 r769  
    22# -*- python -*-
    33
    4 # VCI parameters 
     4# VCI parameters
    55vci_cell_size_int   = 4
    66vci_cell_size_ext   = 8
     
    1616vci_wrplen_size     = 1
    1717
    18 # internal DSPIN network parameters 
     18# internal DSPIN network parameters
    1919int_dspin_cmd_flit_size = 39
    2020int_dspin_rsp_flit_size = 32
     
    2626todo = Platform('caba', 'top.cpp',
    2727
    28         uses = [
     28    uses = [
    2929            # cluster
    30             Uses('caba:reconfiguration:tsar_iob_cluster', 
     30            Uses('caba:reconfiguration:tsar_iob_cluster',
    3131                  vci_data_width_int  = vci_cell_size_int,
    32                   vci_data_width_ext  = vci_cell_size_ext, 
     32                  vci_data_width_ext  = vci_cell_size_ext,
    3333                  dspin_int_cmd_width = int_dspin_cmd_flit_size,
    3434                  dspin_int_rsp_width = int_dspin_rsp_flit_size,
    3535                  dspin_ram_cmd_width = ram_dspin_cmd_flit_size,
    3636                  dspin_ram_rsp_width = ram_dspin_rsp_flit_size),
    37                  
     37
    3838            # IOX Network
    39             Uses('caba:vci_iox_network', 
     39            Uses('caba:vci_iox_network',
    4040                  cell_size = vci_cell_size_ext),
    4141
    4242            # ROM
    43             Uses('caba:vci_simple_rom', 
     43            Uses('caba:vci_simple_rom',
    4444                  cell_size   = vci_cell_size_ext),
    4545
    4646            # Frame Buffer
    47             Uses('caba:vci_framebuffer', 
     47            Uses('caba:vci_framebuffer',
    4848                  cell_size = vci_cell_size_ext),
    4949
    5050            # Block Device
    51             Uses('caba:vci_block_device_tsar', 
     51            Uses('caba:vci_block_device_tsar',
    5252                  cell_size = vci_cell_size_ext),
    5353
    54             # NIC 
    55             Uses('caba:vci_multi_nic', 
     54            # NIC
     55            Uses('caba:vci_multi_nic',
    5656                  cell_size = vci_cell_size_ext),
    5757
    5858            # Chained DMA
    59             Uses('caba:vci_chbuf_dma', 
     59            Uses('caba:vci_chbuf_dma',
    6060                  cell_size = vci_cell_size_ext),
    6161
    6262            # TTY
    63             Uses('caba:vci_multi_tty', 
     63            Uses('caba:vci_multi_tty',
    6464                  cell_size = vci_cell_size_ext),
    6565
    6666            # IOPIC
    67             Uses('caba:vci_iopic', 
     67            Uses('caba:vci_iopic',
    6868                  cell_size = vci_cell_size_ext),
    6969
    70                 Uses('common:elf_file_loader'),
     70            # SIMHELPER
     71            Uses('caba:vci_simhelper',
     72                  cell_size = vci_cell_size_ext),
     73
     74            Uses('common:elf_file_loader'),
    7175            Uses('common:plain_file_loader'),
    7276           ],
    7377
    7478    # default VCI parameters (global variables)
    75     cell_size   = vci_cell_size_int, 
    76         plen_size   = vci_plen_size,
    77         addr_size   = vci_addr_size,
    78         rerror_size = vci_rerror_size,
    79         clen_size   = vci_clen_size,
    80         rflag_size  = vci_rflag_size,
    81         srcid_size  = vci_srcid_size,
    82         pktid_size  = vci_pktid_size,
    83         trdid_size  = vci_trdid_size,
    84         wrplen_size = vci_wrplen_size,
     79    cell_size   = vci_cell_size_int,
     80    plen_size   = vci_plen_size,
     81    addr_size   = vci_addr_size,
     82    rerror_size = vci_rerror_size,
     83    clen_size   = vci_clen_size,
     84    rflag_size  = vci_rflag_size,
     85    srcid_size  = vci_srcid_size,
     86    pktid_size  = vci_pktid_size,
     87    trdid_size  = vci_trdid_size,
     88    wrplen_size = vci_wrplen_size,
    8589
    8690)
Note: See TracChangeset for help on using the changeset viewer.