Changeset 75 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station
- Timestamp:
- Jan 31, 2008, 6:46:41 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station
- Files:
-
- 6 deleted
- 14 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
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
r71 r75 8 8 32 32 +1 # size_general_data 9 9 2 2 +1 # size_special_data 10 256 256*2 # nb_general_register11 32 32+1 # nb_special_register10 16 16 *2 # nb_general_register 11 8 8 +1 # nb_special_register 12 12 8 8 +1 # nb_operation 13 13 4 4 +1 # nb_type -
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
r71 r75 8 8 32 32 +1 # size_general_data 9 9 2 2 +1 # size_special_data 10 256 256*2 # nb_general_register11 32 32+1 # nb_special_register10 16 16 *2 # nb_general_register 11 8 8 +1 # nb_special_register 12 12 8 8 +1 # nb_operation 13 13 4 4 +1 # nb_type -
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
r71 r75 8 8 32 32 +1 # size_general_data 9 9 2 2 +1 # size_special_data 10 256 256*2 # nb_general_register11 32 32+1 # nb_special_register10 18 16 *2 # nb_general_register 11 8 8 +1 # nb_special_register 12 12 8 8 +1 # nb_operation 13 13 4 4 +1 # nb_type -
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
r71 r75 8 8 32 32 +1 # size_general_data 9 9 2 2 +1 # size_special_data 10 256 256 *2 # nb_general_register11 32 32+1 # nb_special_register10 16 16 *2 # nb_general_register 11 8 8 +1 # nb_special_register 12 12 8 8 +1 # nb_operation 13 13 4 4 +1 # nb_type -
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
r71 r75 8 8 32 32 +1 # size_general_data 9 9 2 2 +1 # size_special_data 10 256 256*2 # nb_general_register11 32 32+1 # nb_special_register10 16 16 *2 # nb_general_register 11 8 8 +1 # nb_special_register 12 12 8 8 +1 # nb_operation 13 13 4 4 +1 # nb_type -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/test.cpp
r69 r75 9 9 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/include/test.h" 10 10 #include "Common/include/Test.h" 11 #include "Common/include/BitManipulation.h" 11 12 12 13 #define NB_ITERATION 2 … … 368 369 { 369 370 _gpr_val [i][j] = ((rand()%100) < percent_registerfile_valid); 370 _gpr [i][j] = ran d()%((1<<_param->_size_general_data)-1);371 _gpr [i][j] = range<Tgeneral_data_t>(rand(),_param->_size_general_data); 371 372 } 372 373 for (uint32_t i=0; i<_param->_nb_special_register; i++) 373 374 { 374 375 _spr_val [i][j] = ((rand()%100) < percent_registerfile_valid); 375 _spr [i][j] = ran d()%(1<<_param->_size_special_data);376 _spr [i][j] = range<Tspecial_data_t>(rand(),_param->_size_special_data); 376 377 } 377 378 } … … 479 480 Tcontext_t ooo_engine = rand()% _param->_nb_ooo_engine; 480 481 Tcontrol_t val = (_gpr_val [num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_registerfile):0; 481 Tgeneral_data_t data = ran d()%((1<<_param->_size_general_data)-1);482 Tgeneral_data_t data = range<Tgeneral_data_t>(rand(),_param->_size_general_data); 482 483 483 484 val = (val and can_gpr_use [ooo_engine][num_reg] and need_gpr [ooo_engine][num_reg]); … … 505 506 Tcontext_t ooo_engine = rand()% _param->_nb_ooo_engine; 506 507 Tcontrol_t val = (_spr_val [num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_registerfile):0; 507 Tspecial_data_t data = ran d()%(1<<_param->_size_special_data);508 Tspecial_data_t data = range<Tspecial_data_t>(rand(),_param->_size_special_data); 508 509 509 510 val = (val and can_spr_use [ooo_engine][num_reg] and need_spr[ooo_engine][num_reg]); … … 534 535 Tgeneral_address_t gpr_num_reg = rand()% _param->_nb_general_register; 535 536 Tcontrol_t gpr_val = (_gpr_val [gpr_num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_bypass):0; 536 Tgeneral_data_t gpr_data = ran d()%((1<<_param->_size_general_data)-1);537 Tgeneral_data_t gpr_data = range<Tgeneral_data_t>(rand(),_param->_size_general_data); 537 538 538 539 gpr_val = (gpr_val and can_gpr_use [ooo_engine][gpr_num_reg] and need_gpr[ooo_engine][gpr_num_reg]); … … 554 555 Tspecial_address_t spr_num_reg = rand()% _param->_nb_special_register; 555 556 Tcontrol_t spr_val = (_spr_val [spr_num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_bypass):0; 556 Tspecial_data_t spr_data = ran d()%(1<<_param->_size_special_data);557 Tspecial_data_t spr_data = range<Tspecial_data_t>(rand(),_param->_size_special_data); 557 558 558 559 spr_val = (spr_val and can_spr_use [ooo_engine][spr_num_reg] and need_spr[ooo_engine][spr_num_reg]); … … 582 583 Tgeneral_address_t num_reg = rand()% _param->_nb_general_register; 583 584 Tcontrol_t val = (_gpr_val [num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_bypass):0; 584 Tgeneral_data_t data = ran d()%((1<<_param->_size_general_data)-1);585 Tgeneral_data_t data = range<Tgeneral_data_t>(rand(),_param->_size_general_data); 585 586 586 587 val = (val and can_gpr_use [ooo_engine][num_reg] and need_gpr [ooo_engine][num_reg]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h
r69 r75 85 85 public : ~Parameters () ; 86 86 87 public : string msg_error(void);87 public : std::string msg_error (void); 88 88 89 public : st ring print (uint32_t depth);90 public : friend ostream& operator<< (ostream& output_stream,91 89 public : std::string print (uint32_t depth); 90 public : friend std::ostream& operator<< (std::ostream& output_stream, 91 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Parameters & x); 92 92 }; 93 93 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h
r69 r75 23 23 #include "Behavioural/include/Types.h" 24 24 #ifdef STATISTICS 25 #include "Behavioural/ Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Statistics.h"25 #include "Behavioural/include/Stat.h" 26 26 #endif 27 27 #include "Behavioural/include/Component.h" … … 29 29 #include "Behavioural/include/Vhdl.h" 30 30 #endif 31 32 using namespace std;33 using namespace morpheo::behavioural::generic::queue_control;34 31 35 32 namespace morpheo { … … 69 66 public : Tspecial_address_t _num_reg_re ; 70 67 71 friend ostream& operator<< (ostream& output_stream,68 friend std::ostream& operator<< (std::ostream& output_stream, 72 69 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Treservation_station_entry_t & x) 73 70 { 74 output_stream << " * _context_id : " << toString(x._context_id ) << endl75 << " * _front_end_id : " << toString(x._front_end_id ) << endl76 << " * _ooo_engine_id : " << toString(x._ooo_engine_id ) << endl77 << " * _rob_id : " << toString(x._rob_id ) << endl78 << " * _operation : " << toString(x._operation ) << endl79 << " * _type : " << toString(x._type ) << endl80 << " * _has_immediat : " << toString(x._has_immediat ) << endl81 << " * _immediat : " << toString(x._immediat ) << endl82 // << " * _read_ra : " << toString(x._read_ra ) << endl83 << " * _num_reg_ra : " << toString(x._num_reg_ra ) << endl84 << " * _data_ra_val : " << toString(x._data_ra_val ) << endl85 << " * _data_ra : " << toString(x._data_ra ) << endl86 // << " * _read_rb : " << toString(x._read_rb ) << endl87 << " * _num_reg_rb : " << toString(x._num_reg_rb ) << endl88 << " * _data_rb_val : " << toString(x._data_rb_val ) << endl89 << " * _data_rb : " << toString(x._data_rb ) << endl90 // << " * _read_rc : " << toString(x._read_rc ) << endl91 << " * _num_reg_rc : " << toString(x._num_reg_rc ) << endl92 << " * _data_rc_val : " << toString(x._data_rc_val ) << endl93 << " * _data_rc : " << toString(x._data_rc ) << endl94 << " * _write_rd : " << toString(x._write_rd ) << endl95 << " * _num_reg_rd : " << toString(x._num_reg_rd ) << endl96 << " * _write_re : " << toString(x._write_re ) << endl97 << " * _num_reg_re : " << toString(x._num_reg_re ) << endl;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; 98 95 99 96 return output_stream; … … 109 106 // -----[ fields ]---------------------------------------------------- 110 107 // Parameters 111 protected : const st ring _name;108 protected : const std::string _name; 112 109 113 110 protected : const Parameters * _param; 114 //#ifdef STATISTICS 115 // protected : const morpheo::behavioural::Parameters_Statistics * _param_statistics; 116 //#endif 117 118 #ifdef STATISTICS 119 private : Statistics * _stat; 111 112 #ifdef STATISTICS 113 public : Stat * _stat; 120 114 #endif 121 115 … … 233 227 public : Reservation_station ( 234 228 #ifdef SYSTEMC 235 sc_module_name name,229 sc_module_name name, 236 230 #else 237 string name,231 string name, 238 232 #endif 239 233 #ifdef STATISTICS 240 morpheo::behavioural::Parameters_Statistics * param_statistics,241 #endif 242 Parameters * param );234 morpheo::behavioural::Parameters_Statistics * param_statistics, 235 #endif 236 Parameters * param ); 243 237 public : ~Reservation_station (void); 244 238 … … 250 244 public : void genMoore (void); 251 245 #endif 252 #ifdef STATISTICS 253 public : string statistics (uint32_t depth); 246 247 #ifdef STATISTICS 248 public : void statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics); 254 249 #endif 255 250 … … 260 255 #endif 261 256 257 #if defined(STATISTICS) or defined(VHDL_TESTBENCH) 262 258 private : void end_cycle (void); 259 #endif 263 260 }; 264 261 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_msg_error.cpp
r69 r75 8 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h" 9 9 #include <sstream> 10 using namespace std;11 10 12 11 namespace morpheo { … … 22 21 #undef FUNCTION 23 22 #define FUNCTION "Reservation_station::msg_error" 24 st ring Parameters::msg_error(void)23 std::string Parameters::msg_error(void) 25 24 { 26 25 log_printf(FUNC,Reservation_station,FUNCTION,"Begin"); 27 26 28 st ring msg = "";27 std::string msg = ""; 29 28 30 29 // if (_size_queue < 2) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_print.cpp
r69 r75 8 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h" 9 9 #include "Behavioural/include/XML.h" 10 using namespace std;11 10 12 11 namespace morpheo { … … 22 21 #undef FUNCTION 23 22 #define FUNCTION "Reservation_station::print" 24 st ring Parameters::print (uint32_t depth)23 std::string Parameters::print (uint32_t depth) 25 24 { 26 25 log_printf(FUNC,Reservation_station,FUNCTION,"Begin"); … … 54 53 #undef FUNCTION 55 54 #define FUNCTION "Reservation_station::operator<<" 56 ostream& operator<< (ostream& output_stream ,57 55 std::ostream& operator<< (std::ostream& output_stream , 56 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Parameters & x) 58 57 { 59 58 log_printf(FUNC,Reservation_station,FUNCTION,"Begin"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp
r55 r75 31 31 _name (name) 32 32 ,_param (param) 33 // #ifdef STATISTICS34 // ,_param_statistics (param_statistics)35 // #endif36 33 { 37 34 log_printf(FUNC,Reservation_station,FUNCTION,"Begin"); … … 46 43 log_printf(INFO,Reservation_station,FUNCTION,"Allocation of statistics"); 47 44 48 // Allocation of statistics 49 _stat = new Statistics (static_cast<string>(_name), 50 param_statistics , 51 param); 45 statistics_declaration(param_statistics); 52 46 #endif 53 47 … … 95 89 log_printf(INFO,Reservation_station,FUNCTION,"Generate Statistics file"); 96 90 97 _stat->generate_file(statistics(0));98 99 91 delete _stat; 100 92 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_allocation.cpp
r69 r75 24 24 void Reservation_station::allocation (void) 25 25 { 26 string rename;27 28 26 log_printf(FUNC,Reservation_station,FUNCTION,"Begin"); 29 27 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_end_cycle.cpp
r69 r75 1 #if defined(STATISTICS) or defined(VHDL_TESTBENCH) 1 2 /* 2 3 * $Id$ … … 25 26 26 27 #ifdef STATISTICS 27 _stat-> add();28 _stat->end_cycle(); 28 29 #endif 29 30 … … 45 46 }; // end namespace behavioural 46 47 }; // end namespace morpheo 48 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_statistics_declaration.cpp
r59 r75 18 18 namespace reservation_station { 19 19 20 21 20 #undef FUNCTION 22 #define FUNCTION "Reservation_station::statistics "23 string Reservation_station::statistics (uint32_t depth)21 #define FUNCTION "Reservation_station::statistics_declaration" 22 void Reservation_station::statistics_declaration (morpheo::behavioural::Parameters_Statistics * param_statistics) 24 23 { 25 24 log_printf(FUNC,Reservation_station,FUNCTION,"Begin"); 26 25 27 string txt = _stat->print(depth); 26 _stat = new Stat (static_cast<std::string>(_name), 27 "Reservation_station", 28 param_statistics); 28 29 29 30 log_printf(FUNC,Reservation_station,FUNCTION,"End"); 30 31 return txt;32 31 }; 33 32 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_vhdl_body.cpp
r70 r75 22 22 void Reservation_station::vhdl_body (Vhdl * & vhdl) 23 23 { 24 st ring range_retire, range_insert;24 std::string range_retire, range_insert; 25 25 26 26 if (_param->_size_queue == 1)
Note: See TracChangeset
for help on using the changeset viewer.