Changeset 117 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue
- Timestamp:
- May 16, 2009, 4:42:39 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/SelfTest/config_min.cfg
r111 r117 13 13 1 1 *2 # size_store_queue_ptr 14 14 0 0 *2 # size_load_queue_ptr 15 1 1 *2 # nb_inst_issue16 15 1 1 *2 # nb_inst_rename [0] [nb_rename_unit] 17 16 1 1 *2 # nb_inst_reexecute … … 19 18 1 1 *2 # priority 20 19 1 1 *2 # load_balancing 21 1 1 +1 # table_routing [0][0] [nb_rename_unit][nb_inst_issue]22 1 1 +1 # table_issue_type [0][TYPE_ALU ] [nb_inst_issue][nb_type]23 1 1 +1 # table_issue_type [0][TYPE_SHIFT ] [nb_inst_issue][nb_type]24 1 1 +1 # table_issue_type [0][TYPE_MOVE ] [nb_inst_issue][nb_type]25 1 1 +1 # table_issue_type [0][TYPE_TEST ] [nb_inst_issue][nb_type]26 1 1 +1 # table_issue_type [0][TYPE_MUL ] [nb_inst_issue][nb_type]27 1 1 +1 # table_issue_type [0][TYPE_DIV ] [nb_inst_issue][nb_type]28 1 1 +1 # table_issue_type [0][TYPE_EXTEND ] [nb_inst_issue][nb_type]29 1 1 +1 # table_issue_type [0][TYPE_FIND ] [nb_inst_issue][nb_type]30 1 1 +1 # table_issue_type [0][TYPE_SPECIAL] [nb_inst_issue][nb_type]31 1 1 +1 # table_issue_type [0][TYPE_CUSTOM ] [nb_inst_issue][nb_type]32 1 1 +1 # table_issue_type [0][TYPE_BRANCH ] [nb_inst_issue][nb_type]33 1 1 +1 # table_issue_type [0][TYPE_MEMORY ] [nb_inst_issue][nb_type] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/SelfTest/config_mono_rename_unit.cfg
r111 r117 13 13 1 1 *2 # size_store_queue_ptr 14 14 0 0 *2 # size_load_queue_ptr 15 2 2 *4 # nb_inst_issue16 15 1 4 *4 # nb_inst_rename [0] [nb_rename_unit] 17 16 1 4 *4 # nb_inst_reexecute … … 19 18 1 1 *2 # priority 20 19 1 1 *2 # load_balancing 21 1 1 +1 # table_routing [0][0] [nb_rename_unit][nb_inst_issue]22 1 1 +1 # table_routing [0][1] [nb_rename_unit][nb_inst_issue]23 1 1 +1 # table_issue_type [0][TYPE_ALU ] [nb_inst_issue][nb_type]24 1 1 +1 # table_issue_type [0][TYPE_SHIFT ] [nb_inst_issue][nb_type]25 1 1 +1 # table_issue_type [0][TYPE_MOVE ] [nb_inst_issue][nb_type]26 1 1 +1 # table_issue_type [0][TYPE_TEST ] [nb_inst_issue][nb_type]27 0 0 +1 # table_issue_type [0][TYPE_MUL ] [nb_inst_issue][nb_type]28 0 0 +1 # table_issue_type [0][TYPE_DIV ] [nb_inst_issue][nb_type]29 1 1 +1 # table_issue_type [0][TYPE_EXTEND ] [nb_inst_issue][nb_type]30 1 1 +1 # table_issue_type [0][TYPE_FIND ] [nb_inst_issue][nb_type]31 0 0 +1 # table_issue_type [0][TYPE_SPECIAL] [nb_inst_issue][nb_type]32 0 0 +1 # table_issue_type [0][TYPE_CUSTOM ] [nb_inst_issue][nb_type]33 0 0 +1 # table_issue_type [0][TYPE_BRANCH ] [nb_inst_issue][nb_type]34 1 1 +1 # table_issue_type [0][TYPE_MEMORY ] [nb_inst_issue][nb_type]35 1 1 +1 # table_issue_type [1][TYPE_ALU ] [nb_inst_issue][nb_type]36 1 1 +1 # table_issue_type [1][TYPE_SHIFT ] [nb_inst_issue][nb_type]37 1 1 +1 # table_issue_type [1][TYPE_MOVE ] [nb_inst_issue][nb_type]38 1 1 +1 # table_issue_type [1][TYPE_TEST ] [nb_inst_issue][nb_type]39 1 1 +1 # table_issue_type [1][TYPE_MUL ] [nb_inst_issue][nb_type]40 1 1 +1 # table_issue_type [1][TYPE_DIV ] [nb_inst_issue][nb_type]41 0 0 +1 # table_issue_type [1][TYPE_EXTEND ] [nb_inst_issue][nb_type]42 0 0 +1 # table_issue_type [1][TYPE_FIND ] [nb_inst_issue][nb_type]43 1 1 +1 # table_issue_type [1][TYPE_SPECIAL] [nb_inst_issue][nb_type]44 1 1 +1 # table_issue_type [1][TYPE_CUSTOM ] [nb_inst_issue][nb_type]45 1 1 +1 # table_issue_type [1][TYPE_BRANCH ] [nb_inst_issue][nb_type]46 0 0 +1 # table_issue_type [1][TYPE_MEMORY ] [nb_inst_issue][nb_type] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/SelfTest/config_multi_rename_unit.cfg
r111 r117 13 13 1 1 *2 # size_store_queue_ptr 14 14 0 0 *2 # size_load_queue_ptr 15 4 4 *4 # nb_inst_issue16 15 4 4 *4 # nb_inst_rename [0] [nb_rename_unit] 17 16 1 1 *4 # nb_inst_rename [1] [nb_rename_unit] … … 22 21 1 1 *2 # priority 23 22 1 1 *2 # load_balancing 24 1 1 +1 # table_routing [0][0] [nb_rename_unit][nb_inst_issue]25 1 1 +1 # table_routing [0][1] [nb_rename_unit][nb_inst_issue]26 0 0 +1 # table_routing [0][2] [nb_rename_unit][nb_inst_issue]27 0 0 +1 # table_routing [0][3] [nb_rename_unit][nb_inst_issue]28 1 1 +1 # table_routing [1][0] [nb_rename_unit][nb_inst_issue]29 1 1 +1 # table_routing [1][1] [nb_rename_unit][nb_inst_issue]30 0 0 +1 # table_routing [1][2] [nb_rename_unit][nb_inst_issue]31 0 0 +1 # table_routing [1][3] [nb_rename_unit][nb_inst_issue]32 0 0 +1 # table_routing [2][0] [nb_rename_unit][nb_inst_issue]33 0 0 +1 # table_routing [2][1] [nb_rename_unit][nb_inst_issue]34 1 1 +1 # table_routing [2][2] [nb_rename_unit][nb_inst_issue]35 1 1 +1 # table_routing [2][3] [nb_rename_unit][nb_inst_issue]36 0 0 +1 # table_routing [3][0] [nb_rename_unit][nb_inst_issue]37 0 0 +1 # table_routing [3][1] [nb_rename_unit][nb_inst_issue]38 1 1 +1 # table_routing [3][2] [nb_rename_unit][nb_inst_issue]39 1 1 +1 # table_routing [3][3] [nb_rename_unit][nb_inst_issue]40 1 1 +1 # table_issue_type [0][TYPE_ALU ] [nb_inst_issue][nb_type]41 1 1 +1 # table_issue_type [0][TYPE_SHIFT ] [nb_inst_issue][nb_type]42 1 1 +1 # table_issue_type [0][TYPE_MOVE ] [nb_inst_issue][nb_type]43 1 1 +1 # table_issue_type [0][TYPE_TEST ] [nb_inst_issue][nb_type]44 1 1 +1 # table_issue_type [0][TYPE_MUL ] [nb_inst_issue][nb_type]45 1 1 +1 # table_issue_type [0][TYPE_DIV ] [nb_inst_issue][nb_type]46 1 1 +1 # table_issue_type [0][TYPE_EXTEND ] [nb_inst_issue][nb_type]47 1 1 +1 # table_issue_type [0][TYPE_FIND ] [nb_inst_issue][nb_type]48 1 1 +1 # table_issue_type [0][TYPE_SPECIAL] [nb_inst_issue][nb_type]49 1 1 +1 # table_issue_type [0][TYPE_CUSTOM ] [nb_inst_issue][nb_type]50 1 1 +1 # table_issue_type [0][TYPE_BRANCH ] [nb_inst_issue][nb_type]51 1 1 +1 # table_issue_type [0][TYPE_MEMORY ] [nb_inst_issue][nb_type]52 1 1 +1 # table_issue_type [1][TYPE_ALU ] [nb_inst_issue][nb_type]53 1 1 +1 # table_issue_type [1][TYPE_SHIFT ] [nb_inst_issue][nb_type]54 1 1 +1 # table_issue_type [1][TYPE_MOVE ] [nb_inst_issue][nb_type]55 1 1 +1 # table_issue_type [1][TYPE_TEST ] [nb_inst_issue][nb_type]56 1 1 +1 # table_issue_type [1][TYPE_MUL ] [nb_inst_issue][nb_type]57 1 1 +1 # table_issue_type [1][TYPE_DIV ] [nb_inst_issue][nb_type]58 1 1 +1 # table_issue_type [1][TYPE_EXTEND ] [nb_inst_issue][nb_type]59 1 1 +1 # table_issue_type [1][TYPE_FIND ] [nb_inst_issue][nb_type]60 1 1 +1 # table_issue_type [1][TYPE_SPECIAL] [nb_inst_issue][nb_type]61 1 1 +1 # table_issue_type [1][TYPE_CUSTOM ] [nb_inst_issue][nb_type]62 1 1 +1 # table_issue_type [1][TYPE_BRANCH ] [nb_inst_issue][nb_type]63 1 1 +1 # table_issue_type [1][TYPE_MEMORY ] [nb_inst_issue][nb_type]64 1 1 +1 # table_issue_type [2][TYPE_ALU ] [nb_inst_issue][nb_type]65 1 1 +1 # table_issue_type [2][TYPE_SHIFT ] [nb_inst_issue][nb_type]66 1 1 +1 # table_issue_type [2][TYPE_MOVE ] [nb_inst_issue][nb_type]67 1 1 +1 # table_issue_type [2][TYPE_TEST ] [nb_inst_issue][nb_type]68 1 1 +1 # table_issue_type [2][TYPE_MUL ] [nb_inst_issue][nb_type]69 1 1 +1 # table_issue_type [2][TYPE_DIV ] [nb_inst_issue][nb_type]70 1 1 +1 # table_issue_type [2][TYPE_EXTEND ] [nb_inst_issue][nb_type]71 1 1 +1 # table_issue_type [2][TYPE_FIND ] [nb_inst_issue][nb_type]72 1 1 +1 # table_issue_type [2][TYPE_SPECIAL] [nb_inst_issue][nb_type]73 1 1 +1 # table_issue_type [2][TYPE_CUSTOM ] [nb_inst_issue][nb_type]74 1 1 +1 # table_issue_type [2][TYPE_BRANCH ] [nb_inst_issue][nb_type]75 1 1 +1 # table_issue_type [2][TYPE_MEMORY ] [nb_inst_issue][nb_type]76 1 1 +1 # table_issue_type [3][TYPE_ALU ] [nb_inst_issue][nb_type]77 1 1 +1 # table_issue_type [3][TYPE_SHIFT ] [nb_inst_issue][nb_type]78 1 1 +1 # table_issue_type [3][TYPE_MOVE ] [nb_inst_issue][nb_type]79 1 1 +1 # table_issue_type [3][TYPE_TEST ] [nb_inst_issue][nb_type]80 1 1 +1 # table_issue_type [3][TYPE_MUL ] [nb_inst_issue][nb_type]81 1 1 +1 # table_issue_type [3][TYPE_DIV ] [nb_inst_issue][nb_type]82 1 1 +1 # table_issue_type [3][TYPE_EXTEND ] [nb_inst_issue][nb_type]83 1 1 +1 # table_issue_type [3][TYPE_FIND ] [nb_inst_issue][nb_type]84 1 1 +1 # table_issue_type [3][TYPE_SPECIAL] [nb_inst_issue][nb_type]85 1 1 +1 # table_issue_type [3][TYPE_CUSTOM ] [nb_inst_issue][nb_type]86 1 1 +1 # table_issue_type [3][TYPE_BRANCH ] [nb_inst_issue][nb_type]87 1 1 +1 # table_issue_type [3][TYPE_MEMORY ] [nb_inst_issue][nb_type] -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/SelfTest/src/main.cpp
r111 r117 8 8 #include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/SelfTest/include/test.h" 9 9 10 #define NB_PARAMS 1 810 #define NB_PARAMS 17 11 11 12 12 void usage (int argc, char * argv[]) … … 27 27 err (_(" * size_store_queue_ptr (uint32_t )\n")); 28 28 err (_(" * size_load_queue_ptr (uint32_t )\n")); 29 err (_(" * nb_inst_issue (uint32_t )\n"));30 29 err (_(" * nb_inst_rename [nb_rename_unit] (uint32_t )\n")); 31 30 err (_(" * nb_inst_reexecute (uint32_t )\n")); … … 33 32 err (_(" * priority (Tpriority_t )\n")); 34 33 err (_(" * load_balancing (Tload_balancing_t )\n")); 35 err (_(" * table_routing [nb_rename_unit][nb_inst_issue] (bool )\n"));36 err (_(" * table_routing[nb_inst_issue][nb_type] (bool )\n"));37 err (_(" * TYPE_ALU \n"));38 err (_(" * TYPE_SHIFT \n"));39 err (_(" * TYPE_MOVE \n"));40 err (_(" * TYPE_TEST \n"));41 err (_(" * TYPE_MUL \n"));42 err (_(" * TYPE_DIV \n"));43 err (_(" * TYPE_EXTEND \n"));44 err (_(" * TYPE_FIND \n"));45 err (_(" * TYPE_SPECIAL\n"));46 err (_(" * TYPE_CUSTOM \n"));47 err (_(" * TYPE_BRANCH \n"));48 err (_(" * TYPE_MEMORY \n"));34 // err (_(" * table_routing [nb_rename_unit][nb_inst_issue] (bool )\n")); 35 // err (_(" * table_issue_type [nb_inst_issue][nb_type] (bool )\n")); 36 // err (_(" * TYPE_ALU \n")); 37 // err (_(" * TYPE_SHIFT \n")); 38 // err (_(" * TYPE_MOVE \n")); 39 // err (_(" * TYPE_TEST \n")); 40 // err (_(" * TYPE_MUL \n")); 41 // err (_(" * TYPE_DIV \n")); 42 // err (_(" * TYPE_EXTEND \n")); 43 // err (_(" * TYPE_FIND \n")); 44 // err (_(" * TYPE_SPECIAL\n")); 45 // err (_(" * TYPE_CUSTOM \n")); 46 // err (_(" * TYPE_BRANCH \n")); 47 // err (_(" * TYPE_MEMORY \n")); 49 48 50 49 exit (1); … … 68 67 uint32_t _nb_rename_unit = fromString<uint32_t >(argv[x++]); 69 68 70 if (argc <= static_cast<int>(2+NB_PARAMS+_nb_rename_unit))69 if (argc != static_cast<int>(2+NB_PARAMS+_nb_rename_unit)) 71 70 usage (argc, argv); 72 71 … … 81 80 uint32_t _size_store_queue_ptr = fromString<uint32_t >(argv[x++]); 82 81 uint32_t _size_load_queue_ptr = fromString<uint32_t >(argv[x++]); 83 82 //uint32_t _nb_inst_issue = fromString<uint32_t >(argv[x++]); 84 83 uint32_t * _nb_inst_rename = new uint32_t [_nb_rename_unit]; 85 84 for (uint32_t i=0; i<_nb_rename_unit; i++) … … 90 89 Tload_balancing_t _load_balancing = fromString<Tload_balancing_t>(argv[x++]); 91 90 92 if (argc != static_cast<int>(2+NB_PARAMS+_nb_rename_unit+(_nb_rename_unit+12)*_nb_inst_issue))93 usage (argc, argv);91 // if (argc != static_cast<int>(2+NB_PARAMS+_nb_rename_unit+(_nb_rename_unit+12)*_nb_inst_issue)) 92 // usage (argc, argv); 94 93 95 bool ** _table_routing = new bool * [_nb_rename_unit];96 for (uint32_t i=0; i<_nb_rename_unit; i++)97 {98 _table_routing [i] = new bool [_nb_inst_issue];99 for (uint32_t j=0; j<_nb_inst_issue; j++)100 _table_routing [i][j] = fromString<bool>(argv[x++]);101 }94 // bool ** _table_routing = new bool * [_nb_rename_unit]; 95 // for (uint32_t i=0; i<_nb_rename_unit; i++) 96 // { 97 // _table_routing [i] = new bool [_nb_inst_issue]; 98 // for (uint32_t j=0; j<_nb_inst_issue; j++) 99 // _table_routing [i][j] = fromString<bool>(argv[x++]); 100 // } 102 101 103 bool ** _table_issue_type = new bool * [_nb_inst_issue];104 for (uint32_t i=0; i<_nb_inst_issue; i++)105 {106 _table_issue_type [i] = new bool [_nb_inst_issue];102 // bool ** _table_issue_type = new bool * [_nb_inst_issue]; 103 // for (uint32_t i=0; i<_nb_inst_issue; i++) 104 // { 105 // _table_issue_type [i] = new bool [_nb_inst_issue]; 107 106 108 _table_issue_type [i][TYPE_ALU ] = fromString<bool>(argv[x++]);109 _table_issue_type [i][TYPE_SHIFT ] = fromString<bool>(argv[x++]);110 _table_issue_type [i][TYPE_MOVE ] = fromString<bool>(argv[x++]);111 _table_issue_type [i][TYPE_TEST ] = fromString<bool>(argv[x++]);112 _table_issue_type [i][TYPE_MUL ] = fromString<bool>(argv[x++]);113 _table_issue_type [i][TYPE_DIV ] = fromString<bool>(argv[x++]);114 _table_issue_type [i][TYPE_EXTEND ] = fromString<bool>(argv[x++]);115 _table_issue_type [i][TYPE_FIND ] = fromString<bool>(argv[x++]);116 _table_issue_type [i][TYPE_SPECIAL] = fromString<bool>(argv[x++]);117 _table_issue_type [i][TYPE_CUSTOM ] = fromString<bool>(argv[x++]);118 _table_issue_type [i][TYPE_BRANCH ] = fromString<bool>(argv[x++]);119 _table_issue_type [i][TYPE_MEMORY ] = fromString<bool>(argv[x++]);120 }107 // _table_issue_type [i][TYPE_ALU ] = fromString<bool>(argv[x++]); 108 // _table_issue_type [i][TYPE_SHIFT ] = fromString<bool>(argv[x++]); 109 // _table_issue_type [i][TYPE_MOVE ] = fromString<bool>(argv[x++]); 110 // _table_issue_type [i][TYPE_TEST ] = fromString<bool>(argv[x++]); 111 // _table_issue_type [i][TYPE_MUL ] = fromString<bool>(argv[x++]); 112 // _table_issue_type [i][TYPE_DIV ] = fromString<bool>(argv[x++]); 113 // _table_issue_type [i][TYPE_EXTEND ] = fromString<bool>(argv[x++]); 114 // _table_issue_type [i][TYPE_FIND ] = fromString<bool>(argv[x++]); 115 // _table_issue_type [i][TYPE_SPECIAL] = fromString<bool>(argv[x++]); 116 // _table_issue_type [i][TYPE_CUSTOM ] = fromString<bool>(argv[x++]); 117 // _table_issue_type [i][TYPE_BRANCH ] = fromString<bool>(argv[x++]); 118 // _table_issue_type [i][TYPE_MEMORY ] = fromString<bool>(argv[x++]); 119 // } 121 120 122 121 int _return = EXIT_SUCCESS; … … 137 136 _size_store_queue_ptr , 138 137 _size_load_queue_ptr , 139 _nb_inst_issue ,138 // _nb_inst_issue , 140 139 _nb_inst_rename , 141 140 _nb_inst_reexecute , … … 143 142 _priority , 144 143 _load_balancing , 145 _table_routing ,146 _table_issue_type ,144 // _table_routing , 145 // _table_issue_type , 147 146 true // is_toplevel 148 147 ); … … 173 172 delete [] _nb_inst_rename; 174 173 175 for (uint32_t i=0; i<_nb_rename_unit; i++)176 delete [] _table_routing [i];177 delete [] _table_routing ;178 for (uint32_t i=0; i<_nb_inst_issue; i++)179 delete [] _table_issue_type [i];180 delete [] _table_issue_type;174 // for (uint32_t i=0; i<_nb_rename_unit; i++) 175 // delete [] _table_routing [i]; 176 // delete [] _table_routing ; 177 // for (uint32_t i=0; i<_nb_inst_issue; i++) 178 // delete [] _table_issue_type [i]; 179 // delete [] _table_issue_type; 181 180 182 181 return (_return); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/SelfTest/src/test.cpp
r110 r117 48 48 sc_clock * in_CLOCK = new sc_clock ("clock", 1.0, 0.5); 49 49 sc_signal<Tcontrol_t> * in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 50 51 sc_signal<Tcontrol_t > *** in_ISSUE_IN_VAL ; 52 sc_signal<Tcontrol_t > *** out_ISSUE_IN_ACK ; 53 sc_signal<Tcontext_t > *** in_ISSUE_IN_CONTEXT_ID ; 54 sc_signal<Tcontext_t > *** in_ISSUE_IN_FRONT_END_ID ; 55 sc_signal<Tpacket_t > *** in_ISSUE_IN_PACKET_ID ; 56 sc_signal<Toperation_t > *** in_ISSUE_IN_OPERATION ; 57 sc_signal<Ttype_t > *** in_ISSUE_IN_TYPE ; 58 sc_signal<Tlsq_ptr_t > *** in_ISSUE_IN_STORE_QUEUE_PTR_WRITE ; 59 sc_signal<Tlsq_ptr_t > *** in_ISSUE_IN_LOAD_QUEUE_PTR_WRITE ; 60 sc_signal<Tcontrol_t > *** in_ISSUE_IN_HAS_IMMEDIAT ; 61 sc_signal<Tgeneral_data_t > *** in_ISSUE_IN_IMMEDIAT ; 62 sc_signal<Tcontrol_t > *** in_ISSUE_IN_READ_RA ; 63 sc_signal<Tgeneral_address_t> *** in_ISSUE_IN_NUM_REG_RA ; 64 sc_signal<Tcontrol_t > *** in_ISSUE_IN_READ_RB ; 65 sc_signal<Tgeneral_address_t> *** in_ISSUE_IN_NUM_REG_RB ; 66 sc_signal<Tcontrol_t > *** in_ISSUE_IN_READ_RC ; 67 sc_signal<Tspecial_address_t> *** in_ISSUE_IN_NUM_REG_RC ; 68 sc_signal<Tcontrol_t > *** in_ISSUE_IN_WRITE_RD ; 69 sc_signal<Tgeneral_address_t> *** in_ISSUE_IN_NUM_REG_RD ; 70 sc_signal<Tcontrol_t > *** in_ISSUE_IN_WRITE_RE ; 71 sc_signal<Tspecial_address_t> *** in_ISSUE_IN_NUM_REG_RE ; 72 sc_signal<Tcontrol_t > ** in_REEXECUTE_VAL ; 73 sc_signal<Tcontrol_t > ** out_REEXECUTE_ACK ; 74 sc_signal<Tcontext_t > ** in_REEXECUTE_CONTEXT_ID ; 75 sc_signal<Tcontext_t > ** in_REEXECUTE_FRONT_END_ID ; 76 sc_signal<Tpacket_t > ** in_REEXECUTE_PACKET_ID ; 77 sc_signal<Toperation_t > ** in_REEXECUTE_OPERATION ; 78 sc_signal<Ttype_t > ** in_REEXECUTE_TYPE ; 79 sc_signal<Tlsq_ptr_t > ** in_REEXECUTE_STORE_QUEUE_PTR_WRITE; 80 sc_signal<Tlsq_ptr_t > ** in_REEXECUTE_LOAD_QUEUE_PTR_WRITE ; 81 sc_signal<Tcontrol_t > ** in_REEXECUTE_HAS_IMMEDIAT ; 82 sc_signal<Tgeneral_data_t > ** in_REEXECUTE_IMMEDIAT ; 83 sc_signal<Tcontrol_t > ** in_REEXECUTE_READ_RA ; 84 sc_signal<Tgeneral_address_t> ** in_REEXECUTE_NUM_REG_RA ; 85 sc_signal<Tcontrol_t > ** in_REEXECUTE_READ_RB ; 86 sc_signal<Tgeneral_address_t> ** in_REEXECUTE_NUM_REG_RB ; 87 sc_signal<Tcontrol_t > ** in_REEXECUTE_READ_RC ; 88 sc_signal<Tspecial_address_t> ** in_REEXECUTE_NUM_REG_RC ; 89 sc_signal<Tcontrol_t > ** in_REEXECUTE_WRITE_RD ; 90 sc_signal<Tgeneral_address_t> ** in_REEXECUTE_NUM_REG_RD ; 91 sc_signal<Tcontrol_t > ** in_REEXECUTE_WRITE_RE ; 92 sc_signal<Tspecial_address_t> ** in_REEXECUTE_NUM_REG_RE ; 93 sc_signal<Tcontrol_t > ** out_ISSUE_OUT_VAL ; 94 sc_signal<Tcontrol_t > ** in_ISSUE_OUT_ACK ; 95 sc_signal<Tcontext_t > ** out_ISSUE_OUT_CONTEXT_ID ; 96 sc_signal<Tcontext_t > ** out_ISSUE_OUT_FRONT_END_ID ; 97 sc_signal<Tpacket_t > ** out_ISSUE_OUT_PACKET_ID ; 98 sc_signal<Toperation_t > ** out_ISSUE_OUT_OPERATION ; 99 sc_signal<Ttype_t > ** out_ISSUE_OUT_TYPE ; 100 sc_signal<Tlsq_ptr_t > ** out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE; 101 sc_signal<Tlsq_ptr_t > ** out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE ; 102 sc_signal<Tcontrol_t > ** out_ISSUE_OUT_HAS_IMMEDIAT ; 103 sc_signal<Tgeneral_data_t > ** out_ISSUE_OUT_IMMEDIAT ; 104 sc_signal<Tcontrol_t > ** out_ISSUE_OUT_READ_RA ; 105 sc_signal<Tgeneral_address_t> ** out_ISSUE_OUT_NUM_REG_RA ; 106 sc_signal<Tcontrol_t > ** out_ISSUE_OUT_READ_RB ; 107 sc_signal<Tgeneral_address_t> ** out_ISSUE_OUT_NUM_REG_RB ; 108 sc_signal<Tcontrol_t > ** out_ISSUE_OUT_READ_RC ; 109 sc_signal<Tspecial_address_t> ** out_ISSUE_OUT_NUM_REG_RC ; 110 sc_signal<Tcontrol_t > ** out_ISSUE_OUT_WRITE_RD ; 111 sc_signal<Tgeneral_address_t> ** out_ISSUE_OUT_NUM_REG_RD ; 112 sc_signal<Tcontrol_t > ** out_ISSUE_OUT_WRITE_RE ; 113 sc_signal<Tspecial_address_t> ** out_ISSUE_OUT_NUM_REG_RE ; 50 114 51 115 ALLOC2_SC_SIGNAL( in_ISSUE_IN_VAL ," in_ISSUE_IN_VAL ",Tcontrol_t ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]); … … 309 373 Ttype_t type = out_ISSUE_OUT_TYPE[i]->read(); 310 374 TEST(Ttype_t,type, tab_type[imm%NB_TYPE]); 311 TEST(bool ,_param->_table_issue_type[i][type],true);375 // TEST(bool ,_param->_table_issue_type[i][type],true); 312 376 } 313 377 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/include/Parameters.h
r111 r117 38 38 //public : uint32_t _size_store_queue_ptr ; 39 39 //public : uint32_t _size_load_queue_ptr ; 40 public : uint32_t _nb_inst_issue ;41 40 public : uint32_t * _nb_inst_rename ;//[nb_rename_unit] 42 41 public : uint32_t _nb_inst_reexecute ; … … 44 43 public : Tpriority_t _priority ; 45 44 public : Tload_balancing_t _load_balancing ; 46 47 45 //public : bool ** _table_routing ;//[nb_rename_unit][nb_inst_issue] 46 //public : bool ** _table_issue_type ;//[nb_inst_issue][nb_type] 48 47 public : uint32_t _size_reexecute_queue ; 49 48 49 public : uint32_t _nb_inst_issue ; 50 50 //public : uint32_t _nb_bank_select_out ; 51 51 public : uint32_t _max_nb_inst_rename ; … … 74 74 uint32_t size_store_queue_ptr , 75 75 uint32_t size_load_queue_ptr , 76 uint32_t nb_inst_issue ,76 // uint32_t nb_inst_issue , 77 77 uint32_t * nb_inst_rename , 78 78 uint32_t nb_inst_reexecute , … … 80 80 Tpriority_t priority , 81 81 Tload_balancing_t load_balancing , 82 bool ** table_routing ,83 bool ** table_issue_type ,82 // bool ** table_routing , 83 // bool ** table_issue_type , 84 84 bool is_toplevel=false); 85 85 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_in_order_genMealy_issue_out.cpp
r115 r117 30 30 Tcontrol_t val [_param->_nb_inst_issue]; 31 31 32 uint32_t index=0; 32 33 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 33 34 val [i] = 0; 34 35 36 //-------------------------------------- 35 37 // From Reexecute_queue 38 //-------------------------------------- 36 39 40 // scan all reexecute_queue slot ... 37 41 // uint32_t num_reexecute_entry = 0; 38 42 for (std::list<entry_t*>::iterator it=_reexecute_queue.begin(); … … 42 46 entry_t* entry = (*it); 43 47 44 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 45 // test if no previous transaction and can accept this type 46 if ((val[i] == 0) and _param->_table_issue_type [i][entry->_type]) 47 { 48 // find a issue port 49 val [i] = 1; 50 51 if (_param->_have_port_context_id) 52 PORT_WRITE(out_ISSUE_OUT_CONTEXT_ID [i], entry->_context_id ); 53 if (_param->_have_port_front_end_id) 54 PORT_WRITE(out_ISSUE_OUT_FRONT_END_ID [i], entry->_front_end_id ); 55 if (_param->_have_port_rob_ptr ) 56 PORT_WRITE(out_ISSUE_OUT_PACKET_ID [i], entry->_packet_id ); 57 PORT_WRITE(out_ISSUE_OUT_OPERATION [i], entry->_operation ); 58 PORT_WRITE(out_ISSUE_OUT_TYPE [i], entry->_type ); 59 PORT_WRITE(out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE [i], entry->_store_queue_ptr_write); 60 if (_param->_have_port_load_queue_ptr) 61 PORT_WRITE(out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE [i], entry->_load_queue_ptr_write ); 62 PORT_WRITE(out_ISSUE_OUT_HAS_IMMEDIAT [i], entry->_has_immediat ); 63 PORT_WRITE(out_ISSUE_OUT_IMMEDIAT [i], entry->_immediat ); 64 PORT_WRITE(out_ISSUE_OUT_READ_RA [i], entry->_read_ra ); 65 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RA [i], entry->_num_reg_ra ); 66 PORT_WRITE(out_ISSUE_OUT_READ_RB [i], entry->_read_rb ); 67 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RB [i], entry->_num_reg_rb ); 68 PORT_WRITE(out_ISSUE_OUT_READ_RC [i], entry->_read_rc ); 69 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RC [i], entry->_num_reg_rc ); 70 PORT_WRITE(out_ISSUE_OUT_WRITE_RD [i], entry->_write_rd ); 71 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RD [i], entry->_num_reg_rd ); 72 PORT_WRITE(out_ISSUE_OUT_WRITE_RE [i], entry->_write_re ); 73 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RE [i], entry->_num_reg_re ); 48 val [index] = 1; 49 50 if (_param->_have_port_context_id) 51 PORT_WRITE(out_ISSUE_OUT_CONTEXT_ID [index], entry->_context_id ); 52 if (_param->_have_port_front_end_id) 53 PORT_WRITE(out_ISSUE_OUT_FRONT_END_ID [index], entry->_front_end_id ); 54 if (_param->_have_port_rob_ptr ) 55 PORT_WRITE(out_ISSUE_OUT_PACKET_ID [index], entry->_packet_id ); 56 PORT_WRITE(out_ISSUE_OUT_OPERATION [index], entry->_operation ); 57 PORT_WRITE(out_ISSUE_OUT_TYPE [index], entry->_type ); 58 PORT_WRITE(out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE [index], entry->_store_queue_ptr_write); 59 if (_param->_have_port_load_queue_ptr) 60 PORT_WRITE(out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE [index], entry->_load_queue_ptr_write ); 61 PORT_WRITE(out_ISSUE_OUT_HAS_IMMEDIAT [index], entry->_has_immediat ); 62 PORT_WRITE(out_ISSUE_OUT_IMMEDIAT [index], entry->_immediat ); 63 PORT_WRITE(out_ISSUE_OUT_READ_RA [index], entry->_read_ra ); 64 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RA [index], entry->_num_reg_ra ); 65 PORT_WRITE(out_ISSUE_OUT_READ_RB [index], entry->_read_rb ); 66 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RB [index], entry->_num_reg_rb ); 67 PORT_WRITE(out_ISSUE_OUT_READ_RC [index], entry->_read_rc ); 68 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RC [index], entry->_num_reg_rc ); 69 PORT_WRITE(out_ISSUE_OUT_WRITE_RD [index], entry->_write_rd ); 70 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RD [index], entry->_num_reg_rd ); 71 PORT_WRITE(out_ISSUE_OUT_WRITE_RE [index], entry->_write_re ); 72 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RE [index], entry->_num_reg_re ); 74 73 75 internal_ISSUE_OUT_FROM_REEXECUTE [i] = true;76 // internal_ISSUE_OUT_NUM_BANK [i] = num_reexecute_entry;77 internal_ISSUE_OUT_ENTRY [i] = entry;74 internal_ISSUE_OUT_FROM_REEXECUTE [index] = true; 75 // internal_ISSUE_OUT_NUM_BANK [index] = num_reexecute_entry; 76 internal_ISSUE_OUT_ENTRY [index] = entry; 78 77 79 break; // stop scan 80 } 81 // num_reexecute_entry ++; 78 index ++; // next slot 82 79 } 80 81 //-------------------------------------- 82 // From Issue_queue 83 //-------------------------------------- 84 index = _param->_nb_inst_reexecute; 83 85 84 // From Issue_queue 86 log_printf(TRACE,Issue_queue,FUNCTION," * From Issue_queue"); 87 88 // for all instruction in issue_queue head ... 85 89 for (uint32_t i=0; i<_param->_nb_bank; ++i) 86 90 { … … 89 93 log_printf(TRACE,Issue_queue,FUNCTION," * Bank [%d]",num_bank); 90 94 91 bool find = false;95 // bool find = false; 92 96 93 // Have instruction ?97 // ... test if have an instruction 94 98 if (not _issue_queue [num_bank].empty()) 95 99 { 96 100 log_printf(TRACE,Issue_queue,FUNCTION," * Not Empty !!!"); 97 101 102 // read instruction 98 103 entry_t* entry = _issue_queue [num_bank].front(); 99 104 100 // have valid instruction, search a valid issue slot. 101 for (uint32_t j=0; j<_param->_nb_inst_issue; j++) 102 { 103 Tcontrol_t issue_ack = PORT_READ(in_ISSUE_OUT_ACK [j]); 105 // Tcontrol_t issue_ack = PORT_READ(in_ISSUE_OUT_ACK [index]); 106 107 log_printf(TRACE,Issue_queue,FUNCTION," * Issue [%d]",index); 108 // log_printf(TRACE,Issue_queue,FUNCTION," * issue_ack : %d",issue_ack); 109 // log_printf(TRACE,Issue_queue,FUNCTION," * previous transaction : %d",val[index]); 110 // log_printf(TRACE,Issue_queue,FUNCTION," * can issue type : %d",_param->_table_issue_type [index][entry->_type]); 104 111 105 log_printf(TRACE,Issue_queue,FUNCTION," * Issue [%d]",j); 106 log_printf(TRACE,Issue_queue,FUNCTION," * issue_ack : %d",issue_ack); 107 log_printf(TRACE,Issue_queue,FUNCTION," * previous transaction : %d",val[j]); 108 log_printf(TRACE,Issue_queue,FUNCTION," * can issue type : %d",_param->_table_issue_type [j][entry->_type]); 112 // in_order : test if find a valid read_unit 113 // if (issue_ack) 114 // { 115 // log_printf(TRACE,Issue_queue,FUNCTION," * find !!!"); 116 117 // find = true; 118 // } 109 119 110 // test if no previous transaction and can accept this type 111 if (not val[j] and 112 _param->_table_issue_type [j][entry->_type] and 113 issue_ack) 114 { 115 log_printf(TRACE,Issue_queue,FUNCTION," * find !!!"); 116 117 // find a issue port 118 val [j] = 1; 119 120 if (_param->_have_port_context_id) 121 PORT_WRITE(out_ISSUE_OUT_CONTEXT_ID [j], entry->_context_id ); 122 if (_param->_have_port_front_end_id) 123 PORT_WRITE(out_ISSUE_OUT_FRONT_END_ID [j], entry->_front_end_id ); 124 if (_param->_have_port_rob_ptr ) 125 PORT_WRITE(out_ISSUE_OUT_PACKET_ID [j], entry->_packet_id ); 126 PORT_WRITE(out_ISSUE_OUT_OPERATION [j], entry->_operation ); 127 PORT_WRITE(out_ISSUE_OUT_TYPE [j], entry->_type ); 128 PORT_WRITE(out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE [j], entry->_store_queue_ptr_write); 129 if (_param->_have_port_load_queue_ptr) 130 PORT_WRITE(out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE [j], entry->_load_queue_ptr_write ); 131 PORT_WRITE(out_ISSUE_OUT_HAS_IMMEDIAT [j], entry->_has_immediat ); 132 PORT_WRITE(out_ISSUE_OUT_IMMEDIAT [j], entry->_immediat ); 133 PORT_WRITE(out_ISSUE_OUT_READ_RA [j], entry->_read_ra ); 134 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RA [j], entry->_num_reg_ra ); 135 PORT_WRITE(out_ISSUE_OUT_READ_RB [j], entry->_read_rb ); 136 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RB [j], entry->_num_reg_rb ); 137 PORT_WRITE(out_ISSUE_OUT_READ_RC [j], entry->_read_rc ); 138 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RC [j], entry->_num_reg_rc ); 139 PORT_WRITE(out_ISSUE_OUT_WRITE_RD [j], entry->_write_rd ); 140 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RD [j], entry->_num_reg_rd ); 141 PORT_WRITE(out_ISSUE_OUT_WRITE_RE [j], entry->_write_re ); 142 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RE [j], entry->_num_reg_re ); 143 144 internal_ISSUE_OUT_FROM_REEXECUTE [j] = false; 145 internal_ISSUE_OUT_NUM_BANK [j] = num_bank; 146 internal_ISSUE_OUT_ENTRY [j] = entry; 147 148 find = true; 149 break; // find : stop scan 150 } 151 } 120 // find a issue port 121 val [index] = true; // instruction is valid 122 123 if (_param->_have_port_context_id) 124 PORT_WRITE(out_ISSUE_OUT_CONTEXT_ID [index], entry->_context_id ); 125 if (_param->_have_port_front_end_id) 126 PORT_WRITE(out_ISSUE_OUT_FRONT_END_ID [index], entry->_front_end_id ); 127 if (_param->_have_port_rob_ptr ) 128 PORT_WRITE(out_ISSUE_OUT_PACKET_ID [index], entry->_packet_id ); 129 PORT_WRITE(out_ISSUE_OUT_OPERATION [index], entry->_operation ); 130 PORT_WRITE(out_ISSUE_OUT_TYPE [index], entry->_type ); 131 PORT_WRITE(out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE [index], entry->_store_queue_ptr_write); 132 if (_param->_have_port_load_queue_ptr) 133 PORT_WRITE(out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE [index], entry->_load_queue_ptr_write ); 134 PORT_WRITE(out_ISSUE_OUT_HAS_IMMEDIAT [index], entry->_has_immediat ); 135 PORT_WRITE(out_ISSUE_OUT_IMMEDIAT [index], entry->_immediat ); 136 PORT_WRITE(out_ISSUE_OUT_READ_RA [index], entry->_read_ra ); 137 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RA [index], entry->_num_reg_ra ); 138 PORT_WRITE(out_ISSUE_OUT_READ_RB [index], entry->_read_rb ); 139 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RB [index], entry->_num_reg_rb ); 140 PORT_WRITE(out_ISSUE_OUT_READ_RC [index], entry->_read_rc ); 141 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RC [index], entry->_num_reg_rc ); 142 PORT_WRITE(out_ISSUE_OUT_WRITE_RD [index], entry->_write_rd ); 143 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RD [index], entry->_num_reg_rd ); 144 PORT_WRITE(out_ISSUE_OUT_WRITE_RE [index], entry->_write_re ); 145 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RE [index], entry->_num_reg_re ); 146 147 internal_ISSUE_OUT_FROM_REEXECUTE [index] = false; 148 internal_ISSUE_OUT_NUM_BANK [index] = num_bank; 149 internal_ISSUE_OUT_ENTRY [index] = entry; 150 151 index ++; // next slot 152 152 } 153 153 154 if (not find) 155 break; // stop scan (in order) 154 // if (not find) 155 // { 156 // log_printf(TRACE,Issue_queue,FUNCTION," * Not find. Stop Scan (in order)"); 157 158 // break; // stop scan (in order) 159 // } 156 160 } 157 161 162 // Output 158 163 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 159 164 { 160 165 internal_ISSUE_OUT_VAL [i] = val [i]; 161 166 PORT_WRITE(out_ISSUE_OUT_VAL [i], internal_ISSUE_OUT_VAL [i]); 167 168 // // Type invalid to the Core_Glue network 169 // if (not val [i]) // == empty 170 // PORT_WRITE(out_ISSUE_OUT_TYPE [i], TYPE_INVALID); 162 171 } 163 172 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_function_out_of_order_genMoore.cpp
r111 r117 109 109 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 110 110 // test if no previous transaction and can accept this type 111 if ((val[i] == 0) and _param->_table_issue_type [i][entry->_type]) 111 if ((val[i] == 0) 112 // and _param->_table_issue_type [i][entry->_type] 113 ) 112 114 { 113 115 // find a issue port … … 168 170 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 169 171 // test if no previous transaction and can accept this type 170 if ((val[i] == 0) and _param->_table_issue_type [i][entry->_type]) 172 if ((val[i] == 0) 173 // and _param->_table_issue_type [i][entry->_type] 174 ) 171 175 { 172 176 // find a issue port -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_transition.cpp
r111 r117 106 106 log_printf(TRACE,Issue_queue,FUNCTION," * Dump Issue_queue"); 107 107 108 if (_param->_queue_scheme == ISSUE_QUEUE_SCHEME_IN_ORDER) 109 { 110 log_printf(TRACE,Issue_queue,FUNCTION," * reg_NUM_BANK_HEAD : %d",reg_NUM_BANK_HEAD); 111 log_printf(TRACE,Issue_queue,FUNCTION," * reg_NUM_BANK_TAIL : %d",reg_NUM_BANK_TAIL); 112 } 113 108 114 for (uint32_t i=0; i<_param->_nb_bank; i++) 109 115 { -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Parameters.cpp
r111 r117 32 32 uint32_t size_store_queue_ptr , 33 33 uint32_t size_load_queue_ptr , 34 uint32_t nb_inst_issue ,34 // uint32_t nb_inst_issue , 35 35 uint32_t * nb_inst_rename , 36 36 uint32_t nb_inst_reexecute , … … 38 38 Tpriority_t priority , 39 39 Tload_balancing_t load_balancing , 40 bool ** table_routing ,41 bool ** table_issue_type ,40 // bool ** table_routing , 41 // bool ** table_issue_type , 42 42 bool is_toplevel ) 43 43 { … … 50 50 _queue_scheme = queue_scheme ; 51 51 _nb_bank = nb_bank ; 52 52 // _nb_inst_issue = nb_inst_issue ; 53 53 _nb_inst_rename = nb_inst_rename ; 54 54 _nb_inst_reexecute = nb_inst_reexecute ; … … 56 56 _priority = priority ; 57 57 _load_balancing = load_balancing ; 58 59 58 // _table_routing = table_routing ; 59 // _table_issue_type = table_issue_type ; 60 60 _size_reexecute_queue = nb_inst_reexecute ; 61 61 62 log_printf(TRACE,Issue_queue,FUNCTION," * table_routing [nb_rename_unit][nb_inst_issue]"); 63 for (uint32_t i=0; i<_nb_rename_unit; ++i) 64 for (uint32_t j=0; j<_nb_inst_issue; ++j) 65 if (_table_routing [i][j]) 66 log_printf(TRACE,Issue_queue,FUNCTION," [%d][%d] -> true",i,j); 62 _nb_inst_issue = _nb_inst_reexecute+_nb_bank; 63 64 // log_printf(TRACE,Issue_queue,FUNCTION," * table_routing [nb_rename_unit][nb_inst_issue]"); 65 // for (uint32_t i=0; i<_nb_rename_unit; ++i) 66 // for (uint32_t j=0; j<_nb_inst_issue; ++j) 67 // if (_table_routing [i][j]) 68 // log_printf(TRACE,Issue_queue,FUNCTION," [%d][%d] -> true",i,j); 67 69 68 log_printf(TRACE,Issue_queue,FUNCTION," * table_issue_type [nb_inst_issue][nb_type]");69 for (uint32_t i=0; i<_nb_inst_issue; ++i)70 for (uint32_t j=0; j<_nb_type; ++j)71 if (_table_issue_type [i][j])72 log_printf(TRACE,Issue_queue,FUNCTION," [%d][%d] -> true",i,j);70 // log_printf(TRACE,Issue_queue,FUNCTION," * table_issue_type [nb_inst_issue][nb_type]"); 71 // for (uint32_t i=0; i<_nb_inst_issue; ++i) 72 // for (uint32_t j=0; j<_nb_type; ++j) 73 // if (_table_issue_type [i][j]) 74 // log_printf(TRACE,Issue_queue,FUNCTION," [%d][%d] -> true",i,j); 73 75 74 76 _max_nb_inst_rename = max<uint32_t>(_nb_inst_rename,_nb_rename_unit); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Parameters_msg_error.cpp
r111 r117 48 48 test.error(toString(_("nb_bank (%d) must be a multiple of size_queue (%d).\n"),_nb_bank,_size_queue)); 49 49 50 if (not is_multiple(_nb_bank, _nb_inst_issue))51 test.error(toString(_("nb_inst_issue (%d) must be a multiple of nb_bank (%d) .\n"),_nb_inst_issue,_nb_bank));50 // if (not is_multiple(_nb_bank, _nb_inst_issue)) 51 // test.error(toString(_("nb_inst_issue (%d) must be a multiple of nb_bank (%d) .\n"),_nb_inst_issue,_nb_bank)); 52 52 53 53 if (_nb_rename_unit_select > _nb_rename_unit) … … 57 57 test.warning(_("For better performance, the bank's size (size_queue/nb_bank) must be > 1.\n")); 58 58 59 for (uint32_t i=0; i<_nb_rename_unit; i++)60 {61 bool type_present [_nb_type];59 // for (uint32_t i=0; i<_nb_rename_unit; i++) 60 // { 61 // bool type_present [_nb_type]; 62 62 63 for (uint32_t j=0; j<_nb_type; j++)64 type_present [j] = not is_type_valid(j);63 // for (uint32_t j=0; j<_nb_type; j++) 64 // type_present [j] = not is_type_valid(j); 65 65 66 bool find = false;67 for (uint32_t j=0; j<_nb_inst_issue; j++)68 if (_table_routing [i][j])69 {70 find = true;66 // bool find = false; 67 // for (uint32_t j=0; j<_nb_inst_issue; j++) 68 // if (_table_routing [i][j]) 69 // { 70 // find = true; 71 71 72 for (uint32_t k=0; k<_nb_type; k++)73 type_present [k] |= _table_issue_type [j][k];74 }72 // for (uint32_t k=0; k<_nb_type; k++) 73 // type_present [k] |= _table_issue_type [j][k]; 74 // } 75 75 76 if (not find)77 test.error(toString(_("Rename_unit [%d] is not connected with a issue slot.\n"),i));78 else79 for (uint32_t j=0; j<_nb_type; j++)80 if (not type_present [j] and not is_type_optionnal(j))81 test.error(toString(_("Rename_unit [%d] can't issue instruction's type \"%s\".\n"),i,toString(j).c_str()));82 }76 // if (not find) 77 // test.error(toString(_("Rename_unit [%d] is not connected with a issue slot.\n"),i)); 78 // else 79 // for (uint32_t j=0; j<_nb_type; j++) 80 // if (not type_present [j] and not is_type_optionnal(j)) 81 // test.error(toString(_("Rename_unit [%d] can't issue instruction's type \"%s\".\n"),i,toString(j).c_str())); 82 // } 83 83 84 84 if ((_priority != PRIORITY_ROUND_ROBIN))
Note: See TracChangeset
for help on using the changeset viewer.