Changeset 106 for 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_transition.cpp
- Timestamp:
- Feb 9, 2009, 11:55:26 PM (15 years ago)
- File:
-
- 1 edited
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/src/Register_Address_Translation_unit_transition.cpp
r104 r106 64 64 Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_RENAME_FRONT_END_ID [i]):0; 65 65 Tcontext_t context_id = (_param->_have_port_context_id )?PORT_READ(in_RENAME_CONTEXT_ID [i]):0; 66 67 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end : %d",front_end_id); 68 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * context : %d",context_id); 66 69 67 70 // Test if write 71 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * write_rd : %d",PORT_READ(in_INSERT_WRITE_RD [i])); 68 72 if (PORT_READ(in_INSERT_WRITE_RD [i]) == 1) 69 rat_gpr[front_end_id][context_id][PORT_READ(in_INSERT_NUM_REG_RD_LOG [i])] = PORT_READ(in_INSERT_NUM_REG_RD_PHY [i]); 73 { 74 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * num_reg_rd_phy : %d",PORT_READ(in_INSERT_NUM_REG_RD_PHY [i])); 75 rat_gpr[front_end_id][context_id][PORT_READ(in_INSERT_NUM_REG_RD_LOG [i])] = PORT_READ(in_INSERT_NUM_REG_RD_PHY [i]); 76 } 77 78 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * write_re : %d",PORT_READ(in_INSERT_WRITE_RE [i])); 70 79 if (PORT_READ(in_INSERT_WRITE_RE [i]) == 1) 71 rat_spr[front_end_id][context_id][PORT_READ(in_INSERT_NUM_REG_RE_LOG [i])] = PORT_READ(in_INSERT_NUM_REG_RE_PHY [i]); 80 { 81 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * num_reg_re_phy : %d",PORT_READ(in_INSERT_NUM_REG_RE_PHY [i])); 82 rat_spr[front_end_id][context_id][PORT_READ(in_INSERT_NUM_REG_RE_LOG [i])] = PORT_READ(in_INSERT_NUM_REG_RE_PHY [i]); 83 } 72 84 } 73 85 … … 109 121 Tevent_state_t event_state = PORT_READ(in_RETIRE_EVENT_STATE [front_end_id][context_id]); 110 122 123 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end_id : %d",front_end_id); 124 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * context_id : %d",context_id); 125 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * event_state : %d",event_state); 126 111 127 if (event_state != EVENT_STATE_NO_EVENT) 112 128 { 113 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end_id : %d",front_end_id);114 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * context_id : %d",context_id);115 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * event_state : %d",event_state);116 117 129 // Test if write and have not a previous update 118 130 if (PORT_READ(in_RETIRE_WRITE_RD [i]) == 1) … … 150 162 151 163 #if (DEBUG >= DEBUG_TRACE) and (DEBUG_Register_Address_Translation_unit == true) 152 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * Dump RAT (Register_Address_Translation_unit)"); 153 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 154 for (uint32_t j=0; j<_param->_nb_context[i]; ++j) 155 { 156 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end[%d].context[%d]",i,j); 157 158 for (uint32_t k=0; k<_param->_nb_general_register_logic; ++k) 159 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * GPR[%.4d] - %.5d %.1d",k,rat_gpr[i][j][k],rat_gpr_update_table[i][j][k]); 160 161 for (uint32_t k=0; k<_param->_nb_special_register_logic; ++k) 162 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * SPR[%.4d] - %.5d %.1d",k,rat_spr[i][j][k],rat_spr_update_table[i][j][k]); 163 } 164 { 165 uint32_t limit = 4; 166 167 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * Dump RAT (Register_Address_Translation_unit)"); 168 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 169 for (uint32_t j=0; j<_param->_nb_context[i]; ++j) 170 { 171 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * front_end[%d].context[%d]",i,j); 172 173 for (uint32_t k=0; k<_param->_nb_general_register_logic; k+=limit) 174 { 175 std::string str = ""; 176 for (uint32_t x=0; x<limit; x++) 177 { 178 uint32_t index = k+x; 179 if (index >= _param->_nb_general_register_logic) 180 break; 181 else 182 str+=toString("GPR[%.4d] - %.5d %.1d | ",index,rat_gpr[i][j][index],rat_gpr_update_table[i][j][index]); 183 } 184 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * %s",str.c_str()); 185 } 186 187 for (uint32_t k=0; k<_param->_nb_special_register_logic; k+=limit) 188 { 189 std::string str = ""; 190 191 for (uint32_t x=0; x<limit; x++) 192 { 193 uint32_t index = k+x; 194 if (index >= _param->_nb_special_register_logic) 195 break; 196 else 197 str+=toString("SPR[%.4d] - %.5d %.1d | ",index,rat_spr[i][j][index],rat_spr_update_table[i][j][index]); 198 } 199 log_printf(TRACE,Register_Address_Translation_unit,FUNCTION," * %s",str.c_str()); 200 } 201 } 202 } 203 #endif 204 205 #ifdef DEBUG_TEST 206 if (1) 207 { 208 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 209 for (uint32_t j=0; j<_param->_nb_context[i]; ++j) 210 { 211 for (uint32_t x=0; x<_param->_nb_general_register_logic; ++x) 212 for (uint32_t y=x+1; y<_param->_nb_general_register_logic; ++y) 213 if (rat_gpr[i][j][x] == rat_gpr[i][j][y]) 214 throw ERRORMORPHEO (FUNCTION,toString(_("In RAT, rat_gpr[%d][%d][%d] == rat_gpr[%d][%d][%d] == %d"),i,j,x,i,j,y,rat_gpr[i][j][x])); 215 for (uint32_t x=0; x<_param->_nb_special_register_logic; ++x) 216 for (uint32_t y=x+1; y<_param->_nb_special_register_logic; ++y) 217 if (rat_spr[i][j][x] == rat_spr[i][j][y]) 218 throw ERRORMORPHEO (FUNCTION,toString(_("In RAT, rat_spr[%d][%d][%d] == rat_spr[%d][%d][%d] == %d"),i,j,x,i,j,y,rat_spr[i][j][x])); 219 } 220 221 } 164 222 #endif 165 223
Note: See TracChangeset
for help on using the changeset viewer.