Changeset 885 for trunk/platforms/tsar_generic_xbar/top.cpp
- Timestamp:
- Nov 14, 2014, 11:05:54 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/platforms/tsar_generic_xbar/top.cpp
r836 r885 654 654 655 655 // Horizontal inter-clusters DSPIN signals 656 DspinSignals<dspin_cmd_width>*** signal_dspin_h_cmd_inc = 657 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_cmd_inc", X_SIZE-1, Y_SIZE, 3); 658 DspinSignals<dspin_cmd_width>*** signal_dspin_h_cmd_dec = 659 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_cmd_dec", X_SIZE-1, Y_SIZE, 3); 660 DspinSignals<dspin_rsp_width>*** signal_dspin_h_rsp_inc = 661 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_h_rsp_inc", X_SIZE-1, Y_SIZE, 2); 662 DspinSignals<dspin_rsp_width>*** signal_dspin_h_rsp_dec = 663 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_h_rsp_dec", X_SIZE-1, Y_SIZE, 2); 656 DspinSignals<dspin_cmd_width>** signal_dspin_h_cmd_inc = 657 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_cmd_inc", X_SIZE-1, Y_SIZE); 658 DspinSignals<dspin_cmd_width>** signal_dspin_h_cmd_dec = 659 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_cmd_dec", X_SIZE-1, Y_SIZE); 660 661 DspinSignals<dspin_rsp_width>** signal_dspin_h_rsp_inc = 662 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_h_rsp_inc", X_SIZE-1, Y_SIZE); 663 DspinSignals<dspin_rsp_width>** signal_dspin_h_rsp_dec = 664 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_h_rsp_dec", X_SIZE-1, Y_SIZE); 665 666 DspinSignals<dspin_cmd_width>** signal_dspin_h_m2p_inc = 667 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_m2p_inc", X_SIZE-1, Y_SIZE); 668 DspinSignals<dspin_cmd_width>** signal_dspin_h_m2p_dec = 669 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_m2p_dec", X_SIZE-1, Y_SIZE); 670 671 DspinSignals<dspin_rsp_width>** signal_dspin_h_p2m_inc = 672 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_h_p2m_inc", X_SIZE-1, Y_SIZE); 673 DspinSignals<dspin_rsp_width>** signal_dspin_h_p2m_dec = 674 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_h_p2m_dec", X_SIZE-1, Y_SIZE); 675 676 DspinSignals<dspin_cmd_width>** signal_dspin_h_cla_inc = 677 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_cla_inc", X_SIZE-1, Y_SIZE); 678 DspinSignals<dspin_cmd_width>** signal_dspin_h_cla_dec = 679 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_h_cla_dec", X_SIZE-1, Y_SIZE); 664 680 665 681 // Vertical inter-clusters DSPIN signals 666 DspinSignals<dspin_cmd_width>*** signal_dspin_v_cmd_inc = 667 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_cmd_inc", X_SIZE, Y_SIZE-1, 3); 668 DspinSignals<dspin_cmd_width>*** signal_dspin_v_cmd_dec = 669 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_cmd_dec", X_SIZE, Y_SIZE-1, 3); 670 DspinSignals<dspin_rsp_width>*** signal_dspin_v_rsp_inc = 671 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_v_rsp_inc", X_SIZE, Y_SIZE-1, 2); 672 DspinSignals<dspin_rsp_width>*** signal_dspin_v_rsp_dec = 673 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_v_rsp_dec", X_SIZE, Y_SIZE-1, 2); 674 675 // Mesh boundaries DSPIN signals 676 DspinSignals<dspin_cmd_width>**** signal_dspin_false_cmd_in = 677 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_false_cmd_in" , X_SIZE, Y_SIZE, 4, 3); 678 DspinSignals<dspin_cmd_width>**** signal_dspin_false_cmd_out = 679 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_false_cmd_out", X_SIZE, Y_SIZE, 4, 3); 680 DspinSignals<dspin_rsp_width>**** signal_dspin_false_rsp_in = 681 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_false_rsp_in" , X_SIZE, Y_SIZE, 4, 2); 682 DspinSignals<dspin_rsp_width>**** signal_dspin_false_rsp_out = 683 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_false_rsp_out", X_SIZE, Y_SIZE, 4, 2); 682 DspinSignals<dspin_cmd_width>** signal_dspin_v_cmd_inc = 683 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_cmd_inc", X_SIZE, Y_SIZE-1); 684 DspinSignals<dspin_cmd_width>** signal_dspin_v_cmd_dec = 685 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_cmd_dec", X_SIZE, Y_SIZE-1); 686 687 DspinSignals<dspin_rsp_width>** signal_dspin_v_rsp_inc = 688 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_v_rsp_inc", X_SIZE, Y_SIZE-1); 689 DspinSignals<dspin_rsp_width>** signal_dspin_v_rsp_dec = 690 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_v_rsp_dec", X_SIZE, Y_SIZE-1); 691 692 DspinSignals<dspin_cmd_width>** signal_dspin_v_m2p_inc = 693 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_m2p_inc", X_SIZE, Y_SIZE-1); 694 DspinSignals<dspin_cmd_width>** signal_dspin_v_m2p_dec = 695 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_m2p_dec", X_SIZE, Y_SIZE-1); 696 697 DspinSignals<dspin_rsp_width>** signal_dspin_v_p2m_inc = 698 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_v_p2m_inc", X_SIZE, Y_SIZE-1); 699 DspinSignals<dspin_rsp_width>** signal_dspin_v_p2m_dec = 700 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_v_p2m_dec", X_SIZE, Y_SIZE-1); 701 702 DspinSignals<dspin_cmd_width>** signal_dspin_v_cla_inc = 703 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_cla_inc", X_SIZE, Y_SIZE-1); 704 DspinSignals<dspin_cmd_width>** signal_dspin_v_cla_dec = 705 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_v_cla_dec", X_SIZE, Y_SIZE-1); 706 707 // Mesh boundaries DSPIN signals (Most of those signals are not used...) 708 DspinSignals<dspin_cmd_width>*** signal_dspin_bound_cmd_in = 709 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_bound_cmd_in" , X_SIZE, Y_SIZE, 4); 710 DspinSignals<dspin_cmd_width>*** signal_dspin_bound_cmd_out = 711 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_bound_cmd_out", X_SIZE, Y_SIZE, 4); 712 713 DspinSignals<dspin_rsp_width>*** signal_dspin_bound_rsp_in = 714 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_bound_rsp_in" , X_SIZE, Y_SIZE, 4); 715 DspinSignals<dspin_rsp_width>*** signal_dspin_bound_rsp_out = 716 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_bound_rsp_out", X_SIZE, Y_SIZE, 4); 717 718 DspinSignals<dspin_cmd_width>*** signal_dspin_bound_m2p_in = 719 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_bound_m2p_in" , X_SIZE, Y_SIZE, 4); 720 DspinSignals<dspin_cmd_width>*** signal_dspin_bound_m2p_out = 721 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_bound_m2p_out", X_SIZE, Y_SIZE, 4); 722 723 DspinSignals<dspin_rsp_width>*** signal_dspin_bound_p2m_in = 724 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_bound_p2m_in" , X_SIZE, Y_SIZE, 4); 725 DspinSignals<dspin_rsp_width>*** signal_dspin_bound_p2m_out = 726 alloc_elems<DspinSignals<dspin_rsp_width> >("signal_dspin_bound_p2m_out", X_SIZE, Y_SIZE, 4); 727 728 DspinSignals<dspin_cmd_width>*** signal_dspin_bound_cla_in = 729 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_bound_cla_in" , X_SIZE, Y_SIZE, 4); 730 DspinSignals<dspin_cmd_width>*** signal_dspin_bound_cla_out = 731 alloc_elems<DspinSignals<dspin_cmd_width> >("signal_dspin_bound_cla_out", X_SIZE, Y_SIZE, 4); 732 684 733 685 734 //////////////////////////// … … 794 843 795 844 // Inter Clusters horizontal connections 796 if (X_SIZE > 1){ 797 for (size_t x = 0; x < (X_SIZE-1); x++){ 798 for (size_t y = 0; y < Y_SIZE; y++){ 799 for (size_t k = 0; k < 3; k++){ 800 clusters[x][y]->p_cmd_out[EAST][k] (signal_dspin_h_cmd_inc[x][y][k]); 801 clusters[x+1][y]->p_cmd_in[WEST][k] (signal_dspin_h_cmd_inc[x][y][k]); 802 clusters[x][y]->p_cmd_in[EAST][k] (signal_dspin_h_cmd_dec[x][y][k]); 803 clusters[x+1][y]->p_cmd_out[WEST][k] (signal_dspin_h_cmd_dec[x][y][k]); 804 } 805 806 for (size_t k = 0; k < 2; k++){ 807 clusters[x][y]->p_rsp_out[EAST][k] (signal_dspin_h_rsp_inc[x][y][k]); 808 clusters[x+1][y]->p_rsp_in[WEST][k] (signal_dspin_h_rsp_inc[x][y][k]); 809 clusters[x][y]->p_rsp_in[EAST][k] (signal_dspin_h_rsp_dec[x][y][k]); 810 clusters[x+1][y]->p_rsp_out[WEST][k] (signal_dspin_h_rsp_dec[x][y][k]); 811 } 812 } 813 } 814 } 815 std::cout << std::endl << "Horizontal connections established" << std::endl; 845 if (X_SIZE > 1) { 846 for (size_t x = 0; x < (X_SIZE-1); x++) { 847 for (size_t y = 0; y < (Y_SIZE); y++) { 848 clusters[x][y]->p_cmd_out[EAST] (signal_dspin_h_cmd_inc[x][y]); 849 clusters[x+1][y]->p_cmd_in[WEST] (signal_dspin_h_cmd_inc[x][y]); 850 clusters[x][y]->p_cmd_in[EAST] (signal_dspin_h_cmd_dec[x][y]); 851 clusters[x+1][y]->p_cmd_out[WEST] (signal_dspin_h_cmd_dec[x][y]); 852 853 clusters[x][y]->p_rsp_out[EAST] (signal_dspin_h_rsp_inc[x][y]); 854 clusters[x+1][y]->p_rsp_in[WEST] (signal_dspin_h_rsp_inc[x][y]); 855 clusters[x][y]->p_rsp_in[EAST] (signal_dspin_h_rsp_dec[x][y]); 856 clusters[x+1][y]->p_rsp_out[WEST] (signal_dspin_h_rsp_dec[x][y]); 857 858 clusters[x][y]->p_m2p_out[EAST] (signal_dspin_h_m2p_inc[x][y]); 859 clusters[x+1][y]->p_m2p_in[WEST] (signal_dspin_h_m2p_inc[x][y]); 860 clusters[x][y]->p_m2p_in[EAST] (signal_dspin_h_m2p_dec[x][y]); 861 clusters[x+1][y]->p_m2p_out[WEST] (signal_dspin_h_m2p_dec[x][y]); 862 863 clusters[x][y]->p_p2m_out[EAST] (signal_dspin_h_p2m_inc[x][y]); 864 clusters[x+1][y]->p_p2m_in[WEST] (signal_dspin_h_p2m_inc[x][y]); 865 clusters[x][y]->p_p2m_in[EAST] (signal_dspin_h_p2m_dec[x][y]); 866 clusters[x+1][y]->p_p2m_out[WEST] (signal_dspin_h_p2m_dec[x][y]); 867 868 clusters[x][y]->p_cla_out[EAST] (signal_dspin_h_cla_inc[x][y]); 869 clusters[x+1][y]->p_cla_in[WEST] (signal_dspin_h_cla_inc[x][y]); 870 clusters[x][y]->p_cla_in[EAST] (signal_dspin_h_cla_dec[x][y]); 871 clusters[x+1][y]->p_cla_out[WEST] (signal_dspin_h_cla_dec[x][y]); 872 } 873 } 874 } 875 std::cout << std::endl << "Horizontal connections done" << std::endl; 816 876 817 877 // Inter Clusters vertical connections 818 878 if (Y_SIZE > 1) { 819 for (size_t y = 0; y < (Y_SIZE-1); y++){ 820 for (size_t x = 0; x < X_SIZE; x++){ 821 for (size_t k = 0; k < 3; k++){ 822 clusters[x][y]->p_cmd_out[NORTH][k] (signal_dspin_v_cmd_inc[x][y][k]); 823 clusters[x][y+1]->p_cmd_in[SOUTH][k] (signal_dspin_v_cmd_inc[x][y][k]); 824 clusters[x][y]->p_cmd_in[NORTH][k] (signal_dspin_v_cmd_dec[x][y][k]); 825 clusters[x][y+1]->p_cmd_out[SOUTH][k] (signal_dspin_v_cmd_dec[x][y][k]); 826 } 827 828 for (size_t k = 0; k < 2; k++){ 829 clusters[x][y]->p_rsp_out[NORTH][k] (signal_dspin_v_rsp_inc[x][y][k]); 830 clusters[x][y+1]->p_rsp_in[SOUTH][k] (signal_dspin_v_rsp_inc[x][y][k]); 831 clusters[x][y]->p_rsp_in[NORTH][k] (signal_dspin_v_rsp_dec[x][y][k]); 832 clusters[x][y+1]->p_rsp_out[SOUTH][k] (signal_dspin_v_rsp_dec[x][y][k]); 833 } 834 } 835 } 836 } 837 std::cout << "Vertical connections established" << std::endl; 879 for (size_t y = 0; y < (Y_SIZE-1); y++) { 880 for (size_t x = 0; x < X_SIZE; x++) { 881 clusters[x][y]->p_cmd_out[NORTH] (signal_dspin_v_cmd_inc[x][y]); 882 clusters[x][y+1]->p_cmd_in[SOUTH] (signal_dspin_v_cmd_inc[x][y]); 883 clusters[x][y]->p_cmd_in[NORTH] (signal_dspin_v_cmd_dec[x][y]); 884 clusters[x][y+1]->p_cmd_out[SOUTH] (signal_dspin_v_cmd_dec[x][y]); 885 886 clusters[x][y]->p_rsp_out[NORTH] (signal_dspin_v_rsp_inc[x][y]); 887 clusters[x][y+1]->p_rsp_in[SOUTH] (signal_dspin_v_rsp_inc[x][y]); 888 clusters[x][y]->p_rsp_in[NORTH] (signal_dspin_v_rsp_dec[x][y]); 889 clusters[x][y+1]->p_rsp_out[SOUTH] (signal_dspin_v_rsp_dec[x][y]); 890 891 clusters[x][y]->p_m2p_out[NORTH] (signal_dspin_v_m2p_inc[x][y]); 892 clusters[x][y+1]->p_m2p_in[SOUTH] (signal_dspin_v_m2p_inc[x][y]); 893 clusters[x][y]->p_m2p_in[NORTH] (signal_dspin_v_m2p_dec[x][y]); 894 clusters[x][y+1]->p_m2p_out[SOUTH] (signal_dspin_v_m2p_dec[x][y]); 895 896 clusters[x][y]->p_p2m_out[NORTH] (signal_dspin_v_p2m_inc[x][y]); 897 clusters[x][y+1]->p_p2m_in[SOUTH] (signal_dspin_v_p2m_inc[x][y]); 898 clusters[x][y]->p_p2m_in[NORTH] (signal_dspin_v_p2m_dec[x][y]); 899 clusters[x][y+1]->p_p2m_out[SOUTH] (signal_dspin_v_p2m_dec[x][y]); 900 901 clusters[x][y]->p_cla_out[NORTH] (signal_dspin_v_cla_inc[x][y]); 902 clusters[x][y+1]->p_cla_in[SOUTH] (signal_dspin_v_cla_inc[x][y]); 903 clusters[x][y]->p_cla_in[NORTH] (signal_dspin_v_cla_dec[x][y]); 904 clusters[x][y+1]->p_cla_out[SOUTH] (signal_dspin_v_cla_dec[x][y]); 905 } 906 } 907 } 908 std::cout << std::endl << "Vertical connections done" << std::endl; 838 909 839 910 // East & West boundary cluster connections 840 for (size_t y = 0; y < Y_SIZE; y++) 841 { 842 for (size_t k = 0; k < 3; k++) 843 { 844 clusters[0][y]->p_cmd_in[WEST][k] (signal_dspin_false_cmd_in [0][y][WEST][k]); 845 clusters[0][y]->p_cmd_out[WEST][k] (signal_dspin_false_cmd_out[0][y][WEST][k]); 846 clusters[X_SIZE-1][y]->p_cmd_in[EAST][k] (signal_dspin_false_cmd_in [X_SIZE-1][y][EAST][k]); 847 clusters[X_SIZE-1][y]->p_cmd_out[EAST][k](signal_dspin_false_cmd_out[X_SIZE-1][y][EAST][k]); 848 } 849 850 for (size_t k = 0; k < 2; k++) 851 { 852 clusters[0][y]->p_rsp_in[WEST][k] (signal_dspin_false_rsp_in [0][y][WEST][k]); 853 clusters[0][y]->p_rsp_out[WEST][k] (signal_dspin_false_rsp_out[0][y][WEST][k]); 854 clusters[X_SIZE-1][y]->p_rsp_in[EAST][k] (signal_dspin_false_rsp_in [X_SIZE-1][y][EAST][k]); 855 clusters[X_SIZE-1][y]->p_rsp_out[EAST][k](signal_dspin_false_rsp_out[X_SIZE-1][y][EAST][k]); 856 } 857 } 911 for (size_t y = 0; y < (Y_SIZE); y++) { 912 clusters[0][y]->p_cmd_in[WEST] (signal_dspin_bound_cmd_in[0][y][WEST]); 913 clusters[0][y]->p_cmd_out[WEST] (signal_dspin_bound_cmd_out[0][y][WEST]); 914 clusters[X_SIZE-1][y]->p_cmd_in[EAST] (signal_dspin_bound_cmd_in[X_SIZE-1][y][EAST]); 915 clusters[X_SIZE-1][y]->p_cmd_out[EAST] (signal_dspin_bound_cmd_out[X_SIZE-1][y][EAST]); 916 917 clusters[0][y]->p_rsp_in[WEST] (signal_dspin_bound_rsp_in[0][y][WEST]); 918 clusters[0][y]->p_rsp_out[WEST] (signal_dspin_bound_rsp_out[0][y][WEST]); 919 clusters[X_SIZE-1][y]->p_rsp_in[EAST] (signal_dspin_bound_rsp_in[X_SIZE-1][y][EAST]); 920 clusters[X_SIZE-1][y]->p_rsp_out[EAST] (signal_dspin_bound_rsp_out[X_SIZE-1][y][EAST]); 921 922 clusters[0][y]->p_m2p_in[WEST] (signal_dspin_bound_m2p_in[0][y][WEST]); 923 clusters[0][y]->p_m2p_out[WEST] (signal_dspin_bound_m2p_out[0][y][WEST]); 924 clusters[X_SIZE-1][y]->p_m2p_in[EAST] (signal_dspin_bound_m2p_in[X_SIZE-1][y][EAST]); 925 clusters[X_SIZE-1][y]->p_m2p_out[EAST] (signal_dspin_bound_m2p_out[X_SIZE-1][y][EAST]); 926 927 clusters[0][y]->p_p2m_in[WEST] (signal_dspin_bound_p2m_in[0][y][WEST]); 928 clusters[0][y]->p_p2m_out[WEST] (signal_dspin_bound_p2m_out[0][y][WEST]); 929 clusters[X_SIZE-1][y]->p_p2m_in[EAST] (signal_dspin_bound_p2m_in[X_SIZE-1][y][EAST]); 930 clusters[X_SIZE-1][y]->p_p2m_out[EAST] (signal_dspin_bound_p2m_out[X_SIZE-1][y][EAST]); 931 932 clusters[0][y]->p_cla_in[WEST] (signal_dspin_bound_cla_in[0][y][WEST]); 933 clusters[0][y]->p_cla_out[WEST] (signal_dspin_bound_cla_out[0][y][WEST]); 934 clusters[X_SIZE-1][y]->p_cla_in[EAST] (signal_dspin_bound_cla_in[X_SIZE-1][y][EAST]); 935 clusters[X_SIZE-1][y]->p_cla_out[EAST] (signal_dspin_bound_cla_out[X_SIZE-1][y][EAST]); 936 } 937 938 std::cout << std::endl << "West & East boundaries connections done" << std::endl; 858 939 859 940 // North & South boundary clusters connections 860 for (size_t x = 0; x < X_SIZE; x++) 861 { 862 for (size_t k = 0; k < 3; k++) 863 { 864 clusters[x][0]->p_cmd_in[SOUTH][k] (signal_dspin_false_cmd_in [x][0][SOUTH][k]); 865 clusters[x][0]->p_cmd_out[SOUTH][k] (signal_dspin_false_cmd_out[x][0][SOUTH][k]); 866 clusters[x][Y_SIZE-1]->p_cmd_in[NORTH][k] (signal_dspin_false_cmd_in [x][Y_SIZE-1][NORTH][k]); 867 clusters[x][Y_SIZE-1]->p_cmd_out[NORTH][k](signal_dspin_false_cmd_out[x][Y_SIZE-1][NORTH][k]); 868 } 869 870 for (size_t k = 0; k < 2; k++) 871 { 872 clusters[x][0]->p_rsp_in[SOUTH][k] (signal_dspin_false_rsp_in [x][0][SOUTH][k]); 873 clusters[x][0]->p_rsp_out[SOUTH][k] (signal_dspin_false_rsp_out[x][0][SOUTH][k]); 874 clusters[x][Y_SIZE-1]->p_rsp_in[NORTH][k] (signal_dspin_false_rsp_in [x][Y_SIZE-1][NORTH][k]); 875 clusters[x][Y_SIZE-1]->p_rsp_out[NORTH][k](signal_dspin_false_rsp_out[x][Y_SIZE-1][NORTH][k]); 876 } 877 } 878 std::cout << "North, South, West, East connections established" << std::endl; 941 for (size_t x = 0; x < X_SIZE; x++) { 942 clusters[x][0]->p_cmd_in[SOUTH] (signal_dspin_bound_cmd_in[x][0][SOUTH]); 943 clusters[x][0]->p_cmd_out[SOUTH] (signal_dspin_bound_cmd_out[x][0][SOUTH]); 944 clusters[x][Y_SIZE-1]->p_cmd_in[NORTH] (signal_dspin_bound_cmd_in[x][Y_SIZE-1][NORTH]); 945 clusters[x][Y_SIZE-1]->p_cmd_out[NORTH] (signal_dspin_bound_cmd_out[x][Y_SIZE-1][NORTH]); 946 947 clusters[x][0]->p_rsp_in[SOUTH] (signal_dspin_bound_rsp_in[x][0][SOUTH]); 948 clusters[x][0]->p_rsp_out[SOUTH] (signal_dspin_bound_rsp_out[x][0][SOUTH]); 949 clusters[x][Y_SIZE-1]->p_rsp_in[NORTH] (signal_dspin_bound_rsp_in[x][Y_SIZE-1][NORTH]); 950 clusters[x][Y_SIZE-1]->p_rsp_out[NORTH] (signal_dspin_bound_rsp_out[x][Y_SIZE-1][NORTH]); 951 952 clusters[x][0]->p_m2p_in[SOUTH] (signal_dspin_bound_m2p_in[x][0][SOUTH]); 953 clusters[x][0]->p_m2p_out[SOUTH] (signal_dspin_bound_m2p_out[x][0][SOUTH]); 954 clusters[x][Y_SIZE-1]->p_m2p_in[NORTH] (signal_dspin_bound_m2p_in[x][Y_SIZE-1][NORTH]); 955 clusters[x][Y_SIZE-1]->p_m2p_out[NORTH] (signal_dspin_bound_m2p_out[x][Y_SIZE-1][NORTH]); 956 957 clusters[x][0]->p_p2m_in[SOUTH] (signal_dspin_bound_p2m_in[x][0][SOUTH]); 958 clusters[x][0]->p_p2m_out[SOUTH] (signal_dspin_bound_p2m_out[x][0][SOUTH]); 959 clusters[x][Y_SIZE-1]->p_p2m_in[NORTH] (signal_dspin_bound_p2m_in[x][Y_SIZE-1][NORTH]); 960 clusters[x][Y_SIZE-1]->p_p2m_out[NORTH] (signal_dspin_bound_p2m_out[x][Y_SIZE-1][NORTH]); 961 962 clusters[x][0]->p_cla_in[SOUTH] (signal_dspin_bound_cla_in[x][0][SOUTH]); 963 clusters[x][0]->p_cla_out[SOUTH] (signal_dspin_bound_cla_out[x][0][SOUTH]); 964 clusters[x][Y_SIZE-1]->p_cla_in[NORTH] (signal_dspin_bound_cla_in[x][Y_SIZE-1][NORTH]); 965 clusters[x][Y_SIZE-1]->p_cla_out[NORTH] (signal_dspin_bound_cla_out[x][Y_SIZE-1][NORTH]); 966 } 967 968 std::cout << std::endl << "North & South boundaries connections done" << std::endl; 879 969 std::cout << std::endl; 880 970 … … 955 1045 signal_resetn = false; 956 1046 957 // network boundaries signals 958 for (size_t x = 0; x < X_SIZE ; x++){ 959 for (size_t y = 0; y < Y_SIZE ; y++){ 960 for (size_t a = 0; a < 4; a++){ 961 for (size_t k = 0; k < 3; k++){ 962 signal_dspin_false_cmd_in [x][y][a][k].write = false; 963 signal_dspin_false_cmd_in [x][y][a][k].read = true; 964 signal_dspin_false_cmd_out[x][y][a][k].write = false; 965 signal_dspin_false_cmd_out[x][y][a][k].read = true; 966 } 967 for (size_t k = 0; k < 2; k++){ 968 signal_dspin_false_rsp_in [x][y][a][k].write = false; 969 signal_dspin_false_rsp_in [x][y][a][k].read = true; 970 signal_dspin_false_rsp_out[x][y][a][k].write = false; 971 signal_dspin_false_rsp_out[x][y][a][k].read = true; 972 } 973 } 974 } 1047 // set network boundaries signals default values 1048 // for all boundary clusters 1049 for (size_t x = 0; x < X_SIZE ; x++) { 1050 for (size_t y = 0; y < Y_SIZE ; y++) { 1051 for (size_t face = 0; face < 4; face++) { 1052 signal_dspin_bound_cmd_in [x][y][face].write = false; 1053 signal_dspin_bound_cmd_in [x][y][face].read = true; 1054 signal_dspin_bound_cmd_out[x][y][face].write = false; 1055 signal_dspin_bound_cmd_out[x][y][face].read = true; 1056 1057 signal_dspin_bound_rsp_in [x][y][face].write = false; 1058 signal_dspin_bound_rsp_in [x][y][face].read = true; 1059 signal_dspin_bound_rsp_out[x][y][face].write = false; 1060 signal_dspin_bound_rsp_out[x][y][face].read = true; 1061 1062 signal_dspin_bound_m2p_in [x][y][face].write = false; 1063 signal_dspin_bound_m2p_in [x][y][face].read = true; 1064 signal_dspin_bound_m2p_out[x][y][face].write = false; 1065 signal_dspin_bound_m2p_out[x][y][face].read = true; 1066 1067 signal_dspin_bound_p2m_in [x][y][face].write = false; 1068 signal_dspin_bound_p2m_in [x][y][face].read = true; 1069 signal_dspin_bound_p2m_out[x][y][face].write = false; 1070 signal_dspin_bound_p2m_out[x][y][face].read = true; 1071 1072 signal_dspin_bound_cla_in [x][y][face].write = false; 1073 signal_dspin_bound_cla_in [x][y][face].read = true; 1074 signal_dspin_bound_cla_out[x][y][face].write = false; 1075 signal_dspin_bound_cla_out[x][y][face].read = true; 1076 } 1077 } 975 1078 } 976 1079 … … 1037 1140 1038 1141 clusters[x][y]->proc[proc]->print_trace(); 1039 1040 1142 std::ostringstream proc_signame; 1041 1143 proc_signame << "[SIG]PROC_" << x << "_" << y << "_" << proc ; … … 1121 1223 } 1122 1224 1123 1225 1124 1226 // Free memory 1125 1227 for (size_t i = 0; i < (X_SIZE * Y_SIZE); i++) … … 1130 1232 } 1131 1233 1132 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_h_cmd_inc, X_SIZE - 1, Y_SIZE, 3); 1133 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_h_cmd_dec, X_SIZE - 1, Y_SIZE, 3); 1134 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_h_rsp_inc, X_SIZE - 1, Y_SIZE, 2); 1135 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_h_rsp_dec, X_SIZE - 1, Y_SIZE, 2); 1136 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_v_cmd_inc, X_SIZE, Y_SIZE - 1, 3); 1137 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_v_cmd_dec, X_SIZE, Y_SIZE - 1, 3); 1138 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_v_rsp_inc, X_SIZE, Y_SIZE - 1, 2); 1139 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_v_rsp_dec, X_SIZE, Y_SIZE - 1, 2); 1140 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_false_cmd_in, X_SIZE, Y_SIZE, 4, 3); 1141 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_false_cmd_out, X_SIZE, Y_SIZE, 4, 3); 1142 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_false_rsp_in, X_SIZE, Y_SIZE, 4, 2); 1143 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_false_rsp_out, X_SIZE, Y_SIZE, 4, 2); 1234 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_h_cmd_inc, X_SIZE-1, Y_SIZE); 1235 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_h_cmd_dec, X_SIZE-1, Y_SIZE); 1236 1237 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_h_rsp_inc, X_SIZE-1, Y_SIZE); 1238 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_h_rsp_dec, X_SIZE-1, Y_SIZE); 1239 1240 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_h_m2p_inc, X_SIZE-1, Y_SIZE); 1241 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_h_m2p_dec, X_SIZE-1, Y_SIZE); 1242 1243 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_h_p2m_inc, X_SIZE-1, Y_SIZE); 1244 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_h_p2m_dec, X_SIZE-1, Y_SIZE); 1245 1246 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_h_cla_inc, X_SIZE-1, Y_SIZE); 1247 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_h_cla_dec, X_SIZE-1, Y_SIZE); 1248 1249 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_v_cmd_inc, X_SIZE, Y_SIZE-1); 1250 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_v_cmd_dec, X_SIZE, Y_SIZE-1); 1251 1252 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_v_rsp_inc, X_SIZE, Y_SIZE-1); 1253 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_v_rsp_dec, X_SIZE, Y_SIZE-1); 1254 1255 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_v_m2p_inc, X_SIZE, Y_SIZE-1); 1256 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_v_m2p_dec, X_SIZE, Y_SIZE-1); 1257 1258 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_v_p2m_inc, X_SIZE, Y_SIZE-1); 1259 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_v_p2m_dec, X_SIZE, Y_SIZE-1); 1260 1261 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_v_cla_inc, X_SIZE, Y_SIZE-1); 1262 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_v_cla_dec, X_SIZE, Y_SIZE-1); 1263 1264 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_bound_cmd_in, X_SIZE, Y_SIZE, 4); 1265 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_bound_cmd_out, X_SIZE, Y_SIZE, 4); 1266 1267 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_bound_rsp_in, X_SIZE, Y_SIZE, 4); 1268 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_bound_rsp_out, X_SIZE, Y_SIZE, 4); 1269 1270 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_bound_m2p_in, X_SIZE, Y_SIZE, 4); 1271 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_bound_m2p_out, X_SIZE, Y_SIZE, 4); 1272 1273 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_bound_p2m_in, X_SIZE, Y_SIZE, 4); 1274 dealloc_elems<DspinSignals<dspin_rsp_width> >(signal_dspin_bound_p2m_out, X_SIZE, Y_SIZE, 4); 1275 1276 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_bound_cla_in, X_SIZE, Y_SIZE, 4); 1277 dealloc_elems<DspinSignals<dspin_cmd_width> >(signal_dspin_bound_cla_out, X_SIZE, Y_SIZE, 4); 1144 1278 1145 1279 return EXIT_SUCCESS;
Note: See TracChangeset
for help on using the changeset viewer.