source: trunk/modules/vci_io_bridge/caba/metadata/vci_io_bridge.sd @ 715

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

vci_io_bridge:

  • erasing XICU base and size registers. There registers are not used anymore because routing through INT network is done by using special attribute of IOX mapping segments.
  • bugfix: adding config_cmd_to_config_rsp registers for transmitting SRCID, TRDID and PKTID. Before, r_config_cmd registers were used for transmitting these informations to CONFIG_RSP FSM, but these registers can be simultaneously modified by the CONFIG_CMD FSM.
  • adding a masking table for SRCID in the DMA_CMD FSM. This masking table is used to replace SRCID global bits of commands coming from external DMA peripherals by the IOB cluster global bits. This way, the responses for DMA peripheral commands, will come through the same IOB. In the same manner, the DMA_RSP FSM masks the global bits of RSRCID before sending to DMA external peripherals.
  • introduction of an IO transaction table in the CONFIG_CMD FSM. This table is used to store SRCID and TRDID of incoming commands from the INT network. The SRCID and TRDID of these commands is replaced by the IOB IOX SRCID and table index respectively. The goal is to force that responses to these commands come back trough the same IOB. The CONFIG_RSP FSM restores both SRCID and TRDID by reading the table.
File size: 2.2 KB
Line 
1
2# -*- python -*-
3
4__id__ = "$Id: vci_io_bridge.sd 20 2012-6-11 $"
5
6Module('caba:vci_io_bridge',
7    classname = 'soclib::caba::VciIoBridge',
8
9    tmpl_parameters = [
10        parameter.Module('vci_param_int',
11                          default = 'caba:vci_param',
12                          cell_size = parameter.Reference('iob_cell_size_int')),
13        parameter.Module('vci_param_ext',
14                          default = 'caba:vci_param',
15                          cell_size = parameter.Reference('iob_cell_size_ext')),
16    ],
17
18    header_files =         [
19        '../source/include/vci_io_bridge.h',
20        '../source/include/transaction_tab_io.h'
21    ],
22
23    implementation_files = [ '../source/src/vci_io_bridge.cpp' ],
24
25    uses = [ Uses('caba:base_module'),
26        Uses('common:mapping_table'),
27        Uses('caba:generic_fifo'),
28        Uses('caba:generic_tlb',
29              addr_t = parameter.StringExt('sc_dt::sc_uint<%d> ',
30              parameter.Reference('addr_size'))),
31        Uses('common:address_decoding_table',
32              input_t  = 'unsigned long',
33              output_t = 'bool'),
34        Uses('common:address_decoding_table',
35              input_t  = 'unsigned long',
36              output_t = 'int'),
37    ],
38
39    ports = [
40        Port('caba:vci_initiator', 'p_vci_ini_ram'),
41        Port('caba:vci_target',    'p_vci_tgt_iox'),
42        Port('caba:vci_initiator', 'p_vci_ini_iox'),
43        Port('caba:vci_target',    'p_vci_tgt_int'),
44        Port('caba:vci_initiator', 'p_vci_ini_int'),
45        Port('caba:bit_in','p_irq', 32),
46        Port('caba:bit_in', 'p_resetn', auto = 'resetn'),
47        Port('caba:clock_in', 'p_clk', auto = 'clock'),
48    ],
49
50    instance_parameters = [
51        parameter.Module('mt_ext', 'common:mapping_table'),
52        parameter.Module('mt_int', 'common:mapping_table'),
53        parameter.Module('mt_iox', 'common:mapping_table'),
54        parameter.IntTab('int_tgtid'),
55        parameter.IntTab('int_srcid'),
56        parameter.IntTab('iox_tgtid'),
57        parameter.IntTab('iox_srcid'),
58        parameter.IntTab('ext_srcid'),
59        parameter.Int('dcache_words'),
60        parameter.Int('iotlb_ways'),
61        parameter.Int('iotlb_sets'),
62        parameter.Int('debug_start_cycle'),
63        parameter.Bool('debug_ok'),
64    ],
65)
66
Note: See TracBrowser for help on using the repository browser.