1 | |
---|
2 | # -*- python -*- |
---|
3 | |
---|
4 | __id__ = "$Id: vci_io_bridge.sd 20 2012-6-11 $" |
---|
5 | |
---|
6 | Module('caba:vci_io_bridge', |
---|
7 | classname = 'soclib::caba::VciIoBridge', |
---|
8 | tmpl_parameters = [ |
---|
9 | parameter.Module('vci_param_d', default = 'caba:vci_param', |
---|
10 | cell_size = parameter.Reference("cell_size_d"), |
---|
11 | plen_size = parameter.Reference("plen_size_d"), |
---|
12 | addr_size = parameter.Reference("addr_size_d"), |
---|
13 | rerror_size = parameter.Reference("rerror_size_d"), |
---|
14 | clen_size = parameter.Reference("clen_size_d"), |
---|
15 | rflag_size = parameter.Reference("rflag_size_d"), |
---|
16 | srcid_size = parameter.Reference("srcid_size_d"), |
---|
17 | pktid_size = parameter.Reference("pktid_size_d"), |
---|
18 | trdid_size = parameter.Reference("trdid_size_d"), |
---|
19 | wrplen_size = parameter.Reference("wrplen_size_d")), |
---|
20 | parameter.Module('vci_param_x', default = 'caba:vci_param', |
---|
21 | cell_size = parameter.Reference("cell_size_x"), |
---|
22 | plen_size = parameter.Reference("plen_size_x"), |
---|
23 | addr_size = parameter.Reference("addr_size_x"), |
---|
24 | rerror_size = parameter.Reference("rerror_size_x"), |
---|
25 | clen_size = parameter.Reference("clen_size_x"), |
---|
26 | rflag_size = parameter.Reference("rflag_size_x"), |
---|
27 | srcid_size = parameter.Reference("srcid_size_x"), |
---|
28 | pktid_size = parameter.Reference("pktid_size_x"), |
---|
29 | trdid_size = parameter.Reference("trdid_size_x"), |
---|
30 | wrplen_size = parameter.Reference("wrplen_size_x")), |
---|
31 | parameter.Module('vci_param_io', default = 'caba:vci_param', |
---|
32 | cell_size = parameter.Reference("cell_size_io"), |
---|
33 | plen_size = parameter.Reference("plen_size_io"), |
---|
34 | addr_size = parameter.Reference("addr_size_io"), |
---|
35 | rerror_size = parameter.Reference("rerror_size_io"), |
---|
36 | clen_size = parameter.Reference("clen_size_io"), |
---|
37 | rflag_size = parameter.Reference("rflag_size_io"), |
---|
38 | srcid_size = parameter.Reference("srcid_size_io"), |
---|
39 | pktid_size = parameter.Reference("pktid_size_io"), |
---|
40 | trdid_size = parameter.Reference("trdid_size_io"), |
---|
41 | wrplen_size = parameter.Reference("wrplen_size_io")), |
---|
42 | ], |
---|
43 | header_files = [ '../source/include/vci_io_bridge.h', |
---|
44 | '../source/include/transaction_tab_io.h'], |
---|
45 | implementation_files = [ '../source/src/vci_io_bridge.cpp' ], |
---|
46 | uses = [ Uses('caba:base_module'), |
---|
47 | Uses('common:mapping_table'), |
---|
48 | Uses('caba:generic_fifo'), |
---|
49 | Uses('caba:generic_tlb', |
---|
50 | addr_t = parameter.StringExt('sc_dt::sc_uint<%d> ', |
---|
51 | parameter.Reference('addr_size'))), |
---|
52 | Uses('common:address_decoding_table', |
---|
53 | input_t = 'unsigned long', |
---|
54 | output_t = 'bool'), |
---|
55 | Uses('common:address_decoding_table', |
---|
56 | input_t = 'unsigned long', |
---|
57 | output_t = 'int'), |
---|
58 | # Uses('common:address_masking_table', |
---|
59 | # data_t = parameter.StringExt('sc_dt::sc_uint<%d> ', |
---|
60 | # parameter.Reference('addr_size'))), |
---|
61 | ], |
---|
62 | ports = [ Port('caba:vci_initiator', 'p_vci_ini_dma'), |
---|
63 | Port('caba:vci_target', 'p_vci_tgt_dma'), |
---|
64 | Port('caba:vci_initiator', 'p_vci_ini_config'), |
---|
65 | Port('caba:vci_target', 'p_vci_tgt_config'), |
---|
66 | Port('caba:vci_initiator', 'p_vci_ini_miss'), |
---|
67 | Port('caba:bit_in','p_irq', parameter.Reference('nb_periph')), |
---|
68 | Port('caba:bit_in', 'p_resetn', auto = 'resetn'), |
---|
69 | Port('caba:clock_in', 'p_clk', auto = 'clock'), ], |
---|
70 | instance_parameters = [ parameter.Int('nd_periph'), |
---|
71 | parameter.Module('mtx', 'common:mapping_table'), |
---|
72 | parameter.Module('mtd', 'common:mapping_table'), |
---|
73 | parameter.Module('mtio', 'common:mapping_table'), |
---|
74 | parameter.Module('seg_config_iob', 'common:segment'), |
---|
75 | parameter.IntTab('tgt_index_iocluster'), |
---|
76 | # parameter.IntTab('tgt_index_config'), |
---|
77 | parameter.IntTab('init_index_direct'), |
---|
78 | parameter.IntTab('tgt_index_iospace'), |
---|
79 | parameter.IntTab('init_index_iospace'), |
---|
80 | parameter.IntTab('init_index_dma'), |
---|
81 | parameter.Int('dcache_words'), |
---|
82 | parameter.Int('iotlb_ways'), |
---|
83 | parameter.Int('iotlb_sets'), |
---|
84 | parameter.Int('max_frozen_cycles'), ], |
---|
85 | extensions = [ 'dsx:get_ident=' |
---|
86 | 'tgt_index_config:p_vci_tgt_config:mtd,' |
---|
87 | 'init_index_direct:p_vci_init_miss:mtd,' |
---|
88 | 'tgt_index_iospace:p_vci_tgt_dma:mtio,' |
---|
89 | 'init_index_iospace:p_vci_init_config:mtio,' |
---|
90 | 'init_index_dma:p_vci_ini_dma:mtx,' |
---|
91 | 'dsx:cpu=wrapper:iss_t', |
---|
92 | 'dsx:addressable=tgt_index_config,tgt_index_iospace', |
---|
93 | # 'dsx:on_segment=mc:add_index:initiator_rw_index', |
---|
94 | ], |
---|
95 | |
---|
96 | # debug = True, |
---|
97 | ) |
---|
98 | |
---|