Changeset 389 for trunk/platforms/tsar_generic_xbar/top.cpp
- Timestamp:
- May 16, 2013, 3:32:38 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_xbar/top.cpp
r379 r389 116 116 #define rsp_width 33 117 117 118 ///////////////////////////////////////////////////////////119 // VCI parameters120 ///////////////////////////////////////////////////////////121 122 #define cell_width 4123 #define address_width 32124 #define plen_width 8125 #define error_width 2126 #define clen_width 1127 #define rflag_width 1128 #define srcid_width 14129 #define pktid_width 4130 #define trdid_width 4131 #define wrplen_width 1132 133 118 //////////////////////////////////////////////////////////// 134 119 // Main Hardware Parameters values … … 357 342 #endif 358 343 359 // Define VCI parameters360 typedef soclib::caba::VciParams<cell_width,361 plen_width,362 address_width,363 error_width,364 clen_width,365 rflag_width,366 srcid_width,367 pktid_width,368 trdid_width,369 wrplen_width> vci_param;370 371 344 // Define parameters depending on mesh size 372 345 size_t cluster_io_id; … … 378 351 else if (CLUSTER_X <= 4) x_width = 2; 379 352 else if (CLUSTER_X <= 8) x_width = 3; 380 else 353 else x_width = 4; 381 354 382 355 if (CLUSTER_Y == 1) y_width = 0; … … 384 357 else if (CLUSTER_Y <= 4) y_width = 2; 385 358 else if (CLUSTER_Y <= 8) y_width = 3; 386 else 359 else y_width = 4; 387 360 388 361 cluster_io_id = 0xBF >> (8 - x_width - y_width); … … 448 421 /////////////////// 449 422 450 sc_clock signal_clk("clk");423 sc_clock signal_clk("clk"); 451 424 sc_signal<bool> signal_resetn("resetn"); 452 425 … … 501 474 //////////////////////////// 502 475 503 TsarXbarCluster<vci_param, proc_iss, cmd_width, rsp_width>* clusters[CLUSTER_X][CLUSTER_Y]; 476 TsarXbarCluster< 477 proc_iss, cmd_width, rsp_width 478 > * clusters[CLUSTER_X][CLUSTER_Y]; 504 479 505 480 #if USE_OPENMP … … 517 492 { 518 493 #endif 494 bool is_io_cluster = (cluster(x,y) == cluster_io_id); 495 519 496 std::ostringstream sc; 520 497 sc << "cluster_" << x << "_" << y; 521 clusters[x][y] = new TsarXbarCluster<vci_param, proc_iss, cmd_width, rsp_width> 498 clusters[x][y] = new TsarXbarCluster< 499 proc_iss, cmd_width, rsp_width 500 > 522 501 ( 523 502 sc.str().c_str(), 524 NB_PROCS_MAX, 525 NB_TTYS, 526 NB_DMAS_MAX, 527 x, 528 y, 529 cluster(x,y), 530 maptabd, 531 maptabx, 532 x_width, 533 y_width, 534 srcid_width - x_width - y_width, // l_id width, 535 MEMC_TGTID, 536 XICU_TGTID, 537 CDMA_TGTID, 538 FBUF_TGTID, 539 MTTY_TGTID, 540 BROM_TGTID, 541 MNIC_TGTID, 542 BDEV_TGTID, 543 MEMC_WAYS, 544 MEMC_SETS, 545 L1_IWAYS, 546 L1_ISETS, 547 L1_DWAYS, 548 L1_DSETS, 549 XRAM_LATENCY, 550 (cluster(x,y) == cluster_io_id), 551 FBUF_X_SIZE, 552 FBUF_Y_SIZE, 553 disk_name, 554 BDEV_SECTOR_SIZE, 555 NB_NICS, 556 nic_rx_name, 557 nic_tx_name, 558 NIC_TIMEOUT, 559 loader, 503 NB_PROCS_MAX , NB_TTYS , NB_DMAS_MAX , // cluster params 504 x , y , cluster(x,y), // mesh coordinates 505 maptabd , maptabx , // mapping tables 506 x_width , y_width , srcid_width - x_width - y_width, // srcid width, 507 MEMC_TGTID , XICU_TGTID , CDMA_TGTID , // 508 FBUF_TGTID , MTTY_TGTID , BROM_TGTID , // targets ids 509 MNIC_TGTID , BDEV_TGTID, // 510 MEMC_WAYS , MEMC_SETS , // MC params 511 L1_IWAYS , L1_ISETS , L1_DWAYS , L1_DSETS, // L1 params 512 XRAM_LATENCY , // 513 is_io_cluster, // is IO cluster ? 514 FBUF_X_SIZE , FBUF_Y_SIZE , // FB params 515 disk_name , BDEV_SECTOR_SIZE, // IOC params 516 NB_NICS , nic_rx_name , nic_tx_name , NIC_TIMEOUT, // NIC params 517 loader , 560 518 frozen_cycles, 561 debug_from ,519 debug_from , 562 520 debug_ok and (cluster(x,y) == debug_memc_id), 563 521 debug_ok and (cluster(x,y) == debug_proc_id) … … 583 541 for (size_t x = 0; x < (CLUSTER_X); x++){ 584 542 for (size_t y = 0; y < CLUSTER_Y; y++){ 585 clusters[x][y]->p_clk (signal_clk);586 clusters[x][y]->p_resetn (signal_resetn);543 clusters[x][y]->p_clk (signal_clk); 544 clusters[x][y]->p_resetn (signal_resetn); 587 545 } 588 546 } … … 631 589 for (size_t k = 0; k < 2; k++) 632 590 { 633 clusters[0][y]->p_cmd_in[k][WEST] (signal_dspin_false_cmd_in[0][y][k][WEST]);634 clusters[0][y]->p_cmd_out[k][WEST] (signal_dspin_false_cmd_out[0][y][k][WEST]);635 clusters[0][y]->p_rsp_in[k][WEST] (signal_dspin_false_rsp_in[0][y][k][WEST]);636 clusters[0][y]->p_rsp_out[k][WEST] (signal_dspin_false_rsp_out[0][y][k][WEST]);637 638 clusters[CLUSTER_X-1][y]->p_cmd_in[k][EAST] 639 clusters[CLUSTER_X-1][y]->p_cmd_out[k][EAST] 640 clusters[CLUSTER_X-1][y]->p_rsp_in[k][EAST] 641 clusters[CLUSTER_X-1][y]->p_rsp_out[k][EAST] 591 clusters[0][y]->p_cmd_in[k][WEST] (signal_dspin_false_cmd_in[0][y][k][WEST]); 592 clusters[0][y]->p_cmd_out[k][WEST] (signal_dspin_false_cmd_out[0][y][k][WEST]); 593 clusters[0][y]->p_rsp_in[k][WEST] (signal_dspin_false_rsp_in[0][y][k][WEST]); 594 clusters[0][y]->p_rsp_out[k][WEST] (signal_dspin_false_rsp_out[0][y][k][WEST]); 595 596 clusters[CLUSTER_X-1][y]->p_cmd_in[k][EAST] (signal_dspin_false_cmd_in[CLUSTER_X-1][y][k][EAST]); 597 clusters[CLUSTER_X-1][y]->p_cmd_out[k][EAST] (signal_dspin_false_cmd_out[CLUSTER_X-1][y][k][EAST]); 598 clusters[CLUSTER_X-1][y]->p_rsp_in[k][EAST] (signal_dspin_false_rsp_in[CLUSTER_X-1][y][k][EAST]); 599 clusters[CLUSTER_X-1][y]->p_rsp_out[k][EAST] (signal_dspin_false_rsp_out[CLUSTER_X-1][y][k][EAST]); 642 600 } 643 601 } … … 648 606 for (size_t k = 0; k < 2; k++) 649 607 { 650 clusters[x][0]->p_cmd_in[k][SOUTH] (signal_dspin_false_cmd_in[x][0][k][SOUTH]);651 clusters[x][0]->p_cmd_out[k][SOUTH] (signal_dspin_false_cmd_out[x][0][k][SOUTH]);652 clusters[x][0]->p_rsp_in[k][SOUTH] (signal_dspin_false_rsp_in[x][0][k][SOUTH]);653 clusters[x][0]->p_rsp_out[k][SOUTH] (signal_dspin_false_rsp_out[x][0][k][SOUTH]);654 655 clusters[x][CLUSTER_Y-1]->p_cmd_in[k][NORTH] 656 clusters[x][CLUSTER_Y-1]->p_cmd_out[k][NORTH] 657 clusters[x][CLUSTER_Y-1]->p_rsp_in[k][NORTH] 658 clusters[x][CLUSTER_Y-1]->p_rsp_out[k][NORTH] 608 clusters[x][0]->p_cmd_in[k][SOUTH] (signal_dspin_false_cmd_in[x][0][k][SOUTH]); 609 clusters[x][0]->p_cmd_out[k][SOUTH] (signal_dspin_false_cmd_out[x][0][k][SOUTH]); 610 clusters[x][0]->p_rsp_in[k][SOUTH] (signal_dspin_false_rsp_in[x][0][k][SOUTH]); 611 clusters[x][0]->p_rsp_out[k][SOUTH] (signal_dspin_false_rsp_out[x][0][k][SOUTH]); 612 613 clusters[x][CLUSTER_Y-1]->p_cmd_in[k][NORTH] (signal_dspin_false_cmd_in[x][CLUSTER_Y-1][k][NORTH]); 614 clusters[x][CLUSTER_Y-1]->p_cmd_out[k][NORTH] (signal_dspin_false_cmd_out[x][CLUSTER_Y-1][k][NORTH]); 615 clusters[x][CLUSTER_Y-1]->p_rsp_in[k][NORTH] (signal_dspin_false_rsp_in[x][CLUSTER_Y-1][k][NORTH]); 616 clusters[x][CLUSTER_Y-1]->p_rsp_out[k][NORTH] (signal_dspin_false_rsp_out[x][CLUSTER_Y-1][k][NORTH]); 659 617 } 660 618 } … … 673 631 for (size_t k = 0; k < 2; k++){ 674 632 for (size_t a = 0; a < 4; a++){ 675 signal_dspin_false_cmd_in [x][y][k][a].write = false;676 signal_dspin_false_cmd_in [x][y][k][a].read= true;633 signal_dspin_false_cmd_in [x][y][k][a].write = false; 634 signal_dspin_false_cmd_in [x][y][k][a].read = true; 677 635 signal_dspin_false_cmd_out[x][y][k][a].write = false; 678 signal_dspin_false_cmd_out[x][y][k][a].read = true;679 680 signal_dspin_false_rsp_in [x][y][k][a].write = false;681 signal_dspin_false_rsp_in [x][y][k][a].read= true;636 signal_dspin_false_cmd_out[x][y][k][a].read = true; 637 638 signal_dspin_false_rsp_in [x][y][k][a].write = false; 639 signal_dspin_false_rsp_in [x][y][k][a].read = true; 682 640 signal_dspin_false_rsp_out[x][y][k][a].write = false; 683 signal_dspin_false_rsp_out[x][y][k][a].read = true;641 signal_dspin_false_rsp_out[x][y][k][a].read = true; 684 642 } 685 643 } … … 692 650 for (size_t n = 1; n < ncycles; n++) 693 651 { 694 695 652 if (debug_ok and (n > debug_from) and (n % debug_period == 0)) 696 653 { … … 828 785 829 786 // vim: filetype=cpp:expandtab:shiftwidth=3:tabstop=3:softtabstop=3 830 831 832 833
Note: See TracChangeset
for help on using the changeset viewer.