Changeset 76 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit
- Timestamp:
- Feb 2, 2008, 12:39:01 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit
- Files:
-
- 42 added
- 29 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config0.cfg
r66 r76 13 13 4 4 *2 # nb_gpr_write 14 14 2 2 *2 # nb_spr_write 15 4 4 *2 # size_store_queue 16 4 4 *2 # size_load_queue -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config1.cfg
r68 r76 13 13 2 4 *2 # nb_gpr_write 14 14 2 4 *2 # nb_spr_write 15 4 4 *2 # size_store_queue 16 4 4 *2 # size_load_queue -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config2.cfg
r68 r76 13 13 1 1 *2 # nb_gpr_write 14 14 1 1 *2 # nb_spr_write 15 4 4 *2 # size_store_queue 16 4 4 *2 # size_load_queue -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/config_min.cfg
r68 r76 13 13 1 1 *2 # nb_gpr_write 14 14 1 1 *2 # nb_spr_write 15 4 4 *2 # size_store_queue 16 4 4 *2 # size_load_queue -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/main.cpp
r66 r76 8 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/include/test.h" 9 9 10 #define NB_PARAMS 1 310 #define NB_PARAMS 15 11 11 12 12 void usage (int argc, char * argv[]) … … 27 27 << " - nb_gpr_write (unsigned int)" << endl 28 28 << " - nb_spr_write (unsigned int)" << endl 29 << " - size_store_queue (unsigned int)" << endl 30 << " - size_load_queue (unsigned int)" << endl 29 31 << "" << endl; 30 32 … … 60 62 const uint32_t nb_gpr_write = atoi(argv[x++]); 61 63 const uint32_t nb_spr_write = atoi(argv[x++]); 64 const uint32_t size_store_queue = atoi(argv[x++]); 65 const uint32_t size_load_queue = atoi(argv[x++]); 62 66 63 67 try … … 77 81 ,nb_gpr_write 78 82 ,nb_spr_write 83 ,size_store_queue 84 ,size_load_queue 79 85 ); 80 86 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/src/test.cpp
r68 r76 75 75 sc_signal<Toperation_t > * READ_QUEUE_IN_OPERATION = new sc_signal<Toperation_t > ("READ_QUEUE_IN_OPERATION "); 76 76 sc_signal<Ttype_t > * READ_QUEUE_IN_TYPE = new sc_signal<Ttype_t > ("READ_QUEUE_IN_TYPE "); 77 sc_signal<Tlsq_ptr_t > * READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t> ("READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE"); 78 sc_signal<Tlsq_ptr_t > * READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t> ("READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE "); 77 79 sc_signal<Tcontrol_t > * READ_QUEUE_IN_HAS_IMMEDIAT = new sc_signal<Tcontrol_t > ("READ_QUEUE_IN_HAS_IMMEDIAT"); 78 80 sc_signal<Tgeneral_data_t > * READ_QUEUE_IN_IMMEDIAT = new sc_signal<Tgeneral_data_t > ("READ_QUEUE_IN_IMMEDIAT "); … … 98 100 sc_signal<Toperation_t > * READ_QUEUE_OUT_OPERATION = new sc_signal<Toperation_t > ("READ_QUEUE_OUT_OPERATION "); 99 101 sc_signal<Ttype_t > * READ_QUEUE_OUT_TYPE = new sc_signal<Ttype_t > ("READ_QUEUE_OUT_TYPE "); 102 sc_signal<Tlsq_ptr_t > * READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t> ("READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE"); 103 sc_signal<Tlsq_ptr_t > * READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t> ("READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE "); 100 104 sc_signal<Tcontrol_t > * READ_QUEUE_OUT_HAS_IMMEDIAT= new sc_signal<Tcontrol_t > ("READ_QUEUE_OUT_HAS_IMMEDIAT"); 101 105 sc_signal<Tgeneral_data_t > * READ_QUEUE_OUT_IMMEDIAT = new sc_signal<Tgeneral_data_t > ("READ_QUEUE_OUT_IMMEDIAT "); … … 226 230 (*(_Read_queue-> in_READ_QUEUE_IN_OPERATION )) (*(READ_QUEUE_IN_OPERATION )); 227 231 (*(_Read_queue-> in_READ_QUEUE_IN_TYPE )) (*(READ_QUEUE_IN_TYPE )); 232 (*(_Read_queue-> in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE)) (*(READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE)); 233 (*(_Read_queue-> in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE )) (*(READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE )); 228 234 (*(_Read_queue-> in_READ_QUEUE_IN_HAS_IMMEDIAT )) (*(READ_QUEUE_IN_HAS_IMMEDIAT )); 229 235 (*(_Read_queue-> in_READ_QUEUE_IN_IMMEDIAT )) (*(READ_QUEUE_IN_IMMEDIAT )); … … 251 257 (*(_Read_queue->out_READ_QUEUE_OUT_OPERATION )) (*(READ_QUEUE_OUT_OPERATION )); 252 258 (*(_Read_queue->out_READ_QUEUE_OUT_TYPE )) (*(READ_QUEUE_OUT_TYPE )); 259 (*(_Read_queue->out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE)) (*(READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE)); 260 (*(_Read_queue->out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE )) (*(READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE )); 253 261 (*(_Read_queue->out_READ_QUEUE_OUT_HAS_IMMEDIAT )) (*(READ_QUEUE_OUT_HAS_IMMEDIAT )); 254 262 (*(_Read_queue->out_READ_QUEUE_OUT_IMMEDIAT )) (*(READ_QUEUE_OUT_IMMEDIAT )); 255 (*(_Read_queue->out_READ_QUEUE_OUT_READ_RA )) (*(READ_QUEUE_OUT_READ_RA ));263 // (*(_Read_queue->out_READ_QUEUE_OUT_READ_RA )) (*(READ_QUEUE_OUT_READ_RA )); 256 264 (*(_Read_queue->out_READ_QUEUE_OUT_NUM_REG_RA )) (*(READ_QUEUE_OUT_NUM_REG_RA )); 257 265 (*(_Read_queue->out_READ_QUEUE_OUT_DATA_RA_VAL )) (*(READ_QUEUE_OUT_DATA_RA_VAL )); 258 266 (*(_Read_queue->out_READ_QUEUE_OUT_DATA_RA )) (*(READ_QUEUE_OUT_DATA_RA )); 259 (*(_Read_queue->out_READ_QUEUE_OUT_READ_RB )) (*(READ_QUEUE_OUT_READ_RB ));267 // (*(_Read_queue->out_READ_QUEUE_OUT_READ_RB )) (*(READ_QUEUE_OUT_READ_RB )); 260 268 (*(_Read_queue->out_READ_QUEUE_OUT_NUM_REG_RB )) (*(READ_QUEUE_OUT_NUM_REG_RB )); 261 269 (*(_Read_queue->out_READ_QUEUE_OUT_DATA_RB_VAL )) (*(READ_QUEUE_OUT_DATA_RB_VAL )); 262 270 (*(_Read_queue->out_READ_QUEUE_OUT_DATA_RB )) (*(READ_QUEUE_OUT_DATA_RB )); 263 (*(_Read_queue->out_READ_QUEUE_OUT_READ_RC )) (*(READ_QUEUE_OUT_READ_RC ));271 // (*(_Read_queue->out_READ_QUEUE_OUT_READ_RC )) (*(READ_QUEUE_OUT_READ_RC )); 264 272 (*(_Read_queue->out_READ_QUEUE_OUT_NUM_REG_RC )) (*(READ_QUEUE_OUT_NUM_REG_RC )); 265 273 (*(_Read_queue->out_READ_QUEUE_OUT_DATA_RC_VAL )) (*(READ_QUEUE_OUT_DATA_RC_VAL )); … … 408 416 READ_QUEUE_IN_OPERATION ->write(0); 409 417 READ_QUEUE_IN_TYPE ->write(0); 418 READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE->write(0); 419 READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ->write(0); 410 420 READ_QUEUE_IN_HAS_IMMEDIAT->write(0); 411 421 READ_QUEUE_IN_IMMEDIAT ->write(0); … … 535 545 TEST(Tcontext_t ,READ_QUEUE_OUT_FRONT_END_ID ->read(),(3*ctxt)%_param->_nb_front_end); 536 546 537 TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RA ->read(),_read_ra [rob_id]);547 // TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RA ->read(),_read_ra [rob_id]); 538 548 TEST(Tgeneral_address_t,READ_QUEUE_OUT_NUM_REG_RA ->read(),_num_reg_ra [rob_id]); 539 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RA_VAL->read(),not READ_QUEUE_OUT_READ_RA->read()or _gpr_val [_num_reg_ra[rob_id]][ctxt]);540 if ( READ_QUEUE_OUT_READ_RA ->read()and549 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RA_VAL->read(),not _read_ra [rob_id] or _gpr_val [_num_reg_ra[rob_id]][ctxt]); 550 if (_read_ra [rob_id] and 541 551 READ_QUEUE_OUT_DATA_RA_VAL->read()) 542 552 TEST(Tgeneral_data_t ,READ_QUEUE_OUT_DATA_RA ->read(),_gpr [_num_reg_ra[rob_id]][ctxt]); 543 TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RB ->read(),_read_rb [rob_id]);553 // TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RB ->read(),_read_rb [rob_id]); 544 554 TEST(Tgeneral_address_t,READ_QUEUE_OUT_NUM_REG_RB ->read(),_num_reg_rb [rob_id]); 545 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RB_VAL->read(),not READ_QUEUE_OUT_READ_RB->read()or _gpr_val [_num_reg_rb[rob_id]][ctxt]);546 if ( READ_QUEUE_OUT_READ_RB ->read()and555 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RB_VAL->read(),not _read_rb [rob_id] or _gpr_val [_num_reg_rb[rob_id]][ctxt]); 556 if (_read_rb [rob_id] and 547 557 READ_QUEUE_OUT_DATA_RB_VAL->read()) 548 558 TEST(Tgeneral_data_t ,READ_QUEUE_OUT_DATA_RB ->read(),_gpr [_num_reg_rb[rob_id]][ctxt]); 549 TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RC ->read(),_read_rc [rob_id]);559 // TEST(Tcontrol_t ,READ_QUEUE_OUT_READ_RC ->read(),_read_rc [rob_id]); 550 560 TEST(Tspecial_address_t,READ_QUEUE_OUT_NUM_REG_RC ->read(),_num_reg_rc [rob_id]); 551 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RC_VAL->read(),not READ_QUEUE_OUT_READ_RC->read()or _spr_val [_num_reg_rc[rob_id]][ctxt]);552 if ( READ_QUEUE_OUT_READ_RC ->read()and561 TEST(Tcontrol_t ,READ_QUEUE_OUT_DATA_RC_VAL->read(),not _read_rc [rob_id] or _spr_val [_num_reg_rc[rob_id]][ctxt]); 562 if (_read_rc [rob_id] and 553 563 READ_QUEUE_OUT_DATA_RC_VAL->read()) 554 564 TEST(Tspecial_data_t ,READ_QUEUE_OUT_DATA_RC ->read(),_spr [_num_reg_rc[rob_id]][ctxt]); … … 581 591 delete READ_QUEUE_IN_OPERATION ; 582 592 delete READ_QUEUE_IN_TYPE ; 593 delete READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE; 594 delete READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ; 583 595 delete READ_QUEUE_IN_HAS_IMMEDIAT ; 584 596 delete READ_QUEUE_IN_IMMEDIAT ; … … 606 618 delete READ_QUEUE_OUT_OPERATION ; 607 619 delete READ_QUEUE_OUT_TYPE ; 620 delete READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE; 621 delete READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ; 608 622 delete READ_QUEUE_OUT_HAS_IMMEDIAT; 609 623 delete READ_QUEUE_OUT_IMMEDIAT ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Parameters.h
r75 r76 41 41 public : const uint32_t _nb_gpr_write ; 42 42 public : const uint32_t _nb_spr_write ; 43 public : const uint32_t _size_store_queue ; 44 public : const uint32_t _size_load_queue ; 43 45 44 46 public : const uint32_t _nb_gpr_read ; … … 73 75 uint32_t nb_type , 74 76 uint32_t nb_gpr_write , 75 uint32_t nb_spr_write ); 77 uint32_t nb_spr_write , 78 uint32_t size_store_queue , 79 uint32_t size_load_queue ); 80 76 81 public : Parameters (Parameters & param) ; 77 82 public : ~Parameters () ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h
r75 r76 5 5 * $Id$ 6 6 * 7 * [ 7 * [ Description ] 8 8 * 9 9 */ … … 45 45 public : Toperation_t _operation ; 46 46 public : Ttype_t _type ; 47 public : Tlsq_ptr_t _store_queue_ptr_write; 48 public : Tlsq_ptr_t _load_queue_ptr_write; 47 49 public : Tcontrol_t _has_immediat ; 48 50 public : Tgeneral_data_t _immediat ; … … 61 63 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_entry_t & x) 62 64 { 63 output_stream << " * _context_id : " << toString(x._context_id ) << std::endl 64 << " * _front_end_id : " << toString(x._front_end_id ) << std::endl 65 << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << std::endl 66 << " * _rob_id : " << toString(x._rob_id ) << std::endl 67 << " * _operation : " << toString(x._operation ) << std::endl 68 << " * _type : " << toString(x._type ) << std::endl 69 << " * _has_immediat : " << toString(x._has_immediat ) << std::endl 70 << " * _immediat : " << toString(x._immediat ) << std::endl 71 << " * _read_ra : " << toString(x._read_ra ) << std::endl 72 << " * _num_reg_ra : " << toString(x._num_reg_ra ) << std::endl 73 << " * _read_rb : " << toString(x._read_rb ) << std::endl 74 << " * _num_reg_rb : " << toString(x._num_reg_rb ) << std::endl 75 << " * _read_rc : " << toString(x._read_rc ) << std::endl 76 << " * _num_reg_rc : " << toString(x._num_reg_rc ) << std::endl 77 << " * _write_rd : " << toString(x._write_rd ) << std::endl 78 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << std::endl 79 << " * _write_re : " << toString(x._write_re ) << std::endl 80 << " * _num_reg_re : " << toString(x._num_reg_re ) << std::endl; 65 output_stream << " * _context_id : " << toString(x._context_id ) << std::endl 66 << " * _front_end_id : " << toString(x._front_end_id ) << std::endl 67 << " * _ooo_engine_id : " << toString(x._ooo_engine_id) << std::endl 68 << " * _rob_id : " << toString(x._rob_id ) << std::endl 69 << " * _operation : " << toString(x._operation ) << std::endl 70 << " * _type : " << toString(x._type ) << std::endl 71 << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl 72 << " * _load_queue_ptr_write : " << toString(x._load_queue_ptr_write ) << std::endl 73 << " * _has_immediat : " << toString(x._has_immediat ) << std::endl 74 << " * _immediat : " << toString(x._immediat ) << std::endl 75 << " * _read_ra : " << toString(x._read_ra ) << std::endl 76 << " * _num_reg_ra : " << toString(x._num_reg_ra ) << std::endl 77 << " * _read_rb : " << toString(x._read_rb ) << std::endl 78 << " * _num_reg_rb : " << toString(x._num_reg_rb ) << std::endl 79 << " * _read_rc : " << toString(x._read_rc ) << std::endl 80 << " * _num_reg_rc : " << toString(x._num_reg_rc ) << std::endl 81 << " * _write_rd : " << toString(x._write_rd ) << std::endl 82 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << std::endl 83 << " * _write_re : " << toString(x._write_re ) << std::endl 84 << " * _num_reg_re : " << toString(x._num_reg_re ) << std::endl; 81 85 82 86 return output_stream; … … 93 97 public : Toperation_t _operation ; 94 98 public : Ttype_t _type ; 99 public : Tlsq_ptr_t _store_queue_ptr_write; 100 public : Tlsq_ptr_t _load_queue_ptr_write; 95 101 public : Tcontrol_t _has_immediat ; 96 102 public : Tgeneral_data_t _immediat ; … … 127 133 _operation = x._operation ; 128 134 _type = x._type ; 135 _store_queue_ptr_write = x._store_queue_ptr_write; 136 _load_queue_ptr_write = x._load_queue_ptr_write ; 129 137 _has_immediat = x._has_immediat ; 130 138 _immediat = x._immediat ; … … 157 165 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Tread_queue_head_entry_t & x) 158 166 { 159 output_stream << " * _context_id : " << x._context_id << std::endl 160 << " * _front_end_id : " << x._front_end_id << std::endl 161 << " * _ooo_engine_id : " << x._ooo_engine_id<< std::endl 162 << " * _rob_id : " << x._rob_id << std::endl 163 << " * _operation : " << x._operation << std::endl 164 << " * _type : " << x._type << std::endl 165 << " * _has_immediat : " << x._has_immediat << std::endl 166 << " * _immediat : " << x._immediat << std::endl 167 << " * _read_ra : " << x._read_ra << std::endl 168 << " * _read_ra_val : " << x._read_ra_val << std::endl 169 << " * _num_reg_ra : " << x._num_reg_ra << std::endl 170 << " * _data_ra_val : " << x._data_ra_val << std::endl 171 << " * _data_ra : " << x._data_ra << std::endl 172 << " * _read_rb : " << x._read_rb << std::endl 173 << " * _read_rb_val : " << x._read_rb_val << std::endl 174 << " * _num_reg_rb : " << x._num_reg_rb << std::endl 175 << " * _data_rb_val : " << x._data_rb_val << std::endl 176 << " * _data_rb : " << x._data_rb << std::endl 177 << " * _read_rc : " << x._read_rc << std::endl 178 << " * _read_rc_val : " << x._read_rc_val << std::endl 179 << " * _num_reg_rc : " << x._num_reg_rc << std::endl 180 << " * _data_rc_val : " << x._data_rc_val << std::endl 181 << " * _data_rc : " << x._data_rc << std::endl 182 << " * _write_rd : " << x._write_rd << std::endl 183 << " * _num_reg_rd : " << x._num_reg_rd << std::endl 184 << " * _write_re : " << x._write_re << std::endl 185 << " * _num_reg_re : " << x._num_reg_re << std::endl; 167 output_stream << " * _context_id : " << x._context_id << std::endl 168 << " * _front_end_id : " << x._front_end_id << std::endl 169 << " * _ooo_engine_id : " << x._ooo_engine_id<< std::endl 170 << " * _rob_id : " << x._rob_id << std::endl 171 << " * _operation : " << x._operation << std::endl 172 << " * _type : " << x._type << std::endl 173 << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl 174 << " * _load_queue_ptr_write : " << toString(x._load_queue_ptr_write ) << std::endl 175 << " * _has_immediat : " << x._has_immediat << std::endl 176 << " * _immediat : " << x._immediat << std::endl 177 << " * _read_ra : " << x._read_ra << std::endl 178 << " * _read_ra_val : " << x._read_ra_val << std::endl 179 << " * _num_reg_ra : " << x._num_reg_ra << std::endl 180 << " * _data_ra_val : " << x._data_ra_val << std::endl 181 << " * _data_ra : " << x._data_ra << std::endl 182 << " * _read_rb : " << x._read_rb << std::endl 183 << " * _read_rb_val : " << x._read_rb_val << std::endl 184 << " * _num_reg_rb : " << x._num_reg_rb << std::endl 185 << " * _data_rb_val : " << x._data_rb_val << std::endl 186 << " * _data_rb : " << x._data_rb << std::endl 187 << " * _read_rc : " << x._read_rc << std::endl 188 << " * _read_rc_val : " << x._read_rc_val << std::endl 189 << " * _num_reg_rc : " << x._num_reg_rc << std::endl 190 << " * _data_rc_val : " << x._data_rc_val << std::endl 191 << " * _data_rc : " << x._data_rc << std::endl 192 << " * _write_rd : " << x._write_rd << std::endl 193 << " * _num_reg_rd : " << x._num_reg_rd << std::endl 194 << " * _write_re : " << x._write_re << std::endl 195 << " * _num_reg_re : " << x._num_reg_re << std::endl; 186 196 187 197 return output_stream; … … 194 204 #endif 195 205 { 196 // -----[ 206 // -----[ fields ]---------------------------------------------------- 197 207 // Parameters 198 208 protected : const std::string _name; … … 207 217 208 218 #ifdef SYSTEMC 209 // ~~~~~[ 219 // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 210 220 // Interface 211 221 public : SC_CLOCK * in_CLOCK ; 212 222 public : SC_IN (Tcontrol_t ) * in_NRESET ; 213 223 214 // ~~~~~[ Interface "read_queue_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 216 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_VAL ; 217 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_IN_ACK ; 218 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_CONTEXT_ID ; 219 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_FRONT_END_ID ; 220 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_OOO_ENGINE_ID; 221 public : SC_IN (Tpacket_t ) * in_READ_QUEUE_IN_ROB_ID ; 222 public : SC_IN (Toperation_t ) * in_READ_QUEUE_IN_OPERATION ; 223 public : SC_IN (Ttype_t ) * in_READ_QUEUE_IN_TYPE ; 224 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_HAS_IMMEDIAT ; 225 public : SC_IN (Tgeneral_data_t ) * in_READ_QUEUE_IN_IMMEDIAT ; 226 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RA ; 227 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RA ; 228 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RB ; 229 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RB ; 230 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RC ; 231 public : SC_IN (Tspecial_address_t) * in_READ_QUEUE_IN_NUM_REG_RC ; 232 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_WRITE_RD ; 233 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RD ; 234 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_WRITE_RE ; 235 public : SC_IN (Tspecial_address_t) * in_READ_QUEUE_IN_NUM_REG_RE ; 236 237 // ~~~~~[ Interface "read_queue_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 239 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_VAL ; 240 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_OUT_ACK ; 241 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_CONTEXT_ID ; 242 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_FRONT_END_ID ; 243 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_OOO_ENGINE_ID; 244 public : SC_OUT(Tpacket_t ) * out_READ_QUEUE_OUT_ROB_ID ; 245 public : SC_OUT(Toperation_t ) * out_READ_QUEUE_OUT_OPERATION ; 246 public : SC_OUT(Ttype_t ) * out_READ_QUEUE_OUT_TYPE ; 247 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_HAS_IMMEDIAT; 248 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_IMMEDIAT ; 249 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RA ; 250 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RA ; 251 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RA_VAL ; 252 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_DATA_RA ; 253 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RB ; 254 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RB ; 255 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RB_VAL ; 256 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_DATA_RB ; 257 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RC ; 258 public : SC_OUT(Tspecial_address_t) * out_READ_QUEUE_OUT_NUM_REG_RC ; 259 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RC_VAL ; 260 public : SC_OUT(Tspecial_data_t ) * out_READ_QUEUE_OUT_DATA_RC ; 261 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_WRITE_RD ; 262 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RD ; 263 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_WRITE_RE ; 264 public : SC_OUT(Tspecial_address_t) * out_READ_QUEUE_OUT_NUM_REG_RE ; 265 266 // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 // ~~~~~[ Interface "read_queue_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 225 226 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_VAL ; 227 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_IN_ACK ; 228 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_CONTEXT_ID ; 229 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_FRONT_END_ID ; 230 public : SC_IN (Tcontext_t ) * in_READ_QUEUE_IN_OOO_ENGINE_ID ; 231 public : SC_IN (Tpacket_t ) * in_READ_QUEUE_IN_ROB_ID ; 232 public : SC_IN (Toperation_t ) * in_READ_QUEUE_IN_OPERATION ; 233 public : SC_IN (Ttype_t ) * in_READ_QUEUE_IN_TYPE ; 234 public : SC_IN (Tlsq_ptr_t ) * in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE; 235 public : SC_IN (Tlsq_ptr_t ) * in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ; 236 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_HAS_IMMEDIAT ; 237 public : SC_IN (Tgeneral_data_t ) * in_READ_QUEUE_IN_IMMEDIAT ; 238 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RA ; 239 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RA ; 240 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RB ; 241 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RB ; 242 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_READ_RC ; 243 public : SC_IN (Tspecial_address_t) * in_READ_QUEUE_IN_NUM_REG_RC ; 244 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_WRITE_RD ; 245 public : SC_IN (Tgeneral_address_t) * in_READ_QUEUE_IN_NUM_REG_RD ; 246 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_IN_WRITE_RE ; 247 public : SC_IN (Tspecial_address_t) * in_READ_QUEUE_IN_NUM_REG_RE ; 248 249 // ~~~~~[ Interface "read_queue_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 251 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_VAL ; 252 public : SC_IN (Tcontrol_t ) * in_READ_QUEUE_OUT_ACK ; 253 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_CONTEXT_ID ; 254 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_FRONT_END_ID ; 255 public : SC_OUT(Tcontext_t ) * out_READ_QUEUE_OUT_OOO_ENGINE_ID ; 256 public : SC_OUT(Tpacket_t ) * out_READ_QUEUE_OUT_ROB_ID ; 257 public : SC_OUT(Toperation_t ) * out_READ_QUEUE_OUT_OPERATION ; 258 public : SC_OUT(Ttype_t ) * out_READ_QUEUE_OUT_TYPE ; 259 public : SC_OUT(Tlsq_ptr_t ) * out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE; 260 public : SC_OUT(Tlsq_ptr_t ) * out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ; 261 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_HAS_IMMEDIAT ; 262 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_IMMEDIAT ; 263 // public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RA ; 264 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RA ; 265 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RA_VAL ; 266 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_DATA_RA ; 267 // public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RB ; 268 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RB ; 269 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RB_VAL ; 270 public : SC_OUT(Tgeneral_data_t ) * out_READ_QUEUE_OUT_DATA_RB ; 271 // public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_READ_RC ; 272 public : SC_OUT(Tspecial_address_t) * out_READ_QUEUE_OUT_NUM_REG_RC ; 273 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_DATA_RC_VAL ; 274 public : SC_OUT(Tspecial_data_t ) * out_READ_QUEUE_OUT_DATA_RC ; 275 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_WRITE_RD ; 276 public : SC_OUT(Tgeneral_address_t) * out_READ_QUEUE_OUT_NUM_REG_RD ; 277 public : SC_OUT(Tcontrol_t ) * out_READ_QUEUE_OUT_WRITE_RE ; 278 public : SC_OUT(Tspecial_address_t) * out_READ_QUEUE_OUT_NUM_REG_RE ; 279 280 // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 281 268 282 public : SC_OUT(Tcontrol_t ) ** out_GPR_READ_VAL ; … … 273 287 public : SC_IN (Tcontrol_t ) ** in_GPR_READ_DATA_VAL ; 274 288 275 // ~~~~~[ 289 // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 290 277 291 public : SC_OUT(Tcontrol_t ) ** out_SPR_READ_VAL ; … … 282 296 public : SC_IN (Tcontrol_t ) ** in_SPR_READ_DATA_VAL ; 283 297 284 // ~~~~~[ 298 // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 299 286 300 public : SC_IN (Tcontrol_t ) ** in_GPR_WRITE_VAL ; … … 289 303 public : SC_IN (Tgeneral_data_t ) ** in_GPR_WRITE_DATA ; 290 304 291 // ~~~~~[ 305 // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 306 293 307 public : SC_IN (Tcontrol_t ) ** in_SPR_WRITE_VAL ; … … 296 310 public : SC_IN (Tspecial_data_t ) ** in_SPR_WRITE_DATA ; 297 311 298 // ~~~~~[ 299 300 // ~~~~~[ 312 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313 314 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 315 protected : Tread_queue_head_entry_t * _queue_head; 302 316 protected : std::queue<Tread_queue_entry_t *> * _queue; 303 317 304 // ~~~~~[ 318 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 305 319 306 320 protected :Tcontrol_t internal_READ_QUEUE_OUT_VAL ; … … 317 331 #endif 318 332 319 // -----[ 333 // -----[ methods ]--------------------------------------------------- 320 334 321 335 #ifdef SYSTEMC -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters.cpp
r68 r76 30 30 uint32_t nb_type , 31 31 uint32_t nb_gpr_write , 32 uint32_t nb_spr_write ): 32 uint32_t nb_spr_write , 33 uint32_t size_store_queue , 34 uint32_t size_load_queue ): 33 35 _size_queue (size_queue ), 34 36 _nb_context (nb_context ), … … 44 46 _nb_gpr_write (nb_gpr_write ), 45 47 _nb_spr_write (nb_spr_write ), 48 _size_store_queue (size_store_queue ), 49 _size_load_queue (size_load_queue ), 46 50 47 51 _nb_gpr_read (2 ), … … 67 71 + _size_operation //_operation 68 72 + _size_type //_type 73 + log2(_size_store_queue)//_store_queue_ptr_write 74 + log2(_size_load_queue )//_load_queue_ptr_write 69 75 + 1 //_has_immediat 70 76 + _size_general_data //_immediat … … 102 108 _nb_gpr_write (param._nb_gpr_write ), 103 109 _nb_spr_write (param._nb_spr_write ), 110 _size_store_queue (param._size_store_queue ), 111 _size_load_queue (param._size_load_queue ), 104 112 105 113 _nb_gpr_read (param._nb_gpr_read ), -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters_print.cpp
r75 r76 39 39 xml.singleton_begin("nb_gpr_write "); xml.attribut("value",toString(_nb_gpr_write )); xml.singleton_end(); 40 40 xml.singleton_begin("nb_spr_write "); xml.attribut("value",toString(_nb_spr_write )); xml.singleton_end(); 41 xml.singleton_begin("size_store_queue "); xml.attribut("value",toString(_size_store_queue )); xml.singleton_end(); 42 xml.singleton_begin("size_load_queue "); xml.attribut("value",toString(_size_load_queue )); xml.singleton_end(); 43 41 44 xml.balise_close(); 42 45 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp
r75 r76 70 70 in_READ_QUEUE_IN_OPERATION = interface->set_signal_in <Toperation_t > ("operation" ,_param->_size_operation ); 71 71 in_READ_QUEUE_IN_TYPE = interface->set_signal_in <Ttype_t > ("type" ,_param->_size_type ); 72 in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE = interface->set_signal_in <Tlsq_ptr_t> ("store_queue_ptr_write", log2(_param->_size_store_queue)); 73 in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE = interface->set_signal_in <Tlsq_ptr_t> ("load_queue_ptr_write" , log2(_param->_size_load_queue )); 72 74 in_READ_QUEUE_IN_HAS_IMMEDIAT = interface->set_signal_in <Tcontrol_t > ("has_immediat",1 ); 73 75 in_READ_QUEUE_IN_IMMEDIAT = interface->set_signal_in <Tgeneral_data_t > ("immediat" ,_param->_size_general_data ); … … 107 109 out_READ_QUEUE_OUT_OPERATION = interface->set_signal_out <Toperation_t > ("operation" ,_param->_size_operation ); 108 110 out_READ_QUEUE_OUT_TYPE = interface->set_signal_out <Ttype_t > ("type" ,_param->_size_type ); 111 out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE = interface->set_signal_out <Tlsq_ptr_t> ("store_queue_ptr_write", log2(_param->_size_store_queue)); 112 out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE = interface->set_signal_out <Tlsq_ptr_t> ("load_queue_ptr_write" , log2(_param->_size_load_queue )); 109 113 out_READ_QUEUE_OUT_HAS_IMMEDIAT = interface->set_signal_out <Tcontrol_t > ("has_immediat",1 ); 110 114 out_READ_QUEUE_OUT_IMMEDIAT = interface->set_signal_out <Tgeneral_data_t > ("immediat" ,_param->_size_general_data ); 111 out_READ_QUEUE_OUT_READ_RA = interface->set_signal_out <Tcontrol_t > ("read_ra" ,1 );115 // out_READ_QUEUE_OUT_READ_RA = interface->set_signal_out <Tcontrol_t > ("read_ra" ,1 ); 112 116 out_READ_QUEUE_OUT_NUM_REG_RA = interface->set_signal_out <Tgeneral_address_t> ("num_reg_ra" ,_param->_size_general_register ); 113 117 out_READ_QUEUE_OUT_DATA_RA_VAL = interface->set_signal_out <Tcontrol_t > ("data_ra_val" ,1 ); 114 118 out_READ_QUEUE_OUT_DATA_RA = interface->set_signal_out <Tgeneral_data_t > ("data_ra" ,_param->_size_general_data ); 115 out_READ_QUEUE_OUT_READ_RB = interface->set_signal_out <Tcontrol_t > ("read_rb" ,1 );119 // out_READ_QUEUE_OUT_READ_RB = interface->set_signal_out <Tcontrol_t > ("read_rb" ,1 ); 116 120 out_READ_QUEUE_OUT_NUM_REG_RB = interface->set_signal_out <Tgeneral_address_t> ("num_reg_rb" ,_param->_size_general_register ); 117 121 out_READ_QUEUE_OUT_DATA_RB_VAL = interface->set_signal_out <Tcontrol_t > ("data_rb_val" ,1 ); 118 122 out_READ_QUEUE_OUT_DATA_RB = interface->set_signal_out <Tgeneral_data_t > ("data_rb" ,_param->_size_general_data ); 119 out_READ_QUEUE_OUT_READ_RC = interface->set_signal_out <Tcontrol_t > ("read_rc" ,1 );123 // out_READ_QUEUE_OUT_READ_RC = interface->set_signal_out <Tcontrol_t > ("read_rc" ,1 ); 120 124 out_READ_QUEUE_OUT_NUM_REG_RC = interface->set_signal_out <Tspecial_address_t> ("num_reg_rc" ,_param->_size_special_register ); 121 125 out_READ_QUEUE_OUT_DATA_RC_VAL = interface->set_signal_out <Tcontrol_t > ("data_rc_val" ,1 ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp
r68 r76 41 41 delete in_READ_QUEUE_IN_OPERATION ; 42 42 delete in_READ_QUEUE_IN_TYPE ; 43 delete in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE; 44 delete in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ; 43 45 delete in_READ_QUEUE_IN_HAS_IMMEDIAT ; 44 46 delete in_READ_QUEUE_IN_IMMEDIAT ; … … 68 70 delete out_READ_QUEUE_OUT_OPERATION ; 69 71 delete out_READ_QUEUE_OUT_TYPE ; 72 delete out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE; 73 delete out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ; 70 74 delete out_READ_QUEUE_OUT_HAS_IMMEDIAT ; 71 75 delete out_READ_QUEUE_OUT_IMMEDIAT ; 72 delete out_READ_QUEUE_OUT_READ_RA ;76 // delete out_READ_QUEUE_OUT_READ_RA ; 73 77 delete out_READ_QUEUE_OUT_NUM_REG_RA ; 74 78 delete out_READ_QUEUE_OUT_DATA_RA_VAL ; 75 79 delete out_READ_QUEUE_OUT_DATA_RA ; 76 delete out_READ_QUEUE_OUT_READ_RB ;80 // delete out_READ_QUEUE_OUT_READ_RB ; 77 81 delete out_READ_QUEUE_OUT_NUM_REG_RB ; 78 82 delete out_READ_QUEUE_OUT_DATA_RB_VAL ; 79 83 delete out_READ_QUEUE_OUT_DATA_RB ; 80 delete out_READ_QUEUE_OUT_READ_RC ;84 // delete out_READ_QUEUE_OUT_READ_RC ; 81 85 delete out_READ_QUEUE_OUT_NUM_REG_RC ; 82 86 delete out_READ_QUEUE_OUT_DATA_RC_VAL ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp
r68 r76 43 43 PORT_WRITE (out_READ_QUEUE_OUT_OPERATION , _queue_head->_operation ); 44 44 PORT_WRITE (out_READ_QUEUE_OUT_TYPE , _queue_head->_type ); 45 PORT_WRITE (out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE, _queue_head->_store_queue_ptr_write); 46 PORT_WRITE (out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE , _queue_head->_load_queue_ptr_write ); 45 47 PORT_WRITE (out_READ_QUEUE_OUT_HAS_IMMEDIAT, _queue_head->_has_immediat); 46 48 PORT_WRITE (out_READ_QUEUE_OUT_IMMEDIAT , _queue_head->_immediat ); 47 PORT_WRITE (out_READ_QUEUE_OUT_READ_RA , _queue_head->_read_ra );49 // PORT_WRITE (out_READ_QUEUE_OUT_READ_RA , _queue_head->_read_ra ); 48 50 PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RA , _queue_head->_num_reg_ra ); 49 51 // PORT_WRITE (out_READ_QUEUE_OUT_DATA_RA_VAL , _queue_head->_data_ra_val ); // in genMealy_gpr 50 52 // PORT_WRITE (out_READ_QUEUE_OUT_DATA_RA , _queue_head->_data_ra ); // in genMealy_gpr 51 PORT_WRITE (out_READ_QUEUE_OUT_READ_RB , _queue_head->_read_rb );53 // PORT_WRITE (out_READ_QUEUE_OUT_READ_RB , _queue_head->_read_rb ); 52 54 PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RB , _queue_head->_num_reg_rb ); 53 55 // PORT_WRITE (out_READ_QUEUE_OUT_DATA_RB_VAL , _queue_head->_data_rb_val ); // in genMealy_gpr 54 56 // PORT_WRITE (out_READ_QUEUE_OUT_DATA_RB , _queue_head->_data_rb ); // in genMealy_gpr 55 PORT_WRITE (out_READ_QUEUE_OUT_READ_RC , _queue_head->_read_rc );57 // PORT_WRITE (out_READ_QUEUE_OUT_READ_RC , _queue_head->_read_rc ); 56 58 PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RC , _queue_head->_num_reg_rc ); 57 59 // PORT_WRITE (out_READ_QUEUE_OUT_DATA_RC_VAL , _queue_head->_data_rc_val ); // in genMealy_spr -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp
r75 r76 66 66 entry->_operation = PORT_READ(in_READ_QUEUE_IN_OPERATION ); 67 67 entry->_type = PORT_READ(in_READ_QUEUE_IN_TYPE ); 68 entry->_store_queue_ptr_write = PORT_READ(in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE); 69 entry->_load_queue_ptr_write = PORT_READ(in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ); 68 70 entry->_has_immediat = PORT_READ(in_READ_QUEUE_IN_HAS_IMMEDIAT); 69 71 entry->_immediat = PORT_READ(in_READ_QUEUE_IN_IMMEDIAT ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_bypass_memory.cfg
r75 r76 16 16 0 0 *2 # nb_bypass_write 17 17 1 4 *2 # nb_bypass_memory 18 4 4 *2 # size_store_queue 19 4 4 *2 # size_load_queue -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_bypass_write.cfg
r75 r76 16 16 1 4 *2 # nb_bypass_write 17 17 0 0 *2 # nb_bypass_memory 18 4 4 *2 # size_store_queue 19 4 4 *2 # size_load_queue -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_retire2.cfg
r75 r76 16 16 0 0 *2 # nb_bypass_write 17 17 0 0 *2 # nb_bypass_memory 18 4 4 *2 # size_store_queue 19 4 4 *2 # size_load_queue -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_retire4.cfg
r75 r76 16 16 0 0 *2 # nb_bypass_write 17 17 0 0 *2 # nb_bypass_memory 18 4 4 *2 # size_store_queue 19 4 4 *2 # size_load_queue -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/configuration_multi_port_write.cfg
r75 r76 16 16 0 0 *2 # nb_bypass_write 17 17 0 0 *2 # nb_bypass_memory 18 4 4 *2 # size_store_queue 19 4 4 *2 # size_load_queue -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/main.cpp
r69 r76 8 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/include/test.h" 9 9 10 #define NB_PARAMS 1 610 #define NB_PARAMS 18 11 11 12 12 void usage (int argc, char * argv[]) … … 30 30 << " - nb_bypass_write (unsigned int)" << endl 31 31 << " - nb_bypass_memory (unsigned int)" << endl 32 << " - size_store_queue (unsigned int)" << endl 33 << " - size_load_queue (unsigned int)" << endl 32 34 << "" << endl; 33 35 … … 66 68 const uint32_t nb_bypass_write = atoi(argv[x++]); 67 69 const uint32_t nb_bypass_memory = atoi(argv[x++]); 70 const uint32_t size_store_queue = atoi(argv[x++]); 71 const uint32_t size_load_queue = atoi(argv[x++]); 68 72 69 73 try … … 86 90 ,nb_bypass_write 87 91 ,nb_bypass_memory 92 ,size_store_queue 93 ,size_load_queue 88 94 ); 89 95 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/test.cpp
r75 r76 73 73 sc_signal<Toperation_t > * in_INSERT_OPERATION = new sc_signal<Toperation_t >; 74 74 sc_signal<Ttype_t > * in_INSERT_TYPE = new sc_signal<Ttype_t >; 75 sc_signal<Tlsq_ptr_t > * in_INSERT_STORE_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t>; 76 sc_signal<Tlsq_ptr_t > * in_INSERT_LOAD_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t>; 75 77 sc_signal<Tcontrol_t > * in_INSERT_HAS_IMMEDIAT = new sc_signal<Tcontrol_t >; 76 78 sc_signal<Tgeneral_data_t > * in_INSERT_IMMEDIAT = new sc_signal<Tgeneral_data_t >; … … 100 102 sc_signal<Toperation_t > ** out_RETIRE_OPERATION = new sc_signal<Toperation_t > * [_param->_nb_inst_retire]; 101 103 sc_signal<Ttype_t > ** out_RETIRE_TYPE = new sc_signal<Ttype_t > * [_param->_nb_inst_retire]; 104 sc_signal<Tlsq_ptr_t > ** out_RETIRE_STORE_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t> * [_param->_nb_inst_retire]; 105 sc_signal<Tlsq_ptr_t > ** out_RETIRE_LOAD_QUEUE_PTR_WRITE = new sc_signal<Tlsq_ptr_t> * [_param->_nb_inst_retire]; 102 106 sc_signal<Tcontrol_t > ** out_RETIRE_HAS_IMMEDIAT = new sc_signal<Tcontrol_t > * [_param->_nb_inst_retire]; 103 107 sc_signal<Tgeneral_data_t > ** out_RETIRE_IMMEDIAT = new sc_signal<Tgeneral_data_t > * [_param->_nb_inst_retire]; … … 120 124 out_RETIRE_OPERATION [i] = new sc_signal<Toperation_t > (rename.c_str()); 121 125 out_RETIRE_TYPE [i] = new sc_signal<Ttype_t > (rename.c_str()); 126 out_RETIRE_STORE_QUEUE_PTR_WRITE [i] = new sc_signal<Tlsq_ptr_t> (rename.c_str()); 127 out_RETIRE_LOAD_QUEUE_PTR_WRITE [i] = new sc_signal<Tlsq_ptr_t> (rename.c_str()); 122 128 out_RETIRE_HAS_IMMEDIAT [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 123 129 out_RETIRE_IMMEDIAT [i] = new sc_signal<Tgeneral_data_t > (rename.c_str()); … … 209 215 (*(_Reservation_station-> in_INSERT_OPERATION )) (*( in_INSERT_OPERATION )); 210 216 (*(_Reservation_station-> in_INSERT_TYPE )) (*( in_INSERT_TYPE )); 217 (*(_Reservation_station-> in_INSERT_STORE_QUEUE_PTR_WRITE)) (*( in_INSERT_STORE_QUEUE_PTR_WRITE)); 218 (*(_Reservation_station-> in_INSERT_LOAD_QUEUE_PTR_WRITE )) (*( in_INSERT_LOAD_QUEUE_PTR_WRITE )); 211 219 (*(_Reservation_station-> in_INSERT_HAS_IMMEDIAT )) (*( in_INSERT_HAS_IMMEDIAT )); 212 220 (*(_Reservation_station-> in_INSERT_IMMEDIAT )) (*( in_INSERT_IMMEDIAT )); … … 242 250 (*(_Reservation_station->out_RETIRE_OPERATION [i])) (*(out_RETIRE_OPERATION [i])); 243 251 (*(_Reservation_station->out_RETIRE_TYPE [i])) (*(out_RETIRE_TYPE [i])); 252 (*(_Reservation_station->out_RETIRE_STORE_QUEUE_PTR_WRITE [i])) (*(out_RETIRE_STORE_QUEUE_PTR_WRITE [i])); 253 (*(_Reservation_station->out_RETIRE_LOAD_QUEUE_PTR_WRITE [i])) (*(out_RETIRE_LOAD_QUEUE_PTR_WRITE [i])); 244 254 (*(_Reservation_station->out_RETIRE_HAS_IMMEDIAT [i])) (*(out_RETIRE_HAS_IMMEDIAT [i])); 245 255 (*(_Reservation_station->out_RETIRE_IMMEDIAT [i])) (*(out_RETIRE_IMMEDIAT [i])); … … 435 445 in_INSERT_OPERATION ->write(0); 436 446 in_INSERT_TYPE ->write(0); 447 in_INSERT_STORE_QUEUE_PTR_WRITE->write(0); 448 in_INSERT_LOAD_QUEUE_PTR_WRITE ->write(0); 437 449 in_INSERT_HAS_IMMEDIAT->write(0); 438 450 in_INSERT_IMMEDIAT ->write(0); … … 679 691 delete in_INSERT_OPERATION ; 680 692 delete in_INSERT_TYPE ; 693 delete in_INSERT_STORE_QUEUE_PTR_WRITE; 694 delete in_INSERT_LOAD_QUEUE_PTR_WRITE ; 681 695 delete in_INSERT_HAS_IMMEDIAT; 682 696 delete in_INSERT_IMMEDIAT ; … … 710 724 delete [] out_RETIRE_OPERATION ; 711 725 delete [] out_RETIRE_TYPE ; 726 delete [] out_RETIRE_STORE_QUEUE_PTR_WRITE; 727 delete [] out_RETIRE_LOAD_QUEUE_PTR_WRITE ; 712 728 delete [] out_RETIRE_HAS_IMMEDIAT; 713 729 delete [] out_RETIRE_IMMEDIAT ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h
r75 r76 42 42 public : const uint32_t _nb_bypass_write ;//if nb_bypass=0, then bypass is desactivated 43 43 public : const uint32_t _nb_bypass_memory ;//if nb_bypass=0, then bypass is desactivated 44 public : const uint32_t _size_store_queue ; 45 public : const uint32_t _size_load_queue ; 46 44 47 /* 45 48 public : const bool _have_immediat ; … … 80 83 uint32_t nb_spr_write , 81 84 uint32_t nb_bypass_write , 82 uint32_t nb_bypass_memory ); 85 uint32_t nb_bypass_memory , 86 uint32_t size_store_queue , 87 uint32_t size_load_queue ); 83 88 84 89 public : Parameters (Parameters & param) ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h
r75 r76 5 5 * $Id$ 6 6 * 7 * [ 7 * [ Description ] 8 8 * 9 9 */ … … 47 47 public : Toperation_t _operation ; 48 48 public : Ttype_t _type ; 49 public : Tlsq_ptr_t _store_queue_ptr_write; 50 public : Tlsq_ptr_t _load_queue_ptr_write ; 49 51 public : Tcontrol_t _has_immediat; 50 52 public : Tgeneral_data_t _immediat ; … … 69 71 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Treservation_station_entry_t & x) 70 72 { 71 output_stream << " * _context_id : " << toString(x._context_id ) << std::endl 72 << " * _front_end_id : " << toString(x._front_end_id ) << std::endl 73 << " * _ooo_engine_id : " << toString(x._ooo_engine_id ) << std::endl 74 << " * _rob_id : " << toString(x._rob_id ) << std::endl 75 << " * _operation : " << toString(x._operation ) << std::endl 76 << " * _type : " << toString(x._type ) << std::endl 77 << " * _has_immediat : " << toString(x._has_immediat ) << std::endl 78 << " * _immediat : " << toString(x._immediat ) << std::endl 79 // << " * _read_ra : " << toString(x._read_ra ) << std::endl 80 << " * _num_reg_ra : " << toString(x._num_reg_ra ) << std::endl 81 << " * _data_ra_val : " << toString(x._data_ra_val ) << std::endl 82 << " * _data_ra : " << toString(x._data_ra ) << std::endl 83 // << " * _read_rb : " << toString(x._read_rb ) << std::endl 84 << " * _num_reg_rb : " << toString(x._num_reg_rb ) << std::endl 85 << " * _data_rb_val : " << toString(x._data_rb_val ) << std::endl 86 << " * _data_rb : " << toString(x._data_rb ) << std::endl 87 // << " * _read_rc : " << toString(x._read_rc ) << std::endl 88 << " * _num_reg_rc : " << toString(x._num_reg_rc ) << std::endl 89 << " * _data_rc_val : " << toString(x._data_rc_val ) << std::endl 90 << " * _data_rc : " << toString(x._data_rc ) << std::endl 91 << " * _write_rd : " << toString(x._write_rd ) << std::endl 92 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << std::endl 93 << " * _write_re : " << toString(x._write_re ) << std::endl 94 << " * _num_reg_re : " << toString(x._num_reg_re ) << std::endl; 73 output_stream << " * _context_id : " << toString(x._context_id ) << std::endl 74 << " * _front_end_id : " << toString(x._front_end_id ) << std::endl 75 << " * _ooo_engine_id : " << toString(x._ooo_engine_id ) << std::endl 76 << " * _rob_id : " << toString(x._rob_id ) << std::endl 77 << " * _operation : " << toString(x._operation ) << std::endl 78 << " * _type : " << toString(x._type ) << std::endl 79 << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl 80 << " * _load_queue_ptr_write : " << toString(x._load_queue_ptr_write ) << std::endl 81 << " * _has_immediat : " << toString(x._has_immediat ) << std::endl 82 << " * _immediat : " << toString(x._immediat ) << std::endl 83 // << " * _read_ra : " << toString(x._read_ra ) << std::endl 84 << " * _num_reg_ra : " << toString(x._num_reg_ra ) << std::endl 85 << " * _data_ra_val : " << toString(x._data_ra_val ) << std::endl 86 << " * _data_ra : " << toString(x._data_ra ) << std::endl 87 // << " * _read_rb : " << toString(x._read_rb ) << std::endl 88 << " * _num_reg_rb : " << toString(x._num_reg_rb ) << std::endl 89 << " * _data_rb_val : " << toString(x._data_rb_val ) << std::endl 90 << " * _data_rb : " << toString(x._data_rb ) << std::endl 91 // << " * _read_rc : " << toString(x._read_rc ) << std::endl 92 << " * _num_reg_rc : " << toString(x._num_reg_rc ) << std::endl 93 << " * _data_rc_val : " << toString(x._data_rc_val ) << std::endl 94 << " * _data_rc : " << toString(x._data_rc ) << std::endl 95 << " * _write_rd : " << toString(x._write_rd ) << std::endl 96 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << std::endl 97 << " * _write_re : " << toString(x._write_re ) << std::endl 98 << " * _num_reg_re : " << toString(x._num_reg_re ) << std::endl; 95 99 96 100 return output_stream; 97 101 } 98 99 102 }; 100 103 … … 104 107 #endif 105 108 { 106 // -----[ 109 // -----[ fields ]---------------------------------------------------- 107 110 // Parameters 108 111 protected : const std::string _name; … … 118 121 119 122 #ifdef SYSTEMC 120 // ~~~~~[ 123 // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 124 // Interface 122 125 public : SC_CLOCK * in_CLOCK ; 123 126 public : SC_IN (Tcontrol_t) * in_NRESET ; 124 127 125 // ~~~~~[ 128 // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~ 126 129 public : SC_IN (Tcontrol_t ) * in_INSERT_VAL ; 127 130 public : SC_OUT(Tcontrol_t ) * out_INSERT_ACK ; … … 132 135 public : SC_IN (Toperation_t ) * in_INSERT_OPERATION ; 133 136 public : SC_IN (Ttype_t ) * in_INSERT_TYPE ; 137 public : SC_IN (Tlsq_ptr_t ) * in_INSERT_STORE_QUEUE_PTR_WRITE; 138 public : SC_IN (Tlsq_ptr_t ) * in_INSERT_LOAD_QUEUE_PTR_WRITE ; 134 139 public : SC_IN (Tcontrol_t ) * in_INSERT_HAS_IMMEDIAT ; 135 140 public : SC_IN (Tgeneral_data_t ) * in_INSERT_IMMEDIAT ; … … 151 156 public : SC_IN (Tspecial_address_t) * in_INSERT_NUM_REG_RE ; 152 157 153 // ~~~~~[ 158 // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~ 154 159 public : SC_OUT(Tcontrol_t ) ** out_RETIRE_VAL ; 155 160 public : SC_IN (Tcontrol_t ) ** in_RETIRE_ACK ; … … 160 165 public : SC_OUT(Toperation_t ) ** out_RETIRE_OPERATION ; 161 166 public : SC_OUT(Ttype_t ) ** out_RETIRE_TYPE ; 167 public : SC_OUT(Tlsq_ptr_t ) ** out_RETIRE_STORE_QUEUE_PTR_WRITE; 168 public : SC_OUT(Tlsq_ptr_t ) ** out_RETIRE_LOAD_QUEUE_PTR_WRITE ; 162 169 public : SC_OUT(Tcontrol_t ) ** out_RETIRE_HAS_IMMEDIAT ; 163 170 public : SC_OUT(Tgeneral_data_t ) ** out_RETIRE_IMMEDIAT ; … … 170 177 public : SC_OUT(Tspecial_address_t) ** out_RETIRE_NUM_REG_RE ; 171 178 172 // ~~~~~[ 179 // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 173 180 174 181 public : SC_IN (Tcontrol_t ) ** in_GPR_WRITE_VAL ; // val and ack … … 177 184 public : SC_IN (Tgeneral_data_t ) ** in_GPR_WRITE_DATA ; 178 185 179 // ~~~~~[ 186 // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 180 187 181 188 public : SC_IN (Tcontrol_t ) ** in_SPR_WRITE_VAL ; // val and ack … … 184 191 public : SC_IN (Tspecial_data_t ) ** in_SPR_WRITE_DATA ; 185 192 186 // ~~~~~[ 193 // ~~~~~[ Interface "bypass_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 194 188 195 public : SC_IN (Tcontext_t ) ** in_BYPASS_WRITE_OOO_ENGINE_ID ; … … 194 201 public : SC_IN (Tspecial_data_t ) ** in_BYPASS_WRITE_SPR_DATA ; 195 202 196 // ~~~~~[ 203 // ~~~~~[ Interface "bypass_memory" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 204 198 205 public : SC_IN (Tcontrol_t ) ** in_BYPASS_MEMORY_VAL ; … … 202 209 203 210 204 // ~~~~~[ 205 206 // ~~~~~[ 207 208 // ~~~~~[ 211 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212 213 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 214 215 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 209 216 #ifdef SYSTEMC_VHDL_COMPATIBILITY 210 217 protected : bool * _queue_valid; … … 220 227 #endif 221 228 222 // -----[ 229 // -----[ methods ]--------------------------------------------------- 223 230 224 231 #ifdef SYSTEMC -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters.cpp
r69 r76 35 35 uint32_t nb_spr_write , 36 36 uint32_t nb_bypass_write , 37 uint32_t nb_bypass_memory ): 37 uint32_t nb_bypass_memory , 38 uint32_t size_store_queue , 39 uint32_t size_load_queue ): 38 40 _size_queue (size_queue ), 39 41 _nb_inst_retire (nb_inst_retire ), … … 52 54 _nb_bypass_write (nb_bypass_write ), 53 55 _nb_bypass_memory (nb_bypass_memory ), 56 _size_store_queue (size_store_queue ), 57 _size_load_queue (size_load_queue ), 54 58 55 59 _size_context_id (static_cast<uint32_t>(log2(_nb_context ))), … … 91 95 _nb_bypass_write (param._nb_bypass_write ), 92 96 _nb_bypass_memory (param._nb_bypass_memory ), 97 _size_store_queue (param._size_store_queue ), 98 _size_load_queue (param._size_load_queue ), 93 99 94 100 _size_context_id (param._size_context_id ), -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_print.cpp
r75 r76 44 44 xml.singleton_begin("nb_bypass_write "); xml.attribut("value",toString(_nb_bypass_write )); xml.singleton_end(); 45 45 xml.singleton_begin("nb_bypass_memory "); xml.attribut("value",toString(_nb_bypass_memory )); xml.singleton_end(); 46 xml.singleton_begin("size_store_queue "); xml.attribut("value",toString(_size_store_queue )); xml.singleton_end(); 47 xml.singleton_begin("size_load_queue "); xml.attribut("value",toString(_size_load_queue )); xml.singleton_end(); 46 48 xml.balise_close(); 47 49 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_allocation.cpp
r75 r76 72 72 in_INSERT_OPERATION = interface->set_signal_in <Toperation_t > ("operation" ,_param->_size_operation ); 73 73 in_INSERT_TYPE = interface->set_signal_in <Ttype_t > ("type" ,_param->_size_type ); 74 in_INSERT_STORE_QUEUE_PTR_WRITE = interface->set_signal_in <Tlsq_ptr_t> ("store_queue_ptr_write" ,log2(_param->_size_store_queue)); 75 in_INSERT_LOAD_QUEUE_PTR_WRITE = interface->set_signal_in <Tlsq_ptr_t> ("load_queue_ptr_write" ,log2(_param->_size_load_queue) ); 74 76 in_INSERT_HAS_IMMEDIAT = interface->set_signal_in <Tcontrol_t > ("has_immediat" ,1 ); 75 77 in_INSERT_IMMEDIAT = interface->set_signal_in <Tgeneral_data_t > ("immediat" ,_param->_size_general_data ); … … 105 107 out_RETIRE_OPERATION = new SC_OUT(Toperation_t ) * [_param->_nb_inst_retire]; 106 108 out_RETIRE_TYPE = new SC_OUT(Ttype_t ) * [_param->_nb_inst_retire]; 109 out_RETIRE_STORE_QUEUE_PTR_WRITE = new SC_OUT(Tlsq_ptr_t ) * [_param->_nb_inst_retire]; 110 out_RETIRE_LOAD_QUEUE_PTR_WRITE = new SC_OUT(Tlsq_ptr_t ) * [_param->_nb_inst_retire]; 107 111 out_RETIRE_HAS_IMMEDIAT = new SC_OUT(Tcontrol_t ) * [_param->_nb_inst_retire]; 108 112 out_RETIRE_IMMEDIAT = new SC_OUT(Tgeneral_data_t ) * [_param->_nb_inst_retire]; … … 136 140 out_RETIRE_OPERATION [i] = interface->set_signal_out<Toperation_t > ("operation" ,_param->_size_operation); 137 141 out_RETIRE_TYPE [i] = interface->set_signal_out<Ttype_t > ("type" ,_param->_size_type); 142 out_RETIRE_STORE_QUEUE_PTR_WRITE [i] = interface->set_signal_out<Tlsq_ptr_t> ("store_queue_ptr_write" ,log2(_param->_size_store_queue)); 143 out_RETIRE_LOAD_QUEUE_PTR_WRITE [i] = interface->set_signal_out<Tlsq_ptr_t> ("load_queue_ptr_write" ,log2(_param->_size_load_queue) ); 144 138 145 out_RETIRE_HAS_IMMEDIAT [i] = interface->set_signal_out<Tcontrol_t > ("has_immediat" ,1); 139 146 out_RETIRE_IMMEDIAT [i] = interface->set_signal_out<Tgeneral_data_t > ("immediat" ,_param->_size_general_data); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp
r69 r76 43 43 delete in_INSERT_OPERATION ; 44 44 delete in_INSERT_TYPE ; 45 delete in_INSERT_STORE_QUEUE_PTR_WRITE; 46 delete in_INSERT_LOAD_QUEUE_PTR_WRITE ; 45 47 delete in_INSERT_HAS_IMMEDIAT ; 46 48 delete in_INSERT_IMMEDIAT ; … … 74 76 delete [] out_RETIRE_OPERATION ; 75 77 delete [] out_RETIRE_TYPE ; 78 delete [] out_RETIRE_STORE_QUEUE_PTR_WRITE; 79 delete [] out_RETIRE_LOAD_QUEUE_PTR_WRITE ; 76 80 delete [] out_RETIRE_HAS_IMMEDIAT ; 77 81 delete [] out_RETIRE_IMMEDIAT ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_genMoore.cpp
r70 r76 101 101 PORT_WRITE(out_RETIRE_OPERATION [i],_queue[index_find]._operation); 102 102 PORT_WRITE(out_RETIRE_TYPE [i],_queue[index_find]._type); 103 PORT_WRITE(out_RETIRE_STORE_QUEUE_PTR_WRITE [i],_queue[index_find]._store_queue_ptr_write); 104 PORT_WRITE(out_RETIRE_LOAD_QUEUE_PTR_WRITE [i],_queue[index_find]._load_queue_ptr_write ); 103 105 PORT_WRITE(out_RETIRE_HAS_IMMEDIAT [i],_queue[index_find]._has_immediat); 104 106 PORT_WRITE(out_RETIRE_IMMEDIAT [i],_queue[index_find]._immediat); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp
r70 r76 258 258 _queue[index]._operation = PORT_READ(in_INSERT_OPERATION ); 259 259 _queue[index]._type = PORT_READ(in_INSERT_TYPE ); 260 _queue[index]._store_queue_ptr_write = PORT_READ(in_INSERT_STORE_QUEUE_PTR_WRITE); 261 _queue[index]._load_queue_ptr_write = PORT_READ(in_INSERT_LOAD_QUEUE_PTR_WRITE ); 260 262 _queue[index]._has_immediat = PORT_READ(in_INSERT_HAS_IMMEDIAT ); 261 263 _queue[index]._immediat = PORT_READ(in_INSERT_IMMEDIAT );
Note: See TracChangeset
for help on using the changeset viewer.