Changeset 468 for trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba
- Timestamp:
- Jul 24, 2013, 8:47:40 AM (11 years ago)
- Location:
- trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/metadata/tsar_iob_cluster.sd
r450 r468 108 108 Port('caba:clock_in', 'p_clk', auto = 'clock'), 109 109 110 Port('caba:dspin_output', 'p_int_cmd_out', [ 2, 4],110 Port('caba:dspin_output', 'p_int_cmd_out', [4, 3], 111 111 dspin_data_size = parameter.Reference('dspin_int_cmd_width')), 112 Port('caba:dspin_input', 'p_int_cmd_in', [ 2, 4],112 Port('caba:dspin_input', 'p_int_cmd_in', [4, 3], 113 113 dspin_data_size = parameter.Reference('dspin_int_cmd_width')), 114 Port('caba:dspin_output', 'p_int_rsp_out', [ 2, 4],114 Port('caba:dspin_output', 'p_int_rsp_out', [4, 2], 115 115 dspin_data_size = parameter.Reference('dspin_int_rsp_width')), 116 Port('caba:dspin_input', 'p_int_rsp_in', [ 2, 4],116 Port('caba:dspin_input', 'p_int_rsp_in', [4, 2], 117 117 dspin_data_size = parameter.Reference('dspin_int_rsp_width')), 118 118 119 Port('caba:dspin_output', 'p_ ext_cmd_out', [2,4],119 Port('caba:dspin_output', 'p_ram_cmd_out', [4], 120 120 dspin_data_size = parameter.Reference('dspin_ram_cmd_width')), 121 Port('caba:dspin_input', 'p_ ext_cmd_in', [2,4],121 Port('caba:dspin_input', 'p_ram_cmd_in', [4], 122 122 dspin_data_size = parameter.Reference('dspin_ram_cmd_width')), 123 Port('caba:dspin_output', 'p_ ext_rsp_out', [2,4],123 Port('caba:dspin_output', 'p_ram_rsp_out', [4], 124 124 dspin_data_size = parameter.Reference('dspin_ram_rsp_width')), 125 Port('caba:dspin_input', 'p_ ext_rsp_in', [2,4],125 Port('caba:dspin_input', 'p_ram_rsp_in', [4], 126 126 dspin_data_size = parameter.Reference('dspin_ram_rsp_width')), 127 127 ], -
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/include/tsar_iob_cluster.h
r450 r468 77 77 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_l2g_c; 78 78 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_g2l_c; 79 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_l2g_c; 80 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_g2l_c; 79 81 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_l2g_d; 80 82 DspinSignals<dspin_int_rsp_width> signal_int_dspin_rsp_g2l_d; … … 111 113 // Coherence DSPIN signals between DSPIN local crossbars and CC components 112 114 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_memc; 115 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_memc; 113 116 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_memc; 114 117 DspinSignals<dspin_int_cmd_width> signal_int_dspin_m2p_proc[8]; 118 DspinSignals<dspin_int_cmd_width> signal_int_dspin_clack_proc[8]; 115 119 DspinSignals<dspin_int_rsp_width> signal_int_dspin_p2m_proc[8]; 116 120 … … 179 183 DspinLocalCrossbar<dspin_int_cmd_width>* int_xbar_m2p_c; 180 184 DspinLocalCrossbar<dspin_int_rsp_width>* int_xbar_p2m_c; 185 DspinLocalCrossbar<dspin_int_cmd_width>* int_xbar_clack_c; 181 186 182 187 VirtualDspinRouter<dspin_int_cmd_width>* int_router_cmd; -
trunk/platforms/tsar_generic_iob/tsar_iob_cluster/caba/source/src/tsar_iob_cluster.cpp
r450 r468 89 89 90 90 // Vectors of DSPIN ports for inter-cluster communications 91 p_dspin_int_cmd_in = alloc_elems<DspinInput<dspin_int_cmd_width> >("p_int_cmd_in", 2, 4);92 p_dspin_int_cmd_out = alloc_elems<DspinOutput<dspin_int_cmd_width> >("p_int_cmd_out", 2, 4);93 p_dspin_int_rsp_in = alloc_elems<DspinInput<dspin_int_rsp_width> >("p_int_rsp_in", 2, 4);94 p_dspin_int_rsp_out = alloc_elems<DspinOutput<dspin_int_rsp_width> >("p_int_rsp_out", 2, 4);91 p_dspin_int_cmd_in = alloc_elems<DspinInput<dspin_int_cmd_width> >("p_int_cmd_in", 4, 3); 92 p_dspin_int_cmd_out = alloc_elems<DspinOutput<dspin_int_cmd_width> >("p_int_cmd_out", 4, 3); 93 p_dspin_int_rsp_in = alloc_elems<DspinInput<dspin_int_rsp_width> >("p_int_rsp_in", 4, 2); 94 p_dspin_int_rsp_out = alloc_elems<DspinOutput<dspin_int_rsp_width> >("p_int_rsp_out", 4, 2); 95 95 96 96 p_dspin_ram_cmd_in = alloc_elems<DspinInput<dspin_ram_cmd_width> >("p_ext_cmd_in", 4); … … 171 171 8, // TRANSACTION TABLE DEPTH 172 172 8, // UPDATE TABLE DEPTH 173 8, // INVALIDATE TABLE DEPTH 173 174 debug_start_cycle, 174 175 memc_debug_ok ); … … 303 304 false ); // no broacast 304 305 306 std::ostringstream s_int_xbar_clack_c; 307 s_int_xbar_clack_c << "int_xbar_clack_c_" << x_id << "_" << y_id; 308 int_xbar_clack_c = new DspinLocalCrossbar<dspin_int_cmd_width>( 309 s_int_xbar_clack_c.str().c_str(), 310 mt_int, // mapping table 311 x_id, y_id, // cluster coordinates 312 x_width, y_width, l_width, 313 1, // number of local sources 314 nb_procs, // number of local targets 315 1, 1, // fifo depths 316 true, // CMD 317 false, // don't use local routing table 318 false); // broadcast 319 305 320 ////////////// INT ROUTER(S) 306 321 std::ostringstream s_int_router_cmd; … … 310 325 x_id,y_id, // coordinate in the mesh 311 326 x_width, y_width, // x & y fields width 327 3, // nb virtual channels 312 328 4,4); // input & output fifo depths 313 329 … … 318 334 x_id,y_id, // coordinates in mesh 319 335 x_width, y_width, // x & y fields width 336 2, // nb virtual channels 320 337 4,4); // input & output fifo depths 321 338 … … 459 476 int_router_rsp->p_clk (this->p_clk); 460 477 int_router_rsp->p_resetn (this->p_resetn); 461 for (int x = 0; x < 2; x++) 462 { 463 for(int y = 0; y < 4; y++) 478 479 for (int i = 0; i < 4; i++) 480 { 481 for(int k = 0; k < 3; k++) 464 482 { 465 int_router_cmd->p_out[x][y] (this->p_dspin_int_cmd_out[x][y]); 466 int_router_cmd->p_in[x][y] (this->p_dspin_int_cmd_in[x][y]); 467 int_router_rsp->p_out[x][y] (this->p_dspin_int_rsp_out[x][y]); 468 int_router_rsp->p_in[x][y] (this->p_dspin_int_rsp_in[x][y]); 483 int_router_cmd->p_out[i][k] (this->p_dspin_int_cmd_out[i][k]); 484 int_router_cmd->p_in[i][k] (this->p_dspin_int_cmd_in[i][k]); 469 485 } 486 487 for(int k = 0; k < 2; k++) 488 { 489 int_router_rsp->p_out[i][k] (this->p_dspin_int_rsp_out[i][k]); 490 int_router_rsp->p_in[i][k] (this->p_dspin_int_rsp_in[i][k]); 491 } 470 492 } 471 493 472 494 // local ports 473 int_router_cmd->p_out[0][4] (signal_int_dspin_cmd_g2l_d); 474 int_router_cmd->p_out[1][4] (signal_int_dspin_m2p_g2l_c); 475 int_router_cmd->p_in[0][4] (signal_int_dspin_cmd_l2g_d); 476 int_router_cmd->p_in[1][4] (signal_int_dspin_m2p_l2g_c); 495 int_router_cmd->p_out[4][0] (signal_int_dspin_cmd_g2l_d); 496 int_router_cmd->p_out[4][1] (signal_int_dspin_m2p_g2l_c); 497 int_router_cmd->p_out[4][2] (signal_int_dspin_clack_g2l_c); 498 int_router_cmd->p_in[4][0] (signal_int_dspin_cmd_l2g_d); 499 int_router_cmd->p_in[4][1] (signal_int_dspin_m2p_l2g_c); 500 int_router_cmd->p_in[4][2] (signal_int_dspin_clack_l2g_c); 477 501 478 int_router_rsp->p_out[ 0][4] (signal_int_dspin_rsp_g2l_d);479 int_router_rsp->p_out[ 1][4] (signal_int_dspin_p2m_g2l_c);480 int_router_rsp->p_in[ 0][4] (signal_int_dspin_rsp_l2g_d);481 int_router_rsp->p_in[ 1][4] (signal_int_dspin_p2m_l2g_c);502 int_router_rsp->p_out[4][0] (signal_int_dspin_rsp_g2l_d); 503 int_router_rsp->p_out[4][1] (signal_int_dspin_p2m_g2l_c); 504 int_router_rsp->p_in[4][0] (signal_int_dspin_rsp_l2g_d); 505 int_router_rsp->p_in[4][1] (signal_int_dspin_p2m_l2g_c); 482 506 483 507 ///////////////////// CMD DSPIN local crossbar direct … … 541 565 int_xbar_p2m_c->p_local_in[p] (signal_int_dspin_p2m_proc[p]); 542 566 567 ////////////////////// CLACK DSPIN local crossbar coherence 568 int_xbar_clack_c->p_clk (this->p_clk); 569 int_xbar_clack_c->p_resetn (this->p_resetn); 570 int_xbar_clack_c->p_global_out (signal_int_dspin_clack_l2g_c); 571 int_xbar_clack_c->p_global_in (signal_int_dspin_clack_g2l_c); 572 int_xbar_clack_c->p_local_in[0] (signal_int_dspin_clack_memc); 573 for (size_t p = 0; p < nb_procs; p++) 574 int_xbar_clack_c->p_local_out[p] (signal_int_dspin_clack_proc[p]); 575 543 576 //////////////////////////////////// Processors 544 577 for (size_t p = 0; p < nb_procs; p++) … … 547 580 proc[p]->p_resetn (this->p_resetn); 548 581 proc[p]->p_vci (signal_int_vci_ini_proc[p]); 549 proc[p]->p_dspin_in (signal_int_dspin_m2p_proc[p]); 550 proc[p]->p_dspin_out (signal_int_dspin_p2m_proc[p]); 582 proc[p]->p_dspin_m2p (signal_int_dspin_m2p_proc[p]); 583 proc[p]->p_dspin_p2m (signal_int_dspin_p2m_proc[p]); 584 proc[p]->p_dspin_clack (signal_int_dspin_clack_proc[p]); 551 585 proc[p]->p_irq[0] (signal_proc_it[p]); 552 586 for ( size_t j = 1 ; j < 6 ; j++) … … 563 597 564 598 ///////////////////////////////////// XICU 565 xicu->p_clk 566 xicu->p_resetn 567 xicu->p_vci 599 xicu->p_clk (this->p_clk); 600 xicu->p_resetn (this->p_resetn); 601 xicu->p_vci (signal_int_vci_tgt_xicu); 568 602 for ( size_t p=0 ; p<nb_procs ; p++) 569 603 { 570 xicu->p_irq[p] 604 xicu->p_irq[p] (signal_proc_it[p]); 571 605 } 572 606 for ( size_t i=0 ; i<4 ; i++) … … 590 624 591 625 ///////////////////////////////////// MEMC 592 memc->p_clk (this->p_clk); 593 memc->p_resetn (this->p_resetn); 594 memc->p_vci_ixr (signal_ram_vci_ini_memc); 595 memc->p_vci_tgt (signal_int_vci_tgt_memc); 596 memc->p_dspin_in (signal_int_dspin_p2m_memc); 597 memc->p_dspin_out (signal_int_dspin_m2p_memc); 626 memc->p_clk (this->p_clk); 627 memc->p_resetn (this->p_resetn); 628 memc->p_vci_ixr (signal_ram_vci_ini_memc); 629 memc->p_vci_tgt (signal_int_vci_tgt_memc); 630 memc->p_dspin_p2m (signal_int_dspin_p2m_memc); 631 memc->p_dspin_m2p (signal_int_dspin_m2p_memc); 632 memc->p_dspin_clack (signal_int_dspin_clack_memc); 598 633 599 634 // wrapper to INT network … … 612 647 613 648 //////////////////////////////////// XRAM 614 xram->p_clk 615 xram->p_resetn 616 xram->p_vci 649 xram->p_clk (this->p_clk); 650 xram->p_resetn (this->p_resetn); 651 xram->p_vci (signal_ram_vci_tgt_xram); 617 652 618 653 // wrapper to RAM network … … 624 659 625 660 /////////////////////////////////// MDMA 626 mdma->p_clk 661 mdma->p_clk (this->p_clk); 627 662 mdma->p_resetn (this->p_resetn); 628 mdma->p_vci_target 629 mdma->p_vci_initiator 663 mdma->p_vci_target (signal_int_vci_tgt_mdma); 664 mdma->p_vci_initiator (signal_int_vci_ini_mdma); 630 665 for (size_t i=0 ; i<nb_dmas ; i++) 631 666 mdma->p_irq[i] (signal_irq_mdma[i]);
Note: See TracChangeset
for help on using the changeset viewer.