Changeset 113 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_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/Execute_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/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
Note: See TracChangeset
for help on using the changeset viewer.