Changeset 123 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_genMealy.cpp
- Timestamp:
- Jun 8, 2009, 10:43:30 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/Rename_select/src/Rename_select_genMealy.cpp
r122 r123 17 17 namespace rename_select { 18 18 19 // #define CONTINUE_ON_EVENT_STOP20 21 19 #undef FUNCTION 22 20 #define FUNCTION "Rename_select::genMealy" … … 28 26 Tcontrol_t val [_param->_nb_inst_rename]; 29 27 Tcontrol_t ack [_param->_nb_front_end][_param->_max_nb_inst_decod]; 30 Tcontrol_t previous_transaction [_param->_nb_front_end];31 28 32 29 for (uint32_t i=0; i<_param->_nb_inst_rename; ++i) 33 30 val [i] = false; 34 31 for (uint32_t i=0; i<_param->_nb_front_end; i++) 32 for (uint32_t j=0; j<_param->_nb_inst_decod[i]; j++) 33 ack [i][j] = false; 34 35 if (PORT_READ(in_NRESET)) 35 36 { 36 previous_transaction [i] = true; 37 for (uint32_t j=0; j<_param->_nb_inst_decod[i]; j++) 38 ack [i][j] = false; 39 } 37 Tcontrol_t previous_transaction [_param->_nb_front_end]; 38 for (uint32_t i=0; i<_param->_nb_front_end; i++) 39 previous_transaction [i] = true; 40 40 41 41 std::list<generic::priority::select_t> * select = _priority->select(); … … 71 71 72 72 // Test if ROB is Flushed 73 #ifndef CONTINUE_ON_EVENT_STOP74 73 if (not stop) 75 #endif76 74 { 77 75 // Find !!! … … 79 77 ack [x][y] = PORT_READ(in_RENAME_OUT_ACK [i]); 80 78 81 Tcontrol_t have_event = (PORT_READ(in_RETIRE_EVENT_FLUSH [x][context_id]) 82 #ifdef CONTINUE_ON_EVENT_STOP 83 or stop 84 #endif 85 );86 Tcontrol_t can_register_access = not have_event;87 Tcontrol_t no_execute = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y]) or have_event);88 Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA[x][y]) and can_register_access);89 Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB[x][y]) and can_register_access);90 Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC[x][y]) and can_register_access);91 Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD[x][y]) and can_register_access);92 Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y]) and can_register_access);93 //Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA [x][y]));94 //Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB [x][y]));95 //Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC [x][y]));96 //Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD [x][y]));97 //Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y]));79 // Tcontrol_t have_event = (PORT_READ(in_RETIRE_EVENT_FLUSH [x][context_id]) // or 80 // ); 81 // log_printf(TRACE,Rename_select,FUNCTION," * have_event : %d",have_event); 82 83 // Tcontrol_t can_register_access = not have_event; 84 // Tcontrol_t no_execute = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y]) or have_event); 85 // Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA [x][y]) and can_register_access); 86 // Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB [x][y]) and can_register_access); 87 // Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC [x][y]) and can_register_access); 88 // Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD [x][y]) and can_register_access); 89 // Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y]) and can_register_access); 90 Tcontrol_t no_execute = (PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y])); 91 Tcontrol_t read_ra = (PORT_READ(in_RENAME_IN_READ_RA [x][y])); 92 Tcontrol_t read_rb = (PORT_READ(in_RENAME_IN_READ_RB [x][y])); 93 Tcontrol_t read_rc = (PORT_READ(in_RENAME_IN_READ_RC [x][y])); 94 Tcontrol_t write_rd = (PORT_READ(in_RENAME_IN_WRITE_RD [x][y])); 95 Tcontrol_t write_re = (PORT_READ(in_RENAME_IN_WRITE_RE [x][y])); 98 96 99 log_printf(TRACE,Rename_select,FUNCTION," * have_event : %d",have_event); 100 log_printf(TRACE,Rename_select,FUNCTION," * no_execute (before) : %d",PORT_READ(in_RENAME_IN_NO_EXECUTE [x][y])); 101 log_printf(TRACE,Rename_select,FUNCTION," * no_execute (after) : %d",no_execute); 97 log_printf(TRACE,Rename_select,FUNCTION," * no_execute : %d",no_execute); 102 98 103 99 if (_param->_have_port_front_end_id) … … 110 106 PORT_WRITE(out_RENAME_OUT_OPERATION [i],PORT_READ(in_RENAME_IN_OPERATION [x][y])); 111 107 PORT_WRITE(out_RENAME_OUT_NO_EXECUTE [i],no_execute); 108 PORT_WRITE(out_RENAME_OUT_LAST_EVENT [i],PORT_READ(in_RENAME_IN_LAST_EVENT [x][y])); 112 109 PORT_WRITE(out_RENAME_OUT_IS_DELAY_SLOT[i],PORT_READ(in_RENAME_IN_IS_DELAY_SLOT [x][y])); 113 110 #ifdef DEBUG … … 140 137 } 141 138 139 } 140 // else 141 // { 142 // } 143 142 144 for (uint32_t i=0; i<_param->_nb_inst_rename; ++i) 143 145 PORT_WRITE(out_RENAME_OUT_VAL [i], val [i]); … … 146 148 for (uint32_t j=0; j<_param->_nb_inst_decod[i]; j++) 147 149 PORT_WRITE(out_RENAME_IN_ACK [i][j], ack [i][j]); 150 148 151 149 152 log_end(Rename_select,FUNCTION);
Note: See TracChangeset
for help on using the changeset viewer.