Changeset 139 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit
- Timestamp:
- Jul 30, 2010, 4:47:27 PM (14 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit
- Files:
-
- 4 added
- 1 deleted
- 16 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Parameters.h
r88 r139 11 11 #include "Common/include/Debug.h" 12 12 #include "Behavioural/include/Parameters.h" 13 #include "Behavioural/include/Types.h" 13 14 14 15 namespace morpheo { … … 25 26 { 26 27 //-----[ fields ]------------------------------------------------------------ 27 public : uint32_t _nb_front_end ; 28 public : uint32_t * _nb_context ;//[nb_front_end] 29 public : uint32_t _nb_general_register ; 30 public : uint32_t _nb_special_register ; 31 public : uint32_t _nb_inst_insert ; 32 public : uint32_t _nb_inst_retire ; 33 34 //public : uint32_t _size_front_end_id ; 35 //public : uint32_t _size_context_id ; 36 //public : uint32_t _size_general_register ; 37 //public : uint32_t _size_special_register ; 38 // 39 //public : uint32_t _have_port_context_id ; 40 //public : uint32_t _have_port_front_end_id; 28 public : uint32_t _nb_front_end ; 29 public : uint32_t * _nb_context ;//[nb_front_end] 30 public : uint32_t _nb_general_register ; 31 public : uint32_t _nb_special_register ; 32 public : Trat_scheme_t _rat_scheme ; 33 public : uint32_t _nb_inst_insert ; 34 public : uint32_t _nb_inst_retire ; 35 public : uint32_t ** _nb_branch_speculated ;//[nb_front_end][nb_context] 36 37 public : uint32_t _max_nb_context ; 38 //public : uint32_t _size_front_end_id ; 39 //public : uint32_t _size_context_id ; 40 //public : uint32_t _size_general_register ; 41 //public : uint32_t _size_special_register ; 42 // 43 //public : uint32_t _have_port_context_id ; 44 //public : uint32_t _have_port_front_end_id; 41 45 42 46 //-----[ methods ]----------------------------------------------------------- 43 public : Parameters (uint32_t nb_front_end , 44 uint32_t * nb_context , 45 uint32_t nb_general_register, 46 uint32_t nb_special_register, 47 uint32_t nb_inst_insert , 48 uint32_t nb_inst_retire , 49 bool is_toplevel=false 47 public : Parameters (uint32_t nb_front_end , 48 uint32_t * nb_context ,//[nb_front_end] 49 uint32_t nb_general_register , 50 uint32_t nb_special_register , 51 Trat_scheme_t rat_scheme , 52 uint32_t nb_inst_insert , 53 uint32_t nb_inst_retire , 54 uint32_t ** nb_branch_speculated,//[nb_front_end][nb_context] 55 bool is_toplevel=false 50 56 ); 51 57 // public : Parameters (Parameters & param) ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Register_Address_Translation_unit.h
r131 r139 68 68 public : SC_IN (Tcontext_t ) ** in_RENAME_FRONT_END_ID ;//[nb_inst_insert] 69 69 public : SC_IN (Tcontext_t ) ** in_RENAME_CONTEXT_ID ;//[nb_inst_insert] 70 public : SC_IN (Tdepth_t ) ** in_RENAME_DEPTH ;//[nb_inst_insert] 71 public : SC_IN (Tcontrol_t ) ** in_RENAME_SAVE_RAT ;//[nb_inst_insert] 70 72 public : SC_IN (Tgeneral_address_t) ** in_RENAME_NUM_REG_RA_LOG ;//[nb_inst_insert] 71 73 public : SC_IN (Tgeneral_address_t) ** in_RENAME_NUM_REG_RB_LOG ;//[nb_inst_insert] … … 102 104 public : SC_IN (Tgeneral_address_t) ** in_RETIRE_NUM_REG_RD_PHY_NEW;//[nb_inst_retire] 103 105 public : SC_IN (Tspecial_address_t) ** in_RETIRE_NUM_REG_RE_PHY_NEW;//[nb_inst_retire] 104 public : SC_OUT(Tcontrol_t ) ** out_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire] 105 public : SC_OUT(Tcontrol_t ) ** out_RETIRE_RESTORE_RE_PHY_OLD;//[nb_inst_retire] 106 public : SC_OUT(Tcontrol_t ) ** out_RETIRE_RESTORE ;//[nb_inst_retire] 106 public : SC_IN (Tcontrol_t ) ** in_RETIRE_RESTORE ;//[nb_inst_retire] 107 107 108 108 // ~~~~~[ Interface "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 110 110 public : SC_OUT(Tcontrol_t ) *** out_RETIRE_EVENT_ACK ;//[nb_front_end][nb_context] 111 111 public : SC_IN (Tevent_state_t ) *** in_RETIRE_EVENT_STATE ;//[nb_front_end][nb_context] 112 public : SC_IN (Tevent_type_t ) *** in_RETIRE_EVENT_TYPE ;//[nb_front_end][nb_context] 113 public : SC_IN (Tdepth_t ) *** in_RETIRE_EVENT_DEPTH ;//[nb_front_end][nb_context] 112 114 113 115 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 116 115 117 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 private : Tgeneral_address_t *** rat_gpr_not_speculative; //[nb_front_end][nb_context][nb_general_register_logic] 117 private : Tgeneral_address_t *** rat_gpr_speculative; //[nb_front_end][nb_context][nb_general_register_logic] 118 private : bool *** rat_gpr_speculative_valid; //[nb_front_end][nb_context][nb_general_register_logic] 119 private : bool *** rat_gpr_update_table; //[nb_front_end][nb_context][nb_general_register_logic] 120 121 private : Tspecial_address_t *** rat_spr_not_speculative; //[nb_front_end][nb_context][nb_special_register_logic] 122 private : Tspecial_address_t *** rat_spr_speculative; //[nb_front_end][nb_context][nb_special_register_logic] 123 private : bool *** rat_spr_speculative_valid; //[nb_front_end][nb_context][nb_special_register_logic] 124 private : bool *** rat_spr_update_table; //[nb_front_end][nb_context][nb_special_register_logic] 118 private : Tgeneral_address_t *** rat_gpr_not_speculative; //[nb_front_end][nb_context] [nb_general_register_logic] 119 private : Tgeneral_address_t *** rat_gpr_speculative; //[nb_front_end][nb_context] [nb_general_register_logic] 120 private : bool *** rat_gpr_speculative_valid; //[nb_front_end][nb_context] [nb_general_register_logic] 121 private : Tgeneral_address_t **** rat_gpr_save; //[nb_front_end][nb_context][nb_branch_speculated][nb_general_register_logic] 122 123 private : Tspecial_address_t *** rat_spr_not_speculative; //[nb_front_end][nb_context] [nb_special_register_logic] 124 private : Tspecial_address_t *** rat_spr_speculative; //[nb_front_end][nb_context] [nb_special_register_logic] 125 private : bool *** rat_spr_speculative_valid; //[nb_front_end][nb_context] [nb_special_register_logic] 126 private : Tspecial_address_t **** rat_spr_save; //[nb_front_end][nb_context][nb_branch_speculated][nb_special_register_logic] 127 128 private : Tdepth_t ** rat_depth; //[nb_front_end][nb_context] 125 129 126 130 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 127 131 private : Tcontrol_t * internal_RENAME_ACK; //[nb_inst_insert] 132 private : Tcontrol_t * internal_RENAME_SAVE; //[nb_inst_insert] 128 133 private : Tcontrol_t * internal_INSERT_ACK; //[nb_inst_insert] 129 134 private : Tcontrol_t * internal_RETIRE_ACK; //[nb_inst_retire] 130 135 private : Tcontrol_t ** internal_RETIRE_EVENT_ACK ;//[nb_front_end][nb_context] 131 136 132 private : bool *** internal_rat_gpr_update_table;//[nb_front_end][nb_context][nb_general_register_logic] 133 private : bool *** internal_rat_spr_update_table;//[nb_front_end][nb_context][nb_special_register_logic] 134 135 private : Tcontrol_t * internal_RETIRE_RESTORE ;//[nb_inst_retire] 136 private : Tcontrol_t * internal_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire] 137 private : Tcontrol_t * internal_RETIRE_RESTORE_RE_PHY_OLD;//[nb_inst_retire] 138 137 // function pointer 138 public : void (morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::*function_constant ) (void); 139 public : void (morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::*function_transition ) (void); 140 public : void (morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::*function_genMealy_rename) (void); 139 141 #endif 140 142 … … 169 171 170 172 #ifdef SYSTEMC 171 public : void constant (void); 172 public : void transition (void); 173 public : void genMealy_rename (void); 174 public : void genMealy_retire (void); 173 public : void constant (void); 174 public : void transition (void); 175 public : void genMealy_rename (void); 176 177 // public : void function_no_save_constant (void); 178 // public : void function_no_save_transition (void); 179 // public : void function_no_save_genMealy_rename (void); 180 181 public : void function_one_save_constant (void); 182 public : void function_one_save_transition (void); 183 public : void function_one_save_genMealy_rename (void); 184 185 public : void function_depth_save_constant (void); 186 public : void function_depth_save_transition (void); 187 public : void function_depth_save_genMealy_rename (void); 175 188 #endif 176 189 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Parameters.cpp
r88 r139 20 20 #undef FUNCTION 21 21 #define FUNCTION "Register_Address_Translation_unit::Parameters" 22 Parameters::Parameters (uint32_t nb_front_end , 23 uint32_t * nb_context , 24 uint32_t nb_general_register, 25 uint32_t nb_special_register, 26 uint32_t nb_inst_insert , 27 uint32_t nb_inst_retire , 28 bool is_toplevel) 22 Parameters::Parameters (uint32_t nb_front_end , 23 uint32_t * nb_context ,//[nb_front_end] 24 uint32_t nb_general_register , 25 uint32_t nb_special_register , 26 Trat_scheme_t rat_scheme , 27 uint32_t nb_inst_insert , 28 uint32_t nb_inst_retire , 29 uint32_t ** nb_branch_speculated,//[nb_front_end][nb_context] 30 bool is_toplevel) 29 31 { 30 32 log_printf(FUNC,Register_Address_Translation_unit,FUNCTION,"Begin"); 31 33 32 _nb_front_end = nb_front_end ; 33 _nb_context = nb_context ; 34 _nb_general_register = nb_general_register; 35 _nb_special_register = nb_special_register; 36 _nb_inst_insert = nb_inst_insert ; 37 _nb_inst_retire = nb_inst_retire ; 34 _nb_front_end = nb_front_end ; 35 _nb_context = nb_context ; 36 _nb_general_register = nb_general_register ; 37 _nb_special_register = nb_special_register ; 38 _rat_scheme = rat_scheme ; 39 _nb_inst_insert = nb_inst_insert ; 40 _nb_inst_retire = nb_inst_retire ; 41 _nb_branch_speculated = nb_branch_speculated; 42 43 _max_nb_context = max<uint32_t>(_nb_context, _nb_front_end); 38 44 39 45 test(); … … 41 47 if (is_toplevel) 42 48 { 43 _size_front_end_id = log2(nb_front_end ); 44 _size_context_id = log2(max<uint32_t>(nb_context, nb_front_end)); 45 _size_general_register = log2(nb_general_register); 46 _size_special_register = log2(nb_special_register); 49 _size_front_end_id = log2(_nb_front_end ); 50 _size_context_id = log2(_max_nb_context ); 51 _size_general_register = log2(_nb_general_register); 52 _size_special_register = log2(_nb_special_register); 53 _size_depth = log2(max<uint32_t>(_nb_branch_speculated,_nb_front_end,_nb_context)); 47 54 48 55 _have_port_front_end_id = _size_front_end_id>0; 49 56 _have_port_context_id = _size_context_id >0; 50 57 _have_port_depth = _size_depth >0; 58 51 59 copy(); 52 60 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Parameters_msg_error.cpp
r82 r139 10 10 #include <sstream> 11 11 12 namespace morpheo 12 namespace morpheo { 13 13 namespace behavioural { 14 14 namespace core { … … 27 27 Parameters_test test ("Register_Address_Translation_unit"); 28 28 29 switch(_rat_scheme) 30 { 31 case RAT_NO_SAVE : 32 { 33 test.error(toString(_("The Register Address Translation scheme \"%s\" is not yet implemented.\n"),toString(_rat_scheme).c_str())); 34 } 35 default : 36 // case RAT_ONE_SAVE : 37 // case RAT_DEPTH_SAVE : 38 { 39 break; 40 } 41 } 42 29 43 return test; 30 44 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Parameters_print.cpp
r81 r139 28 28 29 29 xml.balise_open("register_address_translation_unit"); 30 xml.singleton_begin("nb_front_end "); xml.attribut("value",toString(_nb_front_end )); xml.singleton_end(); 31 xml.singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register)); xml.singleton_end(); 32 xml.singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register)); xml.singleton_end(); 33 xml.singleton_begin("nb_inst_insert "); xml.attribut("value",toString(_nb_inst_insert )); xml.singleton_end(); 34 xml.singleton_begin("nb_inst_retire "); xml.attribut("value",toString(_nb_inst_retire )); xml.singleton_end(); 30 xml.singleton_begin("nb_front_end "); xml.attribut("value",toString(_nb_front_end )); xml.singleton_end(); 31 xml.singleton_begin("rat_scheme "); xml.attribut("value",toString(_rat_scheme )); xml.singleton_end(); 32 xml.singleton_begin("nb_general_register "); xml.attribut("value",toString(_nb_general_register)); xml.singleton_end(); 33 xml.singleton_begin("nb_special_register "); xml.attribut("value",toString(_nb_special_register)); xml.singleton_end(); 34 xml.singleton_begin("nb_inst_insert "); xml.attribut("value",toString(_nb_inst_insert )); xml.singleton_end(); 35 xml.singleton_begin("nb_inst_retire "); xml.attribut("value",toString(_nb_inst_retire )); xml.singleton_end(); 35 36 36 37 for (uint32_t i=0;i<_nb_front_end; i++) … … 40 41 xml. attribut("id" ,toString(i)); 41 42 xml. balise_open_end(); 42 xml. singleton_begin("nb_context "); xml.attribut("value",toString(_nb_context [i] )); xml.singleton_end(); 43 xml. singleton_begin("nb_context "); xml.attribut("value",toString(_nb_context [i] )); xml.singleton_end(); 44 45 for (uint32_t j=0;j<_nb_context[i]; j++) 46 { 47 xml. balise_open_begin("component"); 48 xml. attribut("type","context"); 49 xml. attribut("id" ,toString(j)); 50 xml. balise_open_end(); 51 xml. singleton_begin("nb_branch_speculated"); xml.attribut("value",toString(_nb_branch_speculated[i][j])); xml.singleton_end(); 52 xml. balise_close(); 53 } 54 43 55 xml. balise_close(); 44 56 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit.cpp
r132 r139 75 75 if (usage_is_set(_usage,USE_SYSTEMC)) 76 76 { 77 // Function pointer 78 switch (_param->_rat_scheme) 79 { 80 case RAT_NO_SAVE : 81 { 82 // function_constant = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_no_save_constant ; 83 // function_transition = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_no_save_transition ; 84 // function_genMealy_rename = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_no_save_genMealy_rename; 85 86 break; 87 } 88 89 case RAT_ONE_SAVE : 90 { 91 function_constant = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_one_save_constant ; 92 function_transition = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_one_save_transition ; 93 function_genMealy_rename = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_one_save_genMealy_rename; 94 95 break; 96 } 97 98 case RAT_DEPTH_SAVE : 99 { 100 function_constant = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_depth_save_constant ; 101 function_transition = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_depth_save_transition ; 102 function_genMealy_rename = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Register_Address_Translation_unit::function_depth_save_genMealy_rename; 103 104 break; 105 } 106 107 default : 108 { 109 break; 110 } 111 } 112 77 113 #ifdef SYSTEMCASS_SPECIFIC 78 114 constant(); … … 118 154 << (*(in_RENAME_NUM_REG_RD_LOG [i])) 119 155 << (*(in_RENAME_NUM_REG_RE_LOG [i])); 156 157 if (_param->_rat_scheme == RAT_DEPTH_SAVE) 158 sensitive << (*(in_RENAME_SAVE_RAT [i])); 120 159 } 121 160 for (uint32_t i=0; i<_param->_nb_front_end; ++i) … … 124 163 << (*(in_RETIRE_EVENT_STATE [i][j])); 125 164 126 # ifdef SYSTEMCASS_SPECIFIC127 // List dependency information128 # endif129 130 log_printf(INFO,Register_Address_Translation_unit,FUNCTION,"Method - genMealy_retire");131 132 SC_METHOD (genMealy_retire);133 dont_initialize ();134 sensitive << (*(in_CLOCK)).neg() // need internal register135 << (*(in_NRESET));136 137 for (uint32_t i=0; i<_param->_nb_inst_retire; ++i)138 {139 if (param->_have_port_front_end_id)140 sensitive << (*(in_RETIRE_FRONT_END_ID [i]));141 if (param->_have_port_context_id)142 sensitive << (*(in_RETIRE_CONTEXT_ID [i]));143 144 sensitive << (*(in_RETIRE_WRITE_RD [i]))145 << (*(in_RETIRE_WRITE_RE [i]))146 << (*(in_RETIRE_NUM_REG_RD_LOG [i]))147 << (*(in_RETIRE_NUM_REG_RE_LOG [i]));148 }149 150 for (uint32_t i=0; i<_param->_nb_front_end; ++i)151 for (uint32_t j=0; j<_param->_nb_context[i]; ++j)152 sensitive << (*(in_RETIRE_EVENT_VAL [i][j]))153 << (*(in_RETIRE_EVENT_STATE [i][j]));154 155 165 # ifdef SYSTEMCASS_SPECIFIC 156 166 // List dependency information -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_allocation.cpp
r122 r139 61 61 ALLOC1_INTERFACE_BEGIN("rename",IN,EAST,_("Input to rename source logical register"), _param->_nb_inst_insert); 62 62 63 ALLOC1_VALACK_IN ( in_RENAME_VAL , VAL); 64 ALLOC1_VALACK_OUT(out_RENAME_ACK , ACK); 65 ALLOC1_SIGNAL_IN ( in_RENAME_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id); 66 ALLOC1_SIGNAL_IN ( in_RENAME_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 67 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RA_LOG ,"num_reg_ra_log" ,Tgeneral_address_t,_param->_size_general_register_logic); 68 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RB_LOG ,"num_reg_rb_log" ,Tgeneral_address_t,_param->_size_general_register_logic); 69 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RC_LOG ,"num_reg_rc_log" ,Tspecial_address_t,_param->_size_special_register_logic); 70 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RD_LOG ,"num_reg_rd_log" ,Tgeneral_address_t,_param->_size_general_register_logic); 71 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RE_LOG ,"num_reg_re_log" ,Tspecial_address_t,_param->_size_special_register_logic); 72 ALLOC1_SIGNAL_OUT(out_RENAME_NUM_REG_RA_PHY ,"num_reg_ra_phy" ,Tgeneral_address_t,_param->_size_general_register); 73 ALLOC1_SIGNAL_OUT(out_RENAME_NUM_REG_RB_PHY ,"num_reg_rb_phy" ,Tgeneral_address_t,_param->_size_general_register); 74 ALLOC1_SIGNAL_OUT(out_RENAME_NUM_REG_RC_PHY ,"num_reg_rc_phy" ,Tspecial_address_t,_param->_size_special_register); 75 ALLOC1_SIGNAL_OUT(out_RENAME_NUM_REG_RD_PHY_OLD,"num_reg_rd_phy_old",Tgeneral_address_t,_param->_size_general_register); 76 ALLOC1_SIGNAL_OUT(out_RENAME_NUM_REG_RE_PHY_OLD,"num_reg_re_phy_old",Tspecial_address_t,_param->_size_special_register); 63 ALLOC1_VALACK_IN ( in_RENAME_VAL , VAL); 64 ALLOC1_VALACK_OUT (out_RENAME_ACK , ACK); 65 ALLOC1_SIGNAL_IN ( in_RENAME_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id); 66 ALLOC1_SIGNAL_IN ( in_RENAME_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 67 ALLOC1_SIGNAL_IN_COND ( in_RENAME_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth,_param->_rat_scheme == RAT_DEPTH_SAVE); 68 ALLOC1_SIGNAL_IN ( in_RENAME_SAVE_RAT ,"save_rat" ,Tcontrol_t ,1); 69 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RA_LOG ,"num_reg_ra_log" ,Tgeneral_address_t,_param->_size_general_register_logic); 70 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RB_LOG ,"num_reg_rb_log" ,Tgeneral_address_t,_param->_size_general_register_logic); 71 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RC_LOG ,"num_reg_rc_log" ,Tspecial_address_t,_param->_size_special_register_logic); 72 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RD_LOG ,"num_reg_rd_log" ,Tgeneral_address_t,_param->_size_general_register_logic); 73 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RE_LOG ,"num_reg_re_log" ,Tspecial_address_t,_param->_size_special_register_logic); 74 ALLOC1_SIGNAL_OUT (out_RENAME_NUM_REG_RA_PHY ,"num_reg_ra_phy" ,Tgeneral_address_t,_param->_size_general_register); 75 ALLOC1_SIGNAL_OUT (out_RENAME_NUM_REG_RB_PHY ,"num_reg_rb_phy" ,Tgeneral_address_t,_param->_size_general_register); 76 ALLOC1_SIGNAL_OUT (out_RENAME_NUM_REG_RC_PHY ,"num_reg_rc_phy" ,Tspecial_address_t,_param->_size_special_register); 77 ALLOC1_SIGNAL_OUT (out_RENAME_NUM_REG_RD_PHY_OLD,"num_reg_rd_phy_old",Tgeneral_address_t,_param->_size_general_register); 78 ALLOC1_SIGNAL_OUT (out_RENAME_NUM_REG_RE_PHY_OLD,"num_reg_re_phy_old",Tspecial_address_t,_param->_size_special_register); 77 79 78 80 ALLOC1_INTERFACE_END(_param->_nb_inst_insert); … … 111 113 ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RD_PHY_NEW,"num_reg_rd_phy_new",Tgeneral_address_t,_param->_size_general_register); 112 114 ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_NEW,"num_reg_re_phy_new",Tspecial_address_t,_param->_size_special_register); 113 ALLOC1_SIGNAL_OUT(out_RETIRE_RESTORE_RD_PHY_OLD,"restore_rd_phy_old",Tcontrol_t ,1); 114 ALLOC1_SIGNAL_OUT(out_RETIRE_RESTORE_RE_PHY_OLD,"restore_re_phy_old",Tcontrol_t ,1); 115 ALLOC1_SIGNAL_OUT(out_RETIRE_RESTORE ,"restore" ,Tcontrol_t ,1); 115 ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE ,"restore" ,Tcontrol_t ,1); 116 116 117 117 ALLOC1_INTERFACE_END(_param->_nb_inst_retire); … … 122 122 ALLOC2_INTERFACE_BEGIN("retire_event", IN,NORTH, _("Retire event"), _param->_nb_front_end, _param->_nb_context[it1]); 123 123 124 _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_VAL ,VAL,_param->_nb_front_end, _param->_nb_context[it1]); 125 _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_ACK ,ACK,_param->_nb_front_end, _param->_nb_context[it1]); 126 _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE ,"state" ,Tevent_state_t ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]); 124 _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_VAL ,VAL,_param->_nb_front_end, _param->_nb_context[it1]); 125 _ALLOC2_VALACK_OUT (out_RETIRE_EVENT_ACK ,ACK,_param->_nb_front_end, _param->_nb_context[it1]); 126 _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE ,"state" ,Tevent_state_t ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]); 127 _ALLOC2_SIGNAL_IN_COND ( in_RETIRE_EVENT_TYPE ,"type" ,Tevent_type_t ,_param->_size_event_type , _param->_nb_front_end, _param->_nb_context[it1],_param->_rat_scheme == RAT_DEPTH_SAVE); 128 _ALLOC2_SIGNAL_IN_COND ( in_RETIRE_EVENT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth , _param->_nb_front_end, _param->_nb_context[it1],_param->_rat_scheme == RAT_DEPTH_SAVE); 127 129 128 130 ALLOC2_INTERFACE_END(_param->_nb_front_end, _param->_nb_context[it1]); … … 132 134 { 133 135 ALLOC1(internal_RENAME_ACK ,Tcontrol_t,_param->_nb_inst_insert); 136 ALLOC1(internal_RENAME_SAVE ,Tcontrol_t,_param->_nb_inst_insert); 134 137 ALLOC1(internal_INSERT_ACK ,Tcontrol_t,_param->_nb_inst_insert); 135 138 ALLOC1(internal_RETIRE_ACK ,Tcontrol_t,_param->_nb_inst_retire); 136 139 ALLOC2(internal_RETIRE_EVENT_ACK ,Tcontrol_t,_param->_nb_front_end,_param->_nb_context[it1]); 137 140 138 ALLOC3(rat_gpr_not_speculative ,Tgeneral_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);139 141 ALLOC3(rat_gpr_speculative ,Tgeneral_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 140 ALLOC3(rat_gpr_speculative_valid,bool ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 141 ALLOC3(rat_gpr_update_table ,bool ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 142 ALLOC3(rat_spr_speculative ,Tspecial_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 143 144 switch(_param->_rat_scheme) 145 { 146 case RAT_NO_SAVE : 147 { 148 break; 149 } 150 case RAT_ONE_SAVE : 151 { 152 ALLOC3(rat_gpr_not_speculative ,Tgeneral_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 153 ALLOC3(rat_gpr_speculative_valid,bool ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 154 155 ALLOC3(rat_spr_not_speculative ,Tspecial_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 156 ALLOC3(rat_spr_speculative_valid,bool ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 157 158 break; 159 } 160 case RAT_DEPTH_SAVE : 161 { 162 ALLOC4(rat_gpr_save ,Tgeneral_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_branch_speculated[it1][it2],_param->_nb_general_register_logic); 163 ALLOC4(rat_spr_save ,Tspecial_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_branch_speculated[it1][it2],_param->_nb_special_register_logic); 164 ALLOC2(rat_depth ,Tdepth_t ,_param->_nb_front_end,_param->_nb_context[it1]); 142 165 143 ALLOC3(rat_spr_not_speculative ,Tspecial_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 144 ALLOC3(rat_spr_speculative ,Tspecial_address_t,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 145 ALLOC3(rat_spr_speculative_valid,bool ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 146 ALLOC3(rat_spr_update_table ,bool ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 147 148 ALLOC3(internal_rat_gpr_update_table,bool, _param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 149 ALLOC3(internal_rat_spr_update_table,bool, _param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 150 151 ALLOC1(internal_RETIRE_RESTORE ,Tcontrol_t,_param->_nb_inst_retire); 152 ALLOC1(internal_RETIRE_RESTORE_RD_PHY_OLD,Tcontrol_t,_param->_nb_inst_retire); 153 ALLOC1(internal_RETIRE_RESTORE_RE_PHY_OLD,Tcontrol_t,_param->_nb_inst_retire); 166 break; 167 } 168 } 154 169 } 155 170 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_constant.cpp
r131 r139 26 26 log_function(Register_Address_Translation_unit,FUNCTION,_name.c_str()); 27 27 28 // Constant : accepted already transaction 29 for (uint32_t i=0; i<_param->_nb_inst_insert; i++) 30 { 31 internal_RENAME_ACK [i] = 1; 32 internal_INSERT_ACK [i] = 1; 33 34 PORT_WRITE(out_RENAME_ACK[i],internal_RENAME_ACK [i]); 35 PORT_WRITE(out_INSERT_ACK[i],internal_INSERT_ACK [i]); 36 } 37 38 for (uint32_t i=0; i<_param->_nb_inst_retire; i++) 39 { 40 internal_RETIRE_ACK [i] = 1; 41 42 PORT_WRITE(out_RETIRE_ACK[i],internal_RETIRE_ACK [i]); 43 } 44 45 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 46 for (uint32_t j=0; j<_param->_nb_context[i]; ++j) 47 { 48 internal_RETIRE_EVENT_ACK [i][j] = 1; 49 50 PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]); 51 } 28 (this->*function_constant) (); 52 29 53 30 log_end(Register_Address_Translation_unit,FUNCTION); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_deallocation.cpp
r122 r139 30 30 delete in_NRESET; 31 31 32 DELETE1_SIGNAL( in_RENAME_VAL ,_param->_nb_inst_insert,1); 33 DELETE1_SIGNAL(out_RENAME_ACK ,_param->_nb_inst_insert,1); 34 DELETE1_SIGNAL( in_RENAME_FRONT_END_ID ,_param->_nb_inst_insert,_param->_size_front_end_id); 35 DELETE1_SIGNAL( in_RENAME_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 36 DELETE1_SIGNAL( in_RENAME_NUM_REG_RA_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 37 DELETE1_SIGNAL( in_RENAME_NUM_REG_RB_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 38 DELETE1_SIGNAL( in_RENAME_NUM_REG_RC_LOG ,_param->_nb_inst_insert,_param->_size_special_register_logic); 39 DELETE1_SIGNAL( in_RENAME_NUM_REG_RD_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 40 DELETE1_SIGNAL( in_RENAME_NUM_REG_RE_LOG ,_param->_nb_inst_insert,_param->_size_special_register_logic); 41 DELETE1_SIGNAL(out_RENAME_NUM_REG_RA_PHY ,_param->_nb_inst_insert,_param->_size_general_register); 42 DELETE1_SIGNAL(out_RENAME_NUM_REG_RB_PHY ,_param->_nb_inst_insert,_param->_size_general_register); 43 DELETE1_SIGNAL(out_RENAME_NUM_REG_RC_PHY ,_param->_nb_inst_insert,_param->_size_special_register); 44 DELETE1_SIGNAL(out_RENAME_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert,_param->_size_general_register); 45 DELETE1_SIGNAL(out_RENAME_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert,_param->_size_special_register); 46 47 DELETE1_SIGNAL( in_INSERT_VAL ,_param->_nb_inst_insert,1); 48 DELETE1_SIGNAL(out_INSERT_ACK ,_param->_nb_inst_insert,1); 49 // DELETE1_SIGNAL( in_INSERT_FRONT_END_ID ,_param->_nb_inst_insert,_param->_size_front_end_id); 50 // DELETE1_SIGNAL( in_INSERT_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 51 DELETE1_SIGNAL( in_INSERT_WRITE_RD ,_param->_nb_inst_insert,1); 52 DELETE1_SIGNAL( in_INSERT_WRITE_RE ,_param->_nb_inst_insert,1); 53 DELETE1_SIGNAL( in_INSERT_NUM_REG_RD_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic); 54 DELETE1_SIGNAL( in_INSERT_NUM_REG_RE_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic); 55 DELETE1_SIGNAL( in_INSERT_NUM_REG_RD_PHY,_param->_nb_inst_insert,_param->_size_general_register); 56 DELETE1_SIGNAL( in_INSERT_NUM_REG_RE_PHY,_param->_nb_inst_insert,_param->_size_special_register); 57 58 DELETE1_SIGNAL( in_RETIRE_VAL ,_param->_nb_inst_retire,1); 59 DELETE1_SIGNAL(out_RETIRE_ACK ,_param->_nb_inst_retire,1); 60 DELETE1_SIGNAL( in_RETIRE_FRONT_END_ID ,_param->_nb_inst_retire,_param->_size_front_end_id); 61 DELETE1_SIGNAL( in_RETIRE_CONTEXT_ID ,_param->_nb_inst_retire,_param->_size_context_id ); 62 DELETE1_SIGNAL( in_RETIRE_WRITE_RD ,_param->_nb_inst_retire,1); 63 DELETE1_SIGNAL( in_RETIRE_WRITE_RE ,_param->_nb_inst_retire,1); 64 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_LOG ,_param->_nb_inst_retire,_param->_size_general_register_logic); 65 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_LOG ,_param->_nb_inst_retire,_param->_size_special_register_logic); 66 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire,_param->_size_general_register); 67 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire,_param->_size_special_register); 68 DELETE1_SIGNAL(out_RETIRE_RESTORE_RD_PHY_OLD,_param->_nb_inst_retire,1); 69 DELETE1_SIGNAL(out_RETIRE_RESTORE_RE_PHY_OLD,_param->_nb_inst_retire,1); 70 DELETE1_SIGNAL(out_RETIRE_RESTORE ,_param->_nb_inst_retire,1); 71 72 DELETE2_SIGNAL( in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1],1); 73 DELETE2_SIGNAL(out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1],1); 74 DELETE2_SIGNAL( in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state); 32 DELETE1_SIGNAL ( in_RENAME_VAL ,_param->_nb_inst_insert,1); 33 DELETE1_SIGNAL (out_RENAME_ACK ,_param->_nb_inst_insert,1); 34 DELETE1_SIGNAL ( in_RENAME_FRONT_END_ID ,_param->_nb_inst_insert,_param->_size_front_end_id); 35 DELETE1_SIGNAL ( in_RENAME_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 36 DELETE1_SIGNAL_COND( in_RENAME_DEPTH ,_param->_nb_inst_insert,_param->_size_depth,_param->_rat_scheme == RAT_DEPTH_SAVE); 37 DELETE1_SIGNAL ( in_RENAME_SAVE_RAT ,_param->_nb_inst_insert,1); 38 DELETE1_SIGNAL ( in_RENAME_NUM_REG_RA_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 39 DELETE1_SIGNAL ( in_RENAME_NUM_REG_RB_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 40 DELETE1_SIGNAL ( in_RENAME_NUM_REG_RC_LOG ,_param->_nb_inst_insert,_param->_size_special_register_logic); 41 DELETE1_SIGNAL ( in_RENAME_NUM_REG_RD_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 42 DELETE1_SIGNAL ( in_RENAME_NUM_REG_RE_LOG ,_param->_nb_inst_insert,_param->_size_special_register_logic); 43 DELETE1_SIGNAL (out_RENAME_NUM_REG_RA_PHY ,_param->_nb_inst_insert,_param->_size_general_register); 44 DELETE1_SIGNAL (out_RENAME_NUM_REG_RB_PHY ,_param->_nb_inst_insert,_param->_size_general_register); 45 DELETE1_SIGNAL (out_RENAME_NUM_REG_RC_PHY ,_param->_nb_inst_insert,_param->_size_special_register); 46 DELETE1_SIGNAL (out_RENAME_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert,_param->_size_general_register); 47 DELETE1_SIGNAL (out_RENAME_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert,_param->_size_special_register); 48 49 DELETE1_SIGNAL ( in_INSERT_VAL ,_param->_nb_inst_insert,1); 50 DELETE1_SIGNAL (out_INSERT_ACK ,_param->_nb_inst_insert,1); 51 // DELETE1_SIGNAL ( in_INSERT_FRONT_END_ID ,_param->_nb_inst_insert,_param->_size_front_end_id); 52 // DELETE1_SIGNAL ( in_INSERT_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 53 DELETE1_SIGNAL ( in_INSERT_WRITE_RD ,_param->_nb_inst_insert,1); 54 DELETE1_SIGNAL ( in_INSERT_WRITE_RE ,_param->_nb_inst_insert,1); 55 DELETE1_SIGNAL ( in_INSERT_NUM_REG_RD_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic); 56 DELETE1_SIGNAL ( in_INSERT_NUM_REG_RE_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic); 57 DELETE1_SIGNAL ( in_INSERT_NUM_REG_RD_PHY,_param->_nb_inst_insert,_param->_size_general_register); 58 DELETE1_SIGNAL ( in_INSERT_NUM_REG_RE_PHY,_param->_nb_inst_insert,_param->_size_special_register); 59 60 DELETE1_SIGNAL ( in_RETIRE_VAL ,_param->_nb_inst_retire,1); 61 DELETE1_SIGNAL (out_RETIRE_ACK ,_param->_nb_inst_retire,1); 62 DELETE1_SIGNAL ( in_RETIRE_FRONT_END_ID ,_param->_nb_inst_retire,_param->_size_front_end_id); 63 DELETE1_SIGNAL ( in_RETIRE_CONTEXT_ID ,_param->_nb_inst_retire,_param->_size_context_id ); 64 DELETE1_SIGNAL ( in_RETIRE_WRITE_RD ,_param->_nb_inst_retire,1); 65 DELETE1_SIGNAL ( in_RETIRE_WRITE_RE ,_param->_nb_inst_retire,1); 66 DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RD_LOG ,_param->_nb_inst_retire,_param->_size_general_register_logic); 67 DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RE_LOG ,_param->_nb_inst_retire,_param->_size_special_register_logic); 68 DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire,_param->_size_general_register); 69 DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire,_param->_size_special_register); 70 DELETE1_SIGNAL ( in_RETIRE_RESTORE ,_param->_nb_inst_retire,1); 71 72 DELETE2_SIGNAL ( in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1],1); 73 DELETE2_SIGNAL (out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1],1); 74 DELETE2_SIGNAL ( in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state); 75 DELETE2_SIGNAL_COND( in_RETIRE_EVENT_TYPE ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_type,_param->_rat_scheme == RAT_DEPTH_SAVE); 76 DELETE2_SIGNAL_COND( in_RETIRE_EVENT_DEPTH ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_depth ,_param->_rat_scheme == RAT_DEPTH_SAVE); 75 77 76 78 DELETE1(internal_RENAME_ACK ,_param->_nb_inst_insert); 79 DELETE1(internal_RENAME_SAVE ,_param->_nb_inst_insert); 77 80 DELETE1(internal_INSERT_ACK ,_param->_nb_inst_insert); 78 81 DELETE1(internal_RETIRE_ACK ,_param->_nb_inst_retire); 79 82 DELETE2(internal_RETIRE_EVENT_ACK ,_param->_nb_front_end,_param->_nb_context[it1]); 80 83 81 DELETE3(rat_gpr_not_speculative ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic);82 84 DELETE3(rat_gpr_speculative ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 83 DELETE3(rat_gpr_speculative_valid ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 84 DELETE3(rat_gpr_update_table ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 85 DELETE3(rat_spr_speculative ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 85 86 86 DELETE3(rat_spr_not_speculative ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 87 DELETE3(rat_spr_speculative ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 88 DELETE3(rat_spr_speculative_valid ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 89 DELETE3(rat_spr_update_table ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 87 switch(_param->_rat_scheme) 88 { 89 case RAT_NO_SAVE : 90 { 91 break; 92 } 93 case RAT_ONE_SAVE : 94 { 95 DELETE3(rat_gpr_not_speculative ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 96 DELETE3(rat_gpr_speculative_valid ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 97 98 DELETE3(rat_spr_not_speculative ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 99 DELETE3(rat_spr_speculative_valid ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 100 101 break; 102 } 103 case RAT_DEPTH_SAVE : 104 { 105 DELETE4(rat_gpr_save ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_branch_speculated[it1][it2],_param->_nb_general_register_logic); 106 DELETE4(rat_spr_save ,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_branch_speculated[it1][it2],_param->_nb_special_register_logic); 107 DELETE2(rat_depth ,_param->_nb_front_end,_param->_nb_context[it1]); 90 108 91 DELETE3(internal_rat_gpr_update_table,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_general_register_logic); 92 DELETE3(internal_rat_spr_update_table,_param->_nb_front_end,_param->_nb_context[it1],_param->_nb_special_register_logic); 93 94 DELETE1(internal_RETIRE_RESTORE ,_param->_nb_inst_retire); 95 DELETE1(internal_RETIRE_RESTORE_RD_PHY_OLD,_param->_nb_inst_retire); 96 DELETE1(internal_RETIRE_RESTORE_RE_PHY_OLD,_param->_nb_inst_retire); 109 break; 110 } 111 } 97 112 } 98 113 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_function_one_save_genMealy_rename.cpp
r137 r139 20 20 21 21 #undef FUNCTION 22 #define FUNCTION "Register_Address_Translation_unit:: genMealy_rename"23 void Register_Address_Translation_unit:: genMealy_rename (void)22 #define FUNCTION "Register_Address_Translation_unit::function_one_save_genMealy_rename" 23 void Register_Address_Translation_unit::function_one_save_genMealy_rename (void) 24 24 { 25 25 log_begin(Register_Address_Translation_unit,FUNCTION); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit_function_one_save_transition.cpp
r137 r139 20 20 21 21 #undef FUNCTION 22 #define FUNCTION "Register_Address_Translation_unit:: transition"23 void Register_Address_Translation_unit:: transition (void)22 #define FUNCTION "Register_Address_Translation_unit::function_one_save_transition" 23 void Register_Address_Translation_unit::function_one_save_transition (void) 24 24 { 25 25 log_begin(Register_Address_Translation_unit,FUNCTION); … … 37 37 rat_gpr_speculative_valid [i][j][0] = false; 38 38 rat_gpr_speculative [i][j][0] = 0 ; // not necessary 39 rat_gpr_update_table [i][j][0] = false; // not necessary40 39 41 40 for (uint32_t k=1; k<_param->_nb_general_register_logic; k++) … … 44 43 rat_gpr_speculative_valid [i][j][k] = false; 45 44 rat_gpr_speculative [i][j][k] = 0 ; // not necessary 46 rat_gpr_update_table [i][j][k] = false; // not necessary47 45 } 48 46 for (uint32_t k=0; k<_param->_nb_special_register_logic; k++) … … 51 49 rat_spr_speculative_valid [i][j][k] = false; 52 50 rat_spr_speculative [i][j][k] = 0 ; // not necessary 53 rat_spr_update_table [i][j][k] = false; // not necessary54 51 } 55 52 } … … 70 67 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * Reset Update Table"); 71 68 72 // Reset update_table andvalidity table69 // Reset validity table 73 70 for (uint32_t k=0; k<_param->_nb_general_register_logic; k++) 74 { 75 rat_gpr_update_table [i][j][k] = false; 76 rat_gpr_speculative_valid [i][j][k] = false; 77 } 71 rat_gpr_speculative_valid [i][j][k] = false; 78 72 for (uint32_t k=0; k<_param->_nb_special_register_logic; k++) 79 { 80 rat_spr_update_table [i][j][k] = false; 81 rat_spr_speculative_valid [i][j][k] = false; 82 } 73 rat_spr_speculative_valid [i][j][k] = false; 83 74 } 84 75 … … 149 140 Tcontrol_t write_rd = PORT_READ(in_RETIRE_WRITE_RD [i]); 150 141 Tcontrol_t write_re = PORT_READ(in_RETIRE_WRITE_RE [i]); 151 Tcontrol_t restore = internal_RETIRE_RESTORE [i];142 Tcontrol_t restore = PORT_READ(in_RETIRE_RESTORE [i]); 152 143 153 144 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end_id : %d",front_end_id); … … 157 148 // Test if write and have not a previous update 158 149 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * write_rd : %d",write_rd); 159 if ( PORT_READ(in_RETIRE_WRITE_RD [i])== 1)150 if (write_rd == 1) 160 151 { 161 152 Tgeneral_address_t num_reg_rd_log = PORT_READ(in_RETIRE_NUM_REG_RD_LOG [i]); … … 171 162 rat_gpr_not_speculative [front_end_id][context_id][num_reg_rd_log] = num_reg_rd_phy_new; 172 163 } 173 174 Tcontrol_t restore_rd = internal_RETIRE_RESTORE_RD_PHY_OLD [i];175 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * restore_rd : %d",restore_rd );176 177 if (restore_rd)178 rat_gpr_update_table [front_end_id][context_id][num_reg_rd_log] = true;179 164 } 180 165 181 166 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * write_re : %d",write_re); 182 if ( PORT_READ(in_RETIRE_WRITE_RE [i])== 1)167 if (write_re == 1) 183 168 { 184 169 Tspecial_address_t num_reg_re_log = PORT_READ(in_RETIRE_NUM_REG_RE_LOG [i]); … … 194 179 rat_spr_not_speculative [front_end_id][context_id][num_reg_re_log] = num_reg_re_phy_new; 195 180 } 196 197 Tcontrol_t restore_re = internal_RETIRE_RESTORE_RE_PHY_OLD [i];198 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * restore_re : %d",restore_re );199 200 if (restore_re)201 rat_spr_update_table [front_end_id][context_id][num_reg_re_log] = true;202 181 } 203 182 … … 224 203 break; 225 204 else 226 str+=toString("GPR[%.4d] - %.1d %.5d (%.5d) %.1d | ",index,rat_gpr_speculative_valid [i][j][index],rat_gpr_speculative [i][j][index],rat_gpr_not_speculative [i][j][index],rat_gpr_update_table[i][j][index]);205 str+=toString("GPR[%.4d] - %.1d %.5d (%.5d) | ",index,rat_gpr_speculative_valid [i][j][index],rat_gpr_speculative [i][j][index],rat_gpr_not_speculative [i][j][index]); 227 206 } 228 207 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * %s",str.c_str()); … … 239 218 break; 240 219 else 241 str+=toString("SPR[%.4d] - %.1d %.5d (%.5d) %.1d | ",index,rat_spr_speculative_valid [i][j][index],rat_spr_speculative [i][j][index],rat_spr_not_speculative [i][j][index],rat_spr_update_table[i][j][index]);220 str+=toString("SPR[%.4d] - %.1d %.5d (%.5d) | ",index,rat_spr_speculative_valid [i][j][index],rat_spr_speculative [i][j][index],rat_spr_not_speculative [i][j][index]); 242 221 } 243 222 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * %s",str.c_str()); … … 281 260 #endif 282 261 283 #if defined(STATISTICS) or defined(VHDL_TESTBENCH)284 end_cycle ();285 #endif286 287 262 log_end(Register_Address_Translation_unit,FUNCTION); 288 263 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_transition.cpp
r123 r139 94 94 log_printf(TRACE,Stat_List_unit,FUNCTION," * nb_spr_free : stat_list %d - free_list %d - free %d, link %d (%d), use %d (%d)",stat_list_nb_spr_free,free_list_nb_spr_free,nb_spr_free,nb_spr_link,stat_list_nb_spr_link,nb_spr_use,stat_list_nb_spr_use); 95 95 96 if (free_list_nb_gpr_free != stat_list_nb_gpr_free) 97 throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list.\n"),stat_list_nb_gpr_free,free_list_nb_gpr_free)); 98 if (free_list_nb_spr_free != stat_list_nb_spr_free) 99 throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list.\n"),stat_list_nb_spr_free,free_list_nb_spr_free)); 100 101 if (PORT_READ(in_INFO_ROB_EMPTY) and (nb_gpr_free != _nb_gpr_free)) 102 throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d general registers free or can_free and must be %d registers."),nb_gpr_free,_nb_gpr_free)); 103 104 if (PORT_READ(in_INFO_ROB_EMPTY) and (nb_spr_free != _nb_spr_free)) 105 throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d special registers free or can_free and must be %d registers."),nb_spr_free,_nb_spr_free)); 96 bool error_nb_gpr_free = (free_list_nb_gpr_free != stat_list_nb_gpr_free); 97 bool error_nb_spr_free = (free_list_nb_spr_free != stat_list_nb_spr_free); 98 bool error_rob_nb_gpr_free = (PORT_READ(in_INFO_ROB_EMPTY) and (nb_gpr_free != _nb_gpr_free)); 99 bool error_rob_nb_spr_free = (PORT_READ(in_INFO_ROB_EMPTY) and (nb_spr_free != _nb_spr_free)); 100 101 std::string list_gpr_not_free; 102 std::string list_spr_not_free; 103 104 105 if (error_nb_gpr_free or 106 error_rob_nb_gpr_free) 107 for (uint32_t i=0; i<_param->_nb_bank; i++) 108 for (uint32_t j=0; j<_param->_nb_general_register_by_bank; j++) 109 if (not gpr_stat_list [i][j]._is_free) 110 list_gpr_not_free+=toString((i<<_param->_shift_gpr)|j)+" "; 111 112 if (error_nb_spr_free or 113 error_rob_nb_spr_free) 114 for (uint32_t i=0; i<_param->_nb_bank; i++) 115 for (uint32_t j=0; j<_param->_nb_special_register_by_bank; j++) 116 if (not spr_stat_list [i][j]._is_free) 117 list_spr_not_free+=toString((i<<_param->_shift_spr)|j)+" "; 118 119 if (error_nb_gpr_free) 120 throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list. (GPR not free : %s)\n"),stat_list_nb_gpr_free,free_list_nb_gpr_free,list_gpr_not_free.c_str())); 121 if (error_nb_spr_free) 122 throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list. (SPR not free : %s)\n"),stat_list_nb_spr_free,free_list_nb_spr_free,list_spr_not_free.c_str())); 123 if (error_rob_nb_gpr_free) 124 throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d general registers free or can_free and must be %d registers. (GPR not free : %s)"),nb_gpr_free,_nb_gpr_free,list_gpr_not_free.c_str())); 125 126 if (error_rob_nb_spr_free) 127 throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d special registers free or can_free and must be %d registers. (SPR not free : %s)"),nb_spr_free,_nb_spr_free,list_gpr_not_free.c_str())); 106 128 } 107 129 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/include/Parameters.h
r112 r139 30 30 { 31 31 //-----[ fields ]------------------------------------------------------------ 32 public : uint32_t _nb_front_end ; 33 public : uint32_t * _nb_context ;//[nb_front_end] 34 public : uint32_t _nb_general_register ; 35 public : uint32_t _nb_special_register ; 36 public : uint32_t _nb_inst_insert ; 37 public : uint32_t _nb_inst_retire ; 38 public : uint32_t _nb_reg_free ; 39 public : uint32_t _nb_bank ; 40 //public : uint32_t _size_read_counter ; 41 42 //public : uint32_t _size_front_end_id ; 43 //public : uint32_t _size_context_id ; 44 //public : uint32_t _size_general_register ; 45 //public : uint32_t _size_special_register ; 46 47 //public : uint32_t _have_port_context_id ; 48 //public : uint32_t _have_port_front_end_id; 32 public : uint32_t _nb_front_end ; 33 public : uint32_t * _nb_context ;//[nb_front_end] 34 public : uint32_t _nb_general_register ; 35 public : uint32_t _nb_special_register ; 36 public : Trat_scheme_t _rat_scheme ; 37 public : uint32_t _nb_inst_insert ; 38 public : uint32_t _nb_inst_retire ; 39 public : uint32_t _nb_reg_free ; 40 public : uint32_t _nb_bank ; 41 //public : uint32_t _size_read_counter ; 42 public : uint32_t ** _nb_branch_speculated ;//[nb_front_end][nb_context] 43 44 //public : uint32_t _size_front_end_id ; 45 //public : uint32_t _size_context_id ; 46 //public : uint32_t _size_general_register ; 47 //public : uint32_t _size_special_register ; 48 49 //public : uint32_t _have_port_context_id ; 50 //public : uint32_t _have_port_front_end_id; 49 51 50 52 public : morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::dependency_checking_unit:: Parameters * _param_dependency_checking_unit; … … 54 56 public : morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_translation_unit_glue:: Parameters * _param_register_translation_unit_glue; 55 57 //-----[ methods ]----------------------------------------------------------- 56 public : Parameters (uint32_t nb_front_end , 57 uint32_t * nb_context , 58 uint32_t nb_general_register , 59 uint32_t nb_special_register , 60 uint32_t nb_inst_insert , 61 uint32_t nb_inst_retire , 62 uint32_t nb_reg_free , 63 uint32_t nb_bank , 64 // uint32_t size_read_counter , 65 bool is_toplevel=false); 58 public : Parameters (uint32_t nb_front_end , 59 uint32_t * nb_context , 60 uint32_t nb_general_register , 61 uint32_t nb_special_register , 62 Trat_scheme_t rat_scheme ,//[nb_front_end] 63 uint32_t nb_inst_insert , 64 uint32_t nb_inst_retire , 65 uint32_t nb_reg_free , 66 uint32_t nb_bank , 67 // uint32_t size_read_counter , 68 uint32_t ** nb_branch_speculated,//[nb_front_end][nb_context] 69 bool is_toplevel=false); 66 70 // public : Parameters (Parameters & param) ; 67 71 public : ~Parameters () ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/include/Register_translation_unit.h
r137 r139 72 72 public : SC_IN (Tcontext_t ) ** in_RENAME_FRONT_END_ID ;//[nb_inst_insert] 73 73 public : SC_IN (Tcontext_t ) ** in_RENAME_CONTEXT_ID ;//[nb_inst_insert] 74 public : SC_IN (Tdepth_t ) ** in_RENAME_DEPTH ;//[nb_inst_insert] 75 public : SC_IN (Tcontrol_t ) ** in_RENAME_SAVE_RAT ;//[nb_inst_insert] 74 76 public : SC_IN (Tcontrol_t ) ** in_RENAME_READ_RA ;//[nb_inst_insert] 75 77 public : SC_IN (Tgeneral_address_t) ** in_RENAME_NUM_REG_RA_LOG ;//[nb_inst_insert] … … 117 119 public : SC_IN (Tcontext_t ) ** in_RETIRE_FRONT_END_ID ;//[nb_inst_retire] 118 120 public : SC_IN (Tcontext_t ) ** in_RETIRE_CONTEXT_ID ;//[nb_inst_retire] 119 // 120 // 121 // 122 // 123 // 124 // 121 //public : SC_IN (Tcontrol_t ) ** in_RETIRE_READ_RA ;//[nb_inst_retire] 122 //public : SC_IN (Tgeneral_address_t) ** in_RETIRE_NUM_REG_RA_PHY ;//[nb_inst_retire] 123 //public : SC_IN (Tcontrol_t ) ** in_RETIRE_READ_RB ;//[nb_inst_retire] 124 //public : SC_IN (Tgeneral_address_t) ** in_RETIRE_NUM_REG_RB_PHY ;//[nb_inst_retire] 125 //public : SC_IN (Tcontrol_t ) ** in_RETIRE_READ_RC ;//[nb_inst_retire] 126 //public : SC_IN (Tspecial_address_t) ** in_RETIRE_NUM_REG_RC_PHY ;//[nb_inst_retire] 125 127 public : SC_IN (Tcontrol_t ) ** in_RETIRE_WRITE_RD ;//[nb_inst_retire] 126 128 public : SC_IN (Tgeneral_address_t) ** in_RETIRE_NUM_REG_RD_LOG ;//[nb_inst_retire] … … 131 133 public : SC_IN (Tspecial_address_t) ** in_RETIRE_NUM_REG_RE_PHY_OLD;//[nb_inst_retire] 132 134 public : SC_IN (Tspecial_address_t) ** in_RETIRE_NUM_REG_RE_PHY_NEW;//[nb_inst_retire] 135 public : SC_IN (Tcontrol_t ) ** in_RETIRE_RESTORE ;//[nb_inst_retire] 136 public : SC_IN (Tcontrol_t ) ** in_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire] 137 public : SC_IN (Tcontrol_t ) ** in_RETIRE_RESTORE_RE_PHY_OLD;//[nb_inst_retire] 133 138 134 139 // ~~~~~[ Interface "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 136 141 public : SC_OUT(Tcontrol_t ) *** out_RETIRE_EVENT_ACK ;//[nb_front_end][nb_context] 137 142 public : SC_IN (Tevent_state_t ) *** in_RETIRE_EVENT_STATE ;//[nb_front_end][nb_context] 143 public : SC_IN (Tevent_type_t ) *** in_RETIRE_EVENT_TYPE ;//[nb_front_end][nb_context] 144 public : SC_IN (Tdepth_t ) *** in_RETIRE_EVENT_DEPTH ;//[nb_front_end][nb_context] 138 145 139 146 // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Parameters.cpp
r128 r139 20 20 #undef FUNCTION 21 21 #define FUNCTION "Register_translation_unit::Parameters" 22 Parameters::Parameters (uint32_t nb_front_end , 23 uint32_t * nb_context , 24 uint32_t nb_general_register , 25 uint32_t nb_special_register , 26 uint32_t nb_inst_insert , 27 uint32_t nb_inst_retire , 28 uint32_t nb_reg_free , 29 uint32_t nb_bank , 30 // uint32_t size_read_counter , 31 bool is_toplevel) 22 Parameters::Parameters (uint32_t nb_front_end , 23 uint32_t * nb_context ,//[nb_front_end] 24 uint32_t nb_general_register , 25 uint32_t nb_special_register , 26 Trat_scheme_t rat_scheme , 27 uint32_t nb_inst_insert , 28 uint32_t nb_inst_retire , 29 uint32_t nb_reg_free , 30 uint32_t nb_bank , 31 // uint32_t size_read_counter , 32 uint32_t ** nb_branch_speculated,//[nb_front_end][nb_context] 33 bool is_toplevel) 32 34 { 33 35 log_printf(FUNC,Register_translation_unit,FUNCTION,"Begin"); 34 36 35 _nb_front_end = nb_front_end ; 36 _nb_context = nb_context ; 37 _nb_general_register = nb_general_register; 38 _nb_special_register = nb_special_register; 39 _nb_inst_insert = nb_inst_insert ; 40 _nb_inst_retire = nb_inst_retire ; 41 _nb_reg_free = nb_reg_free ; 42 _nb_bank = nb_bank ; 43 // _size_read_counter = size_read_counter ; 37 _nb_front_end = nb_front_end ; 38 _nb_context = nb_context ; 39 _nb_general_register = nb_general_register ; 40 _nb_special_register = nb_special_register ; 41 _rat_scheme = rat_scheme ; 42 _nb_inst_insert = nb_inst_insert ; 43 _nb_inst_retire = nb_inst_retire ; 44 _nb_reg_free = nb_reg_free ; 45 _nb_bank = nb_bank ; 46 // _size_read_counter = size_read_counter ; 47 _nb_branch_speculated = nb_branch_speculated; 44 48 45 49 uint32_t size_general_register = log2(nb_general_register); … … 68 72 69 73 _param_register_address_translation_unit = new morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::register_address_translation_unit::Parameters 70 (_nb_front_end , 71 _nb_context , 72 _nb_general_register, 73 _nb_special_register, 74 _nb_inst_insert , 75 _nb_inst_retire ); 74 (_nb_front_end , 75 _nb_context , 76 _nb_general_register , 77 _nb_special_register , 78 _rat_scheme , 79 _nb_inst_insert , 80 _nb_inst_retire , 81 _nb_branch_speculated); 76 82 77 83 _param_stat_list_unit = new morpheo::behavioural::core::multi_ooo_engine::ooo_engine::rename_unit::register_translation_unit::stat_list_unit::Parameters … … 99 105 _size_front_end_id = log2(nb_front_end ); 100 106 _size_context_id = log2(max_nb_context ); 101 107 _size_depth = log2(max<uint32_t>(_nb_branch_speculated,_nb_front_end,_nb_context)); 102 108 _size_general_register = size_general_register; 103 109 _size_special_register = size_special_register; … … 105 111 _have_port_front_end_id = _size_front_end_id>0; 106 112 _have_port_context_id = _size_context_id >0; 113 _have_port_depth = _size_depth >0; 107 114 108 115 copy(); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Parameters_print.cpp
r112 r139 27 27 28 28 xml.balise_open("register_translation_unit"); 29 xml.singleton_begin("nb_front_end "); xml.attribut("value",toString(_nb_front_end )); xml.singleton_end(); 30 xml.singleton_begin("nb_general_register"); xml.attribut("value",toString(_nb_general_register)); xml.singleton_end(); 31 xml.singleton_begin("nb_special_register"); xml.attribut("value",toString(_nb_special_register)); xml.singleton_end(); 32 xml.singleton_begin("nb_inst_insert "); xml.attribut("value",toString(_nb_inst_insert )); xml.singleton_end(); 33 xml.singleton_begin("nb_inst_retire "); xml.attribut("value",toString(_nb_inst_retire )); xml.singleton_end(); 34 xml.singleton_begin("nb_reg_free "); xml.attribut("value",toString(_nb_reg_free )); xml.singleton_end(); 35 xml.singleton_begin("nb_bank "); xml.attribut("value",toString(_nb_bank )); xml.singleton_end(); 36 // xml.singleton_begin("size_read_counter "); xml.attribut("value",toString(_size_read_counter )); xml.singleton_end(); 29 xml.singleton_begin("nb_front_end "); xml.attribut("value",toString(_nb_front_end )); xml.singleton_end(); 30 xml.singleton_begin("nb_general_register "); xml.attribut("value",toString(_nb_general_register)); xml.singleton_end(); 31 xml.singleton_begin("nb_special_register "); xml.attribut("value",toString(_nb_special_register)); xml.singleton_end(); 32 xml.singleton_begin("rat_scheme "); xml.attribut("value",toString(_rat_scheme )); xml.singleton_end(); 33 xml.singleton_begin("nb_inst_insert "); xml.attribut("value",toString(_nb_inst_insert )); xml.singleton_end(); 34 xml.singleton_begin("nb_inst_retire "); xml.attribut("value",toString(_nb_inst_retire )); xml.singleton_end(); 35 xml.singleton_begin("nb_reg_free "); xml.attribut("value",toString(_nb_reg_free )); xml.singleton_end(); 36 xml.singleton_begin("nb_bank "); xml.attribut("value",toString(_nb_bank )); xml.singleton_end(); 37 // xml.singleton_begin("size_read_counter "); xml.attribut("value",toString(_size_read_counter )); xml.singleton_end(); 37 38 for (uint32_t i=0;i<_nb_front_end; i++) 38 39 { … … 41 42 xml. attribut("id" ,toString(i)); 42 43 xml. balise_open_end(); 43 xml. singleton_begin("nb_context "); xml.attribut("value",toString(_nb_context [i] )); xml.singleton_end(); 44 xml. singleton_begin("nb_context "); xml.attribut("value",toString(_nb_context [i] )); xml.singleton_end(); 45 46 for (uint32_t j=0;j<_nb_context[i]; j++) 47 { 48 xml. balise_open_begin("component"); 49 xml. attribut("type","context"); 50 xml. attribut("id" ,toString(j)); 51 xml. balise_open_end(); 52 xml. singleton_begin("nb_branch_speculated"); xml.attribut("value",toString(_nb_branch_speculated[i][j])); xml.singleton_end(); 53 xml. balise_close(); 54 } 55 44 56 xml. balise_close(); 45 57 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_allocation.cpp
r137 r139 60 60 ALLOC1_INTERFACE_BEGIN("rename", IN, EAST, _("Instruction with logical register"), _param->_nb_inst_insert); 61 61 62 ALLOC1_VALACK_IN ( in_RENAME_VAL ,VAL); 63 ALLOC1_VALACK_OUT(out_RENAME_ACK ,ACK); 64 ALLOC1_SIGNAL_IN ( in_RENAME_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 65 ALLOC1_SIGNAL_IN ( in_RENAME_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 66 ALLOC1_SIGNAL_IN ( in_RENAME_READ_RA ,"read_ra" ,Tcontrol_t ,1 ); 67 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RA_LOG,"num_reg_ra_log",Tgeneral_address_t,_param->_size_general_register_logic); 68 ALLOC1_SIGNAL_IN ( in_RENAME_READ_RB ,"read_rb" ,Tcontrol_t ,1 ); 69 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RB_LOG,"num_reg_rb_log",Tgeneral_address_t,_param->_size_general_register_logic); 70 ALLOC1_SIGNAL_IN ( in_RENAME_READ_RC ,"read_rc" ,Tcontrol_t ,1 ); 71 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RC_LOG,"num_reg_rc_log",Tspecial_address_t,_param->_size_special_register_logic); 72 ALLOC1_SIGNAL_IN ( in_RENAME_WRITE_RD ,"write_rd" ,Tcontrol_t ,1 ); 73 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RD_LOG,"num_reg_rd_log",Tgeneral_address_t,_param->_size_general_register_logic); 74 ALLOC1_SIGNAL_IN ( in_RENAME_WRITE_RE ,"write_re" ,Tcontrol_t ,1 ); 75 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RE_LOG,"num_reg_re_log",Tspecial_address_t,_param->_size_special_register_logic); 62 ALLOC1_VALACK_IN ( in_RENAME_VAL ,VAL); 63 ALLOC1_VALACK_OUT (out_RENAME_ACK ,ACK); 64 ALLOC1_SIGNAL_IN ( in_RENAME_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 65 ALLOC1_SIGNAL_IN ( in_RENAME_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 66 ALLOC1_SIGNAL_IN_COND ( in_RENAME_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ,_param->_rat_scheme == RAT_DEPTH_SAVE); 67 ALLOC1_SIGNAL_IN ( in_RENAME_SAVE_RAT ,"save_rat" ,Tcontrol_t ,1 ); 68 ALLOC1_SIGNAL_IN ( in_RENAME_READ_RA ,"read_ra" ,Tcontrol_t ,1 ); 69 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RA_LOG,"num_reg_ra_log",Tgeneral_address_t,_param->_size_general_register_logic); 70 ALLOC1_SIGNAL_IN ( in_RENAME_READ_RB ,"read_rb" ,Tcontrol_t ,1 ); 71 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RB_LOG,"num_reg_rb_log",Tgeneral_address_t,_param->_size_general_register_logic); 72 ALLOC1_SIGNAL_IN ( in_RENAME_READ_RC ,"read_rc" ,Tcontrol_t ,1 ); 73 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RC_LOG,"num_reg_rc_log",Tspecial_address_t,_param->_size_special_register_logic); 74 ALLOC1_SIGNAL_IN ( in_RENAME_WRITE_RD ,"write_rd" ,Tcontrol_t ,1 ); 75 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RD_LOG,"num_reg_rd_log",Tgeneral_address_t,_param->_size_general_register_logic); 76 ALLOC1_SIGNAL_IN ( in_RENAME_WRITE_RE ,"write_re" ,Tcontrol_t ,1 ); 77 ALLOC1_SIGNAL_IN ( in_RENAME_NUM_REG_RE_LOG,"num_reg_re_log",Tspecial_address_t,_param->_size_special_register_logic); 76 78 77 79 ALLOC1_INTERFACE_END(_param->_nb_inst_insert); … … 135 137 ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_OLD,"num_reg_re_phy_old",Tspecial_address_t,_param->_size_special_register ); 136 138 ALLOC1_SIGNAL_IN ( in_RETIRE_NUM_REG_RE_PHY_NEW,"num_reg_re_phy_new",Tspecial_address_t,_param->_size_special_register ); 139 ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE ,"restore" ,Tcontrol_t ,1 ); 140 ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE_RD_PHY_OLD,"restore_rd_phy_old",Tcontrol_t ,1 ); 141 ALLOC1_SIGNAL_IN ( in_RETIRE_RESTORE_RE_PHY_OLD,"restore_re_phy_old",Tcontrol_t ,1 ); 137 142 138 143 ALLOC1_INTERFACE_END(_param->_nb_inst_retire); … … 143 148 ALLOC2_INTERFACE_BEGIN("retire_event", IN,NORTH, _("Retire event"), _param->_nb_front_end, _param->_nb_context[it1]); 144 149 145 _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_VAL ,VAL,_param->_nb_front_end, _param->_nb_context[it1]); 146 _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_ACK ,ACK,_param->_nb_front_end, _param->_nb_context[it1]); 147 _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE ,"state" ,Tevent_state_t ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]); 150 _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_VAL ,VAL,_param->_nb_front_end, _param->_nb_context[it1]); 151 _ALLOC2_VALACK_OUT (out_RETIRE_EVENT_ACK ,ACK,_param->_nb_front_end, _param->_nb_context[it1]); 152 _ALLOC2_SIGNAL_IN ( in_RETIRE_EVENT_STATE ,"state" ,Tevent_state_t ,_param->_size_event_state, _param->_nb_front_end, _param->_nb_context[it1]); 153 _ALLOC2_SIGNAL_IN_COND ( in_RETIRE_EVENT_TYPE ,"type" ,Tevent_type_t ,_param->_size_event_type , _param->_nb_front_end, _param->_nb_context[it1],_param->_rat_scheme == RAT_DEPTH_SAVE); 154 _ALLOC2_SIGNAL_IN_COND ( in_RETIRE_EVENT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth , _param->_nb_front_end, _param->_nb_context[it1],_param->_rat_scheme == RAT_DEPTH_SAVE); 148 155 149 156 ALLOC2_INTERFACE_END(_param->_nb_front_end, _param->_nb_context[it1]); … … 295 302 PORT_MAP(_component,src , "in_RENAME_"+toString(i)+"_CONTEXT_ID" , 296 303 dest, "in_RENAME_"+toString(i)+"_CONTEXT_ID" ); 304 if (_param->_have_port_depth and (_param->_rat_scheme == RAT_DEPTH_SAVE)) 305 PORT_MAP(_component,src , "in_RENAME_"+toString(i)+"_DEPTH" , 306 dest, "in_RENAME_"+toString(i)+"_DEPTH" ); 307 PORT_MAP(_component,src , "in_RENAME_"+toString(i)+"_SAVE_RAT" , 308 dest, "in_RENAME_"+toString(i)+"_SAVE_RAT" ); 297 309 PORT_MAP(_component,src , "in_RENAME_"+toString(i)+"_NUM_REG_RA_LOG" , 298 310 dest, "in_RENAME_"+toString(i)+"_NUM_REG_RA_LOG" ); … … 376 388 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_NUM_REG_RE_PHY_NEW", 377 389 dest, "in_RETIRE_"+toString(i)+"_NUM_REG_RE_PHY_NEW"); 390 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE" , 391 dest, "in_RETIRE_"+toString(i)+"_RESTORE" ); 378 392 379 393 dest = _name+"_register_translation_unit_glue"; … … 383 397 dest, "in_RETIRE_"+toString(i)+"_RAT_ACK" ); 384 398 385 dest = _name+"_stat_list_unit";386 COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD",387 388 COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD",389 390 COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE" ,391 399 // dest = _name+"_stat_list_unit"; 400 // COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD", 401 // dest, "in_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD"); 402 // COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD", 403 // dest, "in_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD"); 404 // COMPONENT_MAP(_component,src ,"out_RETIRE_"+toString(i)+"_RESTORE" , 405 // dest, "in_RETIRE_"+toString(i)+"_RESTORE" ); 392 406 } 393 407 … … 407 421 PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE", 408 422 dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_STATE"); 423 if (_param->_rat_scheme == RAT_DEPTH_SAVE) 424 { 425 PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_TYPE" , 426 dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_TYPE" ); 427 if (_param->_have_port_depth) 428 PORT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_DEPTH", 429 dest, "in_RETIRE_EVENT_"+toString(i)+"_"+toString(j)+"_DEPTH"); 430 } 409 431 } 410 432 } … … 717 739 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_NUM_REG_RE_PHY_NEW", 718 740 dest, "in_RETIRE_"+toString(i)+"_NUM_REG_RE_PHY_NEW"); 719 720 // in_RETIRE_RESTORE_RD_PHY_OLD - register_address_translation_unit.out_RETIRE_RESTORE_RD_PHY_OLD 721 // in_RETIRE_RESTORE_RE_PHY_OLD - register_address_translation_unit.out_RETIRE_RESTORE_RE_PHY_OLD 722 // in_RETIRE_RESTORE - register_address_translation_unit.out_RETIRE_RESTORE 741 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE", 742 dest, "in_RETIRE_"+toString(i)+"_RESTORE"); 743 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD", 744 dest, "in_RETIRE_"+toString(i)+"_RESTORE_RD_PHY_OLD"); 745 PORT_MAP(_component,src , "in_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD", 746 dest, "in_RETIRE_"+toString(i)+"_RESTORE_RE_PHY_OLD"); 723 747 724 748 dest = _name+"_register_translation_unit_glue"; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_deallocation.cpp
r137 r139 29 29 delete in_NRESET; 30 30 31 DELETE1_SIGNAL( in_RENAME_VAL ,_param->_nb_inst_insert,1); 32 DELETE1_SIGNAL(out_RENAME_ACK ,_param->_nb_inst_insert,1); 33 DELETE1_SIGNAL( in_RENAME_FRONT_END_ID ,_param->_nb_inst_insert,_param->_size_front_end_id ); 34 DELETE1_SIGNAL( in_RENAME_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 35 DELETE1_SIGNAL( in_RENAME_READ_RA ,_param->_nb_inst_insert,1 ); 36 DELETE1_SIGNAL( in_RENAME_NUM_REG_RA_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic); 37 DELETE1_SIGNAL( in_RENAME_READ_RB ,_param->_nb_inst_insert,1 ); 38 DELETE1_SIGNAL( in_RENAME_NUM_REG_RB_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic); 39 DELETE1_SIGNAL( in_RENAME_READ_RC ,_param->_nb_inst_insert,1 ); 40 DELETE1_SIGNAL( in_RENAME_NUM_REG_RC_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic); 41 DELETE1_SIGNAL( in_RENAME_WRITE_RD ,_param->_nb_inst_insert,1 ); 42 DELETE1_SIGNAL( in_RENAME_NUM_REG_RD_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic); 43 DELETE1_SIGNAL( in_RENAME_WRITE_RE ,_param->_nb_inst_insert,1 ); 44 DELETE1_SIGNAL( in_RENAME_NUM_REG_RE_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic); 31 DELETE1_SIGNAL ( in_RENAME_VAL ,_param->_nb_inst_insert,1); 32 DELETE1_SIGNAL (out_RENAME_ACK ,_param->_nb_inst_insert,1); 33 DELETE1_SIGNAL ( in_RENAME_FRONT_END_ID ,_param->_nb_inst_insert,_param->_size_front_end_id ); 34 DELETE1_SIGNAL ( in_RENAME_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 35 DELETE1_SIGNAL_COND( in_RENAME_DEPTH ,_param->_nb_inst_insert,_param->_size_depth ,_param->_rat_scheme == RAT_DEPTH_SAVE); 36 DELETE1_SIGNAL ( in_RENAME_SAVE_RAT ,_param->_nb_inst_insert,1 ); 37 DELETE1_SIGNAL ( in_RENAME_READ_RA ,_param->_nb_inst_insert,1 ); 38 DELETE1_SIGNAL ( in_RENAME_NUM_REG_RA_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic); 39 DELETE1_SIGNAL ( in_RENAME_READ_RB ,_param->_nb_inst_insert,1 ); 40 DELETE1_SIGNAL ( in_RENAME_NUM_REG_RB_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic); 41 DELETE1_SIGNAL ( in_RENAME_READ_RC ,_param->_nb_inst_insert,1 ); 42 DELETE1_SIGNAL ( in_RENAME_NUM_REG_RC_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic); 43 DELETE1_SIGNAL ( in_RENAME_WRITE_RD ,_param->_nb_inst_insert,1 ); 44 DELETE1_SIGNAL ( in_RENAME_NUM_REG_RD_LOG,_param->_nb_inst_insert,_param->_size_general_register_logic); 45 DELETE1_SIGNAL ( in_RENAME_WRITE_RE ,_param->_nb_inst_insert,1 ); 46 DELETE1_SIGNAL ( in_RENAME_NUM_REG_RE_LOG,_param->_nb_inst_insert,_param->_size_special_register_logic); 47 48 DELETE1_SIGNAL (out_INSERT_VAL ,_param->_nb_inst_insert,1); 49 DELETE1_SIGNAL ( in_INSERT_ACK ,_param->_nb_inst_insert,1); 50 // DELETE1_SIGNAL (out_INSERT_FRONT_END_ID ,_param->_nb_inst_insert,_param->_size_front_end_id ); 51 // DELETE1_SIGNAL (out_INSERT_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 52 DELETE1_SIGNAL (out_INSERT_READ_RA ,_param->_nb_inst_insert,1 ); 53 #ifdef DEBUG 54 DELETE1_SIGNAL (out_INSERT_NUM_REG_RA_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 55 #endif 56 DELETE1_SIGNAL (out_INSERT_NUM_REG_RA_PHY ,_param->_nb_inst_insert,_param->_size_general_register ); 57 DELETE1_SIGNAL (out_INSERT_READ_RB ,_param->_nb_inst_insert,1 ); 58 #ifdef DEBUG 59 DELETE1_SIGNAL (out_INSERT_NUM_REG_RB_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 60 #endif 61 DELETE1_SIGNAL (out_INSERT_NUM_REG_RB_PHY ,_param->_nb_inst_insert,_param->_size_general_register ); 62 DELETE1_SIGNAL (out_INSERT_READ_RC ,_param->_nb_inst_insert,1 ); 63 #ifdef DEBUG 64 DELETE1_SIGNAL (out_INSERT_NUM_REG_RC_LOG ,_param->_nb_inst_insert,_param->_size_special_register_logic); 65 #endif 66 DELETE1_SIGNAL (out_INSERT_NUM_REG_RC_PHY ,_param->_nb_inst_insert,_param->_size_special_register ); 67 DELETE1_SIGNAL (out_INSERT_WRITE_RD ,_param->_nb_inst_insert,1 ); 68 DELETE1_SIGNAL (out_INSERT_NUM_REG_RD_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 69 DELETE1_SIGNAL (out_INSERT_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert,_param->_size_general_register ); 70 DELETE1_SIGNAL (out_INSERT_NUM_REG_RD_PHY_NEW,_param->_nb_inst_insert,_param->_size_general_register ); 71 DELETE1_SIGNAL (out_INSERT_WRITE_RE ,_param->_nb_inst_insert,1 ); 72 DELETE1_SIGNAL (out_INSERT_NUM_REG_RE_LOG ,_param->_nb_inst_insert,_param->_size_special_register_logic); 73 DELETE1_SIGNAL (out_INSERT_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert,_param->_size_special_register ); 74 DELETE1_SIGNAL (out_INSERT_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert,_param->_size_special_register ); 75 76 DELETE1_SIGNAL ( in_RETIRE_VAL ,_param->_nb_inst_retire,1); 77 DELETE1_SIGNAL (out_RETIRE_ACK ,_param->_nb_inst_retire,1); 78 DELETE1_SIGNAL ( in_RETIRE_FRONT_END_ID ,_param->_nb_inst_retire,_param->_size_front_end_id ); 79 DELETE1_SIGNAL ( in_RETIRE_CONTEXT_ID ,_param->_nb_inst_retire,_param->_size_context_id ); 80 // DELETE1_SIGNAL ( in_RETIRE_READ_RA ,_param->_nb_inst_retire,1 ); 81 // DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RA_PHY ,_param->_nb_inst_retire,_param->_size_general_register ); 82 // DELETE1_SIGNAL ( in_RETIRE_READ_RB ,_param->_nb_inst_retire,1 ); 83 // DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RB_PHY ,_param->_nb_inst_retire,_param->_size_general_register ); 84 // DELETE1_SIGNAL ( in_RETIRE_READ_RC ,_param->_nb_inst_retire,1 ); 85 // DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RC_PHY ,_param->_nb_inst_retire,_param->_size_special_register ); 86 DELETE1_SIGNAL ( in_RETIRE_WRITE_RD ,_param->_nb_inst_retire,1 ); 87 DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RD_LOG ,_param->_nb_inst_retire,_param->_size_general_register_logic); 88 DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RD_PHY_OLD,_param->_nb_inst_retire,_param->_size_general_register ); 89 DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire,_param->_size_general_register ); 90 DELETE1_SIGNAL ( in_RETIRE_WRITE_RE ,_param->_nb_inst_retire,1 ); 91 DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RE_LOG ,_param->_nb_inst_retire,_param->_size_special_register_logic); 92 DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RE_PHY_OLD,_param->_nb_inst_retire,_param->_size_special_register ); 93 DELETE1_SIGNAL ( in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire,_param->_size_special_register ); 94 DELETE1_SIGNAL ( in_RETIRE_RESTORE ,_param->_nb_inst_retire,1); 95 DELETE1_SIGNAL ( in_RETIRE_RESTORE_RD_PHY_OLD ,_param->_nb_inst_retire,1); 96 DELETE1_SIGNAL ( in_RETIRE_RESTORE_RE_PHY_OLD ,_param->_nb_inst_retire,1); 45 97 46 DELETE1_SIGNAL(out_INSERT_VAL ,_param->_nb_inst_insert,1); 47 DELETE1_SIGNAL( in_INSERT_ACK ,_param->_nb_inst_insert,1); 48 // DELETE1_SIGNAL(out_INSERT_FRONT_END_ID ,_param->_nb_inst_insert,_param->_size_front_end_id ); 49 // DELETE1_SIGNAL(out_INSERT_CONTEXT_ID ,_param->_nb_inst_insert,_param->_size_context_id ); 50 DELETE1_SIGNAL(out_INSERT_READ_RA ,_param->_nb_inst_insert,1 ); 51 #ifdef DEBUG 52 DELETE1_SIGNAL(out_INSERT_NUM_REG_RA_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 53 #endif 54 DELETE1_SIGNAL(out_INSERT_NUM_REG_RA_PHY ,_param->_nb_inst_insert,_param->_size_general_register ); 55 DELETE1_SIGNAL(out_INSERT_READ_RB ,_param->_nb_inst_insert,1 ); 56 #ifdef DEBUG 57 DELETE1_SIGNAL(out_INSERT_NUM_REG_RB_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 58 #endif 59 DELETE1_SIGNAL(out_INSERT_NUM_REG_RB_PHY ,_param->_nb_inst_insert,_param->_size_general_register ); 60 DELETE1_SIGNAL(out_INSERT_READ_RC ,_param->_nb_inst_insert,1 ); 61 #ifdef DEBUG 62 DELETE1_SIGNAL(out_INSERT_NUM_REG_RC_LOG ,_param->_nb_inst_insert,_param->_size_special_register_logic); 63 #endif 64 DELETE1_SIGNAL(out_INSERT_NUM_REG_RC_PHY ,_param->_nb_inst_insert,_param->_size_special_register ); 65 DELETE1_SIGNAL(out_INSERT_WRITE_RD ,_param->_nb_inst_insert,1 ); 66 DELETE1_SIGNAL(out_INSERT_NUM_REG_RD_LOG ,_param->_nb_inst_insert,_param->_size_general_register_logic); 67 DELETE1_SIGNAL(out_INSERT_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert,_param->_size_general_register ); 68 DELETE1_SIGNAL(out_INSERT_NUM_REG_RD_PHY_NEW,_param->_nb_inst_insert,_param->_size_general_register ); 69 DELETE1_SIGNAL(out_INSERT_WRITE_RE ,_param->_nb_inst_insert,1 ); 70 DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_LOG ,_param->_nb_inst_insert,_param->_size_special_register_logic); 71 DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert,_param->_size_special_register ); 72 DELETE1_SIGNAL(out_INSERT_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert,_param->_size_special_register ); 73 74 DELETE1_SIGNAL( in_RETIRE_VAL ,_param->_nb_inst_retire,1); 75 DELETE1_SIGNAL(out_RETIRE_ACK ,_param->_nb_inst_retire,1); 76 DELETE1_SIGNAL( in_RETIRE_FRONT_END_ID ,_param->_nb_inst_retire,_param->_size_front_end_id ); 77 DELETE1_SIGNAL( in_RETIRE_CONTEXT_ID ,_param->_nb_inst_retire,_param->_size_context_id ); 78 // DELETE1_SIGNAL( in_RETIRE_READ_RA ,_param->_nb_inst_retire,1 ); 79 // DELETE1_SIGNAL( in_RETIRE_NUM_REG_RA_PHY ,_param->_nb_inst_retire,_param->_size_general_register ); 80 // DELETE1_SIGNAL( in_RETIRE_READ_RB ,_param->_nb_inst_retire,1 ); 81 // DELETE1_SIGNAL( in_RETIRE_NUM_REG_RB_PHY ,_param->_nb_inst_retire,_param->_size_general_register ); 82 // DELETE1_SIGNAL( in_RETIRE_READ_RC ,_param->_nb_inst_retire,1 ); 83 // DELETE1_SIGNAL( in_RETIRE_NUM_REG_RC_PHY ,_param->_nb_inst_retire,_param->_size_special_register ); 84 DELETE1_SIGNAL( in_RETIRE_WRITE_RD ,_param->_nb_inst_retire,1 ); 85 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_LOG ,_param->_nb_inst_retire,_param->_size_general_register_logic); 86 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_OLD,_param->_nb_inst_retire,_param->_size_general_register ); 87 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RD_PHY_NEW,_param->_nb_inst_retire,_param->_size_general_register ); 88 DELETE1_SIGNAL( in_RETIRE_WRITE_RE ,_param->_nb_inst_retire,1 ); 89 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_LOG ,_param->_nb_inst_retire,_param->_size_special_register_logic); 90 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_OLD,_param->_nb_inst_retire,_param->_size_special_register ); 91 DELETE1_SIGNAL( in_RETIRE_NUM_REG_RE_PHY_NEW,_param->_nb_inst_retire,_param->_size_special_register ); 92 93 DELETE2_SIGNAL( in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1],1); 94 DELETE2_SIGNAL(out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1],1); 95 DELETE2_SIGNAL( in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state); 98 DELETE2_SIGNAL ( in_RETIRE_EVENT_VAL ,_param->_nb_front_end, _param->_nb_context[it1],1); 99 DELETE2_SIGNAL (out_RETIRE_EVENT_ACK ,_param->_nb_front_end, _param->_nb_context[it1],1); 100 DELETE2_SIGNAL ( in_RETIRE_EVENT_STATE ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_state); 101 DELETE2_SIGNAL_COND( in_RETIRE_EVENT_TYPE ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_event_type,_param->_rat_scheme == RAT_DEPTH_SAVE); 102 DELETE2_SIGNAL_COND( in_RETIRE_EVENT_DEPTH ,_param->_nb_front_end, _param->_nb_context[it1],_param->_size_depth ,_param->_rat_scheme == RAT_DEPTH_SAVE); 96 103 97 104 #ifdef DEBUG_TEST 98 DELETE0_SIGNAL ( in_INFO_ROB_EMPTY ,1);105 DELETE0_SIGNAL ( in_INFO_ROB_EMPTY ,1); 99 106 #endif 100 107 }
Note: See TracChangeset
for help on using the changeset viewer.