[240] | 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 | |
---|