source: branches/fault_tolerance/platform/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd @ 717

Last change on this file since 717 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: 6.0 KB
Line 
1
2# -*- python -*-
3
4Module('caba:tsar_iob_cluster',
5    classname = 'soclib::caba::TsarIobCluster',
6
7    tmpl_parameters = [
8        parameter.Module('vci_param_int', default = 'caba:vci_param', 
9                          cell_size = parameter.Reference('vci_data_width_int')),
10        parameter.Module('vci_param_ext', default = 'caba:vci_param', 
11                          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    ],
17
18    header_files = [ 
19        '../source/include/tsar_iob_cluster.h', 
20        '../source/include/tsar_iob_cluster.h', 
21    ],
22
23    implementation_files = [ 
24        '../source/src/tsar_iob_cluster.cpp', 
25    ],
26
27    uses = [
28        Uses('caba:base_module'),
29        Uses('common:mapping_table'),
30        Uses('common:iss2'),
31        Uses('common:elf_file_loader'),
32
33        # internal network components
34        Uses('caba:fault-tolerance:vci_cc_vcache_wrapper', 
35              cell_size          = parameter.Reference('vci_data_width_int'),
36              dspin_in_width     = parameter.Reference('dspin_int_cmd_width'),
37              dspin_out_width    = parameter.Reference('dspin_int_rsp_width'),
38              iss_t              = 'common:gdb_iss', 
39              gdb_iss_t          = 'common:mips32el'),
40
41        Uses('caba:fault-tolerance:vci_mem_cache',
42              memc_cell_size_int = parameter.Reference('vci_data_width_int'),
43              memc_cell_size_ext = parameter.Reference('vci_data_width_ext'),
44              dspin_in_width     = parameter.Reference('dspin_int_rsp_width'),
45              dspin_out_width    = parameter.Reference('dspin_int_cmd_width')),
46
47        Uses('caba:fault-tolerance:vci_xicu',
48              cell_size          = parameter.Reference('vci_data_width_int')),
49
50        Uses('caba:vci_simple_rom',
51              cell_size          = parameter.Reference('vci_data_width_int')),
52
53        Uses('caba:vci_multi_tty',
54              cell_size          = parameter.Reference('vci_data_width_int')),
55
56        Uses('caba:vci_multi_dma',
57              cell_size          = parameter.Reference('vci_data_width_int')),
58
59        Uses('caba:vci_local_crossbar', 
60              cell_size          = parameter.Reference('vci_data_width_int')),
61
62        Uses('caba:dspin_local_crossbar', 
63              flit_width         = parameter.Reference('dspin_int_cmd_width')),
64
65        Uses('caba:dspin_local_crossbar', 
66              flit_width         = parameter.Reference('dspin_int_rsp_width')),
67
68        Uses('caba:dspin_local_crossbar', 
69              flit_width         = parameter.Reference('dspin_ram_cmd_width')),
70
71        Uses('caba:dspin_local_crossbar', 
72              flit_width         = parameter.Reference('dspin_ram_rsp_width')),
73
74        Uses('caba:vci_dspin_initiator_wrapper', 
75              cell_size          = parameter.Reference('vci_data_width_int'),
76              dspin_cmd_width    = parameter.Reference('dspin_int_cmd_width'),
77              dspin_rsp_width    = parameter.Reference('dspin_int_rsp_width')),
78
79        Uses('caba:vci_dspin_target_wrapper',
80              cell_size          = parameter.Reference('vci_data_width_int'),
81              dspin_cmd_width    = parameter.Reference('dspin_int_cmd_width'),
82              dspin_rsp_width    = parameter.Reference('dspin_int_rsp_width')),
83
84        Uses('caba:virtual_dspin_router', 
85              flit_width         = parameter.Reference('dspin_int_cmd_width')),
86
87        Uses('caba:virtual_dspin_router', 
88              flit_width         = parameter.Reference('dspin_int_rsp_width')),
89
90        # RAM network components
91        Uses('caba:vci_dspin_initiator_wrapper', 
92              cell_size          = parameter.Reference('vci_data_width_ext'),
93              dspin_cmd_width    = parameter.Reference('dspin_ram_cmd_width'),
94              dspin_rsp_width    = parameter.Reference('dspin_ram_rsp_width')),
95
96        Uses('caba:vci_dspin_target_wrapper',
97              cell_size          = parameter.Reference('vci_data_width_ext'),
98              dspin_cmd_width    = parameter.Reference('dspin_ram_cmd_width'),
99              dspin_rsp_width    = parameter.Reference('dspin_ram_rsp_width')),
100
101        Uses('caba:dspin_router', 
102              flit_width         = parameter.Reference('dspin_ram_cmd_width')),
103
104        Uses('caba:dspin_router', 
105              flit_width         = parameter.Reference('dspin_ram_rsp_width')),
106
107        Uses('caba:vci_simple_ram',
108              cell_size          = parameter.Reference('vci_data_width_ext')),
109
110        # IOX network components
111        Uses('caba:vci_io_bridge', 
112              iob_cell_size_int  = parameter.Reference('vci_data_width_int'),
113              iob_cell_size_ext  = parameter.Reference('vci_data_width_ext')),
114        ],
115
116    ports = [
117        Port('caba:bit_in', 'p_resetn', auto = 'resetn'),
118        Port('caba:clock_in', 'p_clk', auto = 'clock'),
119
120        Port('caba:dspin_output', 'p_int_cmd_out', [4, 3], 
121              dspin_data_size = parameter.Reference('dspin_int_cmd_width')),
122        Port('caba:dspin_input', 'p_int_cmd_in', [4, 3], 
123              dspin_data_size = parameter.Reference('dspin_int_cmd_width')),
124        Port('caba:dspin_output', 'p_int_rsp_out', [4, 2], 
125              dspin_data_size = parameter.Reference('dspin_int_rsp_width')), 
126        Port('caba:dspin_input', 'p_int_rsp_in', [4, 2], 
127              dspin_data_size = parameter.Reference('dspin_int_rsp_width')),
128
129        Port('caba:dspin_output', 'p_ram_cmd_out', [4], 
130              dspin_data_size = parameter.Reference('dspin_ram_cmd_width')),
131        Port('caba:dspin_input', 'p_ram_cmd_in', [4], 
132              dspin_data_size = parameter.Reference('dspin_ram_cmd_width')),
133        Port('caba:dspin_output', 'p_ram_rsp_out', [4], 
134              dspin_data_size = parameter.Reference('dspin_ram_rsp_width')), 
135        Port('caba:dspin_input', 'p_ram_rsp_in', [4], 
136              dspin_data_size = parameter.Reference('dspin_ram_rsp_width')),
137        ],
138)
139
140
Note: See TracBrowser for help on using the repository browser.