Changeset 466 for branches/v5/platforms/tsar_generic_xbar/top.cpp
- Timestamp:
- Jul 23, 2013, 5:01:49 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/v5/platforms/tsar_generic_xbar/top.cpp
r448 r466 350 350 "The NB_NIC_CHANNELS parameter must be smaller than 9" ); 351 351 352 assert( (vci_address_width == vci_address_width) and353 "address widths must be equal on internal & external networks" );354 355 352 assert( (vci_address_width == 40) and 356 353 "VCI address width must be 40 bits" ); … … 498 495 // Horizontal inter-clusters DSPIN signals 499 496 DspinSignals<dspin_cmd_width>*** signal_dspin_h_cmd_inc = 500 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_cmd_inc", XMAX-1, YMAX, 2);497 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_cmd_inc", XMAX-1, YMAX, 3); 501 498 DspinSignals<dspin_cmd_width>*** signal_dspin_h_cmd_dec = 502 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_cmd_dec", XMAX-1, YMAX, 2);499 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_cmd_dec", XMAX-1, YMAX, 3); 503 500 DspinSignals<dspin_rsp_width>*** signal_dspin_h_rsp_inc = 504 501 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_h_rsp_inc", XMAX-1, YMAX, 2); 505 502 DspinSignals<dspin_rsp_width>*** signal_dspin_h_rsp_dec = 506 503 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_h_rsp_dec", XMAX-1, YMAX, 2); 507 DspinSignals<dspin_cmd_width>** signal_dspin_h_clack_inc =508 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_clack_inc", XMAX-1, YMAX);509 DspinSignals<dspin_cmd_width>** signal_dspin_h_clack_dec =510 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_clack_dec", XMAX-1, YMAX);511 504 512 505 // Vertical inter-clusters DSPIN signals 513 506 DspinSignals<dspin_cmd_width>*** signal_dspin_v_cmd_inc = 514 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_cmd_inc", XMAX, YMAX-1, 2);507 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_cmd_inc", XMAX, YMAX-1, 3); 515 508 DspinSignals<dspin_cmd_width>*** signal_dspin_v_cmd_dec = 516 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_cmd_dec", XMAX, YMAX-1, 2);509 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_cmd_dec", XMAX, YMAX-1, 3); 517 510 DspinSignals<dspin_rsp_width>*** signal_dspin_v_rsp_inc = 518 511 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_v_rsp_inc", XMAX, YMAX-1, 2); 519 512 DspinSignals<dspin_rsp_width>*** signal_dspin_v_rsp_dec = 520 513 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_v_rsp_dec", XMAX, YMAX-1, 2); 521 DspinSignals<dspin_cmd_width>** signal_dspin_v_clack_inc =522 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_clack_inc", XMAX, YMAX-1);523 DspinSignals<dspin_cmd_width>** signal_dspin_v_clack_dec =524 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_clack_dec", XMAX, YMAX-1);525 514 526 515 // Mesh boundaries DSPIN signals 527 516 DspinSignals<dspin_cmd_width>**** signal_dspin_false_cmd_in = 528 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_false_cmd_in" , XMAX, YMAX, 2, 4);517 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_false_cmd_in" , XMAX, YMAX, 4, 3); 529 518 DspinSignals<dspin_cmd_width>**** signal_dspin_false_cmd_out = 530 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_false_cmd_out", XMAX, YMAX, 2, 4);519 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_false_cmd_out", XMAX, YMAX, 4, 3); 531 520 DspinSignals<dspin_rsp_width>**** signal_dspin_false_rsp_in = 532 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_false_rsp_in" , XMAX, YMAX, 2, 4);521 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_false_rsp_in" , XMAX, YMAX, 4, 2); 533 522 DspinSignals<dspin_rsp_width>**** signal_dspin_false_rsp_out = 534 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_false_rsp_out", XMAX, YMAX, 2, 4); 535 DspinSignals<dspin_cmd_width>*** signal_dspin_false_clack_in = 536 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_false_clack_in", XMAX, YMAX, 4); 537 DspinSignals<dspin_cmd_width>*** signal_dspin_false_clack_out = 538 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_false_clack_out", XMAX, YMAX, 4); 523 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_false_rsp_out", XMAX, YMAX, 4, 2); 539 524 540 525 … … 655 640 for (size_t x = 0; x < (XMAX-1); x++){ 656 641 for (size_t y = 0; y < YMAX; y++){ 642 for (size_t k = 0; k < 3; k++){ 643 clusters[x][y]->p_cmd_out[EAST][k] (signal_dspin_h_cmd_inc[x][y][k]); 644 clusters[x+1][y]->p_cmd_in[WEST][k] (signal_dspin_h_cmd_inc[x][y][k]); 645 clusters[x][y]->p_cmd_in[EAST][k] (signal_dspin_h_cmd_dec[x][y][k]); 646 clusters[x+1][y]->p_cmd_out[WEST][k] (signal_dspin_h_cmd_dec[x][y][k]); 647 } 648 657 649 for (size_t k = 0; k < 2; k++){ 658 clusters[x][y]->p_cmd_out[k][EAST] (signal_dspin_h_cmd_inc[x][y][k]); 659 clusters[x+1][y]->p_cmd_in[k][WEST] (signal_dspin_h_cmd_inc[x][y][k]); 660 clusters[x][y]->p_cmd_in[k][EAST] (signal_dspin_h_cmd_dec[x][y][k]); 661 clusters[x+1][y]->p_cmd_out[k][WEST] (signal_dspin_h_cmd_dec[x][y][k]); 662 clusters[x][y]->p_rsp_out[k][EAST] (signal_dspin_h_rsp_inc[x][y][k]); 663 clusters[x+1][y]->p_rsp_in[k][WEST] (signal_dspin_h_rsp_inc[x][y][k]); 664 clusters[x][y]->p_rsp_in[k][EAST] (signal_dspin_h_rsp_dec[x][y][k]); 665 clusters[x+1][y]->p_rsp_out[k][WEST] (signal_dspin_h_rsp_dec[x][y][k]); 650 clusters[x][y]->p_rsp_out[EAST][k] (signal_dspin_h_rsp_inc[x][y][k]); 651 clusters[x+1][y]->p_rsp_in[WEST][k] (signal_dspin_h_rsp_inc[x][y][k]); 652 clusters[x][y]->p_rsp_in[EAST][k] (signal_dspin_h_rsp_dec[x][y][k]); 653 clusters[x+1][y]->p_rsp_out[WEST][k] (signal_dspin_h_rsp_dec[x][y][k]); 666 654 } 667 clusters[x][y]->p_clack_out[EAST] (signal_dspin_h_clack_inc[x][y]);668 clusters[x+1][y]->p_clack_in[WEST] (signal_dspin_h_clack_inc[x][y]);669 clusters[x][y]->p_clack_in[EAST] (signal_dspin_h_clack_dec[x][y]);670 clusters[x+1][y]->p_clack_out[WEST] (signal_dspin_h_clack_dec[x][y]);671 655 } 672 656 } … … 678 662 for (size_t y = 0; y < (YMAX-1); y++){ 679 663 for (size_t x = 0; x < XMAX; x++){ 664 for (size_t k = 0; k < 3; k++){ 665 clusters[x][y]->p_cmd_out[NORTH][k] (signal_dspin_v_cmd_inc[x][y][k]); 666 clusters[x][y+1]->p_cmd_in[SOUTH][k] (signal_dspin_v_cmd_inc[x][y][k]); 667 clusters[x][y]->p_cmd_in[NORTH][k] (signal_dspin_v_cmd_dec[x][y][k]); 668 clusters[x][y+1]->p_cmd_out[SOUTH][k] (signal_dspin_v_cmd_dec[x][y][k]); 669 } 670 680 671 for (size_t k = 0; k < 2; k++){ 681 clusters[x][y]->p_cmd_out[k][NORTH] (signal_dspin_v_cmd_inc[x][y][k]); 682 clusters[x][y+1]->p_cmd_in[k][SOUTH] (signal_dspin_v_cmd_inc[x][y][k]); 683 clusters[x][y]->p_cmd_in[k][NORTH] (signal_dspin_v_cmd_dec[x][y][k]); 684 clusters[x][y+1]->p_cmd_out[k][SOUTH] (signal_dspin_v_cmd_dec[x][y][k]); 685 clusters[x][y]->p_rsp_out[k][NORTH] (signal_dspin_v_rsp_inc[x][y][k]); 686 clusters[x][y+1]->p_rsp_in[k][SOUTH] (signal_dspin_v_rsp_inc[x][y][k]); 687 clusters[x][y]->p_rsp_in[k][NORTH] (signal_dspin_v_rsp_dec[x][y][k]); 688 clusters[x][y+1]->p_rsp_out[k][SOUTH] (signal_dspin_v_rsp_dec[x][y][k]); 672 clusters[x][y]->p_rsp_out[NORTH][k] (signal_dspin_v_rsp_inc[x][y][k]); 673 clusters[x][y+1]->p_rsp_in[SOUTH][k] (signal_dspin_v_rsp_inc[x][y][k]); 674 clusters[x][y]->p_rsp_in[NORTH][k] (signal_dspin_v_rsp_dec[x][y][k]); 675 clusters[x][y+1]->p_rsp_out[SOUTH][k] (signal_dspin_v_rsp_dec[x][y][k]); 689 676 } 690 clusters[x][y]->p_clack_out[NORTH] (signal_dspin_v_clack_inc[x][y]);691 clusters[x][y+1]->p_clack_in[SOUTH] (signal_dspin_v_clack_inc[x][y]);692 clusters[x][y]->p_clack_in[NORTH] (signal_dspin_v_clack_dec[x][y]);693 clusters[x][y+1]->p_clack_out[SOUTH] (signal_dspin_v_clack_dec[x][y]);694 677 } 695 678 } … … 700 683 for (size_t y = 0; y < YMAX; y++) 701 684 { 685 for (size_t k = 0; k < 3; k++) 686 { 687 clusters[0][y]->p_cmd_in[WEST][k] (signal_dspin_false_cmd_in[0][y][WEST][k]); 688 clusters[0][y]->p_cmd_out[WEST][k] (signal_dspin_false_cmd_out[0][y][WEST][k]); 689 clusters[XMAX-1][y]->p_cmd_in[EAST][k] (signal_dspin_false_cmd_in[XMAX-1][y][EAST][k]); 690 clusters[XMAX-1][y]->p_cmd_out[EAST][k] (signal_dspin_false_cmd_out[XMAX-1][y][EAST][k]); 691 } 692 702 693 for (size_t k = 0; k < 2; k++) 703 694 { 704 clusters[0][y]->p_cmd_in[k][WEST] (signal_dspin_false_cmd_in[0][y][k][WEST]); 705 clusters[0][y]->p_cmd_out[k][WEST] (signal_dspin_false_cmd_out[0][y][k][WEST]); 706 clusters[0][y]->p_rsp_in[k][WEST] (signal_dspin_false_rsp_in[0][y][k][WEST]); 707 clusters[0][y]->p_rsp_out[k][WEST] (signal_dspin_false_rsp_out[0][y][k][WEST]); 708 709 clusters[XMAX-1][y]->p_cmd_in[k][EAST] (signal_dspin_false_cmd_in[XMAX-1][y][k][EAST]); 710 clusters[XMAX-1][y]->p_cmd_out[k][EAST] (signal_dspin_false_cmd_out[XMAX-1][y][k][EAST]); 711 clusters[XMAX-1][y]->p_rsp_in[k][EAST] (signal_dspin_false_rsp_in[XMAX-1][y][k][EAST]); 712 clusters[XMAX-1][y]->p_rsp_out[k][EAST] (signal_dspin_false_rsp_out[XMAX-1][y][k][EAST]); 713 } 714 715 clusters[0][y]->p_clack_in[WEST] (signal_dspin_false_clack_in[0][y][WEST]); 716 clusters[0][y]->p_clack_out[WEST] (signal_dspin_false_clack_out[0][y][WEST]); 717 718 clusters[XMAX-1][y]->p_clack_in[EAST] (signal_dspin_false_clack_in[XMAX-1][y][EAST]); 719 clusters[XMAX-1][y]->p_clack_out[EAST] (signal_dspin_false_clack_out[XMAX-1][y][EAST]); 695 clusters[0][y]->p_rsp_in[WEST][k] (signal_dspin_false_rsp_in[0][y][WEST][k]); 696 clusters[0][y]->p_rsp_out[WEST][k] (signal_dspin_false_rsp_out[0][y][WEST][k]); 697 clusters[XMAX-1][y]->p_rsp_in[EAST][k] (signal_dspin_false_rsp_in[XMAX-1][y][EAST][k]); 698 clusters[XMAX-1][y]->p_rsp_out[EAST][k] (signal_dspin_false_rsp_out[XMAX-1][y][EAST][k]); 699 } 720 700 } 721 701 … … 723 703 for (size_t x = 0; x < XMAX; x++) 724 704 { 705 for (size_t k = 0; k < 3; k++) 706 { 707 clusters[x][0]->p_cmd_in[SOUTH][k] (signal_dspin_false_cmd_in[x][0][SOUTH][k]); 708 clusters[x][0]->p_cmd_out[SOUTH][k] (signal_dspin_false_cmd_out[x][0][SOUTH][k]); 709 clusters[x][YMAX-1]->p_cmd_in[NORTH][k] (signal_dspin_false_cmd_in[x][YMAX-1][NORTH][k]); 710 clusters[x][YMAX-1]->p_cmd_out[NORTH][k] (signal_dspin_false_cmd_out[x][YMAX-1][NORTH][k]); 711 } 712 725 713 for (size_t k = 0; k < 2; k++) 726 714 { 727 clusters[x][0]->p_cmd_in[k][SOUTH] (signal_dspin_false_cmd_in[x][0][k][SOUTH]); 728 clusters[x][0]->p_cmd_out[k][SOUTH] (signal_dspin_false_cmd_out[x][0][k][SOUTH]); 729 clusters[x][0]->p_rsp_in[k][SOUTH] (signal_dspin_false_rsp_in[x][0][k][SOUTH]); 730 clusters[x][0]->p_rsp_out[k][SOUTH] (signal_dspin_false_rsp_out[x][0][k][SOUTH]); 731 732 clusters[x][YMAX-1]->p_cmd_in[k][NORTH] (signal_dspin_false_cmd_in[x][YMAX-1][k][NORTH]); 733 clusters[x][YMAX-1]->p_cmd_out[k][NORTH] (signal_dspin_false_cmd_out[x][YMAX-1][k][NORTH]); 734 clusters[x][YMAX-1]->p_rsp_in[k][NORTH] (signal_dspin_false_rsp_in[x][YMAX-1][k][NORTH]); 735 clusters[x][YMAX-1]->p_rsp_out[k][NORTH] (signal_dspin_false_rsp_out[x][YMAX-1][k][NORTH]); 736 } 737 738 clusters[x][0]->p_clack_in[SOUTH] (signal_dspin_false_clack_in[x][0][SOUTH]); 739 clusters[x][0]->p_clack_out[SOUTH] (signal_dspin_false_clack_out[x][0][SOUTH]); 740 741 clusters[x][YMAX-1]->p_clack_in[NORTH] (signal_dspin_false_clack_in[x][YMAX-1][NORTH]); 742 clusters[x][YMAX-1]->p_clack_out[NORTH] (signal_dspin_false_clack_out[x][YMAX-1][NORTH]); 715 clusters[x][0]->p_rsp_in[SOUTH][k] (signal_dspin_false_rsp_in[x][0][SOUTH][k]); 716 clusters[x][0]->p_rsp_out[SOUTH][k] (signal_dspin_false_rsp_out[x][0][SOUTH][k]); 717 clusters[x][YMAX-1]->p_rsp_in[NORTH][k] (signal_dspin_false_rsp_in[x][YMAX-1][NORTH][k]); 718 clusters[x][YMAX-1]->p_rsp_out[NORTH][k] (signal_dspin_false_rsp_out[x][YMAX-1][NORTH][k]); 719 } 743 720 } 744 721 std::cout << "North, South, West, East connections established" << std::endl; … … 756 733 for (size_t x = 0; x < XMAX ; x++){ 757 734 for (size_t y = 0; y < YMAX ; y++){ 758 for (size_t k = 0; k < 2; k++){ 759 for (size_t a = 0; a < 4; a++){ 760 signal_dspin_false_cmd_in [x][y][k][a].write = false; 761 signal_dspin_false_cmd_in [x][y][k][a].read = true; 762 signal_dspin_false_cmd_out[x][y][k][a].write = false; 763 signal_dspin_false_cmd_out[x][y][k][a].read = true; 764 765 signal_dspin_false_rsp_in [x][y][k][a].write = false; 766 signal_dspin_false_rsp_in [x][y][k][a].read = true; 767 signal_dspin_false_rsp_out[x][y][k][a].write = false; 768 signal_dspin_false_rsp_out[x][y][k][a].read = true; 735 for (size_t a = 0; a < 4; a++){ 736 for (size_t k = 0; k < 3; k++){ 737 signal_dspin_false_cmd_in [x][y][a][k].write = false; 738 signal_dspin_false_cmd_in [x][y][a][k].read = true; 739 signal_dspin_false_cmd_out[x][y][a][k].write = false; 740 signal_dspin_false_cmd_out[x][y][a][k].read = true; 769 741 } 770 } 771 } 772 } 773 // clack network boundaries signals 774 for (size_t x = 0; x < XMAX ; x++){ 775 for (size_t y = 0; y < YMAX ; y++){ 776 for (size_t k = 0; k < 4; k++){ 777 signal_dspin_false_clack_in [x][y][k].write = false; 778 signal_dspin_false_clack_in [x][y][k].read = true; 779 signal_dspin_false_clack_out[x][y][k].write = false; 780 signal_dspin_false_clack_out[x][y][k].read = true; 742 743 for (size_t k = 0; k < 2; k++){ 744 signal_dspin_false_rsp_in [x][y][a][k].write = false; 745 signal_dspin_false_rsp_in [x][y][a][k].read = true; 746 signal_dspin_false_rsp_out[x][y][a][k].write = false; 747 signal_dspin_false_rsp_out[x][y][a][k].read = true; 748 } 781 749 } 782 750 }
Note: See TracChangeset
for help on using the changeset viewer.