Changeset 693
- Timestamp:
- May 17, 2014, 11:54:12 AM (11 years ago)
- Location:
- trunk/platforms/tsar_generic_iob
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_iob/top.cpp
r618 r693 214 214 #define WEST 3 215 215 216 #define cluster(x,y) ((y) + ( x<<4))216 #define cluster(x,y) ((y) + ((x) << 4)) 217 217 218 218 //////////////////////////////////////////////////////////// … … 1393 1393 signal_resetn = true; 1394 1394 1395 struct timeval t1,t2; 1396 gettimeofday(&t1, NULL); 1395 1397 for (size_t n = 1; n < ncycles; n++) 1396 1398 { 1399 // stats display 1400 if( (n % 5000000) == 0) 1401 { 1402 gettimeofday(&t2, NULL); 1403 1404 uint64_t ms1 = (uint64_t) t1.tv_sec * 1000ULL + 1405 (uint64_t) t1.tv_usec / 1000; 1406 uint64_t ms2 = (uint64_t) t2.tv_sec * 1000ULL + 1407 (uint64_t) t2.tv_usec / 1000; 1408 std::cerr << "platform clock frequency " 1409 << (double) 5000000 / (double) (ms2 - ms1) << "Khz" 1410 << std::endl; 1411 1412 gettimeofday(&t1, NULL); 1413 } 1414 1397 1415 // Monitor a specific address for one L1 cache 1398 1416 // clusters[1][1]->proc[0]->cache_monitor(0x50090ULL); -
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd
r550 r693 3 3 4 4 Module('caba:tsar_iob_cluster', 5 5 classname = 'soclib::caba::TsarIobCluster', 6 6 7 8 7 tmpl_parameters = [ 8 parameter.Module('vci_param_int', default = 'caba:vci_param', 9 9 cell_size = parameter.Reference('vci_data_width_int')), 10 10 parameter.Module('vci_param_ext', default = 'caba:vci_param', 11 11 cell_size = parameter.Reference('vci_data_width_ext')), 12 13 14 15 16 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 17 18 18 header_files = [ 19 19 '../source/include/tsar_iob_cluster.h', 20 20 ], 21 21 22 22 implementation_files = [ 23 23 '../source/src/tsar_iob_cluster.cpp', 24 24 ], 25 25 26 27 28 29 30 26 uses = [ 27 Uses('caba:base_module'), 28 Uses('common:mapping_table'), 29 Uses('common:iss2'), 30 Uses('common:elf_file_loader'), 31 31 32 32 # internal network components 33 33 Uses('caba:vci_cc_vcache_wrapper', 34 34 cell_size = parameter.Reference('vci_data_width_int'), 35 35 dspin_in_width = parameter.Reference('dspin_int_cmd_width'), … … 38 38 gdb_iss_t = 'common:mips32el'), 39 39 40 40 Uses('caba:vci_mem_cache', 41 41 memc_cell_size_int = parameter.Reference('vci_data_width_int'), 42 42 memc_cell_size_ext = parameter.Reference('vci_data_width_ext'), … … 47 47 cell_size = parameter.Reference('vci_data_width_int')), 48 48 49 Uses('caba:vci_multi_dma', 49 Uses('caba:vci_multi_dma', 50 cell_size = parameter.Reference('vci_data_width_int')), 51 52 Uses('caba:vci_local_crossbar', 50 53 cell_size = parameter.Reference('vci_data_width_int')), 51 54 … … 89 92 flit_width = parameter.Reference('dspin_ram_rsp_width')), 90 93 91 94 Uses('caba:vci_simple_ram', 92 95 cell_size = parameter.Reference('vci_data_width_ext')), 93 96 … … 96 99 iob_cell_size_int = parameter.Reference('vci_data_width_int'), 97 100 iob_cell_size_ext = parameter.Reference('vci_data_width_ext')), 98 101 ], 99 102 100 101 102 103 ports = [ 104 Port('caba:bit_in', 'p_resetn', auto = 'resetn'), 105 Port('caba:clock_in', 'p_clk', auto = 'clock'), 103 106 104 107 Port('caba:dspin_output', 'p_int_cmd_out', [4, 3], 105 108 dspin_data_size = parameter.Reference('dspin_int_cmd_width')), 106 109 Port('caba:dspin_input', 'p_int_cmd_in', [4, 3], 107 110 dspin_data_size = parameter.Reference('dspin_int_cmd_width')), 108 111 Port('caba:dspin_output', 'p_int_rsp_out', [4, 2], 109 112 dspin_data_size = parameter.Reference('dspin_int_rsp_width')), 110 113 Port('caba:dspin_input', 'p_int_rsp_in', [4, 2], 111 114 dspin_data_size = parameter.Reference('dspin_int_rsp_width')), 112 115 113 116 Port('caba:dspin_output', 'p_ram_cmd_out', [4], 114 117 dspin_data_size = parameter.Reference('dspin_ram_cmd_width')), 115 118 Port('caba:dspin_input', 'p_ram_cmd_in', [4], 116 119 dspin_data_size = parameter.Reference('dspin_ram_cmd_width')), 117 120 Port('caba:dspin_output', 'p_ram_rsp_out', [4], 118 121 dspin_data_size = parameter.Reference('dspin_ram_rsp_width')), 119 122 Port('caba:dspin_input', 'p_ram_rsp_in', [4], 120 123 dspin_data_size = parameter.Reference('dspin_ram_rsp_width')), 121 124 ], 122 125 ) 123 126 -
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h
r607 r693 22 22 #include "vci_simple_ram.h" 23 23 #include "vci_xicu.h" 24 #include "vci_local_crossbar.h" 24 25 #include "dspin_local_crossbar.h" 25 26 #include "vci_dspin_initiator_wrapper.h" … … 32 33 #include "vci_io_bridge.h" 33 34 34 namespace soclib { namespace caba 35 namespace soclib { namespace caba { 35 36 36 37 /////////////////////////////////////////////////////////////////////////// … … 48 49 public: 49 50 50 51 sc_in<bool> 52 sc_in<bool> 51 // Ports 52 sc_in<bool> p_clk; 53 sc_in<bool> p_resetn; 53 54 54 55 // Thes two ports are used to connect IOB to IOX nework in top cell … … 64 65 65 66 // These arrays of ports are used to connect the INT & RAM networks in top cell 66 67 67 soclib::caba::DspinOutput<dspin_int_cmd_width>** p_dspin_int_cmd_out; 68 soclib::caba::DspinInput<dspin_int_cmd_width>** p_dspin_int_cmd_in; 68 69 soclib::caba::DspinOutput<dspin_int_rsp_width>** p_dspin_int_rsp_out; 69 70 soclib::caba::DspinInput<dspin_int_rsp_width>** p_dspin_int_rsp_in; 70 71 71 72 72 soclib::caba::DspinOutput<dspin_ram_cmd_width>* p_dspin_ram_cmd_out; 73 soclib::caba::DspinInput<dspin_ram_cmd_width>* p_dspin_ram_cmd_in; 73 74 soclib::caba::DspinOutput<dspin_ram_rsp_width>* p_dspin_ram_rsp_out; 74 75 soclib::caba::DspinInput<dspin_ram_rsp_width>* p_dspin_ram_rsp_in; 75 76 76 77 // interrupt signals 77 sc_signal<bool> signal_false; 78 sc_signal<bool> signal_proc_it[8]; 79 sc_signal<bool> signal_irq_mdma[8]; 80 sc_signal<bool> signal_irq_memc; 81 82 // INT network DSPIN signals between DSPIN routers and DSPIN local_crossbars 83 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_l2g_d; 84 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_g2l_d; 85 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_l2g_c; 86 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_g2l_c; 87 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_l2g_c; 88 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_g2l_c; 89 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_l2g_d; 90 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_g2l_d; 91 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_l2g_c; 92 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_g2l_c; 93 94 // INT network VCI signals between VCI components and VCI/DSPIN wrappers 95 VciSignals<vci_param_int> signal_int_vci_ini_proc[8]; 96 VciSignals<vci_param_int> signal_int_vci_ini_mdma; 97 VciSignals<vci_param_int> signal_int_vci_ini_iobx; 98 99 VciSignals<vci_param_int> signal_int_vci_tgt_memc; 100 VciSignals<vci_param_int> signal_int_vci_tgt_xicu; 101 VciSignals<vci_param_int> signal_int_vci_tgt_mdma; 102 VciSignals<vci_param_int> signal_int_vci_tgt_iobx; 103 104 // INT network DSPIN signals between DSPIN local crossbars and VCI/DSPIN wrappers 105 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_proc_i[8]; 106 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_proc_i[8]; 107 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_mdma_i; 108 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_mdma_i; 109 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_iobx_i; 110 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_iobx_i; 111 112 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_memc_t; 113 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_memc_t; 114 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_xicu_t; 115 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_xicu_t; 116 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_mdma_t; 117 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_mdma_t; 118 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_iobx_t; 119 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_iobx_t; 120 121 // Coherence DSPIN signals between DSPIN local crossbars and CC components 122 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_memc; 123 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_memc; 124 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_memc; 125 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_proc[8]; 126 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_proc[8]; 127 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_proc[8]; 128 129 // RAM network VCI signals between VCI components and VCI/DSPIN wrappers 130 VciSignals<vci_param_ext> signal_ram_vci_ini_memc; 131 VciSignals<vci_param_ext> signal_ram_vci_ini_iobx; 132 VciSignals<vci_param_ext> signal_ram_vci_tgt_xram; 78 sc_signal<bool> signal_false; 79 sc_signal<bool> signal_proc_it[8]; 80 sc_signal<bool> signal_irq_mdma[8]; 81 sc_signal<bool> signal_irq_memc; 82 83 // INT network DSPIN signals between DSPIN routers and DSPIN local_crossbars 84 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_l2g_d; 85 DspinSignals<dspin_int_cmd_width> signal_int_dspin_cmd_g2l_d; 86 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_l2g_c; 87 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_g2l_c; 88 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_l2g_c; 89 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_g2l_c; 90 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_l2g_d; 91 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_g2l_d; 92 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_l2g_c; 93 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_g2l_c; 94 95 // INT network VCI signals between VCI components and VCI local crossbar 96 VciSignals<vci_param_int> signal_int_vci_ini_proc[8]; 97 VciSignals<vci_param_int> signal_int_vci_ini_mdma; 98 VciSignals<vci_param_int> signal_int_vci_ini_iobx; 99 100 VciSignals<vci_param_int> signal_int_vci_tgt_memc; 101 VciSignals<vci_param_int> signal_int_vci_tgt_xicu; 102 VciSignals<vci_param_int> signal_int_vci_tgt_mdma; 103 VciSignals<vci_param_int> signal_int_vci_tgt_iobx; 104 105 VciSignals<vci_param_int> signal_int_vci_l2g; 106 VciSignals<vci_param_int> signal_int_vci_g2l; 107 108 // Coherence DSPIN signals between DSPIN local crossbars and CC components 109 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_memc; 110 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_memc; 111 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_memc; 112 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_proc[8]; 113 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_proc[8]; 114 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_proc[8]; 115 116 // RAM network VCI signals between VCI components and VCI/DSPIN wrappers 117 VciSignals<vci_param_ext> signal_ram_vci_ini_memc; 118 VciSignals<vci_param_ext> signal_ram_vci_ini_iobx; 119 VciSignals<vci_param_ext> signal_ram_vci_tgt_xram; 133 120 134 121 // RAM network DSPIN signals between VCI/DSPIN wrappers and routers 135 136 137 138 122 DspinSignals<dspin_ram_cmd_width> signal_ram_dspin_cmd_xram_t; 123 DspinSignals<dspin_ram_rsp_width> signal_ram_dspin_rsp_xram_t; 124 DspinSignals<dspin_ram_cmd_width> signal_ram_dspin_cmd_memc_i; 125 DspinSignals<dspin_ram_rsp_width> signal_ram_dspin_rsp_memc_i; 139 126 140 127 ////////////////////////////////////// … … 146 133 GdbServer<Mips32ElIss> >* proc[8]; 147 134 148 VciDspinInitiatorWrapper<vci_param_int,149 dspin_int_cmd_width,150 dspin_int_rsp_width>* proc_wi[8];151 152 135 VciMemCache<vci_param_int, 153 136 vci_param_ext, … … 155 138 dspin_int_cmd_width>* memc; 156 139 157 VciDspinTargetWrapper<vci_param_int,158 dspin_int_cmd_width,159 dspin_int_rsp_width>* memc_int_wt;160 161 140 VciDspinInitiatorWrapper<vci_param_ext, 162 141 dspin_ram_cmd_width, 163 142 dspin_ram_rsp_width>* memc_ram_wi; 164 143 165 VciXicu<vci_param_int>* xicu; 144 VciXicu<vci_param_int>* xicu; 145 146 VciMultiDma<vci_param_int>* mdma; 147 148 VciLocalCrossbar<vci_param_int>* int_xbar_d; 149 150 VciDspinInitiatorWrapper<vci_param_int, 151 dspin_int_cmd_width, 152 dspin_int_rsp_width>* int_wi_gate_d; 166 153 167 154 VciDspinTargetWrapper<vci_param_int, 168 155 dspin_int_cmd_width, 169 dspin_int_rsp_width>* xicu_int_wt; 170 171 VciMultiDma<vci_param_int>* mdma; 172 173 VciDspinInitiatorWrapper<vci_param_int, 174 dspin_int_cmd_width, 175 dspin_int_rsp_width>* mdma_int_wi; 176 177 VciDspinTargetWrapper<vci_param_int, 178 dspin_int_cmd_width, 179 dspin_int_rsp_width>* mdma_int_wt; 180 181 DspinLocalCrossbar<dspin_int_cmd_width>* int_xbar_cmd_d; 182 DspinLocalCrossbar<dspin_int_rsp_width>* int_xbar_rsp_d; 156 dspin_int_rsp_width>* int_wt_gate_d; 157 183 158 DspinLocalCrossbar<dspin_int_cmd_width>* int_xbar_m2p_c; 184 159 DspinLocalCrossbar<dspin_int_rsp_width>* int_xbar_p2m_c; 185 160 DspinLocalCrossbar<dspin_int_cmd_width>* int_xbar_clack_c; 186 161 187 VirtualDspinRouter<dspin_int_cmd_width>* 162 VirtualDspinRouter<dspin_int_cmd_width>* int_router_cmd; 188 163 VirtualDspinRouter<dspin_int_rsp_width>* int_router_rsp; 189 164 … … 193 168 dspin_ram_cmd_width, 194 169 dspin_ram_rsp_width>* xram_ram_wt; 195 196 DspinRouterTsar<dspin_ram_cmd_width>* 170 171 DspinRouterTsar<dspin_ram_cmd_width>* ram_router_cmd; 197 172 DspinRouterTsar<dspin_ram_rsp_width>* ram_router_rsp; 198 173 199 174 // IO Network Components (not instanciated in all clusters) 200 175 201 176 VciIoBridge<vci_param_int, 202 177 vci_param_ext>* iob; 203 204 VciDspinInitiatorWrapper<vci_param_int,205 dspin_int_cmd_width,206 dspin_int_rsp_width>* iob_int_wi;207 208 VciDspinTargetWrapper<vci_param_int,209 dspin_int_cmd_width,210 dspin_int_rsp_width>* iob_int_wt;211 178 212 179 VciDspinInitiatorWrapper<vci_param_ext, 213 180 dspin_ram_cmd_width, 214 181 dspin_ram_rsp_width>* iob_ram_wi; 215 182 216 183 // cluster constructor 217 184 TsarIobCluster( sc_module_name insname, 218 185 size_t nb_procs, 219 186 size_t nb_dmas, … … 227 194 const soclib::common::MappingTable &mt_iox, 228 195 229 size_t 230 size_t 231 size_t 232 233 size_t 234 size_t 235 size_t 236 size_t 196 size_t x_width, // x field bits 197 size_t y_width, // y field bits 198 size_t l_width, // l field bits 199 200 size_t int_memc_tgtid, 201 size_t int_xicu_tgtid, 202 size_t int_mdma_tgtid, 203 size_t int_iobx_tgtid, 237 204 238 205 size_t int_proc_srcid, … … 250 217 size_t l1_i_sets, 251 218 size_t l1_d_ways, 252 size_t l1_d_sets, 219 size_t l1_d_sets, 253 220 size_t xram_latency, 254 221 -
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp
r607 r693 149 149 debug_start_cycle, 150 150 proc_debug_ok); 151 152 std::ostringstream s_wi_proc;153 s_wi_proc << "proc_wi_" << x_id << "_" << y_id << "_" << p;154 proc_wi[p] = new VciDspinInitiatorWrapper<vci_param_int,155 dspin_int_cmd_width,156 dspin_int_rsp_width>(157 s_wi_proc.str().c_str(),158 x_width + y_width + l_width);159 151 } 160 152 … … 182 174 memc_debug_ok ); 183 175 184 std::ostringstream s_wt_memc;185 s_wt_memc << "memc_wt_" << x_id << "_" << y_id;186 memc_int_wt = new VciDspinTargetWrapper<vci_param_int,187 dspin_int_cmd_width,188 dspin_int_rsp_width>(189 s_wt_memc.str().c_str(),190 x_width + y_width + l_width);191 192 176 std::ostringstream s_wi_memc; 193 177 s_wi_memc << "memc_wi_" << x_id << "_" << y_id; … … 210 194 nb_procs); // number of output IRQs 211 195 212 std::ostringstream s_wt_xicu;213 s_wt_xicu << "xicu_wt_" << x_id << "_" << y_id;214 xicu_int_wt = new VciDspinTargetWrapper<vci_param_int,215 dspin_int_cmd_width,216 dspin_int_rsp_width>(217 s_wt_xicu.str().c_str(),218 x_width + y_width + l_width);219 220 196 //////////// MDMA 221 197 std::ostringstream s_mdma; … … 229 205 nb_dmas); // number of IRQs 230 206 231 std::ostringstream s_wt_mdma;232 s_wt_mdma << "mdma_wt_" << x_id << "_" << y_id;233 mdma_int_wt = new VciDspinTargetWrapper<vci_param_int,234 dspin_int_cmd_width,235 dspin_int_rsp_width>(236 s_wt_mdma.str().c_str(),237 x_width + y_width + l_width);238 239 std::ostringstream s_wi_mdma;240 s_wi_mdma << "mdma_wi_" << x_id << "_" << y_id;241 mdma_int_wi = new VciDspinInitiatorWrapper<vci_param_int,242 dspin_int_cmd_width,243 dspin_int_rsp_width>(244 s_wi_mdma.str().c_str(),245 x_width + y_width + l_width);246 247 207 /////////// Direct LOCAL_XBAR(S) 248 208 size_t nb_direct_initiators = nb_procs + 1; … … 254 214 } 255 215 256 std::ostringstream s_int_xbar_ cmd_d;257 s_int_xbar_ cmd_d << "int_xbar_cmd_d_" << x_id << "_" << y_id;258 int_xbar_ cmd_d = new DspinLocalCrossbar<dspin_int_cmd_width>(259 s_int_xbar_ cmd_d.str().c_str(),216 std::ostringstream s_int_xbar_d; 217 s_int_xbar_d << "int_xbar_cmd_d_" << x_id << "_" << y_id; 218 int_xbar_d = new VciLocalCrossbar<vci_param_int>( 219 s_int_xbar_d.str().c_str(), 260 220 mt_int, // mapping table 261 x_id, y_id, // cluster coordinates 262 x_width, y_width, l_width, 263 nb_direct_initiators, // number of local of sources 264 nb_direct_targets, // number of local dests 265 2, 2, // fifo depths 266 true, // CMD crossbar 267 true, // use routing table 268 false ); // no broacast 269 270 std::ostringstream s_int_xbar_rsp_d; 271 s_int_xbar_rsp_d << "int_xbar_rsp_d_" << x_id << "_" << y_id; 272 int_xbar_rsp_d = new DspinLocalCrossbar<dspin_int_rsp_width>( 273 s_int_xbar_rsp_d.str().c_str(), 274 mt_int, // mapping table 275 x_id, y_id, // cluster coordinates 276 x_width, y_width, l_width, 277 nb_direct_targets, // number of local sources 278 nb_direct_initiators, // number of local dests 279 2, 2, // fifo depths 280 false, // RSP crossbar 281 false, // don't use routing table 282 false ); // no broacast 221 cluster_id, // cluster id 222 nb_direct_initiators, // number of local initiators 223 nb_direct_targets, // number of local targets 224 0 ); // default target 225 226 std::ostringstream s_int_dspin_ini_wrapper_gate_d; 227 s_int_dspin_ini_wrapper_gate_d << "int_dspin_ini_wrapper_gate_d_" 228 << x_id << "_" << y_id; 229 int_wi_gate_d = new VciDspinInitiatorWrapper<vci_param_int, 230 dspin_int_cmd_width, 231 dspin_int_rsp_width>( 232 s_int_dspin_ini_wrapper_gate_d.str().c_str(), 233 x_width + y_width + l_width); 234 235 std::ostringstream s_int_dspin_tgt_wrapper_gate_d; 236 s_int_dspin_tgt_wrapper_gate_d << "int_dspin_tgt_wrapper_gate_d_" 237 << x_id << "_" << y_id; 238 int_wt_gate_d = new VciDspinTargetWrapper<vci_param_int, 239 dspin_int_cmd_width, 240 dspin_int_rsp_width>( 241 s_int_dspin_tgt_wrapper_gate_d.str().c_str(), 242 x_width + y_width + l_width); 243 283 244 284 245 //////////// Coherence LOCAL_XBAR(S) … … 430 391 iob_debug_ok ); 431 392 432 std::ostringstream s_iob_int_wi;433 s_iob_int_wi << "iob_int_wi_" << x_id << "_" << y_id;434 iob_int_wi = new VciDspinInitiatorWrapper<vci_param_int,435 dspin_int_cmd_width,436 dspin_int_rsp_width>(437 s_iob_int_wi.str().c_str(),438 x_width + y_width + l_width);439 440 std::ostringstream s_iob_int_wt;441 s_iob_int_wt << "iob_int_wt_" << x_id << "_" << y_id;442 iob_int_wt = new VciDspinTargetWrapper<vci_param_int,443 dspin_int_cmd_width,444 dspin_int_rsp_width>(445 s_iob_int_wt.str().c_str(),446 x_width + y_width + l_width);447 448 393 std::ostringstream s_iob_ram_wi; 449 394 s_iob_ram_wi << "iob_ram_wi_" << x_id << "_" << y_id; … … 500 445 501 446 ///////////////////// CMD DSPIN local crossbar direct 502 int_xbar_cmd_d->p_clk (this->p_clk); 503 int_xbar_cmd_d->p_resetn (this->p_resetn); 504 int_xbar_cmd_d->p_global_out (signal_int_dspin_cmd_l2g_d); 505 int_xbar_cmd_d->p_global_in (signal_int_dspin_cmd_g2l_d); 506 507 int_xbar_cmd_d->p_local_out[memc_int_tgtid] (signal_int_dspin_cmd_memc_t); 508 int_xbar_cmd_d->p_local_out[xicu_int_tgtid] (signal_int_dspin_cmd_xicu_t); 509 int_xbar_cmd_d->p_local_out[mdma_int_tgtid] (signal_int_dspin_cmd_mdma_t); 510 511 int_xbar_cmd_d->p_local_in[mdma_int_srcid] (signal_int_dspin_cmd_mdma_i); 512 447 int_xbar_d->p_clk (this->p_clk); 448 int_xbar_d->p_resetn (this->p_resetn); 449 int_xbar_d->p_initiator_to_up (signal_int_vci_l2g); 450 int_xbar_d->p_target_to_up (signal_int_vci_g2l); 451 452 int_xbar_d->p_to_target[memc_int_tgtid] (signal_int_vci_tgt_memc); 453 int_xbar_d->p_to_target[xicu_int_tgtid] (signal_int_vci_tgt_xicu); 454 int_xbar_d->p_to_target[mdma_int_tgtid] (signal_int_vci_tgt_mdma); 455 int_xbar_d->p_to_initiator[mdma_int_srcid] (signal_int_vci_ini_mdma); 513 456 for (size_t p = 0; p < nb_procs; p++) 514 int_xbar_cmd_d->p_local_in[proc_int_srcid+p] (signal_int_dspin_cmd_proc_i[p]);457 int_xbar_d->p_to_initiator[proc_int_srcid + p] (signal_int_vci_ini_proc[p]); 515 458 516 459 if ( (cluster_id == cluster_iob0) or (cluster_id == cluster_iob1) ) 517 460 { 518 int_xbar_cmd_d->p_local_out[iobx_int_tgtid] (signal_int_dspin_cmd_iobx_t); 519 int_xbar_cmd_d->p_local_in[iobx_int_srcid] (signal_int_dspin_cmd_iobx_i); 520 } 521 522 //////////////////////// RSP DSPIN local crossbar direct 523 int_xbar_rsp_d->p_clk (this->p_clk); 524 int_xbar_rsp_d->p_resetn (this->p_resetn); 525 int_xbar_rsp_d->p_global_out (signal_int_dspin_rsp_l2g_d); 526 int_xbar_rsp_d->p_global_in (signal_int_dspin_rsp_g2l_d); 527 528 int_xbar_rsp_d->p_local_in[memc_int_tgtid] (signal_int_dspin_rsp_memc_t); 529 int_xbar_rsp_d->p_local_in[xicu_int_tgtid] (signal_int_dspin_rsp_xicu_t); 530 int_xbar_rsp_d->p_local_in[mdma_int_tgtid] (signal_int_dspin_rsp_mdma_t); 531 532 int_xbar_rsp_d->p_local_out[mdma_int_srcid] (signal_int_dspin_rsp_mdma_i); 533 534 for (size_t p = 0; p < nb_procs; p++) 535 int_xbar_rsp_d->p_local_out[proc_int_srcid+p] (signal_int_dspin_rsp_proc_i[p]); 536 537 if ( (cluster_id == cluster_iob0) or (cluster_id == cluster_iob1) ) 538 { 539 int_xbar_rsp_d->p_local_in[iobx_int_tgtid] (signal_int_dspin_rsp_iobx_t); 540 int_xbar_rsp_d->p_local_out[iobx_int_srcid] (signal_int_dspin_rsp_iobx_i); 541 } 542 461 int_xbar_d->p_to_target[iobx_int_tgtid] (signal_int_vci_tgt_iobx); 462 int_xbar_d->p_to_initiator[iobx_int_srcid] (signal_int_vci_ini_iobx); 463 } 464 465 int_wi_gate_d->p_clk (this->p_clk); 466 int_wi_gate_d->p_resetn (this->p_resetn); 467 int_wi_gate_d->p_vci (signal_int_vci_l2g); 468 int_wi_gate_d->p_dspin_cmd (signal_int_dspin_cmd_l2g_d); 469 int_wi_gate_d->p_dspin_rsp (signal_int_dspin_rsp_g2l_d); 470 471 int_wt_gate_d->p_clk (this->p_clk); 472 int_wt_gate_d->p_resetn (this->p_resetn); 473 int_wt_gate_d->p_vci (signal_int_vci_g2l); 474 int_wt_gate_d->p_dspin_cmd (signal_int_dspin_cmd_g2l_d); 475 int_wt_gate_d->p_dspin_rsp (signal_int_dspin_rsp_l2g_d); 476 543 477 ////////////////////// M2P DSPIN local crossbar coherence 544 478 int_xbar_m2p_c->p_clk (this->p_clk); … … 582 516 proc[p]->p_irq[j] (signal_false); 583 517 } 584 585 proc_wi[p]->p_clk (this->p_clk);586 proc_wi[p]->p_resetn (this->p_resetn);587 proc_wi[p]->p_dspin_cmd (signal_int_dspin_cmd_proc_i[p]);588 proc_wi[p]->p_dspin_rsp (signal_int_dspin_rsp_proc_i[p]);589 proc_wi[p]->p_vci (signal_int_vci_ini_proc[p]);590 518 } 591 519 … … 605 533 xicu->p_hwi[i] (signal_false); 606 534 } 607 608 // wrapper XICU609 xicu_int_wt->p_clk (this->p_clk);610 xicu_int_wt->p_resetn (this->p_resetn);611 xicu_int_wt->p_dspin_cmd (signal_int_dspin_cmd_xicu_t);612 xicu_int_wt->p_dspin_rsp (signal_int_dspin_rsp_xicu_t);613 xicu_int_wt->p_vci (signal_int_vci_tgt_xicu);614 535 615 536 ///////////////////////////////////// MEMC … … 623 544 memc->p_irq (signal_irq_memc); 624 545 625 // wrapper to INT network626 memc_int_wt->p_clk (this->p_clk);627 memc_int_wt->p_resetn (this->p_resetn);628 memc_int_wt->p_dspin_cmd (signal_int_dspin_cmd_memc_t);629 memc_int_wt->p_dspin_rsp (signal_int_dspin_rsp_memc_t);630 memc_int_wt->p_vci (signal_int_vci_tgt_memc);631 632 546 // wrapper to RAM network 633 547 memc_ram_wi->p_clk (this->p_clk); … … 656 570 for (size_t i=0 ; i<nb_dmas ; i++) 657 571 mdma->p_irq[i] (signal_irq_mdma[i]); 658 659 // target wrapper660 mdma_int_wt->p_clk (this->p_clk);661 mdma_int_wt->p_resetn (this->p_resetn);662 mdma_int_wt->p_dspin_cmd (signal_int_dspin_cmd_mdma_t);663 mdma_int_wt->p_dspin_rsp (signal_int_dspin_rsp_mdma_t);664 mdma_int_wt->p_vci (signal_int_vci_tgt_mdma);665 666 // initiator wrapper667 mdma_int_wi->p_clk (this->p_clk);668 mdma_int_wi->p_resetn (this->p_resetn);669 mdma_int_wi->p_dspin_cmd (signal_int_dspin_cmd_mdma_i);670 mdma_int_wi->p_dspin_rsp (signal_int_dspin_rsp_mdma_i);671 mdma_int_wi->p_vci (signal_int_vci_ini_mdma);672 572 673 573 //////////////////////////// RAM network CMD & RSP routers … … 710 610 iob_ram_wi->p_dspin_rsp (*(this->p_dspin_iob_rsp_in)); 711 611 iob_ram_wi->p_vci (signal_ram_vci_ini_iobx); 712 713 // initiator wrapper to INT network714 iob_int_wi->p_clk (this->p_clk);715 iob_int_wi->p_resetn (this->p_resetn);716 iob_int_wi->p_dspin_cmd (signal_int_dspin_cmd_iobx_i);717 iob_int_wi->p_dspin_rsp (signal_int_dspin_rsp_iobx_i);718 iob_int_wi->p_vci (signal_int_vci_ini_iobx);719 720 // target wrapper to INT network721 iob_int_wt->p_clk (this->p_clk);722 iob_int_wt->p_resetn (this->p_resetn);723 iob_int_wt->p_dspin_cmd (signal_int_dspin_cmd_iobx_t);724 iob_int_wt->p_dspin_rsp (signal_int_dspin_rsp_iobx_t);725 iob_int_wt->p_vci (signal_int_vci_tgt_iobx);726 612 } 727 613
Note: See TracChangeset
for help on using the changeset viewer.