source: branches/fault_tolerance/platform/tsar_generic_iob/top.desc @ 719

Last change on this file since 719 was 717, checked in by cfuguet, 10 years ago

fault_tolerance/tsar_generic_iob:

  • introducing the vci_iopic component on the IOX interconnect.


  • the input hardware interrupts on cluster(0,0) from the external peripherals have been removed because they are connected to the vci_iopic component.


  • 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.

  • Considering case of mono cluster platform: Only one IOB must be instantiated.
  • 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 size: 2.3 KB
RevLine 
[450]1
2# -*- python -*-
3
[717]4# VCI parameters
[450]5vci_cell_size_int   = 4
6vci_cell_size_ext   = 8
7
8vci_plen_size       = 8
9vci_addr_size       = 40
10vci_rerror_size     = 1
11vci_clen_size       = 1
12vci_rflag_size      = 1
13vci_srcid_size      = 14
14vci_pktid_size      = 4
15vci_trdid_size      = 4
16vci_wrplen_size     = 1
17
[717]18# internal DSPIN network parameters
[450]19int_dspin_cmd_flit_size = 39
20int_dspin_rsp_flit_size = 32
21
22# external DSPIN network parameters
23ram_dspin_cmd_flit_size = 64
24ram_dspin_rsp_flit_size = 64
25
26todo = Platform('caba', 'top.cpp',
[699]27    uses = [
[450]28            # cluster
[717]29            Uses('caba:tsar_iob_cluster',
[450]30                  vci_data_width_int  = vci_cell_size_int,
[717]31                  vci_data_width_ext  = vci_cell_size_ext,
[450]32                  dspin_int_cmd_width = int_dspin_cmd_flit_size,
33                  dspin_int_rsp_width = int_dspin_rsp_flit_size,
34                  dspin_ram_cmd_width = ram_dspin_cmd_flit_size,
35                  dspin_ram_rsp_width = ram_dspin_rsp_flit_size),
[717]36
[450]37            # IOX Network
[717]38            Uses('caba:vci_iox_network',
[450]39                  cell_size = vci_cell_size_ext),
40
41            # Frame Buffer
[717]42            Uses('caba:vci_framebuffer',
[450]43                  cell_size = vci_cell_size_ext),
44
45            # Block Device
[717]46            Uses('caba:vci_block_device_tsar',
[450]47                  cell_size = vci_cell_size_ext),
48
[717]49            # NIC
50            Uses('caba:vci_multi_nic',
[450]51                  cell_size = vci_cell_size_ext),
52
53            # Chained DMA
[717]54            Uses('caba:vci_chbuf_dma',
[450]55                  cell_size = vci_cell_size_ext),
56
57            # TTY
[717]58            Uses('caba:vci_multi_tty',
[450]59                  cell_size = vci_cell_size_ext),
60
[717]61            # PIC
62            Uses('caba:vci_iopic',
63                  cell_size = vci_cell_size_ext),
64
[699]65            Uses('common:elf_file_loader'),
[450]66            Uses('common:plain_file_loader'),
67           ],
68
69    # default VCI parameters (global variables)
[717]70    cell_size   = vci_cell_size_int,
[699]71    plen_size   = vci_plen_size,
72    addr_size   = vci_addr_size,
73    rerror_size = vci_rerror_size,
74    clen_size   = vci_clen_size,
75    rflag_size  = vci_rflag_size,
76    srcid_size  = vci_srcid_size,
77    pktid_size  = vci_pktid_size,
78    trdid_size  = vci_trdid_size,
79    wrplen_size = vci_wrplen_size,
[450]80
81)
Note: See TracBrowser for help on using the repository browser.