Changeset 706 for trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp
- Timestamp:
- May 30, 2014, 5:07:05 PM (10 years ago)
- Location:
- trunk/platforms/tsar_generic_xbar
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_xbar
-
Property
svn:ignore
set to
term*
-
Property
svn:ignore
set to
-
trunk/platforms/tsar_generic_xbar/tsar_xbar_cluster/caba/source/src/tsar_xbar_cluster.cpp
r624 r706 66 66 size_t l1_d_ways, 67 67 size_t l1_d_sets, 68 size_t irq_per_processor, 68 69 size_t xram_latency, 69 70 bool io, … … 77 78 uint32_t nic_timeout, 78 79 size_t chbufdma_channels, 79 const Loader &loader,80 const Loader & loader, 80 81 uint32_t frozen_cycles, 81 82 uint32_t debug_start_cycle, … … 127 128 proc_debug_ok); 128 129 129 std::ostringstream swip;130 swip << "wi_proc_" << x_id << "_" << y_id << "_" << p;131 wi_proc[p] = new VciDspinInitiatorWrapper<vci_param_int,132 dspin_cmd_width,133 dspin_rsp_width>(134 swip.str().c_str(),135 x_width + y_width + l_width);136 130 } 137 131 … … 148 142 IntTab(cluster_id), // SRCID external space 149 143 IntTab(cluster_id, tgtid_memc), // TGTID direct space 144 //(cluster_id << l_width) + nb_procs, // CC_GLOBAL_ID 150 145 x_width, // Number of x bits in platform 151 146 y_width, // Number of y bits in platform … … 159 154 memc_debug_ok); 160 155 161 wt_memc = new VciDspinTargetWrapper<vci_param_int,162 dspin_cmd_width,163 dspin_rsp_width>(164 "wt_memc",165 x_width + y_width + l_width);166 156 167 157 ///////////////////////////////////////////////////////////////////////////// … … 182 172 mtd, // mapping table 183 173 IntTab(cluster_id, tgtid_xicu), // TGTID_D 184 32,// number of timer IRQs174 nb_procs, // number of timer IRQs 185 175 32, // number of hard IRQs 186 176 32, // number of soft IRQs 187 nb_procs*IRQ_PER_PROCESSOR); // number of output IRQs 188 189 wt_xicu = new VciDspinTargetWrapper<vci_param_int, 190 dspin_cmd_width, 191 dspin_rsp_width>( 192 "wt_xicu", 193 x_width + y_width + l_width); 177 nb_procs*irq_per_processor); // number of output IRQs 178 194 179 195 180 ///////////////////////////////////////////////////////////////////////////// … … 204 189 nb_dmas); // number of IRQs 205 190 206 wt_mdma = new VciDspinTargetWrapper<vci_param_int,207 dspin_cmd_width,208 dspin_rsp_width>(209 "wt_mdma",210 x_width + y_width + l_width);211 212 wi_mdma = new VciDspinInitiatorWrapper<vci_param_int,213 dspin_cmd_width,214 dspin_rsp_width>(215 "wi_mdma",216 x_width + y_width + l_width);217 191 218 192 ///////////////////////////////////////////////////////////////////////////// … … 225 199 } 226 200 227 xbar_cmd_d = new DspinLocalCrossbar<dspin_cmd_width>( 228 "xbar_cmd_d", 229 mtd, // mapping table 230 x_id, y_id, // cluster coordinates 231 x_width, y_width, l_width, 232 nb_direct_initiators, // number of local of sources 233 nb_direct_targets, // number of local dests 234 2, 2, // fifo depths 235 true, // CMD 236 true, // use local routing table 237 false ); // no broadcast 238 239 ///////////////////////////////////////////////////////////////////////////// 240 xbar_rsp_d = new DspinLocalCrossbar<dspin_rsp_width>( 241 "xbar_rsp_d", 242 mtd, // mapping table 243 x_id, y_id, // cluster coordinates 244 x_width, y_width, l_width, 245 nb_direct_targets, // number of local sources 246 nb_direct_initiators, // number of local dests 247 2, 2, // fifo depths 248 false, // RSP 249 false, // don't use local routing table 250 false ); // no broadcast 201 std::ostringstream sxbar; 202 sxbar << "xbar_" << x_id << "_" << y_id; 203 xbar_d = new VciLocalCrossbar<vci_param_int>( 204 sxbar.str().c_str(), 205 mtd, // mapping table 206 //x_id, y_id, // cluster coordinates 207 cluster_id, 208 nb_direct_initiators, // number of local of sources 209 nb_direct_targets, // number of local dests 210 tgtid_memc); // Default target 211 212 ////////////// vci_dspin wrappers 213 std::ostringstream swtxbar; 214 swtxbar << "wt_xbar_" << x_id << "_" << y_id; 215 wt_xbar_d = new VciDspinTargetWrapper<vci_param_int, dspin_cmd_width, dspin_rsp_width>( 216 swtxbar.str().c_str(), 217 x_width + y_width + l_width ); 218 219 std::ostringstream swixbar; 220 swixbar << "wi_xbar_" << x_id << "_" << y_id; 221 wi_xbar_d = new VciDspinInitiatorWrapper<vci_param_int, dspin_cmd_width, dspin_rsp_width>( 222 swixbar.str().c_str(), 223 x_width + y_width + l_width ); 251 224 252 225 ///////////////////////////////////////////////////////////////////////////// … … 315 288 loader); 316 289 317 wt_brom = new VciDspinTargetWrapper<vci_param_int,318 dspin_cmd_width,319 dspin_rsp_width>(320 "wt_brom",321 x_width + y_width + l_width);322 323 290 ///////////////////////////////////////////// 324 291 fbuf = new VciFrameBuffer<vci_param_int>( … … 327 294 mtd, 328 295 xfb, yfb); 329 330 wt_fbuf = new VciDspinTargetWrapper<vci_param_int,331 dspin_cmd_width,332 dspin_rsp_width>(333 "wt_fbuf",334 x_width + y_width + l_width);335 296 336 297 ///////////////////////////////////////////// … … 343 304 block_size, 344 305 64); // burst size 345 346 wt_bdev = new VciDspinTargetWrapper<vci_param_int,347 dspin_cmd_width,348 dspin_rsp_width>(349 "wt_bdev",350 x_width + y_width + l_width);351 352 wi_bdev = new VciDspinInitiatorWrapper<vci_param_int,353 dspin_cmd_width,354 dspin_rsp_width>(355 "wi_bdev",356 x_width + y_width + l_width);357 306 358 307 int mac = 0xBEEF0000; … … 367 316 nic_tx_name); 368 317 369 wt_mnic = new VciDspinTargetWrapper<vci_param_int, 370 dspin_cmd_width, 371 dspin_rsp_width>( 372 "wt_mnic", 373 x_width + y_width + l_width); 318 374 319 375 320 ///////////////////////////////////////////// … … 382 327 chbufdma_channels); 383 328 384 wt_chbuf = new VciDspinTargetWrapper<vci_param_int,385 dspin_cmd_width,386 dspin_rsp_width>(387 "wt_chbuf",388 x_width + y_width + l_width);389 390 wi_chbuf = new VciDspinInitiatorWrapper<vci_param_int,391 dspin_cmd_width,392 dspin_rsp_width>(393 "wi_chbuf",394 x_width + y_width + l_width);395 396 329 ///////////////////////////////////////////// 397 330 std::vector<std::string> vect_names; … … 408 341 vect_names); 409 342 410 wt_mtty = new VciDspinTargetWrapper<vci_param_int,411 dspin_cmd_width,412 dspin_rsp_width>(413 "wt_mtty",414 x_width + y_width + l_width);415 416 343 simhelper = new VciSimhelper<vci_param_int>( 417 344 "sim_helper", 418 345 IntTab(cluster_id, tgtid_simh), 419 346 mtd); 420 421 wt_simhelper = new VciDspinTargetWrapper<vci_param_int,422 dspin_cmd_width,423 dspin_rsp_width>(424 "wt_simhelper",425 x_width + y_width + l_width);426 347 } 427 348 … … 466 387 std::cout << " - CMD & RSP routers connected" << std::endl; 467 388 468 ///////////////////// CMD DSPIN local crossbar direct 469 xbar_cmd_d->p_clk (this->p_clk); 470 xbar_cmd_d->p_resetn (this->p_resetn); 471 xbar_cmd_d->p_global_out (signal_dspin_cmd_l2g_d); 472 xbar_cmd_d->p_global_in (signal_dspin_cmd_g2l_d); 473 474 xbar_cmd_d->p_local_out[tgtid_memc] (signal_dspin_cmd_memc_t); 475 xbar_cmd_d->p_local_out[tgtid_xicu] (signal_dspin_cmd_xicu_t); 476 xbar_cmd_d->p_local_out[tgtid_mdma] (signal_dspin_cmd_mdma_t); 477 478 xbar_cmd_d->p_local_in[nb_procs] (signal_dspin_cmd_mdma_i); 389 wi_xbar_d->p_clk (this->p_clk); 390 wi_xbar_d->p_resetn (this->p_resetn); 391 wi_xbar_d->p_vci (signal_vci_l2g_d); 392 wi_xbar_d->p_dspin_cmd (signal_dspin_cmd_l2g_d); 393 wi_xbar_d->p_dspin_rsp (signal_dspin_rsp_g2l_d); 394 395 std::cout << " - Wrapper Ini VCI2DSPIN Direct connected" << std::endl; 396 397 wt_xbar_d->p_clk (this->p_clk); 398 wt_xbar_d->p_resetn (this->p_resetn); 399 wt_xbar_d->p_vci (signal_vci_g2l_d); 400 wt_xbar_d->p_dspin_cmd (signal_dspin_cmd_g2l_d); 401 wt_xbar_d->p_dspin_rsp (signal_dspin_rsp_l2g_d); 402 403 std::cout << " - Wrapper Tgt VCI2DSPIN Direct connected" << std::endl; 404 405 ///////////////////// CMD VCI local crossbar direct 406 xbar_d->p_clk (this->p_clk); 407 xbar_d->p_resetn (this->p_resetn); 408 xbar_d->p_target_to_up (signal_vci_g2l_d); 409 xbar_d->p_initiator_to_up (signal_vci_l2g_d); 410 411 xbar_d->p_to_target[tgtid_memc] (signal_vci_tgt_memc); 412 xbar_d->p_to_target[tgtid_xicu] (signal_vci_tgt_xicu); 413 xbar_d->p_to_target[tgtid_mdma] (signal_vci_tgt_mdma); 414 415 xbar_d->p_to_initiator[nb_procs] (signal_vci_ini_mdma); 479 416 480 417 for (size_t p = 0; p < nb_procs; p++) 481 xbar_ cmd_d->p_local_in[p] (signal_dspin_cmd_proc_i[p]);418 xbar_d->p_to_initiator[p] (signal_vci_ini_proc[p]); 482 419 483 420 if (io) 484 421 { 485 xbar_cmd_d->p_local_out[tgtid_mtty] (signal_dspin_cmd_mtty_t); 486 xbar_cmd_d->p_local_out[tgtid_brom] (signal_dspin_cmd_brom_t); 487 xbar_cmd_d->p_local_out[tgtid_bdev] (signal_dspin_cmd_bdev_t); 488 xbar_cmd_d->p_local_out[tgtid_fbuf] (signal_dspin_cmd_fbuf_t); 489 xbar_cmd_d->p_local_out[tgtid_mnic] (signal_dspin_cmd_mnic_t); 490 xbar_cmd_d->p_local_out[tgtid_chbuf] (signal_dspin_cmd_chbuf_t); 491 xbar_cmd_d->p_local_out[tgtid_simh] (signal_dspin_cmd_simh_t); 492 493 xbar_cmd_d->p_local_in[nb_procs + 1] (signal_dspin_cmd_bdev_i); 494 xbar_cmd_d->p_local_in[nb_procs + 2] (signal_dspin_cmd_chbuf_i); 495 } 496 497 std::cout << " - Command Direct crossbar connected" << std::endl; 498 499 //////////////////////// RSP DSPIN local crossbar direct 500 xbar_rsp_d->p_clk (this->p_clk); 501 xbar_rsp_d->p_resetn (this->p_resetn); 502 xbar_rsp_d->p_global_out (signal_dspin_rsp_l2g_d); 503 xbar_rsp_d->p_global_in (signal_dspin_rsp_g2l_d); 504 505 xbar_rsp_d->p_local_in[tgtid_memc] (signal_dspin_rsp_memc_t); 506 xbar_rsp_d->p_local_in[tgtid_xicu] (signal_dspin_rsp_xicu_t); 507 xbar_rsp_d->p_local_in[tgtid_mdma] (signal_dspin_rsp_mdma_t); 508 509 xbar_rsp_d->p_local_out[nb_procs] (signal_dspin_rsp_mdma_i); 510 511 for (size_t p = 0; p < nb_procs; p++) 512 xbar_rsp_d->p_local_out[p] (signal_dspin_rsp_proc_i[p]); 513 514 if (io) 515 { 516 xbar_rsp_d->p_local_in[tgtid_mtty] (signal_dspin_rsp_mtty_t); 517 xbar_rsp_d->p_local_in[tgtid_brom] (signal_dspin_rsp_brom_t); 518 xbar_rsp_d->p_local_in[tgtid_bdev] (signal_dspin_rsp_bdev_t); 519 xbar_rsp_d->p_local_in[tgtid_fbuf] (signal_dspin_rsp_fbuf_t); 520 xbar_rsp_d->p_local_in[tgtid_mnic] (signal_dspin_rsp_mnic_t); 521 xbar_rsp_d->p_local_in[tgtid_chbuf] (signal_dspin_rsp_chbuf_t); 522 xbar_rsp_d->p_local_in[tgtid_simh] (signal_dspin_rsp_simh_t); 523 524 xbar_rsp_d->p_local_out[nb_procs + 1] (signal_dspin_rsp_bdev_i); 525 xbar_rsp_d->p_local_out[nb_procs + 2] (signal_dspin_rsp_chbuf_i); 526 } 527 528 std::cout << " - Response Direct crossbar connected" << std::endl; 422 xbar_d->p_to_target[tgtid_mtty] (signal_vci_tgt_mtty); 423 xbar_d->p_to_target[tgtid_brom] (signal_vci_tgt_brom); 424 xbar_d->p_to_target[tgtid_bdev] (signal_vci_tgt_bdev); 425 xbar_d->p_to_target[tgtid_fbuf] (signal_vci_tgt_fbuf); 426 xbar_d->p_to_target[tgtid_mnic] (signal_vci_tgt_mnic); 427 xbar_d->p_to_target[tgtid_chbuf] (signal_vci_tgt_chbuf); 428 xbar_d->p_to_target[tgtid_simh] (signal_vci_tgt_simh); 429 430 xbar_d->p_to_initiator[nb_procs + 1] (signal_vci_ini_bdev); 431 xbar_d->p_to_initiator[nb_procs + 2] (signal_vci_ini_chbuf); 432 } 433 434 std::cout << " - Direct crossbar connected" << std::endl; 529 435 530 436 ////////////////////// M2P DSPIN local crossbar coherence … … 572 478 proc[p]->p_dspin_clack (signal_dspin_clack_proc[p]); 573 479 574 for ( size_t i = 0 ; i < IRQ_PER_PROCESSOR; i++)575 { 576 proc[p]->p_irq[i] (signal_proc_it[p* IRQ_PER_PROCESSOR+i]);577 } 578 for ( size_t j = IRQ_PER_PROCESSOR ; j < 6 ; j++)480 for ( size_t i = 0; i < irq_per_processor; i++) 481 { 482 proc[p]->p_irq[i] (signal_proc_it[p*irq_per_processor + i]); 483 } 484 for ( size_t j = irq_per_processor; j < 6; j++) // 6 = number of irqs in the MIPS 579 485 { 580 486 proc[p]->p_irq[j] (signal_false); 581 487 } 582 488 583 wi_proc[p]->p_clk (this->p_clk);584 wi_proc[p]->p_resetn (this->p_resetn);585 wi_proc[p]->p_dspin_cmd (signal_dspin_cmd_proc_i[p]);586 wi_proc[p]->p_dspin_rsp (signal_dspin_rsp_proc_i[p]);587 wi_proc[p]->p_vci (signal_vci_ini_proc[p]);588 489 } 589 490 … … 594 495 xicu->p_resetn (this->p_resetn); 595 496 xicu->p_vci (signal_vci_tgt_xicu); 596 597 for (size_t i = 0; i < nb_procs*IRQ_PER_PROCESSOR; i++) 598 { 599 xicu->p_irq[i] (signal_proc_it[i]); 497 for (size_t p = 0; p < nb_procs * irq_per_processor; p++) 498 { 499 xicu->p_irq[p] (signal_proc_it[p]); 600 500 } 601 501 for (size_t i = 0; i < 32; i++) … … 620 520 } 621 521 } 622 623 // wrapper XICU624 wt_xicu->p_clk (this->p_clk);625 wt_xicu->p_resetn (this->p_resetn);626 wt_xicu->p_dspin_cmd (signal_dspin_cmd_xicu_t);627 wt_xicu->p_dspin_rsp (signal_dspin_rsp_xicu_t);628 wt_xicu->p_vci (signal_vci_tgt_xicu);629 522 630 523 std::cout << " - XICU connected" << std::endl; … … 640 533 memc->p_dspin_clack (signal_dspin_clack_memc); 641 534 642 // wrapper MEMC643 wt_memc->p_clk (this->p_clk);644 wt_memc->p_resetn (this->p_resetn);645 wt_memc->p_dspin_cmd (signal_dspin_cmd_memc_t);646 wt_memc->p_dspin_rsp (signal_dspin_rsp_memc_t);647 wt_memc->p_vci (signal_vci_tgt_memc);648 649 535 std::cout << " - MEMC connected" << std::endl; 650 536 … … 664 550 mdma->p_irq[i] (signal_irq_mdma[i]); 665 551 666 // wrapper tgt MDMA667 wt_mdma->p_clk (this->p_clk);668 wt_mdma->p_resetn (this->p_resetn);669 wt_mdma->p_dspin_cmd (signal_dspin_cmd_mdma_t);670 wt_mdma->p_dspin_rsp (signal_dspin_rsp_mdma_t);671 wt_mdma->p_vci (signal_vci_tgt_mdma);672 673 // wrapper ini MDMA674 wi_mdma->p_clk (this->p_clk);675 wi_mdma->p_resetn (this->p_resetn);676 wi_mdma->p_dspin_cmd (signal_dspin_cmd_mdma_i);677 wi_mdma->p_dspin_rsp (signal_dspin_rsp_mdma_i);678 wi_mdma->p_vci (signal_vci_ini_mdma);679 680 552 std::cout << " - MDMA connected" << std::endl; 681 553 … … 691 563 bdev->p_vci_initiator (signal_vci_ini_bdev); 692 564 693 // wrapper tgt BDEV694 wt_bdev->p_clk (this->p_clk);695 wt_bdev->p_resetn (this->p_resetn);696 wt_bdev->p_dspin_cmd (signal_dspin_cmd_bdev_t);697 wt_bdev->p_dspin_rsp (signal_dspin_rsp_bdev_t);698 wt_bdev->p_vci (signal_vci_tgt_bdev);699 700 // wrapper ini BDEV701 wi_bdev->p_clk (this->p_clk);702 wi_bdev->p_resetn (this->p_resetn);703 wi_bdev->p_dspin_cmd (signal_dspin_cmd_bdev_i);704 wi_bdev->p_dspin_rsp (signal_dspin_rsp_bdev_i);705 wi_bdev->p_vci (signal_vci_ini_bdev);706 707 565 std::cout << " - BDEV connected" << std::endl; 708 566 … … 711 569 fbuf->p_resetn (this->p_resetn); 712 570 fbuf->p_vci (signal_vci_tgt_fbuf); 713 714 // wrapper tgt FBUF715 wt_fbuf->p_clk (this->p_clk);716 wt_fbuf->p_resetn (this->p_resetn);717 wt_fbuf->p_dspin_cmd (signal_dspin_cmd_fbuf_t);718 wt_fbuf->p_dspin_rsp (signal_dspin_rsp_fbuf_t);719 wt_fbuf->p_vci (signal_vci_tgt_fbuf);720 571 721 572 std::cout << " - FBUF connected" << std::endl; … … 730 581 mnic->p_tx_irq[i] (signal_irq_mnic_tx[i]); 731 582 } 732 733 // wrapper tgt MNIC734 wt_mnic->p_clk (this->p_clk);735 wt_mnic->p_resetn (this->p_resetn);736 wt_mnic->p_dspin_cmd (signal_dspin_cmd_mnic_t);737 wt_mnic->p_dspin_rsp (signal_dspin_rsp_mnic_t);738 wt_mnic->p_vci (signal_vci_tgt_mnic);739 583 740 584 std::cout << " - MNIC connected" << std::endl; … … 750 594 } 751 595 752 // wrapper tgt CHBUF753 wt_chbuf->p_clk (this->p_clk);754 wt_chbuf->p_resetn (this->p_resetn);755 wt_chbuf->p_dspin_cmd (signal_dspin_cmd_chbuf_t);756 wt_chbuf->p_dspin_rsp (signal_dspin_rsp_chbuf_t);757 wt_chbuf->p_vci (signal_vci_tgt_chbuf);758 759 // wrapper ini CHBUF760 wi_chbuf->p_clk (this->p_clk);761 wi_chbuf->p_resetn (this->p_resetn);762 wi_chbuf->p_dspin_cmd (signal_dspin_cmd_chbuf_i);763 wi_chbuf->p_dspin_rsp (signal_dspin_rsp_chbuf_i);764 wi_chbuf->p_vci (signal_vci_ini_chbuf);765 766 596 std::cout << " - CHBUF connected" << std::endl; 767 597 … … 770 600 brom->p_resetn (this->p_resetn); 771 601 brom->p_vci (signal_vci_tgt_brom); 772 773 // wrapper tgt BROM774 wt_brom->p_clk (this->p_clk);775 wt_brom->p_resetn (this->p_resetn);776 wt_brom->p_dspin_cmd (signal_dspin_cmd_brom_t);777 wt_brom->p_dspin_rsp (signal_dspin_rsp_brom_t);778 wt_brom->p_vci (signal_vci_tgt_brom);779 602 780 603 std::cout << " - BROM connected" << std::endl; … … 789 612 } 790 613 791 // wrapper tgt MTTY 792 wt_mtty->p_clk (this->p_clk); 793 wt_mtty->p_resetn (this->p_resetn); 794 wt_mtty->p_dspin_cmd (signal_dspin_cmd_mtty_t); 795 wt_mtty->p_dspin_rsp (signal_dspin_rsp_mtty_t); 796 wt_mtty->p_vci (signal_vci_tgt_mtty); 614 std::cout << " - MTTY connected" << std::endl; 797 615 798 616 … … 802 620 simhelper->p_vci (signal_vci_tgt_simh); 803 621 804 // wrapper tgt Sim Helper 805 wt_simhelper->p_clk (this->p_clk); 806 wt_simhelper->p_resetn (this->p_resetn); 807 wt_simhelper->p_dspin_cmd (signal_dspin_cmd_simh_t); 808 wt_simhelper->p_dspin_rsp (signal_dspin_rsp_simh_t); 809 wt_simhelper->p_vci (signal_vci_tgt_simh); 810 811 std::cout << " - MTTY connected" << std::endl; 622 std::cout << " - SIMH connected" << std::endl; 812 623 } 813 624 } // end constructor … … 831 642 { 832 643 delete proc[p]; 833 delete wi_proc[p];834 644 } 835 645 836 646 delete memc; 837 delete wt_memc;838 647 delete xram; 839 648 delete xicu; 840 delete wt_xicu;841 649 delete mdma; 842 delete wt_mdma; 843 delete wi_mdma; 844 delete xbar_cmd_d; 845 delete xbar_rsp_d; 650 delete xbar_d; 651 delete wt_xbar_d; 652 delete wi_xbar_d; 846 653 delete xbar_m2p_c; 847 654 delete xbar_p2m_c; … … 852 659 { 853 660 delete brom; 854 delete wt_brom;855 661 delete fbuf; 856 delete wt_fbuf;857 662 delete bdev; 858 delete wt_bdev;859 delete wi_bdev;860 663 delete mnic; 861 delete wt_mnic;862 664 delete chbuf; 863 delete wt_chbuf;864 delete wi_chbuf;865 665 delete mtty; 866 delete wt_mtty;867 666 delete simhelper; 868 delete wt_simhelper;869 667 } 870 668 }
Note: See TracChangeset
for help on using the changeset viewer.