Changeset 113 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest
- Timestamp:
- Apr 14, 2009, 8:39:12 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/SelfTest
- Files:
-
- 5 added
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
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
Note: See TracChangeset
for help on using the changeset viewer.