Changeset 802 for trunk/platforms/tsar_generic_iob/tsar_iob_cluster
- Timestamp:
- Sep 12, 2014, 3:10:04 PM (10 years ago)
- Location:
- trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h
r739 r802 201 201 size_t y_width, // y field bits 202 202 size_t l_width, // l field bits 203 size_t p_width, // p field bits 203 204 204 205 size_t int_memc_tgt_id, -
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp
r739 r802 1 1 ////////////////////////////////////////////////////////////////////////////// 2 2 // File: tsar_iob_cluster.cpp 3 // Author: Alain Greiner 3 // Author: Alain Greiner 4 4 // Copyright: UPMC/LIP6 5 5 // Date : april 2013 … … 10 10 // - 1 vci_io_bridge (connected to the 3 networks. 11 11 // - 3 vci_dspin_wrapper for the IOB. 12 // - 2 dspin_local_crossbar for commands and responses. 12 // - 2 dspin_local_crossbar for commands and responses. 13 13 ////////////////////////////////////////////////////////////////////////////// 14 14 … … 40 40 41 41 const soclib::common::MappingTable &mt_int, 42 const soclib::common::MappingTable &mt_ram, 43 const soclib::common::MappingTable &mt_iox, 42 const soclib::common::MappingTable &mt_ram, 43 const soclib::common::MappingTable &mt_iox, 44 44 45 45 size_t x_width, 46 46 size_t y_width, 47 47 size_t l_width, 48 size_t p_width, 48 49 49 50 size_t int_memc_tgt_id, // local index … … 103 104 { 104 105 p_vci_iob_iox_ini = new soclib::caba::VciInitiator<vci_param_ext>; 105 p_vci_iob_iox_tgt = new soclib::caba::VciTarget<vci_param_ext>; 106 p_vci_iob_iox_tgt = new soclib::caba::VciTarget<vci_param_ext>; 106 107 } 107 108 … … 112 113 //////////// PROCS 113 114 for (size_t p = 0; p < nb_procs; p++) 114 { 115 { 115 116 std::ostringstream s_proc; 116 117 s_proc << "proc_" << x_id << "_" << y_id << "_" << p; … … 120 121 GdbServer<Mips32ElIss> >( 121 122 s_proc.str().c_str(), 122 cluster_id*nb_procs + p,// GLOBAL PROC_ID123 (cluster_id << p_width) + p, // GLOBAL PROC_ID 123 124 mt_int, // Mapping Table INT network 124 125 IntTab(cluster_id,p), // SRCID … … 139 140 } 140 141 141 /////////// MEMC 142 /////////// MEMC 142 143 std::ostringstream s_memc; 143 144 s_memc << "memc_" << x_id << "_" << y_id; … … 204 205 cluster_id, // cluster id 205 206 nb_direct_initiators, // number of local initiators 206 nb_direct_targets, // number of local targets 207 nb_direct_targets, // number of local targets 207 208 0 ); // default target 208 209 … … 234 235 x_width, y_width, l_width, // several dests 235 236 1, // number of local sources 236 nb_procs, // number of local dests 237 2, 2, // fifo depths 237 nb_procs, // number of local dests 238 2, 2, // fifo depths 238 239 true, // pseudo CMD 239 240 false, // no routing table … … 249 250 nb_procs, // number of local sources 250 251 1, // number of local dests 251 2, 2, // fifo depths 252 2, 2, // fifo depths 252 253 false, // pseudo RSP 253 254 false, // no routing table 254 false ); // no broacast 255 false ); // no broacast 255 256 256 257 std::ostringstream s_int_xbar_clack_c; … … 262 263 x_width, y_width, l_width, 263 264 1, // number of local sources 264 nb_procs, // number of local targets 265 nb_procs, // number of local targets 265 266 1, 1, // fifo depths 266 267 true, // CMD … … 330 331 /////////// IO_BRIDGE 331 332 std::ostringstream s_iob; 332 s_iob << "iob_" << x_id << "_" << y_id; 333 s_iob << "iob_" << x_id << "_" << y_id; 333 334 iob = new VciIoBridge<vci_param_int, 334 vci_param_ext>( 335 vci_param_ext>( 335 336 s_iob.str().c_str(), 336 337 mt_ram, // EXT network maptab … … 346 347 debug_start_cycle, 347 348 iob_debug_ok ); 348 349 349 350 std::ostringstream s_iob_ram_wi; 350 s_iob_ram_wi << "iob_ram_wi_" << x_id << "_" << y_id; 351 s_iob_ram_wi << "iob_ram_wi_" << x_id << "_" << y_id; 351 352 iob_ram_wi = new VciDspinInitiatorWrapper<vci_param_ext, 352 353 dspin_ram_cmd_width, … … 388 389 // on coherence network : local srcid[proc] in [0...nb_procs-1] 389 390 // : local srcid[memc] = nb_procs 390 391 391 392 //////////////////////// internal CMD & RSP routers 392 393 int_router_cmd->p_clk (this->p_clk); … … 417 418 int_router_cmd->p_in[4][1] (signal_int_dspin_m2p_l2g_c); 418 419 int_router_cmd->p_in[4][2] (signal_int_dspin_clack_l2g_c); 419 420 420 421 int_router_rsp->p_out[4][0] (signal_int_dspin_rsp_g2l_d); 421 422 int_router_rsp->p_out[4][1] (signal_int_dspin_p2m_g2l_c); … … 453 454 int_wt_gate_d->p_dspin_cmd (signal_int_dspin_cmd_g2l_d); 454 455 int_wt_gate_d->p_dspin_rsp (signal_int_dspin_rsp_l2g_d); 455 456 456 457 ////////////////////// M2P DSPIN local crossbar coherence 457 458 int_xbar_m2p_c->p_clk (this->p_clk); … … 460 461 int_xbar_m2p_c->p_global_in (signal_int_dspin_m2p_g2l_c); 461 462 int_xbar_m2p_c->p_local_in[0] (signal_int_dspin_m2p_memc); 462 for (size_t p = 0; p < nb_procs; p++) 463 for (size_t p = 0; p < nb_procs; p++) 463 464 int_xbar_m2p_c->p_local_out[p] (signal_int_dspin_m2p_proc[p]); 464 465 … … 469 470 int_xbar_p2m_c->p_global_in (signal_int_dspin_p2m_g2l_c); 470 471 int_xbar_p2m_c->p_local_out[0] (signal_int_dspin_p2m_memc); 471 for (size_t p = 0; p < nb_procs; p++) 472 for (size_t p = 0; p < nb_procs; p++) 472 473 int_xbar_p2m_c->p_local_in[p] (signal_int_dspin_p2m_proc[p]); 473 474 … … 511 512 else if ( i <= nb_dmas ) xicu->p_hwi[i] (signal_irq_mdma[i-1]); 512 513 else xicu->p_hwi[i] (signal_false); 513 } 514 } 514 515 515 516 ///////////////////////////////////// MEMC … … 576 577 ram_router_rsp->p_out[4] (signal_ram_dspin_rsp_memc_i); 577 578 } 578 579 ///////////////////////// IOB exists only in cluster_iob0 & cluster_iob1. 579 580 ///////////////////////// IOB exists only in cluster_iob0 & cluster_iob1. 580 581 if ( is_io ) 581 582 {
Note: See TracChangeset
for help on using the changeset viewer.