Changeset 113 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core
- Timestamp:
- Apr 14, 2009, 8:39:12 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core
- Files:
-
- 17 added
- 101 edited
- 3 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Core_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Dcache_Access/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Dcache_Access 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Icache_Access/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Icache_Access 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Core 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Execute_loop_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/SelfTest/src/test.cpp
r88 r113 48 48 sc_signal<Tcontrol_t> * in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 49 49 50 sc_signal<Tcontrol_t > ** in_GPR_WRITE_WRITE_UNIT_VAL ; 51 sc_signal<Tcontrol_t > ** out_GPR_WRITE_WRITE_UNIT_ACK ; 52 sc_signal<Tcontext_t > ** in_GPR_WRITE_WRITE_UNIT_OOO_ENGINE_ID ; 53 sc_signal<Tgeneral_address_t> ** in_GPR_WRITE_WRITE_UNIT_NUM_REG ; 54 sc_signal<Tgeneral_data_t > ** in_GPR_WRITE_WRITE_UNIT_DATA ; 55 sc_signal<Tcontrol_t > ** out_GPR_WRITE_REGISTER_FILE_VAL ; 56 sc_signal<Tcontrol_t > ** in_GPR_WRITE_REGISTER_FILE_ACK ; 57 sc_signal<Tcontext_t > ** out_GPR_WRITE_REGISTER_FILE_OOO_ENGINE_ID ; 58 sc_signal<Tgeneral_address_t> ** out_GPR_WRITE_REGISTER_FILE_NUM_REG ; 59 sc_signal<Tgeneral_data_t > ** out_GPR_WRITE_REGISTER_FILE_DATA ; 60 sc_signal<Tcontrol_t > ** out_GPR_WRITE_READ_UNIT_VAL ; 61 sc_signal<Tcontext_t > ** out_GPR_WRITE_READ_UNIT_OOO_ENGINE_ID ; 62 sc_signal<Tgeneral_address_t> ** out_GPR_WRITE_READ_UNIT_NUM_REG ; 63 sc_signal<Tgeneral_data_t > ** out_GPR_WRITE_READ_UNIT_DATA ; 64 sc_signal<Tcontrol_t > ** in_SPR_WRITE_WRITE_UNIT_VAL ; 65 sc_signal<Tcontrol_t > ** out_SPR_WRITE_WRITE_UNIT_ACK ; 66 sc_signal<Tcontext_t > ** in_SPR_WRITE_WRITE_UNIT_OOO_ENGINE_ID ; 67 sc_signal<Tspecial_address_t> ** in_SPR_WRITE_WRITE_UNIT_NUM_REG ; 68 sc_signal<Tspecial_data_t > ** in_SPR_WRITE_WRITE_UNIT_DATA ; 69 sc_signal<Tcontrol_t > ** out_SPR_WRITE_REGISTER_FILE_VAL ; 70 sc_signal<Tcontrol_t > ** in_SPR_WRITE_REGISTER_FILE_ACK ; 71 sc_signal<Tcontext_t > ** out_SPR_WRITE_REGISTER_FILE_OOO_ENGINE_ID ; 72 sc_signal<Tspecial_address_t> ** out_SPR_WRITE_REGISTER_FILE_NUM_REG ; 73 sc_signal<Tspecial_data_t > ** out_SPR_WRITE_REGISTER_FILE_DATA ; 74 sc_signal<Tcontrol_t > ** out_SPR_WRITE_READ_UNIT_VAL ; 75 sc_signal<Tcontext_t > ** out_SPR_WRITE_READ_UNIT_OOO_ENGINE_ID ; 76 sc_signal<Tspecial_address_t> ** out_SPR_WRITE_READ_UNIT_NUM_REG ; 77 sc_signal<Tspecial_data_t > ** out_SPR_WRITE_READ_UNIT_DATA ; 78 50 79 ALLOC1_SC_SIGNAL( in_GPR_WRITE_WRITE_UNIT_VAL ," in_GPR_WRITE_WRITE_UNIT_VAL ",Tcontrol_t ,_param->_nb_gpr_write); 51 80 ALLOC1_SC_SIGNAL(out_GPR_WRITE_WRITE_UNIT_ACK ,"out_GPR_WRITE_WRITE_UNIT_ACK ",Tcontrol_t ,_param->_nb_gpr_write); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Execute_loop 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Functionnal_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Operation 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/Makefile.defs
r81 r113 2 2 # $Id$ 3 3 # 4 # [ 4 # [ Description ] 5 5 # 6 6 # Makefile 7 7 # 8 8 9 #-----[ Directory ]---------------------------------------- 9 ENTITY = Load_store_unit 10 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. 11 13 DIR_MORPHEO = $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/include/Memory.h
r101 r113 147 147 trace_memory_t trace; 148 148 149 trace._cycle = s c_simulation_time();149 trace._cycle = simulation_cycle(); 150 150 trace._context = context; 151 151 trace._address = address; … … 229 229 trace_memory_t trace; 230 230 231 trace._cycle = s c_simulation_time();231 trace._cycle = simulation_cycle(); 232 232 trace._context = context; 233 233 trace._address = address; … … 247 247 trace_memory_t trace; 248 248 249 trace._cycle = s c_simulation_time();249 trace._cycle = simulation_cycle(); 250 250 trace._context = context; 251 251 trace._address = address; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test1.cpp
r82 r113 270 270 load_queue_use [i] = false; 271 271 272 double current_cycle = s c_simulation_time();272 double current_cycle = simulation_cycle(); 273 273 double cycle_min = current_cycle; 274 274 … … 451 451 in_MEMORY_IN_VAL ->write((not fifo_request.empty()) and 452 452 can_execute and 453 (s c_simulation_time() >= fifo_request.top()._cycle));453 (simulation_cycle() >= fifo_request.top()._cycle)); 454 454 455 455 if (_param->_have_port_context_id) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/src/test2.cpp
r104 r113 412 412 if (not fifo_request.empty()) 413 413 { 414 can_execute = s c_simulation_time() >= fifo_request.top()._cycle;414 can_execute = simulation_cycle() >= fifo_request.top()._cycle; 415 415 if (is_operation_memory_store(fifo_request.top()._operation)) 416 416 can_execute &= (not store_queue_use [fifo_request.top()._store_queue_ptr_write] and (nb_store_slot_use < _param->_size_store_queue-1)) or is_operation_memory_store_head(fifo_request.top()._operation); … … 512 512 } 513 513 514 std::cout << "kane - nb_request_memory_out : " << nb_request_memory_out << std::endl;515 516 514 // a lot of test 517 515 TEST(Tpacket_t , out_MEMORY_OUT_PACKET_ID [0]->read(), tab_request[packet_id]._packet_id ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Read_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/Makefile.defs
r81 r113 2 2 # $Id$ 3 3 # 4 # [ 4 # [ Description ] 5 5 # 6 6 # Makefile 7 7 # 8 8 9 #-----[ Directory ]---------------------------------------- 9 ENTITY = Read_queue 10 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. 11 13 DIR_MORPHEO = $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/Makefile.defs
r81 r113 2 2 # $Id$ 3 3 # 4 # [ 4 # [ Description ] 5 5 # 6 6 # Makefile 7 7 # 8 8 9 #-----[ Directory ]---------------------------------------- 9 ENTITY = Reservation_station 10 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. 11 13 DIR_MORPHEO = $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Execute_queue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h
r111 r113 2 2 * $Id$ 3 3 * 4 * [ 4 * [ Description ] 5 5 * 6 * Test " RegisterFile"6 * Test "Execute_queue" 7 7 */ 8 8 … … 11 11 #endif 12 12 13 #include <string> 14 #include <iostream> 15 #include <sys/time.h> 13 #define NB_ITERATION 16 14 #define CYCLE_MAX (1024*NB_ITERATION) 16 15 16 #include "Common/include/Test.h" 17 17 #include "Common/include/Time.h" 18 18 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h" … … 29 29 using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue; 30 30 31 void test (string name, 32 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters * param); 31 SC_MODULE(top) 32 { 33 #ifdef SYSTEMC 34 private: sc_clock * in_CLOCK ; 35 private: sc_signal<Tcontrol_t> * in_NRESET; 36 37 private: sc_signal<Tcontrol_t > * in_EXECUTE_QUEUE_IN_VAL ; 38 private: sc_signal<Tcontrol_t > * out_EXECUTE_QUEUE_IN_ACK ; 39 private: sc_signal<Tcontext_t > * in_EXECUTE_QUEUE_IN_CONTEXT_ID ; 40 private: sc_signal<Tcontext_t > * in_EXECUTE_QUEUE_IN_FRONT_END_ID ; 41 private: sc_signal<Tcontext_t > * in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID ; 42 private: sc_signal<Tpacket_t > * in_EXECUTE_QUEUE_IN_PACKET_ID ; 43 //private: sc_signal<Toperation_t > * in_EXECUTE_QUEUE_IN_OPERATION ; 44 //private: sc_signal<Ttype_t > * in_EXECUTE_QUEUE_IN_TYPE ; 45 private: sc_signal<Tspecial_data_t > * in_EXECUTE_QUEUE_IN_FLAGS ; 46 private: sc_signal<Texception_t > * in_EXECUTE_QUEUE_IN_EXCEPTION ; 47 private: sc_signal<Tcontrol_t > * in_EXECUTE_QUEUE_IN_NO_SEQUENCE ; 48 private: sc_signal<Taddress_t > * in_EXECUTE_QUEUE_IN_ADDRESS ; 49 private: sc_signal<Tgeneral_data_t > * in_EXECUTE_QUEUE_IN_DATA ; 50 51 private: sc_signal<Tcontrol_t > * out_EXECUTE_QUEUE_OUT_VAL ; 52 private: sc_signal<Tcontrol_t > * in_EXECUTE_QUEUE_OUT_ACK ; 53 private: sc_signal<Tcontext_t > * out_EXECUTE_QUEUE_OUT_CONTEXT_ID ; 54 private: sc_signal<Tcontext_t > * out_EXECUTE_QUEUE_OUT_FRONT_END_ID ; 55 private: sc_signal<Tcontext_t > * out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID; 56 private: sc_signal<Tpacket_t > * out_EXECUTE_QUEUE_OUT_PACKET_ID ; 57 //private: sc_signal<Toperation_t > * out_EXECUTE_QUEUE_OUT_OPERATION ; 58 //private: sc_signal<Ttype_t > * out_EXECUTE_QUEUE_OUT_TYPE ; 59 private: sc_signal<Tspecial_data_t > * out_EXECUTE_QUEUE_OUT_FLAGS ; 60 private: sc_signal<Texception_t > * out_EXECUTE_QUEUE_OUT_EXCEPTION ; 61 private: sc_signal<Tcontrol_t > * out_EXECUTE_QUEUE_OUT_NO_SEQUENCE ; 62 private: sc_signal<Taddress_t > * out_EXECUTE_QUEUE_OUT_ADDRESS ; 63 private: sc_signal<Tgeneral_data_t > * out_EXECUTE_QUEUE_OUT_DATA ; 64 65 #endif 66 67 private: std::string name; 68 private: Tusage_t _usage; 69 private: morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters * _param; 70 #ifdef STATISTICS 71 private: morpheo::behavioural::Parameters_Statistics * _param_stat; 72 #endif 73 private: Execute_queue * component; 74 75 private: void usage 76 ( 77 #ifdef MTI_SYSTEMC 78 int argc, const char * const * argv 79 #else 80 int argc, char * argv[] 81 #endif 82 ); 83 private: void allocation (void); 84 private: void deallocation (void); 85 public : void test (void); 86 87 #ifdef MTI_SYSTEMC 88 SC_CTOR(top::top); 89 #else 90 public : top (sc_module_name module_name,int argc, char * argv[]); 91 #endif 92 public : ~top(void); 93 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/src/main.cpp
r88 r113 2 2 * $Id$ 3 3 * 4 * [ 4 * [ Description ] 5 5 * 6 6 */ 7 7 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/t est.h"8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/SelfTest/include/top.h" 9 9 10 #define NB_PARAMS 7 11 12 void usage (int argc, char * argv[]) 10 #ifndef MTI_SYSTEMC 11 # ifndef SYSTEMC 12 int main (int argc, char * argv[]) 13 # else 14 int sc_main (int argc, char * argv[]) 15 # endif 13 16 { 14 err (_("<Usage> %s name_instance list_params.\n"),argv[0]); 15 err (_("list_params is :\n")); 16 err (_(" * size_queue (uint32_t)\n")); 17 err (_(" * nb_context (uint32_t)\n")); 18 err (_(" * nb_front_end (uint32_t)\n")); 19 err (_(" * nb_ooo_engine (uint32_t)\n")); 20 err (_(" * nb_packet (uint32_t)\n")); 21 err (_(" * size_general_data (uint32_t)\n")); 22 err (_(" * size_special_data (uint32_t)\n")); 23 24 exit (1); 25 } 26 27 #ifndef SYSTEMC 28 int main (int argc, char * argv[]) 29 #else 30 int sc_main (int argc, char * argv[]) 31 #endif 32 { 33 if (argc != 2+NB_PARAMS) 34 usage (argc, argv); 35 36 uint32_t x = 1; 37 38 const string name = argv[x++]; 39 const uint32_t size_queue = atoi(argv[x++]); 40 const uint32_t nb_context = atoi(argv[x++]); 41 const uint32_t nb_front_end = atoi(argv[x++]); 42 const uint32_t nb_ooo_engine = atoi(argv[x++]); 43 const uint32_t nb_packet = atoi(argv[x++]); 44 const uint32_t size_general_data = atoi(argv[x++]); 45 const uint32_t size_special_data = atoi(argv[x++]); 17 int _return = EXIT_SUCCESS; 46 18 47 19 try 48 20 { 49 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters * param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters 50 (size_queue , 51 nb_context , 52 nb_front_end , 53 nb_ooo_engine , 54 nb_packet , 55 size_general_data , 56 size_special_data , 57 true // is_toplevel 58 ); 59 60 msg(_("%s"),param->print(1).c_str()); 61 62 test (name,param); 21 top * my_top = new top ("my_top",argc,argv); 22 23 my_top->test(); 24 25 delete my_top; 63 26 } 64 27 catch (morpheo::ErrorMorpheo & error) 65 28 { 66 msg (_("<%s> : %s.\n"),name.c_str(),error.what ());67 exit (EXIT_FAILURE);29 msgError(_("%s\n"),error.what ()); 30 _return = EXIT_FAILURE; 68 31 } 69 catch (...) 32 33 try 70 34 { 71 err (_("<%s> : This test must generate a error.\n"),name.c_str()); 72 exit (EXIT_FAILURE); 35 if (_return == EXIT_SUCCESS) 36 TEST_OK("Execute_queue : no error"); 37 else 38 TEST_KO("Execute_queue : a lot of error"); 39 } 40 catch (morpheo::ErrorMorpheo & error) 41 { 42 // msgError(_("<%s> :\n%s"),name.c_str(), error.what ()); 43 _return = EXIT_FAILURE; 73 44 } 74 45 75 return (EXIT_SUCCESS);46 return _return; 76 47 } 77 48 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h
r101 r113 18 18 #include "Common/include/Debug.h" 19 19 20 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h" 20 21 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h" 21 22 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Types.h" … … 28 29 #endif 29 30 #include "Behavioural/include/Usage.h" 31 #include "Behavioural/include/Simulation.h" 32 33 #include "Behavioural/Generic/Queue/include/Queue.h" 30 34 31 35 namespace morpheo { … … 47 51 protected : const std::string _name; 48 52 protected : const Parameters * _param; 49 p rivate : constTusage_t _usage;53 public : Tusage_t _usage; 50 54 51 55 #ifdef STATISTICS … … 95 99 public : SC_OUT(Taddress_t ) * out_EXECUTE_QUEUE_OUT_ADDRESS ; 96 100 public : SC_OUT(Tgeneral_data_t ) * out_EXECUTE_QUEUE_OUT_DATA ; 97 98 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~99 101 100 102 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 103 105 private : Tcontrol_t internal_EXECUTE_QUEUE_IN_ACK ; 104 106 private : Tcontrol_t internal_EXECUTE_QUEUE_OUT_VAL; 107 108 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 # ifdef VHDL 110 private : morpheo::behavioural::generic::queue::Parameters * _param_queue; 111 private : morpheo::behavioural::generic::queue::Queue * _component_queue; 112 # endif 113 #endif 114 115 #ifdef MODELSIM_COSIMULATION 116 // ~~~~~[ Wrapper ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 private : Wrapper_Execute_queue * _wrapper; 105 118 #endif 106 119 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Parameters.h
r98 r113 61 61 public : Parameters_test msg_error (void); 62 62 63 public : std::string print (uint32_t depth); 64 public : friend std::ostream& operator<< (std::ostream& output_stream, 65 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters & x); 63 public : std::string id (void) const; 64 65 public : std::string print (uint32_t depth); 66 public : friend std::ostream& operator<< (std::ostream& output_stream, 67 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters & x); 66 68 }; 67 69 … … 72 74 }; // end namespace multi_execute_loop 73 75 }; // end namespace core 74 75 76 }; // end namespace behavioural 76 77 }; // end namespace morpheo -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue.cpp
r88 r113 35 35 _name (name) 36 36 ,_param (param) 37 ,_usage (usage)38 37 { 39 log_ printf(FUNC,Execute_queue,FUNCTION,"Begin");38 log_begin(Execute_queue,FUNCTION); 40 39 41 #if DEBUG_Execute_queue == true 42 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Parameters"),_name.c_str()); 40 _usage = usage_environment(usage); 43 41 44 std::cout << *param << std::endl; 45 #endif 42 // #if DEBUG_Execute_queue == true 43 // log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Parameters"),_name.c_str()); 46 44 47 log_printf(INFO,Execute_queue,FUNCTION,"Allocation"); 45 // std::cout << *param << std::endl; 46 // #endif 47 48 #ifdef MODELSIM_COSIMULATION 49 { 50 std::string param_id = param->id(); 51 52 if ((_model.get_type(_param->_type) == MODEL_VHDL) and 53 (param_id != "") 54 ) 55 { 56 std::string vhdl_id = vhdl_get_id(_name); 57 58 if (vhdl_id == param_id) 59 { 60 msgInformation(_("<%s> Use VHDL model\n"),_name.c_str()); 61 _usage = usage_cosimulation(_usage); 62 } 63 else 64 { 65 log_printf(TRACE,Execute_queue,FUNCTION,"get_id : %s",vhdl_id.c_str()); 66 log_printf(TRACE,Execute_queue,FUNCTION,"id : %s",param_id.c_str()); 67 68 msgWarning(_("<%s> Can't load VHDL model, continue with SystemC model\n"),_name.c_str()); 69 } 70 } 71 } 72 #endif 73 74 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Allocation"),_name.c_str()); 48 75 allocation (); 49 76 … … 51 78 if (usage_is_set(_usage,USE_STATISTICS)) 52 79 { 53 log_printf(INFO,Execute_queue,FUNCTION, "Allocation of statistics");80 log_printf(INFO,Execute_queue,FUNCTION,("<%s> Allocation of statistics"),_name.c_str()); 54 81 55 82 statistics_declaration(param_statistics); … … 61 88 { 62 89 // generate the vhdl 63 log_printf(INFO,Execute_queue,FUNCTION, "Generate the vhdl");90 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str()); 64 91 65 92 vhdl(); … … 68 95 69 96 #ifdef SYSTEMC 70 if (usage_is_set(_usage,USE_SYSTEMC ))97 if (usage_is_set(_usage,USE_SYSTEMC_BODY)) 71 98 { 72 log_printf(INFO,Execute_queue,FUNCTION, "Method - transition");99 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Method - transition"),_name.c_str()); 73 100 74 101 SC_METHOD (transition); … … 80 107 # endif 81 108 82 log_printf(INFO,Execute_queue,FUNCTION, "Method - genMoore");109 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Method - genMoore"),_name.c_str()); 83 110 84 111 SC_METHOD (genMoore); … … 89 116 // List dependency information 90 117 # endif 91 118 } 92 119 #endif 93 } 94 log_printf(FUNC,Execute_queue,FUNCTION,"End"); 120 log_end(Execute_queue,FUNCTION); 95 121 }; 96 122 … … 99 125 Execute_queue::~Execute_queue (void) 100 126 { 101 log_ printf(FUNC,Execute_queue,FUNCTION,"Begin");127 log_begin(Execute_queue,FUNCTION); 102 128 103 129 #ifdef STATISTICS 104 130 if (usage_is_set(_usage,USE_STATISTICS)) 105 131 { 106 log_printf(INFO,Execute_queue,FUNCTION, "Generate Statistics file");132 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str()); 107 133 108 134 delete _stat; … … 110 136 #endif 111 137 112 log_printf(INFO,Execute_queue,FUNCTION, "Deallocation");138 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> Deallocation"),_name.c_str()); 113 139 deallocation (); 114 140 115 log_ printf(FUNC,Execute_queue,FUNCTION,"End");141 log_end(Execute_queue,FUNCTION); 116 142 }; 117 143 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_allocation.cpp
r112 r113 2 2 * $Id$ 3 3 * 4 * [ 4 * [ Description ] 5 5 * 6 6 */ 7 7 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Wrapper_Execute_queue.h" 8 9 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h" 9 10 #include "Behavioural/include/Allocation.h" … … 27 28 28 29 Entity * entity = _component->set_entity (_name 29 , "Execute_queue"30 ,_param->_type 30 31 #ifdef POSITION 31 32 ,COMBINATORY … … 35 36 _interfaces = entity->set_interfaces(); 36 37 37 // ~~~~~[ 38 // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 38 39 39 40 Interface * interface = _interfaces->set_interface("" … … 54 55 ALLOC0_VALACK_IN ( in_EXECUTE_QUEUE_IN_VAL,VAL); 55 56 ALLOC0_VALACK_OUT(out_EXECUTE_QUEUE_IN_ACK,ACK); 56 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id );57 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id );58 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id );59 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr );60 // ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation );61 // ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type );62 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FLAGS ,"flags" ,Tspecial_data_t ,_param->_size_special_data );63 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_EXCEPTION ,"exception" ,Texception_t ,_param->_size_exception );64 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_NO_SEQUENCE ,"no_sequence" ,Tcontrol_t ,1 );57 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ); 58 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 59 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id ); 60 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 61 // ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 62 // ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type ); 63 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_FLAGS ,"flags" ,Tspecial_data_t ,_param->_size_special_data ); 64 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_EXCEPTION ,"exception" ,Texception_t ,_param->_size_exception ); 65 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_NO_SEQUENCE ,"no_sequence" ,Tcontrol_t ,1 ); 65 66 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_ADDRESS ,"address" ,Taddress_t ,_param->_size_instruction_address); 66 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_DATA ,"data" ,Tgeneral_data_t ,_param->_size_general_data );67 ALLOC0_SIGNAL_IN ( in_EXECUTE_QUEUE_IN_DATA ,"data" ,Tgeneral_data_t ,_param->_size_general_data ); 67 68 68 69 ALLOC0_INTERFACE_END(); … … 90 91 } 91 92 92 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 93 94 _queue = new std::list<execute_queue_entry_t *>; 93 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 if (usage_is_set(_usage,USE_SYSTEMC_BODY)) 95 { 96 _queue = new std::list<execute_queue_entry_t *>; 97 } 98 99 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 100 #ifdef VHDL 101 if (usage_is_set(_usage,USE_VHDL)) 102 { 103 _param_queue = new morpheo::behavioural::generic::queue::Parameters 104 (_param->_size_queue, 105 _param->_size_internal_queue, 106 0, 107 false, 108 false 109 ); 110 111 std::string queue_name = _name + "_queue"; 112 _component_queue = new morpheo::behavioural::generic::queue::Queue 113 (queue_name.c_str() 114 # ifdef STATISTICS 115 ,NULL 116 # endif 117 ,_param_queue 118 ,USE_VHDL); 119 120 _component->set_component(_component_queue->_component 121 # ifdef POSITION 122 , 0, 0, 0, 0 123 # endif 124 , INSTANCE_LIBRARY 125 ); 126 } 127 #endif 95 128 96 129 #ifdef POSITION 97 if (usage_is_set(_usage,USE_POSITION)) 98 _component->generate_file(); 99 #endif 100 130 if (usage_is_set(_usage,USE_POSITION)) 131 _component->generate_file(); 132 #endif 133 134 #ifdef MODELSIM_COSIMULATION 135 if (usage_is_set(_usage,USE_COSIMULATION)) 136 { 137 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> : Create Wrapper"),_name.c_str()); 138 139 _wrapper = new Wrapper_Execute_queue(_name.c_str(),"morpheo_behavioural","/dsk/l1/misc/Morpheo/work",_param); 140 // _wrapper = new Wrapper_Execute_queue(_name.c_str(),"morpheo_behavioural","work"); 141 142 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> : Wrapper Instanciation"),_name.c_str()); 143 144 // INSTANCE0_FOREIGN_SIGNAL_CLOCK(_wrapper, in_CLOCK , "in_CLOCK" ,1); 145 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_NRESET ,Tcontrol_t , "in_NRESET" ,1); 146 147 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_VAL ,Tcontrol_t , "in_EXECUTE_QUEUE_IN_VAL" ,1 ); 148 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_IN_ACK ,Tcontrol_t ,"out_EXECUTE_QUEUE_IN_ACK" ,1 ); 149 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_CONTEXT_ID ,Tcontext_t , "in_EXECUTE_QUEUE_IN_CONTEXT_ID" ,_param->_size_context_id ); 150 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_FRONT_END_ID ,Tcontext_t , "in_EXECUTE_QUEUE_IN_FRONT_END_ID" ,_param->_size_front_end_id ); 151 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID ,Tcontext_t , "in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID" ,_param->_size_ooo_engine_id ); 152 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_PACKET_ID ,Tpacket_t , "in_EXECUTE_QUEUE_IN_PACKET_ID" ,_param->_size_rob_ptr ); 153 // // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_OPERATION ,Toperation_t , "in_EXECUTE_QUEUE_IN_OPERATION" ,_param->_size_operation ); 154 // // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_TYPE ,Ttype_t , "in_EXECUTE_QUEUE_IN_TYPE" ,_param->_size_type ); 155 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_FLAGS ,Tspecial_data_t , "in_EXECUTE_QUEUE_IN_FLAGS" ,_param->_size_special_data ); 156 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_EXCEPTION ,Texception_t , "in_EXECUTE_QUEUE_IN_EXCEPTION" ,_param->_size_exception ); 157 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_NO_SEQUENCE ,Tcontrol_t , "in_EXECUTE_QUEUE_IN_NO_SEQUENCE" ,1 ); 158 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_ADDRESS ,Taddress_t , "in_EXECUTE_QUEUE_IN_ADDRESS" ,_param->_size_instruction_address); 159 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_IN_DATA ,Tgeneral_data_t , "in_EXECUTE_QUEUE_IN_DATA" ,_param->_size_general_data ); 160 161 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_VAL ,Tcontrol_t ,"out_EXECUTE_QUEUE_OUT_VAL" ,1 ); 162 // INSTANCE0_FOREIGN_SIGNAL_IN (_wrapper, in_EXECUTE_QUEUE_OUT_ACK ,Tcontrol_t , "in_EXECUTE_QUEUE_OUT_ACK" ,1 ); 163 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_CONTEXT_ID ,Tcontext_t ,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID" ,_param->_size_context_id ); 164 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_FRONT_END_ID ,Tcontext_t ,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID" ,_param->_size_front_end_id ); 165 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID ,Tcontext_t ,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID" ,_param->_size_ooo_engine_id ); 166 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_PACKET_ID ,Tpacket_t ,"out_EXECUTE_QUEUE_OUT_PACKET_ID" ,_param->_size_rob_ptr ); 167 // // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_OPERATION ,Toperation_t ,"out_EXECUTE_QUEUE_OUT_OPERATION" ,_param->_size_operation ); 168 // // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_TYPE ,Ttype_t ,"out_EXECUTE_QUEUE_OUT_TYPE" ,_param->_size_type ); 169 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_FLAGS ,Tspecial_data_t ,"out_EXECUTE_QUEUE_OUT_FLAGS" ,_param->_size_special_data ); 170 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_EXCEPTION ,Texception_t ,"out_EXECUTE_QUEUE_OUT_EXCEPTION" ,_param->_size_exception ); 171 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_NO_SEQUENCE ,Tcontrol_t ,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE" ,1 ); 172 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_ADDRESS ,Taddress_t ,"out_EXECUTE_QUEUE_OUT_ADDRESS" ,_param->_size_instruction_address); 173 // INSTANCE0_FOREIGN_SIGNAL_OUT (_wrapper,out_EXECUTE_QUEUE_OUT_DATA ,Tgeneral_data_t ,"out_EXECUTE_QUEUE_OUT_DATA" ,_param->_size_general_data ); 174 175 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_CLOCK ,Tcontrol_t , "in_CLOCK" ,1); 176 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_NRESET ,Tcontrol_t , "in_NRESET" ,1); 177 178 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_VAL ,Tcontrol_t , "in_EXECUTE_QUEUE_IN_VAL" ,1 ); 179 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_IN_ACK ,Tcontrol_t ,"out_EXECUTE_QUEUE_IN_ACK" ,1 ); 180 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_CONTEXT_ID ,Tcontext_t , "in_EXECUTE_QUEUE_IN_CONTEXT_ID" ,_param->_size_context_id ); 181 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_FRONT_END_ID ,Tcontext_t , "in_EXECUTE_QUEUE_IN_FRONT_END_ID" ,_param->_size_front_end_id ); 182 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID ,Tcontext_t , "in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID" ,_param->_size_ooo_engine_id ); 183 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_PACKET_ID ,Tpacket_t , "in_EXECUTE_QUEUE_IN_PACKET_ID" ,_param->_size_rob_ptr ); 184 // INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_OPERATION ,Toperation_t , "in_EXECUTE_QUEUE_IN_OPERATION" ,_param->_size_operation ); 185 // INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_TYPE ,Ttype_t , "in_EXECUTE_QUEUE_IN_TYPE" ,_param->_size_type ); 186 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_FLAGS ,Tspecial_data_t, "in_EXECUTE_QUEUE_IN_FLAGS" ,_param->_size_special_data ); 187 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_EXCEPTION ,Texception_t , "in_EXECUTE_QUEUE_IN_EXCEPTION" ,_param->_size_exception ); 188 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_NO_SEQUENCE ,Tcontrol_t , "in_EXECUTE_QUEUE_IN_NO_SEQUENCE" ,1 ); 189 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_ADDRESS ,Taddress_t , "in_EXECUTE_QUEUE_IN_ADDRESS" ,_param->_size_instruction_address); 190 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_IN_DATA ,Tgeneral_data_t, "in_EXECUTE_QUEUE_IN_DATA" ,_param->_size_general_data ); 191 192 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_VAL ,Tcontrol_t ,"out_EXECUTE_QUEUE_OUT_VAL" ,1 ); 193 INSTANCE0_FOREIGN_SIGNAL(_wrapper, in_EXECUTE_QUEUE_OUT_ACK ,Tcontrol_t , "in_EXECUTE_QUEUE_OUT_ACK" ,1 ); 194 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_CONTEXT_ID ,Tcontext_t ,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID" ,_param->_size_context_id ); 195 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_FRONT_END_ID ,Tcontext_t ,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID" ,_param->_size_front_end_id ); 196 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID ,Tcontext_t ,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID" ,_param->_size_ooo_engine_id ); 197 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_PACKET_ID ,Tpacket_t ,"out_EXECUTE_QUEUE_OUT_PACKET_ID" ,_param->_size_rob_ptr ); 198 // INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_OPERATION ,Toperation_t ,"out_EXECUTE_QUEUE_OUT_OPERATION" ,_param->_size_operation ); 199 // INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_TYPE ,Ttype_t ,"out_EXECUTE_QUEUE_OUT_TYPE" ,_param->_size_type ); 200 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_FLAGS ,Tspecial_data_t,"out_EXECUTE_QUEUE_OUT_FLAGS" ,_param->_size_special_data ); 201 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_EXCEPTION ,Texception_t ,"out_EXECUTE_QUEUE_OUT_EXCEPTION" ,_param->_size_exception ); 202 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_NO_SEQUENCE ,Tcontrol_t ,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE" ,1 ); 203 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_ADDRESS ,Taddress_t ,"out_EXECUTE_QUEUE_OUT_ADDRESS" ,_param->_size_instruction_address); 204 INSTANCE0_FOREIGN_SIGNAL(_wrapper,out_EXECUTE_QUEUE_OUT_DATA ,Tgeneral_data_t,"out_EXECUTE_QUEUE_OUT_DATA" ,_param->_size_general_data ); 205 206 log_printf(INFO,Execute_queue,FUNCTION,_("<%s> : Wrapper Instanciation end"),_name.c_str()); 207 } 208 #endif 209 101 210 log_printf(FUNC,Execute_queue,FUNCTION,"End"); 102 211 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_deallocation.cpp
r112 r113 25 25 log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); 26 26 27 if (usage_is_set(_usage,USE_SYSTEMC ))27 if (usage_is_set(_usage,USE_SYSTEMC_INTERFACE)) 28 28 { 29 29 delete in_CLOCK ; … … 60 60 61 61 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 62 while (not _queue->empty())62 if (usage_is_set(_usage,USE_SYSTEMC_BODY)) 63 63 { 64 delete _queue->front(); 65 _queue->pop_front(); 64 while (not _queue->empty()) 65 { 66 delete _queue->front(); 67 _queue->pop_front(); 68 } 69 delete _queue; 66 70 } 67 delete _queue;68 71 69 72 delete _component; 73 74 #ifdef VHDL 75 if (usage_is_set(_usage,USE_VHDL)) 76 { 77 delete _component_queue; 78 delete _param_queue; 79 } 80 #endif 81 82 #ifdef MODELSIM_COSIMULATION 83 if (usage_is_set(_usage,USE_COSIMULATION)) 84 { 85 delete _wrapper; 86 } 87 #endif 70 88 71 89 log_printf(FUNC,Execute_queue,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_statistics_declaration.cpp
r81 r113 26 26 27 27 _stat = new Stat (static_cast<std::string>(_name), 28 "Execute_queue",28 _param->_type, 29 29 param_statistics); 30 30 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl.cpp
r101 r113 9 9 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/include/Execute_queue.h" 10 10 #include "Behavioural/include/Vhdl.h" 11 #include "Behavioural/Generic/Queue/include/Queue.h"12 11 13 12 namespace morpheo { … … 23 22 #undef FUNCTION 24 23 #define FUNCTION "Execute_queue::vhdl" 25 void Execute_queue::vhdl (void) 24 void Execute_queue::vhdl (void) 26 25 { 27 26 log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); 28 27 29 //----- Queue ----- 30 31 morpheo::behavioural::generic::queue::Parameters * param_queue; 32 morpheo::behavioural::generic::queue::Queue * queue; 33 34 param_queue = new morpheo::behavioural::generic::queue::Parameters 35 (_param->_size_queue, 36 _param->_size_internal_queue, 37 0, 38 false, 39 false 40 ); 41 42 std::string queue_name = _name + "_queue"; 43 queue = new morpheo::behavioural::generic::queue::Queue 44 (queue_name.c_str() 45 #ifdef STATISTICS 46 ,NULL 47 #endif 48 ,param_queue 49 ,USE_VHDL); 50 51 _component->set_component(queue->_component 52 #ifdef POSITION 53 , 0, 0, 0, 0 54 #endif 55 , INSTANCE_LIBRARY 56 ); 57 58 Vhdl * vhdl = new Vhdl (_name); 28 Vhdl * vhdl = new Vhdl (_name,_param->id()); 59 29 60 30 _interfaces->set_port(vhdl); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_vhdl_body.cpp
r98 r113 57 57 size = _param->_size_context_id; 58 58 max = min-1+size; 59 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_CONTEXT_ID ;");59 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_CONTEXT_ID "+std_logic_range(size)+";"); 60 60 min = max+1; 61 61 } … … 64 64 size = _param->_size_front_end_id; 65 65 max = min-1+size; 66 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_FRONT_END_ID ;");66 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_FRONT_END_ID"+std_logic_range(size)+";"); 67 67 min = max+1; 68 68 } … … 71 71 size = _param->_size_ooo_engine_id; 72 72 max = min-1+size; 73 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID ;");73 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID"+std_logic_range(size)+";"); 74 74 min = max+1; 75 75 } … … 78 78 size = _param->_size_rob_ptr; 79 79 max = min-1+size; 80 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_PACKET_ID ;");80 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_PACKET_ID"+std_logic_range(size)+";"); 81 81 min = max+1; 82 82 } … … 84 84 // size = _param->_size_operation; 85 85 // max = min-1+size; 86 // vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_OPERATION ;");86 // vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_OPERATION"+std_logic_range(size)+";"); 87 87 // min = max+1; 88 88 // 89 89 // size = _param->_size_type; 90 90 // max = min-1+size; 91 // vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_TYPE ;");91 // vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_TYPE"+std_logic_range(size)+";"); 92 92 // min = max+1; 93 93 94 94 size = _param->_size_special_data; 95 95 max = min-1+size; 96 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_FLAGS ;");96 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_FLAGS"+std_logic_range(size)+";"); 97 97 min = max+1; 98 98 99 99 size = _param->_size_exception; 100 100 max = min-1+size; 101 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_EXCEPTION ;");101 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_EXCEPTION"+std_logic_range(size)+";"); 102 102 min = max+1; 103 103 104 104 size = 1; 105 105 max = min-1+size; 106 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_NO_SEQUENCE ;");106 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_NO_SEQUENCE"+std_logic_range(size)+";"); 107 107 min = max+1; 108 108 109 109 size = _param->_size_instruction_address; 110 110 max = min-1+size; 111 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_ADDRESS ;");111 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_ADDRESS"+std_logic_range(size)+";"); 112 112 min = max+1; 113 113 114 114 size = _param->_size_general_data; 115 115 max = min-1+size; 116 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_DATA ;");116 vhdl->set_body (0,"internal_QUEUE_INSERT_DATA "+std_logic_range(_param->_size_internal_queue,max,min)+" <= in_EXECUTE_QUEUE_IN_DATA"+std_logic_range(size)+";"); 117 117 min = max+1; 118 118 } … … 125 125 126 126 if(_param->_have_port_context_id) 127 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID <= internal_EXECUTE_QUEUE_OUT_CONTEXT_ID ;");127 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID "+std_logic_range(_param->_size_context_id )+" <= internal_EXECUTE_QUEUE_OUT_CONTEXT_ID ;"); 128 128 if(_param->_have_port_front_end_id) 129 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID <= internal_EXECUTE_QUEUE_OUT_FRONT_END_ID ;");129 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID "+std_logic_range(_param->_size_front_end_id )+" <= internal_EXECUTE_QUEUE_OUT_FRONT_END_ID ;"); 130 130 if(_param->_have_port_ooo_engine_id) 131 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID <= internal_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID;");131 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID "+std_logic_range(_param->_size_ooo_engine_id )+" <= internal_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID;"); 132 132 if(_param->_have_port_rob_ptr) 133 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_PACKET_ID <= internal_EXECUTE_QUEUE_OUT_PACKET_ID ;");134 // vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_OPERATION <= internal_EXECUTE_QUEUE_OUT_OPERATION ;");135 // vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_TYPE <= internal_EXECUTE_QUEUE_OUT_TYPE ;");136 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_FLAGS <= internal_EXECUTE_QUEUE_OUT_FLAGS ;");137 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_EXCEPTION <= internal_EXECUTE_QUEUE_OUT_EXCEPTION ;");138 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE <= internal_EXECUTE_QUEUE_OUT_NO_SEQUENCE ;");139 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_ADDRESS <= internal_EXECUTE_QUEUE_OUT_ADDRESS ;");140 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_DATA <= internal_EXECUTE_QUEUE_OUT_DATA ;");133 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_PACKET_ID "+std_logic_range(_param->_size_rob_ptr )+" <= internal_EXECUTE_QUEUE_OUT_PACKET_ID ;"); 134 // vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_OPERATION "+std_logic_range(_param->_size_operation )+" <= internal_EXECUTE_QUEUE_OUT_OPERATION ;"); 135 // vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_TYPE "+std_logic_range(_param->_size_type )+" <= internal_EXECUTE_QUEUE_OUT_TYPE ;"); 136 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_FLAGS "+std_logic_range(_param->_size_special_data )+" <= internal_EXECUTE_QUEUE_OUT_FLAGS ;"); 137 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_EXCEPTION "+std_logic_range(_param->_size_exception )+" <= internal_EXECUTE_QUEUE_OUT_EXCEPTION ;"); 138 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE "+std_logic_range(1 )+" <= internal_EXECUTE_QUEUE_OUT_NO_SEQUENCE ;"); 139 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_ADDRESS "+std_logic_range(_param->_size_instruction_address)+" <= internal_EXECUTE_QUEUE_OUT_ADDRESS ;"); 140 vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_DATA "+std_logic_range(_param->_size_general_data )+" <= internal_EXECUTE_QUEUE_OUT_DATA ;"); 141 141 142 143 // vhdl->set_body (0,""); 144 // vhdl->set_body (0,"process (in_CLOCK)"); 145 // vhdl->set_body (0,"begin"); 146 // vhdl->set_body (1,"if in_CLOCK'event and in_CLOCK = '1' then"); 147 // // vhdl->set_body (2,"if in_NRESET = '0' then"); 148 // // vhdl->set_body (3,"reg_CURRENT_STATE <= STATE_0;"); 149 // // vhdl->set_body (2,"else"); 150 // vhdl->set_body (3,"reg_CURRENT_STATE <= sig_NEXT_STATE;"); 151 // // vhdl->set_body (2,"end if;"); 152 153 // for (uint32_t i = 0; i <_param->_size_queue - 1; i++) 154 // { 155 // vhdl->set_body (2,"if sig_WEN_"+toString(i)+" = '1' then"); 156 // vhdl->set_body (3,"if sig_SEL_"+toString(i)+" = '0' then"); 157 // if (_param->_have_port_context_id) 158 // vhdl->set_body (4,"reg_CONTEXT_ID_"+toString(i)+" <= in_EXECUTE_QUEUE_IN_CONTEXT_ID;"); 159 // if (_param->_have_port_front_end_id) 160 // vhdl->set_body (4,"reg_FRONT_END_ID_"+toString(i)+" <= in_EXECUTE_QUEUE_IN_FRONT_END_ID;"); 161 // if (_param->_have_port_ooo_engine_id) 162 // vhdl->set_body (4,"reg_OOO_ENGINE_ID_"+toString(i)+" <= in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID;"); 163 // if (_param->_have_port_rob_ptr) 164 // vhdl->set_body (4,"reg_PACKET_ID_"+toString(i)+" <= in_EXECUTE_QUEUE_IN_PACKET_ID;"); 165 // vhdl->set_body (4, "reg_FLAGS_"+toString(i)+" <= in_EXECUTE_QUEUE_IN_FLAGS;"); 166 // vhdl->set_body (4, "reg_EXCEPTION_"+toString(i)+" <= in_EXECUTE_QUEUE_IN_EXCEPTION;"); 167 // vhdl->set_body (4, "reg_NO_SEQUENCE_"+toString(i)+" <= in_EXECUTE_QUEUE_IN_NO_SEQUENCE;"); 168 // vhdl->set_body (4, "reg_ADDRESS_"+toString(i)+" <= in_EXECUTE_QUEUE_IN_ADDRESS;"); 169 // vhdl->set_body (4, "reg_DATA_"+toString(i)+" <= in_EXECUTE_QUEUE_IN_DATA;"); 170 171 // vhdl->set_body (3, "else"); 172 // if (_param->_have_port_context_id) 173 // vhdl->set_body (4,"reg_CONTEXT_ID_"+toString(i)+" <= reg_CONTEXT_ID_"+toString(i+1)+";"); 174 // if (_param->_have_port_front_end_id) 175 // vhdl->set_body (4,"reg_FRONT_END_ID_"+toString(i)+" <= reg_FRONT_END_ID_"+toString(i+1)+";"); 176 // if (_param->_have_port_ooo_engine_id) 177 // vhdl->set_body (4,"reg_OOO_ENGINE_ID_"+toString(i)+" <= reg_OOO_ENGINE_ID_"+toString(i+1)+";"); 178 // if (_param->_have_port_rob_ptr) 179 // vhdl->set_body (4,"reg_PACKET_ID_"+toString(i)+" <= reg_PACKET_ID_"+toString(i+1)+";"); 180 // vhdl->set_body (4, "reg_FLAGS_"+toString(i)+" <= reg_FLAGS_"+toString(i+1)+";"); 181 // vhdl->set_body (4, "reg_EXCEPTION_"+toString(i)+" <= reg_EXCEPTION_"+toString(i+1)+";"); 182 // vhdl->set_body (4, "reg_NO_SEQUENCE_"+toString(i)+" <= reg_NO_SEQUENCE_"+toString(i+1)+";"); 183 // vhdl->set_body (4, "reg_ADDRESS_"+toString(i)+" <= reg_ADDRESS_"+toString(i+1)+";"); 184 // vhdl->set_body (4, "reg_DATA_"+toString(i)+" <= reg_DATA_"+toString(i+1)+";"); 185 186 // vhdl->set_body (3,"end if;"); 187 188 // vhdl->set_body (2,"end if;"); 189 // } 190 191 // vhdl->set_body (2,"if sig_WEN_"+toString(_param->_size_queue-1)+" = '1' then"); 192 // if (_param->_have_port_context_id) 193 // vhdl->set_body (3,"reg_CONTEXT_ID_"+toString(_param->_size_queue-1)+" <= in_EXECUTE_QUEUE_IN_CONTEXT_ID;"); 194 // if (_param->_have_port_front_end_id) 195 // vhdl->set_body (3,"reg_FRONT_END_ID_"+toString(_param->_size_queue-1)+" <= in_EXECUTE_QUEUE_IN_FRONT_END_ID;"); 196 // if (_param->_have_port_ooo_engine_id) 197 // vhdl->set_body (3,"reg_OOO_ENGINE_ID_"+toString(_param->_size_queue-1)+" <= in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID;"); 198 // if (_param->_have_port_rob_ptr) 199 // vhdl->set_body (3,"reg_PACKET_ID_"+toString(_param->_size_queue-1)+" <= in_EXECUTE_QUEUE_IN_PACKET_ID;"); 200 // vhdl->set_body (3, "reg_FLAGS_"+toString(_param->_size_queue-1)+" <= in_EXECUTE_QUEUE_IN_FLAGS;"); 201 // vhdl->set_body (3, "reg_EXCEPTION_"+toString(_param->_size_queue-1)+" <= in_EXECUTE_QUEUE_IN_EXCEPTION;"); 202 // vhdl->set_body (3, "reg_NO_SEQUENCE_"+toString(_param->_size_queue-1)+" <= in_EXECUTE_QUEUE_IN_NO_SEQUENCE;"); 203 // vhdl->set_body (3, "reg_ADDRESS_"+toString(_param->_size_queue-1)+" <= in_EXECUTE_QUEUE_IN_ADDRESS;"); 204 // vhdl->set_body (3, "reg_DATA_"+toString(_param->_size_queue-1)+" <= in_EXECUTE_QUEUE_IN_DATA;"); 205 // vhdl->set_body (2,"end if;"); 206 207 208 // vhdl->set_body (1,"end if;"); 209 // vhdl->set_body (0,"end process;"); 210 211 212 // vhdl->set_body (0,""); 213 // vhdl->set_body (0,""); 214 // vhdl->set_body (0,""); 215 216 // vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_VAL <= sig_OUT_VAL;"); 217 // vhdl->set_body (0,"out_EXECUTE_QUEUE_IN_ACK <= sig_IN_ACK;"); 218 // if (_param->_have_port_context_id) 219 // vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID <= reg_CONTEXT_ID_0;"); 220 // if (_param->_have_port_front_end_id) 221 // vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID <= reg_FRONT_END_ID_0;"); 222 // if (_param->_have_port_ooo_engine_id) 223 // vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID <= reg_OOO_ENGINE_ID_0;"); 224 // if (_param->_have_port_rob_ptr) 225 // vhdl->set_body (0,"out_EXECUTE_QUEUE_OUT_PACKET_ID <= reg_PACKET_ID_0;"); 226 // vhdl->set_body (0, "out_EXECUTE_QUEUE_OUT_FLAGS <= reg_FLAGS_0;"); 227 // vhdl->set_body (0, "out_EXECUTE_QUEUE_OUT_EXCEPTION <= reg_EXCEPTION_0;"); 228 // vhdl->set_body (0, "out_EXECUTE_QUEUE_OUT_NO_SEQUENCE <= reg_NO_SEQUENCE_0;"); 229 // vhdl->set_body (0, "out_EXECUTE_QUEUE_OUT_ADDRESS <= reg_ADDRESS_0;"); 230 // vhdl->set_body (0, "out_EXECUTE_QUEUE_OUT_DATA <= reg_DATA_0;"); 231 232 233 // vhdl->set_body (0,""); 234 235 // vhdl->set_body (0,"process (reg_CURRENT_STATE, in_EXECUTE_QUEUE_OUT_ACK, in_EXECUTE_QUEUE_IN_VAL, in_NRESET)"); 236 // vhdl->set_body (0,"begin"); 237 // vhdl->set_body (1,"if in_NRESET = '0' then"); 238 // vhdl->set_body (2,"sig_NEXT_STATE <= STATE_0;"); 239 // vhdl->set_body (1,"else"); 240 // vhdl->set_body (2,"case reg_CURRENT_STATE is"); 241 // for (uint32_t i = 0; i <_param->_size_queue + 1; i++) 242 // { 243 // vhdl->set_body (3,"when STATE_"+toString(i)+" =>"); 244 // if (i == 0) 245 // { 246 // vhdl->set_body (4,"if in_EXECUTE_QUEUE_IN_VAL = '1' then"); 247 // vhdl->set_body (5,"sig_NEXT_STATE <= reg_CURRENT_STATE ("+toString(_param->_size_queue-1)+" downto 0) & '0';"); 248 // vhdl->set_body (4,"else"); 249 // vhdl->set_body (5,"sig_NEXT_STATE <= reg_CURRENT_STATE;"); 250 // vhdl->set_body (4,"end if;"); 251 // continue; 252 // } 253 // if (i == (_param->_size_queue)) 254 // { 255 // vhdl->set_body (4,"if in_EXECUTE_QUEUE_OUT_ACK = '1' then"); 256 // vhdl->set_body (5,"sig_NEXT_STATE <= '0' & reg_CURRENT_STATE ("+toString(_param->_size_queue)+" downto 1);"); 257 // vhdl->set_body (4,"else"); 258 // vhdl->set_body (5,"sig_NEXT_STATE <= reg_CURRENT_STATE;"); 259 // vhdl->set_body (4,"end if;"); 260 // continue; 261 // } 262 // vhdl->set_body (4,"if in_EXECUTE_QUEUE_IN_VAL = '1' and in_EXECUTE_QUEUE_OUT_ACK = '0' then"); 263 // vhdl->set_body (5,"sig_NEXT_STATE <= reg_CURRENT_STATE ("+toString(_param->_size_queue-1)+" downto 0) & '0';"); 264 // vhdl->set_body (4,"elsif in_EXECUTE_QUEUE_IN_VAL = '0' and in_EXECUTE_QUEUE_OUT_ACK = '1' then"); 265 // vhdl->set_body (5,"sig_NEXT_STATE <= '0' & reg_CURRENT_STATE ("+toString(_param->_size_queue)+" downto 1);"); 266 // vhdl->set_body (4,"else"); 267 // vhdl->set_body (5,"sig_NEXT_STATE <= reg_CURRENT_STATE;"); 268 // vhdl->set_body (4,"end if;"); 269 // } 270 // vhdl->set_body (3,"when others => assert false report \"wrong state\" severity failure;"); 271 // vhdl->set_body (2,"end case;"); 272 // vhdl->set_body (1,"end if;"); 273 274 // vhdl->set_body (2,"case reg_CURRENT_STATE is"); 275 // for (uint32_t i = 0; i <_param->_size_queue + 1; i++) 276 // { 277 // vhdl->set_body (3,"when STATE_"+toString(i)+" =>"); 278 // if (i == 0) 279 // { 280 // vhdl->set_body (4,"sig_OUT_VAL <= '0';"); 281 // vhdl->set_body (4,"sig_IN_ACK <= '1';"); 282 // for (uint32_t j = 0; j <_param->_size_queue; j++) 283 // { 284 // if (i == j) 285 // { 286 // vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= '0';"); 287 // vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= in_EXECUTE_QUEUE_IN_VAL;"); 288 // } 289 // else 290 // { 291 // if (j < (_param->_size_queue - 1)) 292 // vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= '0';"); 293 // vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= '0';"); 294 // } 295 // } 296 // continue; 297 // } 298 // if (i == (_param->_size_queue)) 299 // { 300 // vhdl->set_body (4,"sig_OUT_VAL <= '1';"); 301 // vhdl->set_body (4,"sig_IN_ACK <= '0';"); 302 // for (uint32_t j = 0; j <_param->_size_queue; j++) 303 // { 304 // if (j == (i - 1)) 305 // { 306 // vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= '0';"); 307 // } 308 // else 309 // { 310 // vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= in_EXECUTE_QUEUE_OUT_ACK;"); 311 // vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= in_EXECUTE_QUEUE_OUT_ACK;"); 312 // } 313 // } 314 // continue; 315 // } 316 // vhdl->set_body (4,"sig_OUT_VAL <= '1';"); 317 // vhdl->set_body (4,"sig_IN_ACK <= '1';"); 318 // for (uint32_t j = 0; j <_param->_size_queue; j++) 319 // { 320 // if (j < (i - 1)) 321 // { 322 // vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= in_EXECUTE_QUEUE_OUT_ACK;"); 323 // vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= in_EXECUTE_QUEUE_OUT_ACK;"); 324 // } 325 // if (j == (i - 1)) 326 // { 327 // vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= '0';"); 328 // vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= in_EXECUTE_QUEUE_OUT_ACK and in_EXECUTE_QUEUE_IN_VAL;"); 329 // } 330 // if (j == i) 331 // { 332 // if (j < (_param->_size_queue - 1)) 333 // vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= '0';"); 334 // vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= in_EXECUTE_QUEUE_IN_VAL and not in_EXECUTE_QUEUE_OUT_ACK;"); 335 // } 336 // if (j > i) 337 // { 338 // if (j < (_param->_size_queue - 1)) 339 // vhdl->set_body (4,"sig_SEL_"+toString(j)+" <= '0';"); 340 // vhdl->set_body (4,"sig_WEN_"+toString(j)+" <= '0';"); 341 // } 342 // } 343 // } 344 // vhdl->set_body (3,"when others =>"); 345 // vhdl->set_body (2,"end case;"); 346 // vhdl->set_body (0,"end process;"); 142 vhdl->set_debug ("in_CLOCK = 'U'","GLOP1: Clock = 'U'"); 143 vhdl->set_debug ("in_CLOCK = 'X'","GLOP2: Clock = 'X'"); 144 vhdl->set_debug ("in_CLOCK = 'Z'","GLOP3: Clock = 'Z'"); 145 vhdl->set_debug ("in_CLOCK = 'W'","GLOP4: Clock = 'W'"); 146 vhdl->set_debug ("in_CLOCK = '1'","KANE : Clock = '1'"); 147 vhdl->set_debug ("in_CLOCK = '0'","SETH : Clock = '0'"); 347 148 348 149 log_printf(FUNC,Execute_queue,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Parameters.cpp
r111 r113 27 27 uint32_t size_general_data , 28 28 uint32_t size_special_data , 29 bool is_toplevel ) 29 bool is_toplevel ): 30 behavioural::Parameters("Execute_queue") 30 31 { 31 32 log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); … … 57 58 copy(); 58 59 } 59 60 _size_internal_queue =61 (_size_context_id +62 _size_front_end_id +63 _size_ooo_engine_id +64 _size_rob_ptr +65 // _size_operation +66 // _size_type +67 _size_special_data +68 _size_exception +69 1 +70 _size_general_data +71 _size_general_data72 );73 60 74 61 log_printf(FUNC,Execute_queue,FUNCTION,"End"); … … 114 101 { 115 102 log_printf(FUNC,Execute_queue,FUNCTION,"Begin"); 103 104 _size_internal_queue = 105 (_size_context_id + 106 _size_front_end_id + 107 _size_ooo_engine_id + 108 _size_rob_ptr + 109 // _size_operation + 110 // _size_type + 111 _size_special_data + 112 _size_exception + 113 1 + 114 _size_general_data + 115 _size_general_data 116 ); 117 116 118 log_printf(FUNC,Execute_queue,FUNCTION,"End"); 117 119 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Write_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h
r111 r113 4 4 * [ Description ] 5 5 * 6 * Test " RegisterFile"6 * Test "Write_unit" 7 7 */ 8 8 … … 11 11 #endif 12 12 13 #include <string> 14 #include <iostream> 15 #include <sys/time.h> 13 #define NB_ITERATION 1 14 #define CYCLE_MAX (2048*NB_ITERATION) 16 15 16 #include "Common/include/Test.h" 17 17 #include "Common/include/Time.h" 18 18 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h" … … 28 28 using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit; 29 29 30 void test (string name, 31 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters * param); 30 SC_MODULE(top) 31 { 32 #ifdef SYSTEMC 33 private: sc_clock * in_CLOCK ; 34 private: sc_signal<Tcontrol_t> * in_NRESET; 35 36 private: sc_signal<Tcontrol_t > * in_WRITE_UNIT_IN_VAL ; 37 private: sc_signal<Tcontrol_t > * out_WRITE_UNIT_IN_ACK ; 38 private: sc_signal<Tcontext_t > * in_WRITE_UNIT_IN_CONTEXT_ID ; 39 private: sc_signal<Tcontext_t > * in_WRITE_UNIT_IN_FRONT_END_ID ; 40 private: sc_signal<Tcontext_t > * in_WRITE_UNIT_IN_OOO_ENGINE_ID; 41 private: sc_signal<Tpacket_t > * in_WRITE_UNIT_IN_PACKET_ID ; 42 //private: sc_signal<Toperation_t > * in_WRITE_UNIT_IN_OPERATION ; 43 //private: sc_signal<Ttype_t > * in_WRITE_UNIT_IN_TYPE ; 44 private: sc_signal<Tcontrol_t > * in_WRITE_UNIT_IN_WRITE_RD ; 45 private: sc_signal<Tgeneral_address_t> * in_WRITE_UNIT_IN_NUM_REG_RD ; 46 private: sc_signal<Tgeneral_data_t > * in_WRITE_UNIT_IN_DATA_RD ; 47 private: sc_signal<Tcontrol_t > * in_WRITE_UNIT_IN_WRITE_RE ; 48 private: sc_signal<Tspecial_address_t> * in_WRITE_UNIT_IN_NUM_REG_RE ; 49 private: sc_signal<Tspecial_data_t > * in_WRITE_UNIT_IN_DATA_RE ; 50 private: sc_signal<Texception_t > * in_WRITE_UNIT_IN_EXCEPTION ; 51 private: sc_signal<Tcontrol_t > * in_WRITE_UNIT_IN_NO_SEQUENCE ; 52 private: sc_signal<Taddress_t > * in_WRITE_UNIT_IN_ADDRESS ; 53 54 private: sc_signal<Tcontrol_t > * out_WRITE_UNIT_OUT_VAL ; 55 private: sc_signal<Tcontrol_t > * in_WRITE_UNIT_OUT_ACK ; 56 private: sc_signal<Tcontext_t > * out_WRITE_UNIT_OUT_CONTEXT_ID ; 57 private: sc_signal<Tcontext_t > * out_WRITE_UNIT_OUT_FRONT_END_ID ; 58 private: sc_signal<Tcontext_t > * out_WRITE_UNIT_OUT_OOO_ENGINE_ID; 59 private: sc_signal<Tpacket_t > * out_WRITE_UNIT_OUT_PACKET_ID ; 60 //private: sc_signal<Toperation_t > * out_WRITE_UNIT_OUT_OPERATION ; 61 //private: sc_signal<Ttype_t > * out_WRITE_UNIT_OUT_TYPE ; 62 private: sc_signal<Tspecial_data_t > * out_WRITE_UNIT_OUT_FLAGS ; 63 private: sc_signal<Texception_t > * out_WRITE_UNIT_OUT_EXCEPTION ; 64 private: sc_signal<Tcontrol_t > * out_WRITE_UNIT_OUT_NO_SEQUENCE ; 65 private: sc_signal<Taddress_t > * out_WRITE_UNIT_OUT_ADDRESS ; 66 private: sc_signal<Tgeneral_data_t > * out_WRITE_UNIT_OUT_DATA ; 67 68 private: sc_signal<Tcontrol_t > ** out_GPR_WRITE_VAL ; 69 private: sc_signal<Tcontrol_t > ** in_GPR_WRITE_ACK ; 70 private: sc_signal<Tcontext_t > ** out_GPR_WRITE_OOO_ENGINE_ID ; 71 private: sc_signal<Tgeneral_address_t> ** out_GPR_WRITE_NUM_REG ; 72 private: sc_signal<Tgeneral_data_t > ** out_GPR_WRITE_DATA ; 73 74 private: sc_signal<Tcontrol_t > ** out_SPR_WRITE_VAL ; 75 private: sc_signal<Tcontrol_t > ** in_SPR_WRITE_ACK ; 76 private: sc_signal<Tcontext_t > ** out_SPR_WRITE_OOO_ENGINE_ID ; 77 private: sc_signal<Tspecial_address_t> ** out_SPR_WRITE_NUM_REG ; 78 private: sc_signal<Tspecial_data_t > ** out_SPR_WRITE_DATA ; 79 80 private: sc_signal<Tcontext_t > ** out_BYPASS_WRITE_OOO_ENGINE_ID ; 81 private: sc_signal<Tcontrol_t > ** out_BYPASS_WRITE_GPR_VAL ; 82 private: sc_signal<Tgeneral_address_t> ** out_BYPASS_WRITE_GPR_NUM_REG ; // RD 83 private: sc_signal<Tgeneral_data_t > ** out_BYPASS_WRITE_GPR_DATA ; 84 private: sc_signal<Tcontrol_t > ** out_BYPASS_WRITE_SPR_VAL ; 85 private: sc_signal<Tspecial_address_t> ** out_BYPASS_WRITE_SPR_NUM_REG ; // RE 86 private: sc_signal<Tspecial_data_t > ** out_BYPASS_WRITE_SPR_DATA ; 87 #endif 88 89 private: std::string name; 90 private: Tusage_t _usage; 91 private: morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters * _param; 92 #ifdef STATISTICS 93 private: morpheo::behavioural::Parameters_Statistics * _param_stat; 94 #endif 95 private: Write_unit * component; 96 97 private: void usage 98 ( 99 #ifdef MTI_SYSTEMC 100 int argc, const char * const * argv 101 #else 102 int argc, char * argv[] 103 #endif 104 ); 105 private: void allocation (void); 106 private: void deallocation (void); 107 public : void test (void); 108 109 #ifdef MTI_SYSTEMC 110 SC_CTOR(top::top); 111 #else 112 public : top (sc_module_name module_name,int argc, char * argv[]); 113 #endif 114 public : ~top(void); 115 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/src/main.cpp
r88 r113 6 6 */ 7 7 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/t est.h"8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/SelfTest/include/top.h" 9 9 10 #define NB_PARAMS 11 11 12 void usage (int argc, char * argv[]) 10 #ifndef MTI_SYSTEMC 11 # ifndef SYSTEMC 12 int main (int argc, char * argv[]) 13 # else 14 int sc_main (int argc, char * argv[]) 15 # endif 13 16 { 14 err (_("<Usage> %s name_instance list_params.\n"),argv[0]); 15 err (_("list_params is :\n")); 16 err (_(" * size_write_queue (uint32_t)\n")); 17 err (_(" * size_execute_queue (uint32_t)\n")); 18 err (_(" * nb_context (uint32_t)\n")); 19 err (_(" * nb_front_end (uint32_t)\n")); 20 err (_(" * nb_ooo_engine (uint32_t)\n")); 21 err (_(" * nb_packet (uint32_t)\n")); 22 err (_(" * size_general_data (uint32_t)\n")); 23 err (_(" * nb_general_register (uint32_t)\n")); 24 err (_(" * size_special_data (uint32_t)\n")); 25 err (_(" * nb_special_register (uint32_t)\n")); 26 err (_(" * nb_bypass_write (uint32_t)\n")); 27 28 exit (1); 29 } 30 31 #ifndef SYSTEMC 32 int main (int argc, char * argv[]) 33 #else 34 int sc_main (int argc, char * argv[]) 35 #endif 36 { 37 if (argc != 2+NB_PARAMS) 38 usage (argc, argv); 39 40 uint32_t x = 1; 41 42 const string name = argv[x++]; 43 const uint32_t size_write_queue = atoi(argv[x++]); 44 const uint32_t size_execute_queue = atoi(argv[x++]); 45 const uint32_t nb_context = atoi(argv[x++]); 46 const uint32_t nb_front_end = atoi(argv[x++]); 47 const uint32_t nb_ooo_engine = atoi(argv[x++]); 48 const uint32_t nb_packet = atoi(argv[x++]); 49 const uint32_t size_general_data = atoi(argv[x++]); 50 const uint32_t nb_general_register = atoi(argv[x++]); 51 const uint32_t size_special_data = atoi(argv[x++]); 52 const uint32_t nb_special_register = atoi(argv[x++]); 53 const uint32_t nb_bypass_write = atoi(argv[x++]); 17 int _return = EXIT_SUCCESS; 54 18 55 19 try 56 20 { 57 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters * param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::Parameters 58 (size_write_queue , 59 size_execute_queue , 60 nb_context , 61 nb_front_end , 62 nb_ooo_engine , 63 nb_packet , 64 size_general_data , 65 nb_general_register, 66 size_special_data , 67 nb_special_register, 68 nb_bypass_write , 69 true // is_toplevel 70 ); 71 72 msg(_("%s"),param->print(1).c_str()); 73 74 test (name,param); 21 top * my_top = new top ("my_top",argc,argv); 22 23 my_top->test(); 24 25 delete my_top; 75 26 } 76 27 catch (morpheo::ErrorMorpheo & error) 77 28 { 78 msg (_("<%s> : %s.\n"),name.c_str(),error.what ());79 exit (EXIT_FAILURE);29 msgError(_("%s\n"),error.what ()); 30 _return = EXIT_FAILURE; 80 31 } 81 catch (...) 32 33 try 82 34 { 83 err (_("<%s> : This test must generate a error.\n"),name.c_str()); 84 exit (EXIT_FAILURE); 35 if (_return == EXIT_SUCCESS) 36 TEST_OK("Write_unit : no error"); 37 else 38 TEST_KO("Write_unit : a lot of error"); 39 } 40 catch (morpheo::ErrorMorpheo & error) 41 { 42 // msgError(_("<%s> :\n%s"),name.c_str(), error.what ()); 43 _return = EXIT_FAILURE; 85 44 } 86 45 87 return (EXIT_SUCCESS);46 return _return; 88 47 } 89 48 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Write_queue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h
r111 r113 2 2 * $Id$ 3 3 * 4 * [ 4 * [ Description ] 5 5 * 6 * Test " RegisterFile"6 * Test "Write_queue" 7 7 */ 8 8 … … 11 11 #endif 12 12 13 #include <string> 14 #include <iostream> 15 #include <sys/time.h> 13 #define NB_ITERATION 1 14 #define CYCLE_MAX (1024*NB_ITERATION) 16 15 16 #include "Common/include/Test.h" 17 17 #include "Common/include/Time.h" 18 18 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h" … … 29 29 using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue; 30 30 31 void test (string name, 32 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters * param); 31 SC_MODULE(top) 32 { 33 #ifdef SYSTEMC 34 private: sc_clock * in_CLOCK ; 35 private: sc_signal<Tcontrol_t> * in_NRESET; 36 37 private: sc_signal<Tcontrol_t > * in_WRITE_QUEUE_IN_VAL ; 38 private: sc_signal<Tcontrol_t > * out_WRITE_QUEUE_IN_ACK ; 39 private: sc_signal<Tcontext_t > * in_WRITE_QUEUE_IN_CONTEXT_ID ; 40 private: sc_signal<Tcontext_t > * in_WRITE_QUEUE_IN_FRONT_END_ID ; 41 private: sc_signal<Tcontext_t > * in_WRITE_QUEUE_IN_OOO_ENGINE_ID ; 42 private: sc_signal<Tpacket_t > * in_WRITE_QUEUE_IN_PACKET_ID ; 43 //private: sc_signal<Toperation_t > * in_WRITE_QUEUE_IN_OPERATION ; 44 //private: sc_signal<Ttype_t > * in_WRITE_QUEUE_IN_TYPE ; 45 private: sc_signal<Tcontrol_t > * in_WRITE_QUEUE_IN_WRITE_RD ; 46 private: sc_signal<Tgeneral_address_t> * in_WRITE_QUEUE_IN_NUM_REG_RD ; 47 private: sc_signal<Tgeneral_data_t > * in_WRITE_QUEUE_IN_DATA_RD ; 48 private: sc_signal<Tcontrol_t > * in_WRITE_QUEUE_IN_WRITE_RE ; 49 private: sc_signal<Tspecial_address_t> * in_WRITE_QUEUE_IN_NUM_REG_RE ; 50 private: sc_signal<Tspecial_data_t > * in_WRITE_QUEUE_IN_DATA_RE ; 51 private: sc_signal<Texception_t > * in_WRITE_QUEUE_IN_EXCEPTION ; 52 private: sc_signal<Tcontrol_t > * in_WRITE_QUEUE_IN_NO_SEQUENCE ; 53 private: sc_signal<Taddress_t > * in_WRITE_QUEUE_IN_ADDRESS ; 54 private: sc_signal<Tcontrol_t > * out_WRITE_QUEUE_OUT_VAL ; 55 private: sc_signal<Tcontrol_t > * in_WRITE_QUEUE_OUT_ACK ; 56 private: sc_signal<Tcontext_t > * out_WRITE_QUEUE_OUT_CONTEXT_ID ; 57 private: sc_signal<Tcontext_t > * out_WRITE_QUEUE_OUT_FRONT_END_ID ; 58 private: sc_signal<Tcontext_t > * out_WRITE_QUEUE_OUT_OOO_ENGINE_ID; 59 private: sc_signal<Tpacket_t > * out_WRITE_QUEUE_OUT_PACKET_ID ; 60 //private: sc_signal<Toperation_t > * out_WRITE_QUEUE_OUT_OPERATION ; 61 //private: sc_signal<Ttype_t > * out_WRITE_QUEUE_OUT_TYPE ; 62 private: sc_signal<Tspecial_data_t > * out_WRITE_QUEUE_OUT_FLAGS ; 63 private: sc_signal<Texception_t > * out_WRITE_QUEUE_OUT_EXCEPTION ; 64 private: sc_signal<Tcontrol_t > * out_WRITE_QUEUE_OUT_NO_SEQUENCE ; 65 private: sc_signal<Tgeneral_data_t > * out_WRITE_QUEUE_OUT_ADDRESS ; 66 private: sc_signal<Taddress_t > * out_WRITE_QUEUE_OUT_DATA ; 67 private: sc_signal<Tcontrol_t > ** out_GPR_WRITE_VAL ; 68 private: sc_signal<Tcontrol_t > ** in_GPR_WRITE_ACK ; 69 private: sc_signal<Tcontext_t > ** out_GPR_WRITE_OOO_ENGINE_ID ; 70 private: sc_signal<Tgeneral_address_t> ** out_GPR_WRITE_NUM_REG ; 71 private: sc_signal<Tgeneral_data_t > ** out_GPR_WRITE_DATA ; 72 private: sc_signal<Tcontrol_t > ** out_SPR_WRITE_VAL ; 73 private: sc_signal<Tcontrol_t > ** in_SPR_WRITE_ACK ; 74 private: sc_signal<Tcontext_t > ** out_SPR_WRITE_OOO_ENGINE_ID ; 75 private: sc_signal<Tspecial_address_t> ** out_SPR_WRITE_NUM_REG ; 76 private: sc_signal<Tspecial_data_t > ** out_SPR_WRITE_DATA ; 77 private: sc_signal<Tcontext_t > ** out_BYPASS_WRITE_OOO_ENGINE_ID ; 78 private: sc_signal<Tcontrol_t > ** out_BYPASS_WRITE_GPR_VAL ; 79 private: sc_signal<Tgeneral_address_t> ** out_BYPASS_WRITE_GPR_NUM_REG ; 80 private: sc_signal<Tgeneral_data_t > ** out_BYPASS_WRITE_GPR_DATA ; 81 private: sc_signal<Tcontrol_t > ** out_BYPASS_WRITE_SPR_VAL ; 82 private: sc_signal<Tspecial_address_t> ** out_BYPASS_WRITE_SPR_NUM_REG ; 83 private: sc_signal<Tspecial_data_t > ** out_BYPASS_WRITE_SPR_DATA ; 84 85 #endif 86 87 private: std::string name; 88 private: Tusage_t _usage; 89 private: morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters * _param; 90 #ifdef STATISTICS 91 private: morpheo::behavioural::Parameters_Statistics * _param_stat; 92 #endif 93 private: Write_queue * component; 94 95 private: void usage 96 ( 97 #ifdef MTI_SYSTEMC 98 int argc, const char * const * argv 99 #else 100 int argc, char * argv[] 101 #endif 102 ); 103 private: void allocation (void); 104 private: void deallocation (void); 105 public : void test (void); 106 107 #ifdef MTI_SYSTEMC 108 SC_CTOR(top::top); 109 #else 110 public : top (sc_module_name module_name,int argc, char * argv[]); 111 #endif 112 public : ~top(void); 113 }; 114 115 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/src/main.cpp
r88 r113 2 2 * $Id$ 3 3 * 4 * [ 4 * [ Description ] 5 5 * 6 6 */ 7 7 8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/t est.h"8 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest/include/top.h" 9 9 10 #define NB_PARAMS 10 11 12 void usage (int argc, char * argv[]) 10 #ifndef MTI_SYSTEMC 11 # ifndef SYSTEMC 12 int main (int argc, char * argv[]) 13 # else 14 int sc_main (int argc, char * argv[]) 15 # endif 13 16 { 14 err (_("<Usage> %s name_instance list_params.\n"),argv[0]); 15 err (_("list_params is :\n")); 16 err (_(" * size_queue (uint32_t)\n")); 17 err (_(" * nb_context (uint32_t)\n")); 18 err (_(" * nb_front_end (uint32_t)\n")); 19 err (_(" * nb_ooo_engine (uint32_t)\n")); 20 err (_(" * nb_packet (uint32_t)\n")); 21 err (_(" * size_general_data (uint32_t)\n")); 22 err (_(" * nb_general_register (uint32_t)\n")); 23 err (_(" * size_special_data (uint32_t)\n")); 24 err (_(" * nb_special_register (uint32_t)\n")); 25 err (_(" * nb_bypass_write (uint32_t)\n")); 26 27 exit (1); 28 } 29 30 #ifndef SYSTEMC 31 int main (int argc, char * argv[]) 32 #else 33 int sc_main (int argc, char * argv[]) 34 #endif 35 { 36 if (argc != 2+NB_PARAMS) 37 usage (argc, argv); 38 39 uint32_t x = 1; 40 41 const string name = argv[x++]; 42 const uint32_t size_queue = atoi(argv[x++]); 43 const uint32_t nb_context = atoi(argv[x++]); 44 const uint32_t nb_front_end = atoi(argv[x++]); 45 const uint32_t nb_ooo_engine = atoi(argv[x++]); 46 const uint32_t nb_packet = atoi(argv[x++]); 47 const uint32_t size_general_data = atoi(argv[x++]); 48 const uint32_t nb_general_register = atoi(argv[x++]); 49 const uint32_t size_special_data = atoi(argv[x++]); 50 const uint32_t nb_special_register = atoi(argv[x++]); 51 const uint32_t nb_bypass_write = atoi(argv[x++]); 17 int _return = EXIT_SUCCESS; 52 18 53 19 try 54 20 { 55 morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters * param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Parameters 56 (size_queue , 57 nb_context , 58 nb_front_end , 59 nb_ooo_engine , 60 nb_packet , 61 size_general_data , 62 nb_general_register, 63 size_special_data , 64 nb_special_register, 65 nb_bypass_write , 66 true // is_toplevel 67 ); 68 69 msg(_("%s"),param->print(1).c_str()); 70 71 test (name,param); 21 top * my_top = new top ("my_top",argc,argv); 22 23 my_top->test(); 24 25 delete my_top; 72 26 } 73 27 catch (morpheo::ErrorMorpheo & error) 74 28 { 75 msg (_("<%s> : %s.\n"),name.c_str(),error.what ());76 exit (EXIT_FAILURE);29 msg(_("%s"),error.what ()); 30 _return = EXIT_FAILURE; 77 31 } 78 catch (...) 32 33 try 79 34 { 80 err (_("<%s> : This test must generate a error.\n"),name.c_str()); 81 exit (EXIT_FAILURE); 35 if (_return == EXIT_SUCCESS) 36 TEST_OK("Write_queue : no error"); 37 else 38 TEST_KO("Write_queue : a lot of error"); 39 } 40 catch (morpheo::ErrorMorpheo & error) 41 { 42 // msgError(_("<%s> :\n%s"),name.c_str(), error.what ()); 43 _return = EXIT_FAILURE; 82 44 } 83 45 84 return (EXIT_SUCCESS);46 return _return; 85 47 } 86 48 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h
r97 r113 30 30 #include "Behavioural/include/Usage.h" 31 31 32 #include "Behavioural/Generic/Queue/include/Queue.h" 33 32 34 namespace morpheo { 33 35 namespace behavioural { … … 48 50 protected : const std::string _name; 49 51 protected : const Parameters * _param; 50 p rivate : constTusage_t _usage;52 public : Tusage_t _usage; 51 53 52 54 #ifdef STATISTICS … … 126 128 127 129 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 private : morpheo::behavioural::generic::queue::Parameters * _param_queue; 131 private : morpheo::behavioural::generic::queue::Queue * _component_queue; 128 132 129 133 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters.cpp
r103 r113 30 30 uint32_t nb_special_register, 31 31 uint32_t nb_bypass_write , 32 bool is_toplevel) 32 bool is_toplevel): 33 behavioural::Parameters ("Write_queue") 33 34 { 34 35 log_printf(FUNC,Write_queue,FUNCTION,"Begin"); … … 67 68 copy(); 68 69 } 69 70 _size_internal_queue =71 ( _size_context_id +72 _size_front_end_id +73 _size_ooo_engine_id +74 _size_rob_ptr +75 1 +76 _size_general_register +77 _size_general_data +78 1 +79 _size_special_register +80 _size_special_data +81 _size_exception +82 1 +83 _size_instruction_address84 );85 70 86 71 log_printf(FUNC,Write_queue,FUNCTION,"End"); … … 134 119 { 135 120 log_printf(FUNC,Write_queue,FUNCTION,"Begin"); 121 122 _size_internal_queue = 123 ( _size_context_id + 124 _size_front_end_id + 125 _size_ooo_engine_id + 126 _size_rob_ptr + 127 1 + 128 _size_general_register + 129 _size_general_data + 130 1 + 131 _size_special_register + 132 _size_special_data + 133 _size_exception + 134 1 + 135 _size_instruction_address 136 ); 137 136 138 log_printf(FUNC,Write_queue,FUNCTION,"End"); 137 139 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Parameters_msg_error.cpp
r81 r113 26 26 log_printf(FUNC,Write_queue,FUNCTION,"Begin"); 27 27 28 Parameters_test test ( "Write_queue");28 Parameters_test test (_type); 29 29 30 30 if (_nb_bypass_write > _size_queue) 31 test.error("The write_queue can't have more bypass_write than entry in the queue. ");31 test.error("The write_queue can't have more bypass_write than entry in the queue.\n"); 32 32 33 33 log_printf(FUNC,Write_queue,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue.cpp
r88 r113 37 37 ,_usage (usage) 38 38 { 39 log_ printf(FUNC,Write_queue,FUNCTION,"Begin");39 log_begin(Write_queue,FUNCTION); 40 40 41 #if DEBUG_Write_queue == true42 log_printf(INFO,Write_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());41 // #if DEBUG_Write_queue == true 42 // log_printf(INFO,Write_queue,FUNCTION,_("<%s> Parameters"),_name.c_str()); 43 43 44 std::cout << *param << std::endl;45 #endif44 // std::cout << *param << std::endl; 45 // #endif 46 46 47 log_printf(INFO,Write_queue,FUNCTION, "Allocation");47 log_printf(INFO,Write_queue,FUNCTION,_("<%s> Allocation"),_name.c_str()); 48 48 allocation (); 49 49 … … 51 51 if (usage_is_set(_usage,USE_STATISTICS)) 52 52 { 53 log_printf(INFO,Write_queue,FUNCTION, "Allocation of statistics");53 log_printf(INFO,Write_queue,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str()); 54 54 55 55 statistics_declaration(param_statistics); … … 61 61 { 62 62 // generate the vhdl 63 log_printf(INFO,Write_queue,FUNCTION, "Generate the vhdl");63 log_printf(INFO,Write_queue,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str()); 64 64 65 65 vhdl(); … … 70 70 if (usage_is_set(_usage,USE_SYSTEMC)) 71 71 { 72 log_printf(INFO,Write_queue,FUNCTION, "Method - transition");72 log_printf(INFO,Write_queue,FUNCTION,_("<%s> Method - transition"),_name.c_str()); 73 73 74 74 SC_METHOD (transition); … … 80 80 # endif 81 81 82 log_printf(INFO,Write_queue,FUNCTION, "Method - genMoore");82 log_printf(INFO,Write_queue,FUNCTION,_("<%s> Method - genMoore"),_name.c_str()); 83 83 84 84 SC_METHOD (genMoore); … … 92 92 #endif 93 93 } 94 log_ printf(FUNC,Write_queue,FUNCTION,"End");94 log_end(Write_queue,FUNCTION); 95 95 }; 96 96 … … 99 99 Write_queue::~Write_queue (void) 100 100 { 101 log_ printf(FUNC,Write_queue,FUNCTION,"Begin");101 log_begin(Write_queue,FUNCTION); 102 102 103 103 #ifdef STATISTICS 104 104 if (usage_is_set(_usage,USE_STATISTICS)) 105 105 { 106 log_printf(INFO,Write_queue,FUNCTION, "Generate Statistics file");106 log_printf(INFO,Write_queue,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str()); 107 107 108 108 delete _stat; … … 110 110 #endif 111 111 112 log_printf(INFO,Write_queue,FUNCTION, "Deallocation");112 log_printf(INFO,Write_queue,FUNCTION,_("<%s> Deallocation"),_name.c_str()); 113 113 deallocation (); 114 114 115 log_ printf(FUNC,Write_queue,FUNCTION,"End");115 log_end(Write_queue,FUNCTION); 116 116 }; 117 117 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_allocation.cpp
r112 r113 28 28 29 29 Entity * entity = _component->set_entity (_name 30 , "Write_queue"30 ,_param->_type 31 31 #ifdef POSITION 32 32 ,COMBINATORY … … 136 136 } 137 137 138 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~138 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 139 139 140 140 _queue = new std::list<write_queue_entry_t *>; 141 142 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 _param_queue = new morpheo::behavioural::generic::queue::Parameters 144 (_param->_size_queue, 145 _param->_size_internal_queue, 146 _param->_nb_bypass_write, 147 false, 148 false 149 ); 150 151 std::string queue_name = _name + "_queue"; 152 _component_queue = new morpheo::behavioural::generic::queue::Queue 153 (queue_name.c_str() 154 #ifdef STATISTICS 155 ,NULL 156 #endif 157 ,_param_queue 158 ,USE_VHDL); 159 160 _component->set_component(_component_queue->_component 161 #ifdef POSITION 162 , 50, 50, 50, 50 163 #endif 164 , INSTANCE_LIBRARY 165 ); 141 166 142 167 #ifdef POSITION -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp
r112 r113 92 92 93 93 delete _component; 94 delete _component_queue; 95 delete _param_queue; 94 96 95 97 log_printf(FUNC,Write_queue,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_statistics_declaration.cpp
r81 r113 26 26 27 27 _stat = new Stat (static_cast<std::string>(_name), 28 "Write_queue",28 _param->_type, 29 29 param_statistics); 30 30 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_vhdl.cpp
r105 r113 9 9 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h" 10 10 #include "Behavioural/include/Vhdl.h" 11 #include "Behavioural/Generic/Queue/include/Queue.h"12 11 13 12 namespace morpheo { … … 26 25 { 27 26 log_printf(FUNC,Write_queue,FUNCTION,"Begin"); 28 29 morpheo::behavioural::generic::queue::Parameters * param_queue;30 morpheo::behavioural::generic::queue::Queue * queue;31 32 param_queue = new morpheo::behavioural::generic::queue::Parameters33 (_param->_size_queue,34 _param->_size_internal_queue,35 _param->_nb_bypass_write,36 false,37 false38 );39 40 std::cout << "size internal queue :" << _param->_size_internal_queue << "." << std::endl;41 42 std::string queue_name = _name + "_queue";43 queue = new morpheo::behavioural::generic::queue::Queue44 (queue_name.c_str()45 #ifdef STATISTICS46 ,NULL47 #endif48 ,param_queue49 ,USE_VHDL);50 51 _component->set_component(queue->_component52 #ifdef POSITION53 , 50, 50, 50, 5054 #endif55 , INSTANCE_LIBRARY56 );57 58 59 27 60 28 Vhdl * vhdl = new Vhdl (_name); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_vhdl_declaration.cpp
r103 r113 54 54 uint32_t min = 0; 55 55 uint32_t max, size; 56 uint32_t min_ooo, max_ooo ;56 uint32_t min_ooo, max_ooo = 0; 57 57 uint32_t pos_write_rd, min_gpr_num_reg, max_gpr_num_reg, min_gpr_data, max_gpr_data; 58 58 uint32_t pos_write_re, min_spr_num_reg, max_spr_num_reg, min_spr_data, max_spr_data; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/include/Write_unit.h
r97 r113 48 48 protected : const std::string _name; 49 49 protected : const Parameters * _param; 50 p rivate : constTusage_t _usage;50 public : Tusage_t _usage; 51 51 52 52 #ifdef STATISTICS -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Parameters.cpp
r97 r113 30 30 uint32_t nb_special_register, 31 31 uint32_t nb_bypass_write , 32 bool is_toplevel ) 32 bool is_toplevel ): 33 behavioural::Parameters("Write_unit") 33 34 { 34 35 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit.cpp
r88 r113 36 36 ,_usage (usage) 37 37 { 38 log_ printf(FUNC,Write_unit,FUNCTION,"Begin");38 log_begin(Write_unit,FUNCTION); 39 39 40 #if DEBUG_Write_unit == true41 log_printf(INFO,Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());40 // #if DEBUG_Write_unit == true 41 // log_printf(INFO,Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str()); 42 42 43 std::cout << *param << std::endl;44 #endif43 // std::cout << *param << std::endl; 44 // #endif 45 45 46 log_printf(INFO,Write_unit,FUNCTION, "Allocation");46 log_printf(INFO,Write_unit,FUNCTION,_("<%s> Allocation"),_name.c_str()); 47 47 48 48 allocation ( … … 55 55 if (usage_is_set(_usage,USE_STATISTICS)) 56 56 { 57 log_printf(INFO,Write_unit,FUNCTION, "Allocation of statistics");57 log_printf(INFO,Write_unit,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str()); 58 58 59 59 statistics_declaration(param_statistics); … … 65 65 { 66 66 // generate the vhdl 67 log_printf(INFO,Write_unit,FUNCTION, "Generate the vhdl");67 log_printf(INFO,Write_unit,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str()); 68 68 69 69 vhdl(); … … 74 74 if (usage_is_set(_usage,USE_SYSTEMC)) 75 75 { 76 log_printf(INFO,Write_unit,FUNCTION, "Method - transition");76 log_printf(INFO,Write_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str()); 77 77 78 78 SC_METHOD (transition); … … 86 86 #endif 87 87 } 88 log_ printf(FUNC,Write_unit,FUNCTION,"End");88 log_end(Write_unit,FUNCTION); 89 89 }; 90 90 … … 93 93 Write_unit::~Write_unit (void) 94 94 { 95 log_ printf(FUNC,Write_unit,FUNCTION,"Begin");95 log_begin(Write_unit,FUNCTION); 96 96 97 97 #ifdef STATISTICS 98 98 if (usage_is_set(_usage,USE_STATISTICS)) 99 99 { 100 log_printf(INFO,Write_unit,FUNCTION, "Generate Statistics file");100 log_printf(INFO,Write_unit,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str()); 101 101 102 102 delete _stat; … … 104 104 #endif 105 105 106 log_printf(INFO,Write_unit,FUNCTION, "Deallocation");106 log_printf(INFO,Write_unit,FUNCTION,_("<%s> Deallocation"),_name.c_str()); 107 107 deallocation (); 108 108 109 log_ printf(FUNC,Write_unit,FUNCTION,"End");109 log_end(Write_unit,FUNCTION); 110 110 }; 111 111 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp
r112 r113 34 34 35 35 Entity * entity = _component->set_entity (_name 36 , "Write_unit"36 ,_param->_type 37 37 #ifdef POSITION 38 38 ,COMBINATORY -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_statistics_declaration.cpp
r81 r113 25 25 26 26 _stat = new Stat (static_cast<std::string>(_name), 27 "Write_unit",27 _param->_type, 28 28 param_statistics); 29 29 30 _stat->add_stat(component_write_queue->_stat); 31 if (_param->_have_component_execute_queue) 30 if (usage_is_set(component_write_queue->_usage,USE_STATISTICS)) 31 _stat->add_stat(component_write_queue->_stat); 32 33 if (_param->_have_component_execute_queue and (usage_is_set(component_execute_queue->_usage,USE_STATISTICS))) 32 34 _stat->add_stat(component_execute_queue->_stat); 33 35 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Execute_unit_to_Write_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Read_unit_to_Execution_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Makefile.defs
r81 r113 2 2 # $Id$ 3 3 # 4 # [ 4 # [ Description ] 5 5 # 6 6 # Makefile 7 7 # 8 8 9 #-----[ Directory ]---------------------------------------- 9 ENTITY = Register_unit 10 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. 11 13 DIR_MORPHEO = $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/Makefile.defs
r81 r113 2 2 # $Id$ 3 3 # 4 # [ 4 # [ Description ] 5 5 # 6 6 # Makefile 7 7 # 8 8 9 #-----[ Directory ]---------------------------------------- 9 ENTITY = Register_unit_Glue 10 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. 11 13 DIR_MORPHEO = $(DIR_COMPONENT)/$(DIR_COMPONENT_MORPHEO) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/Makefile.defs
r83 r113 7 7 # 8 8 9 ENTITY = Context_State 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Instruction/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Instruction 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Decod 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/src/test.cpp
r112 r113 51 51 sc_clock * in_CLOCK = new sc_clock ("clock", 1.0, 0.5); 52 52 sc_signal<Tcontrol_t> * in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 53 54 sc_signal<Tcontrol_t > *** in_IFETCH_VAL ;//[nb_context][nb_inst_fetch] 55 sc_signal<Tcontrol_t > *** out_IFETCH_ACK ;//[nb_context][nb_inst_fetch] 56 sc_signal<Tinstruction_t > *** in_IFETCH_INSTRUCTION ;//[nb_context][nb_inst_fetch] 57 sc_signal<Tcontext_t > ** in_IFETCH_CONTEXT_ID ;//[nb_context] 58 sc_signal<Tgeneral_address_t > ** in_IFETCH_ADDRESS ;//[nb_context] 59 //sc_signal<Tgeneral_address_t > ** in_IFETCH_ADDRESS_NEXT ;//[nb_context] 60 sc_signal<Tinst_ifetch_ptr_t > ** in_IFETCH_INST_IFETCH_PTR ;//[nb_context] 61 sc_signal<Tbranch_state_t > ** in_IFETCH_BRANCH_STATE ;//[nb_context] 62 sc_signal<Tprediction_ptr_t > ** in_IFETCH_BRANCH_UPDATE_PREDICTION_ID ;//[nb_context] 63 sc_signal<Texception_t > ** in_IFETCH_EXCEPTION ;//[nb_context] 64 sc_signal<Tcontrol_t > ** out_DECOD_VAL ;//[nb_inst_decod] 65 sc_signal<Tcontrol_t > ** in_DECOD_ACK ;//[nb_inst_decod] 66 sc_signal<Tcontext_t > ** out_DECOD_CONTEXT_ID ;//[nb_inst_decod] 67 sc_signal<Tdepth_t > ** out_DECOD_DEPTH ;//[nb_inst_decod] 68 sc_signal<Ttype_t > ** out_DECOD_TYPE ;//[nb_inst_decod] 69 sc_signal<Toperation_t > ** out_DECOD_OPERATION ;//[nb_inst_decod] 70 sc_signal<Tcontrol_t > ** out_DECOD_NO_EXECUTE ;//[nb_inst_decod] 71 sc_signal<Tcontrol_t > ** out_DECOD_IS_DELAY_SLOT ;//[nb_inst_decod] 72 sc_signal<Tgeneral_data_t > ** out_DECOD_ADDRESS ;//[nb_inst_decod] 73 sc_signal<Tgeneral_data_t > ** out_DECOD_ADDRESS_NEXT ;//[nb_inst_decod] 74 sc_signal<Tcontrol_t > ** out_DECOD_HAS_IMMEDIAT ;//[nb_inst_decod] 75 sc_signal<Tgeneral_data_t > ** out_DECOD_IMMEDIAT ;//[nb_inst_decod] 76 sc_signal<Tcontrol_t > ** out_DECOD_READ_RA ;//[nb_inst_decod] 77 sc_signal<Tgeneral_address_t > ** out_DECOD_NUM_REG_RA ;//[nb_inst_decod] 78 sc_signal<Tcontrol_t > ** out_DECOD_READ_RB ;//[nb_inst_decod] 79 sc_signal<Tgeneral_address_t > ** out_DECOD_NUM_REG_RB ;//[nb_inst_decod] 80 sc_signal<Tcontrol_t > ** out_DECOD_READ_RC ;//[nb_inst_decod] 81 sc_signal<Tspecial_address_t > ** out_DECOD_NUM_REG_RC ;//[nb_inst_decod] 82 sc_signal<Tcontrol_t > ** out_DECOD_WRITE_RD ;//[nb_inst_decod] 83 sc_signal<Tgeneral_address_t > ** out_DECOD_NUM_REG_RD ;//[nb_inst_decod] 84 sc_signal<Tcontrol_t > ** out_DECOD_WRITE_RE ;//[nb_inst_decod] 85 sc_signal<Tspecial_address_t > ** out_DECOD_NUM_REG_RE ;//[nb_inst_decod] 86 sc_signal<Texception_t > ** out_DECOD_EXCEPTION_USE ;//[nb_inst_decod] 87 sc_signal<Texception_t > ** out_DECOD_EXCEPTION ;//[nb_inst_decod] 88 sc_signal<Tcontrol_t > ** out_PREDICT_VAL ;//[nb_inst_decod] 89 sc_signal<Tcontrol_t > ** in_PREDICT_ACK ;//[nb_inst_decod] 90 sc_signal<Tcontext_t > ** out_PREDICT_CONTEXT_ID ;//[nb_inst_decod] 91 sc_signal<Tcontrol_t > ** out_PREDICT_MATCH_INST_IFETCH_PTR ;//[nb_inst_decod] 92 sc_signal<Tbranch_state_t > ** out_PREDICT_BRANCH_STATE ;//[nb_inst_decod] 93 sc_signal<Tprediction_ptr_t > ** out_PREDICT_BRANCH_UPDATE_PREDICTION_ID;//[nb_inst_decod] 94 sc_signal<Tbranch_condition_t> ** out_PREDICT_BRANCH_CONDITION ;//[nb_inst_decod] 95 //sc_signal<Tcontrol_t > ** out_PREDICT_BRANCH_STACK_WRITE ;//[nb_inst_decod] 96 sc_signal<Tcontrol_t > ** out_PREDICT_BRANCH_DIRECTION ;//[nb_inst_decod] 97 sc_signal<Tgeneral_data_t > ** out_PREDICT_ADDRESS_SRC ;//[nb_inst_decod] 98 sc_signal<Tgeneral_data_t > ** out_PREDICT_ADDRESS_DEST ;//[nb_inst_decod] 99 sc_signal<Tcontrol_t > ** in_PREDICT_CAN_CONTINUE ;//[nb_inst_decod] 100 sc_signal<Tcontrol_t > ** in_CONTEXT_DECOD_ENABLE ;//[nb_context] 101 sc_signal<Tcontrol_t > ** in_CONTEXT_DEPTH_VAL ;//[nb_context] 102 sc_signal<Tdepth_t > ** in_CONTEXT_DEPTH ;//[nb_context] 103 sc_signal<Tcontrol_t > * out_CONTEXT_EVENT_VAL ; 104 sc_signal<Tcontrol_t > * in_CONTEXT_EVENT_ACK ; 105 sc_signal<Tcontext_t > * out_CONTEXT_EVENT_CONTEXT_ID ; 106 sc_signal<Tdepth_t > * out_CONTEXT_EVENT_DEPTH ; 107 sc_signal<Tevent_type_t > * out_CONTEXT_EVENT_TYPE ; 108 sc_signal<Tcontrol_t > * out_CONTEXT_EVENT_IS_DELAY_SLOT ; 109 sc_signal<Tgeneral_data_t > * out_CONTEXT_EVENT_ADDRESS ; 110 sc_signal<Tgeneral_data_t > * out_CONTEXT_EVENT_ADDRESS_EPCR ; 53 111 54 112 ALLOC2_SC_SIGNAL( in_IFETCH_VAL ," in_IFETCH_VAL ",Tcontrol_t ,_param->_nb_context,_param->_nb_inst_fetch[it1]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/Makefile.defs
r82 r113 7 7 # 8 8 9 ENTITY = Decod_queue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/SelfTest/src/test.cpp
r111 r113 51 51 sc_clock * in_CLOCK = new sc_clock ("clock", 1.0, 0.5); 52 52 sc_signal<Tcontrol_t> * in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 53 54 sc_signal<Tcontrol_t > ** in_DECOD_IN_VAL ;//[nb_inst_decod] 55 sc_signal<Tcontrol_t > ** out_DECOD_IN_ACK ;//[nb_inst_decod] 56 sc_signal<Tcontext_t > ** in_DECOD_IN_CONTEXT_ID ;//[nb_inst_decod] 57 sc_signal<Tdepth_t > ** in_DECOD_IN_DEPTH ;//[nb_inst_decod] 58 sc_signal<Ttype_t > ** in_DECOD_IN_TYPE ;//[nb_inst_decod] 59 sc_signal<Toperation_t > ** in_DECOD_IN_OPERATION ;//[nb_inst_decod] 60 sc_signal<Tcontrol_t > ** in_DECOD_IN_NO_EXECUTE ;//[nb_inst_decod] 61 sc_signal<Tcontrol_t > ** in_DECOD_IN_IS_DELAY_SLOT ;//[nb_inst_decod] 62 sc_signal<Tgeneral_data_t > ** in_DECOD_IN_ADDRESS ;//[nb_inst_decod] 63 sc_signal<Tgeneral_data_t > ** in_DECOD_IN_ADDRESS_NEXT ;//[nb_inst_decod] 64 sc_signal<Tcontrol_t > ** in_DECOD_IN_HAS_IMMEDIAT ;//[nb_inst_decod] 65 sc_signal<Tgeneral_data_t > ** in_DECOD_IN_IMMEDIAT ;//[nb_inst_decod] 66 sc_signal<Tcontrol_t > ** in_DECOD_IN_READ_RA ;//[nb_inst_decod] 67 sc_signal<Tgeneral_address_t > ** in_DECOD_IN_NUM_REG_RA ;//[nb_inst_decod] 68 sc_signal<Tcontrol_t > ** in_DECOD_IN_READ_RB ;//[nb_inst_decod] 69 sc_signal<Tgeneral_address_t > ** in_DECOD_IN_NUM_REG_RB ;//[nb_inst_decod] 70 sc_signal<Tcontrol_t > ** in_DECOD_IN_READ_RC ;//[nb_inst_decod] 71 sc_signal<Tspecial_address_t > ** in_DECOD_IN_NUM_REG_RC ;//[nb_inst_decod] 72 sc_signal<Tcontrol_t > ** in_DECOD_IN_WRITE_RD ;//[nb_inst_decod] 73 sc_signal<Tgeneral_address_t > ** in_DECOD_IN_NUM_REG_RD ;//[nb_inst_decod] 74 sc_signal<Tcontrol_t > ** in_DECOD_IN_WRITE_RE ;//[nb_inst_decod] 75 sc_signal<Tspecial_address_t > ** in_DECOD_IN_NUM_REG_RE ;//[nb_inst_decod] 76 sc_signal<Texception_t > ** in_DECOD_IN_EXCEPTION_USE ;//[nb_inst_decod] 77 sc_signal<Texception_t > ** in_DECOD_IN_EXCEPTION ;//[nb_inst_decod] 78 sc_signal<Tcontrol_t > ** out_DECOD_OUT_VAL ;//[nb_inst_decod] 79 sc_signal<Tcontrol_t > ** in_DECOD_OUT_ACK ;//[nb_inst_decod] 80 sc_signal<Tcontext_t > ** out_DECOD_OUT_CONTEXT_ID ;//[nb_inst_decod] 81 sc_signal<Tdepth_t > ** out_DECOD_OUT_DEPTH ;//[nb_inst_decod] 82 sc_signal<Ttype_t > ** out_DECOD_OUT_TYPE ;//[nb_inst_decod] 83 sc_signal<Toperation_t > ** out_DECOD_OUT_OPERATION ;//[nb_inst_decod] 84 sc_signal<Tcontrol_t > ** out_DECOD_OUT_NO_EXECUTE ;//[nb_inst_decod] 85 sc_signal<Tcontrol_t > ** out_DECOD_OUT_IS_DELAY_SLOT ;//[nb_inst_decod] 86 sc_signal<Tgeneral_data_t > ** out_DECOD_OUT_ADDRESS ;//[nb_inst_decod] 87 sc_signal<Tgeneral_data_t > ** out_DECOD_OUT_ADDRESS_NEXT ;//[nb_inst_decod] 88 sc_signal<Tcontrol_t > ** out_DECOD_OUT_HAS_IMMEDIAT ;//[nb_inst_decod] 89 sc_signal<Tgeneral_data_t > ** out_DECOD_OUT_IMMEDIAT ;//[nb_inst_decod] 90 sc_signal<Tcontrol_t > ** out_DECOD_OUT_READ_RA ;//[nb_inst_decod] 91 sc_signal<Tgeneral_address_t > ** out_DECOD_OUT_NUM_REG_RA ;//[nb_inst_decod] 92 sc_signal<Tcontrol_t > ** out_DECOD_OUT_READ_RB ;//[nb_inst_decod] 93 sc_signal<Tgeneral_address_t > ** out_DECOD_OUT_NUM_REG_RB ;//[nb_inst_decod] 94 sc_signal<Tcontrol_t > ** out_DECOD_OUT_READ_RC ;//[nb_inst_decod] 95 sc_signal<Tspecial_address_t > ** out_DECOD_OUT_NUM_REG_RC ;//[nb_inst_decod] 96 sc_signal<Tcontrol_t > ** out_DECOD_OUT_WRITE_RD ;//[nb_inst_decod] 97 sc_signal<Tgeneral_address_t > ** out_DECOD_OUT_NUM_REG_RD ;//[nb_inst_decod] 98 sc_signal<Tcontrol_t > ** out_DECOD_OUT_WRITE_RE ;//[nb_inst_decod] 99 sc_signal<Tspecial_address_t > ** out_DECOD_OUT_NUM_REG_RE ;//[nb_inst_decod] 100 sc_signal<Texception_t > ** out_DECOD_OUT_EXCEPTION_USE ;//[nb_inst_decod] 101 sc_signal<Texception_t > ** out_DECOD_OUT_EXCEPTION ;//[nb_inst_decod] 102 sc_signal<Tdepth_t > ** in_DEPTH_MIN ;//[nb_context] 103 sc_signal<Tdepth_t > ** in_DEPTH_MAX ;//[nb_context] 104 sc_signal<Tcontrol_t > ** in_DEPTH_FULL ;//[nb_context] 105 sc_signal<Tcounter_t > ** out_NB_INST_ALL ;//[nb_context] 53 106 54 107 ALLOC1_SC_SIGNAL( in_DECOD_IN_VAL ," in_DECOD_IN_VAL ",Tcontrol_t ,_param->_nb_inst_decod); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Makefile.defs
r83 r113 7 7 # 8 8 9 ENTITY = Decod_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Front_end_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Address_management 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp
r112 r113 50 50 sc_clock * in_CLOCK = new sc_clock ("clock", 1.0, 0.5); 51 51 sc_signal<Tcontrol_t> * in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 52 53 sc_signal<Tcontrol_t > * out_ADDRESS_VAL ; 54 sc_signal<Tcontrol_t > * in_ADDRESS_ACK ; //icache_req_ack and ifetch_queue_ack 55 sc_signal<Tgeneral_address_t> * out_ADDRESS_INSTRUCTION_ADDRESS ; 56 sc_signal<Tcontrol_t > ** out_ADDRESS_INSTRUCTION_ENABLE ; //[nb_instruction] 57 sc_signal<Tinst_ifetch_ptr_t> * out_ADDRESS_INST_IFETCH_PTR ; 58 sc_signal<Tbranch_state_t > * out_ADDRESS_BRANCH_STATE ; 59 sc_signal<Tprediction_ptr_t > * out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID ; 60 sc_signal<Tcontrol_t > * out_PREDICT_VAL ; 61 sc_signal<Tcontrol_t > * in_PREDICT_ACK ; 62 sc_signal<Tgeneral_address_t> * out_PREDICT_PC_PREVIOUS ; 63 sc_signal<Tgeneral_address_t> * out_PREDICT_PC_CURRENT ; 64 sc_signal<Tcontrol_t > * out_PREDICT_PC_CURRENT_IS_DS_TAKE ; 65 sc_signal<Tgeneral_address_t> * in_PREDICT_PC_NEXT ; 66 sc_signal<Tcontrol_t > * in_PREDICT_PC_NEXT_IS_DS_TAKE ; 67 sc_signal<Tcontrol_t > ** in_PREDICT_INSTRUCTION_ENABLE ; //[nb_instruction] 68 //sc_signal<Tcontrol_t > * in_PREDICT_BRANCH_IS_CURRENT ; 69 sc_signal<Tbranch_state_t > * in_PREDICT_BRANCH_STATE ; 70 sc_signal<Tprediction_ptr_t > * in_PREDICT_BRANCH_UPDATE_PREDICTION_ID ; 71 sc_signal<Tinst_ifetch_ptr_t> * in_PREDICT_INST_IFETCH_PTR ; 72 sc_signal<Tcontrol_t > * in_EVENT_VAL ; 73 sc_signal<Tcontrol_t > * out_EVENT_ACK ; 74 sc_signal<Tgeneral_address_t> * in_EVENT_ADDRESS ; 75 sc_signal<Tgeneral_address_t> * in_EVENT_ADDRESS_NEXT ; 76 sc_signal<Tcontrol_t > * in_EVENT_ADDRESS_NEXT_VAL ; 77 sc_signal<Tcontrol_t > * in_EVENT_IS_DS_TAKE ; 52 78 53 79 ALLOC0_SC_SIGNAL (out_ADDRESS_VAL ,"out_ADDRESS_VAL ",Tcontrol_t ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Ifetch_queue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/main.cpp
r88 r113 7 7 8 8 #include "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/include/test.h" 9 9 #include "Behavioural/include/Selftest.h" 10 10 #define NB_PARAMS 4 11 11 … … 33 33 uint32_t x = 1; 34 34 35 string name = argv[x++]; 36 37 uint32_t _size_queue = fromString<uint32_t>(argv[x++]); 38 uint32_t _nb_instruction = fromString<uint32_t>(argv[x++]); 39 uint32_t _size_branch_update_prediction = fromString<uint32_t>(argv[x++]); 40 uint32_t _size_general_data = fromString<uint32_t>(argv[x++]); 35 string name; 36 uint32_t _size_queue ; 37 uint32_t _nb_instruction ; 38 uint32_t _size_branch_update_prediction; 39 uint32_t _size_general_data ; 40 41 SELFTEST0( name ,string ,argv,x); 42 SELFTEST0(_size_queue ,uint32_t,argv,x); 43 SELFTEST0(_nb_instruction ,uint32_t,argv,x); 44 SELFTEST0(_size_branch_update_prediction,uint32_t,argv,x); 45 SELFTEST0(_size_general_data ,uint32_t,argv,x); 41 46 42 47 int _return = EXIT_SUCCESS; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/test.cpp
r112 r113 67 67 sc_clock * in_CLOCK = new sc_clock ("clock", 1.0, 0.5); 68 68 sc_signal<Tcontrol_t> * in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 69 70 sc_signal<Tcontrol_t > * in_ADDRESS_VAL ; 71 sc_signal<Tcontrol_t > * out_ADDRESS_ACK ; 72 sc_signal<Tifetch_queue_ptr_t > * out_ADDRESS_IFETCH_QUEUE_ID ; 73 sc_signal<Tcontrol_t > ** in_ADDRESS_INSTRUCTION_ENABLE ;//[nb_instruction] 74 sc_signal<Tgeneral_address_t > * in_ADDRESS_INSTRUCTION_ADDRESS ; 75 sc_signal<Tinst_ifetch_ptr_t > * in_ADDRESS_INST_IFETCH_PTR ; 76 sc_signal<Tbranch_state_t > * in_ADDRESS_BRANCH_STATE ; 77 sc_signal<Tprediction_ptr_t > * in_ADDRESS_BRANCH_UPDATE_PREDICTION_ID ; 78 sc_signal<Tcontrol_t > ** out_DECOD_VAL ;//[nb_instruction] 79 sc_signal<Tcontrol_t > ** in_DECOD_ACK ;//[nb_instruction] 80 sc_signal<Tinstruction_t > ** out_DECOD_INSTRUCTION ;//[nb_instruction] 81 sc_signal<Tgeneral_address_t > * out_DECOD_ADDRESS ; 82 sc_signal<Tinst_ifetch_ptr_t > * out_DECOD_INST_IFETCH_PTR ; 83 sc_signal<Tbranch_state_t > * out_DECOD_BRANCH_STATE ; 84 sc_signal<Tprediction_ptr_t > * out_DECOD_BRANCH_UPDATE_PREDICTION_ID ; 85 sc_signal<Texception_t > * out_DECOD_EXCEPTION ; 86 sc_signal<Tcontrol_t > * in_ICACHE_RSP_VAL ; 87 sc_signal<Tcontrol_t > * out_ICACHE_RSP_ACK ; 88 sc_signal<Tpacket_t > * in_ICACHE_RSP_PACKET_ID ; 89 sc_signal<Ticache_instruction_t > ** in_ICACHE_RSP_INSTRUCTION ;//[nb_instruction] 90 sc_signal<Ticache_error_t > * in_ICACHE_RSP_ERROR ; 91 sc_signal<Tcontrol_t > * in_EVENT_RESET_VAL ;// val if : miss_speculation, exception, synchronization 92 sc_signal<Tcontrol_t > * out_EVENT_RESET_ACK ; 69 93 70 94 ALLOC0_SC_SIGNAL( in_ADDRESS_VAL ," in_ADDRESS_VAL ",Tcontrol_t ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Parameters_msg_error.cpp
r109 r113 18 18 namespace ifetch_queue { 19 19 20 21 20 #undef FUNCTION 22 21 #define FUNCTION "Ifetch_queue::msg_error" … … 28 27 29 28 if (not is_multiple (_nb_instruction_in_queue,_nb_instruction)) 30 test.error( "Size of ifetch queue must be a multiple of nb_instruction.\n");29 test.error(_("Size of ifetch queue must be a multiple of nb_instruction.\n")); 31 30 32 31 if (_size_queue == 1) 33 test.warning( "To best perfomance, size_queue must be > 1.\n");32 test.warning(_("To best perfomance, size_queue must be > 1.\n")); 34 33 35 34 log_printf(FUNC,Ifetch_queue,FUNCTION,"End"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Ifetch_unit_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Ifetch_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Front_end 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Glue/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Branch_Target_Buffer_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Branch_Target_Buffer_Register 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h
r82 r113 137 137 morpheo::behavioural::Tusage_t usage 138 138 ); 139 139 140 public : ~Branch_Target_Buffer_Register (void); 140 141 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register.cpp
r88 r113 8 8 #include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h" 9 9 10 namespace morpheo 10 namespace morpheo { 11 11 namespace behavioural { 12 12 namespace core { … … 16 16 namespace branch_target_buffer { 17 17 namespace branch_target_buffer_register { 18 19 18 20 19 #undef FUNCTION … … 33 32 morpheo::behavioural::Tusage_t usage 34 33 ): 35 _name 36 ,_param(param)37 ,_usage(usage)34 _name (name) 35 ,_param (param) 36 ,_usage (usage) 38 37 { 39 38 log_printf(FUNC,Branch_Target_Buffer_Register,FUNCTION,"Begin"); … … 160 159 } 161 160 162 # ifdef SYSTEMCASS_SPECIFIC163 // List dependency information164 for (uint32_t i=0; i<_param->_nb_inst_decod; i++)165 {166 (*(out_DECOD_HIT [i])) (*(in_DECOD_VAL [i]));167 (*(out_DECOD_HIT [i])) (*(in_DECOD_ADDRESS_SRC [i]));168 if (_param->_have_port_context_id)169 (*(out_DECOD_HIT [i])) (*(in_DECOD_CONTEXT_ID [i]));170 171 (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_VAL [i]));172 (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_ADDRESS_SRC [i]));173 if (_param->_have_port_context_id)174 (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_CONTEXT_ID [i]));175 }176 } 177 #endif 161 // # ifdef SYSTEMCASS_SPECIFIC 162 // // List dependency information 163 // for (uint32_t i=0; i<_param->_nb_inst_decod; i++) 164 // { 165 // (*(out_DECOD_HIT [i])) (*(in_DECOD_VAL [i])); 166 // (*(out_DECOD_HIT [i])) (*(in_DECOD_ADDRESS_SRC [i])); 167 // if (_param->_have_port_context_id) 168 // (*(out_DECOD_HIT [i])) (*(in_DECOD_CONTEXT_ID [i])); 169 170 // (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_VAL [i])); 171 // (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_ADDRESS_SRC [i])); 172 // if (_param->_have_port_context_id) 173 // (*(out_DECOD_HIT_INDEX [i])) (*(in_DECOD_CONTEXT_ID [i])); 174 // } 175 // #endif 176 } 178 177 179 178 if (_param->_have_port_victim) … … 192 191 } 193 192 194 # ifdef SYSTEMCASS_SPECIFIC195 // List dependency information196 for (uint32_t i=0; i<_param->_nb_inst_update; i++)197 {198 (*(out_UPDATE_HIT [i])) (*(in_UPDATE_VAL [i]));199 (*(out_UPDATE_HIT [i])) (*(in_UPDATE_ADDRESS_SRC [i]));200 if (_param->_have_port_context_id)201 (*(out_UPDATE_HIT [i])) (*(in_UPDATE_CONTEXT_ID [i]));202 203 (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_VAL [i]));204 (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_ADDRESS_SRC [i]));205 if (_param->_have_port_context_id)206 (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_CONTEXT_ID [i]));207 }208 } 209 # endif 193 // # ifdef SYSTEMCASS_SPECIFIC 194 // // List dependency information 195 // for (uint32_t i=0; i<_param->_nb_inst_update; i++) 196 // { 197 // (*(out_UPDATE_HIT [i])) (*(in_UPDATE_VAL [i])); 198 // (*(out_UPDATE_HIT [i])) (*(in_UPDATE_ADDRESS_SRC [i])); 199 // if (_param->_have_port_context_id) 200 // (*(out_UPDATE_HIT [i])) (*(in_UPDATE_CONTEXT_ID [i])); 201 202 // (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_VAL [i])); 203 // (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_ADDRESS_SRC [i])); 204 // if (_param->_have_port_context_id) 205 // (*(out_UPDATE_HIT_INDEX [i])) (*(in_UPDATE_CONTEXT_ID [i])); 206 // } 207 // # endif 208 } 210 209 #endif 211 210 … … 229 228 log_printf(INFO,Branch_Target_Buffer_Register,FUNCTION,"Deallocation"); 230 229 deallocation (); 231 232 230 log_printf(FUNC,Branch_Target_Buffer_Register,FUNCTION,"End"); 233 231 }; … … 239 237 }; // end namespace multi_front_end 240 238 }; // end namespace core 241 242 239 }; // end namespace behavioural 243 }; // end namespace morpheo 240 }; // end namespace morpheo -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Branch_Target_Buffer 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Direction_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Direction 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Makefile.defs
r110 r113 7 7 # 8 8 9 ENTITY = Meta_Predictor 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/Makefile.defs
r110 r113 7 7 # 8 8 9 ENTITY = Meta_Predictor_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/Makefile.defs
r110 r113 7 7 # 8 8 9 ENTITY = Two_Level_Branch_Predictor 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Prediction_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Prediction_unit_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Return_Address_Stack 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Update_Prediction_Table 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/SelfTest/src/test.cpp
r112 r113 1276 1276 // TEST(Tcontrol_t ,out_UPDATE_RAS_FLUSH [port]->read(),0); 1277 1277 TEST(Tcontrol_t ,out_UPDATE_RAS_PUSH [port]->read(),push_ras (it_ufpt->condition)); 1278 LABEL("KANE : out_UPDATE_RAS_ADDRESS [port]->read() : %.8x",out_UPDATE_RAS_ADDRESS [port]->read());1279 LABEL("KANE : it_ufpt->ras_address : %.8x",it_ufpt->ras_address);1280 1281 1278 TEST(Taddress_t ,out_UPDATE_RAS_ADDRESS [port]->read(),it_ufpt->ras_address); 1282 1279 TEST(Tptr_t ,out_UPDATE_RAS_INDEX [port]->read(),it_ufpt->ras_index); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table_transition.cpp
r112 r113 117 117 << std::dec 118 118 << reg_UPDATE_PREDICTION_TABLE [i][bottom]._good_take << " - " 119 << "[" << s c_simulation_time() << "] " << " "119 << "[" << simulation_cycle() << "] " << " " 120 120 << reg_UPDATE_PREDICTION_TABLE [i][bottom]._miss_prediction << " " 121 121 << reg_UPDATE_PREDICTION_TABLE [i][bottom]._ifetch_prediction << " " -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Commit_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp
r112 r113 175 175 entry->address_next = PORT_READ(in_INSERT_ADDRESS_NEXT [x][y]); 176 176 #ifdef DEBUG 177 entry->cycle_rob_in = s c_simulation_time();178 entry->cycle_commit = s c_simulation_time();177 entry->cycle_rob_in = simulation_cycle(); 178 entry->cycle_commit = simulation_cycle(); 179 179 #endif 180 180 … … 352 352 353 353 #ifdef DEBUG 354 entry->cycle_commit = s c_simulation_time();354 entry->cycle_commit = simulation_cycle(); 355 355 #endif 356 356 } … … 426 426 // log file 427 427 instruction_log_file [num_thread] 428 << "[" << s c_simulation_time() << "] "428 << "[" << simulation_cycle() << "] " 429 429 << "{" << ((retire_ok)?" OK ":"!KO!") << "} " 430 430 << std::hex -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Issue_queue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = OOO_Engine 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = OOO_Engine_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Reexecute_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Load_Store_pointer_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Rename_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Dependency_checking_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Dependency_checking_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Free_List_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/SelfTest/src/test.cpp
r109 r113 49 49 sc_clock * in_CLOCK = new sc_clock ("clock", 1.0, 0.5); 50 50 sc_signal<Tcontrol_t> * in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 51 52 sc_signal<Tcontrol_t > ** in_POP_VAL ; 53 sc_signal<Tcontrol_t > ** out_POP_ACK ; 54 sc_signal<Tcontrol_t > ** in_POP_GPR_VAL ; // write_rd 55 sc_signal<Tgeneral_address_t> ** out_POP_GPR_NUM_REG; // num_reg_rd 56 sc_signal<Tcontrol_t > ** in_POP_SPR_VAL ; // write_re 57 sc_signal<Tspecial_address_t> ** out_POP_SPR_NUM_REG; // num_reg_re 58 sc_signal<Tcontrol_t > ** in_PUSH_GPR_VAL ; // gpr_free (cf stat_list) 59 sc_signal<Tcontrol_t > ** out_PUSH_GPR_ACK ; 60 sc_signal<Tgeneral_address_t> ** in_PUSH_GPR_NUM_REG; 61 sc_signal<Tcontrol_t > ** in_PUSH_SPR_VAL ; // spr_free (cf stat_list) 62 sc_signal<Tcontrol_t > ** out_PUSH_SPR_ACK ; 63 sc_signal<Tspecial_address_t> ** in_PUSH_SPR_NUM_REG; 51 64 52 65 ALLOC1_SC_SIGNAL( in_POP_VAL ," in_POP_VAL ",Tcontrol_t ,_param->_nb_pop ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Register_translation_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Register_Address_Translation_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Register_translation_unit_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Stat_List_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/SelfTest/src/test.cpp
r112 r113 60 60 sc_clock * in_CLOCK = new sc_clock ("clock", 1.0, 0.5); 61 61 sc_signal<Tcontrol_t> * in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 62 63 sc_signal<Tcontrol_t > ** in_INSERT_VAL ;//[nb_inst_insert] 64 sc_signal<Tcontrol_t > ** out_INSERT_ACK ;//[nb_inst_insert] 65 sc_signal<Tcontrol_t > ** in_INSERT_READ_RA ;//[nb_inst_insert] 66 sc_signal<Tgeneral_address_t> ** in_INSERT_NUM_REG_RA_PHY ;//[nb_inst_insert] 67 sc_signal<Tcontrol_t > ** in_INSERT_READ_RB ;//[nb_inst_insert] 68 sc_signal<Tgeneral_address_t> ** in_INSERT_NUM_REG_RB_PHY ;//[nb_inst_insert] 69 sc_signal<Tcontrol_t > ** in_INSERT_READ_RC ;//[nb_inst_insert] 70 sc_signal<Tspecial_address_t> ** in_INSERT_NUM_REG_RC_PHY ;//[nb_inst_insert] 71 sc_signal<Tcontrol_t > ** in_INSERT_WRITE_RD ;//[nb_inst_insert] 72 sc_signal<Tgeneral_address_t> ** in_INSERT_NUM_REG_RD_PHY_NEW;//[nb_inst_insert] 73 sc_signal<Tcontrol_t > ** in_INSERT_WRITE_RE ;//[nb_inst_insert] 74 sc_signal<Tspecial_address_t> ** in_INSERT_NUM_REG_RE_PHY_NEW;//[nb_inst_insert] 75 sc_signal<Tcontrol_t > ** in_RETIRE_VAL ;//[nb_inst_retire] 76 sc_signal<Tcontrol_t > ** out_RETIRE_ACK ;//[nb_inst_retire] 77 sc_signal<Tcontrol_t > ** in_RETIRE_RESTORE ;//[nb_inst_retire] 78 sc_signal<Tcontrol_t > ** in_RETIRE_READ_RA ;//[nb_inst_retire] 79 sc_signal<Tgeneral_address_t> ** in_RETIRE_NUM_REG_RA_PHY ;//[nb_inst_retire] 80 sc_signal<Tcontrol_t > ** in_RETIRE_READ_RB ;//[nb_inst_retire] 81 sc_signal<Tgeneral_address_t> ** in_RETIRE_NUM_REG_RB_PHY ;//[nb_inst_retire] 82 sc_signal<Tcontrol_t > ** in_RETIRE_READ_RC ;//[nb_inst_retire] 83 sc_signal<Tspecial_address_t> ** in_RETIRE_NUM_REG_RC_PHY ;//[nb_inst_retire] 84 sc_signal<Tcontrol_t > ** in_RETIRE_WRITE_RD ;//[nb_inst_retire] 85 sc_signal<Tcontrol_t > ** in_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire] 86 sc_signal<Tgeneral_address_t> ** in_RETIRE_NUM_REG_RD_PHY_OLD;//[nb_inst_retire] 87 sc_signal<Tgeneral_address_t> ** in_RETIRE_NUM_REG_RD_PHY_NEW;//[nb_inst_retire] 88 sc_signal<Tcontrol_t > ** in_RETIRE_WRITE_RE ;//[nb_inst_retire] 89 sc_signal<Tcontrol_t > ** in_RETIRE_RESTORE_RE_PHY_OLD;//[nb_inst_retire] 90 sc_signal<Tspecial_address_t> ** in_RETIRE_NUM_REG_RE_PHY_OLD;//[nb_inst_retire] 91 sc_signal<Tspecial_address_t> ** in_RETIRE_NUM_REG_RE_PHY_NEW;//[nb_inst_retire] 92 sc_signal<Tcontrol_t > ** out_PUSH_GPR_VAL ;//[nb_reg_free] 93 sc_signal<Tcontrol_t > ** in_PUSH_GPR_ACK ;//[nb_reg_free] 94 sc_signal<Tgeneral_address_t> ** out_PUSH_GPR_NUM_REG ;//[nb_reg_free] 95 sc_signal<Tcontrol_t > ** out_PUSH_SPR_VAL ;//[nb_reg_free] 96 sc_signal<Tcontrol_t > ** in_PUSH_SPR_ACK ;//[nb_reg_free] 97 sc_signal<Tspecial_address_t> ** out_PUSH_SPR_NUM_REG ;//[nb_reg_free] 62 98 63 99 ALLOC1_SC_SIGNAL( in_INSERT_VAL ," in_INSERT_VAL ",Tcontrol_t ,_param->_nb_inst_insert); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/Makefile.defs
r81 r113 7 7 # 8 8 9 ENTITY = Rename_select 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Rename_unit_Glue 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../../.. -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/Makefile.defs
r88 r113 7 7 # 8 8 9 ENTITY = Special_Register_unit 10 9 11 #-----[ Directory ]---------------------------------------- 10 12 DIR_COMPONENT_MORPHEO = ../../../../..
Note: See TracChangeset
for help on using the changeset viewer.