source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/SelfTest/src/main.cpp @ 77

Last change on this file since 77 was 77, checked in by rosiere, 16 years ago
  • Add two component :
    • network between read unit and execute unit
    • network between execute unit and write unit
  • remove parameters "nb_operation" and "nb_type"
  • in write_queue add the special case : load_speculative
File size: 3.9 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/SelfTest/include/test.h"
9
10#define NB_PARAMS 11
11
12void usage (int argc, char * argv[])
13{
14  err (_("<Usage> %s name_instance list_params.\n"),argv[0]);
15  err (_("list_params is :\n"));
16  err (_("  * nb_execute_unit                                (uint32_t)\n"));
17  err (_("  * nb_write_unit                                  (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 (_("  * size_special_data                              (uint32_t)\n"));
24  err (_("  * nb_general_register                            (uint32_t)\n"));
25  err (_("  * nb_special_register                            (uint32_t)\n"));
26  err (_("  * priority                                       (uint32_t)\n"));
27  err (_("  * table_routing [nb_execute_unit][nb_write_unit] (bool    )\n"));
28  err (_("  * table_thread  [nb_write_unit][nb_thread]       (bool    )\n"));
29
30  exit (1);
31}
32
33#ifndef SYSTEMC
34int main    (int argc, char * argv[])
35#else
36int sc_main (int argc, char * argv[])
37#endif
38{
39  if (argc < 2+NB_PARAMS)
40    usage (argc, argv);
41
42  uint32_t       x = 1;
43
44  const string   name      =      argv[x++];
45  uint32_t    _nb_execute_unit      = atoi(argv[x++]);
46  uint32_t    _nb_write_unit        = atoi(argv[x++]);
47  uint32_t    _nb_context           = atoi(argv[x++]);
48  uint32_t    _nb_front_end         = atoi(argv[x++]);
49  uint32_t    _nb_ooo_engine        = atoi(argv[x++]);
50  uint32_t    _nb_packet            = atoi(argv[x++]);
51  uint32_t    _size_general_data    = atoi(argv[x++]);
52  uint32_t    _size_special_data    = atoi(argv[x++]);
53  uint32_t    _nb_general_register  = atoi(argv[x++]);
54  uint32_t    _nb_special_register  = atoi(argv[x++]);
55  Tpriority_t _priority             = fromString<Tpriority_t>(argv[x++]);
56
57  uint32_t    _nb_thread            = get_nb_thread(_nb_context, _nb_front_end, _nb_ooo_engine);
58
59  if (static_cast<uint32_t>(argc) != 2+NB_PARAMS+(_nb_write_unit*_nb_execute_unit)+(_nb_write_unit*_nb_thread))
60    usage (argc, argv);
61 
62  bool ** _table_routing;
63  bool ** _table_thread ;
64 
65  _table_routing = new bool * [_nb_execute_unit];
66  for (uint32_t i=0; i<_nb_execute_unit; i++)
67    {
68      _table_routing [i] = new bool [_nb_write_unit];
69      for (uint32_t j=0; j<_nb_write_unit; j++)
70        _table_routing [i][j] = atoi(argv[x++]);
71    }
72
73  _table_thread = new bool * [_nb_write_unit];
74  for (uint32_t i=0; i<_nb_write_unit; i++)
75    {
76      _table_thread [i] = new bool [_nb_thread];
77
78      for (uint32_t j=0; j<_nb_thread; j++)
79        _table_thread [i][j] = atoi(argv[x++]);
80    }
81
82  try 
83    {
84      morpheo::behavioural::core::multi_execute_loop::execute_loop::network::execution_unit_to_write_unit::Parameters * param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::network::execution_unit_to_write_unit::Parameters
85        (_nb_execute_unit      ,
86         _nb_write_unit        ,
87         _nb_context           ,
88         _nb_front_end         ,
89         _nb_ooo_engine        ,
90         _nb_packet            ,
91         _size_general_data    ,
92         _size_special_data    ,
93         _nb_general_register  ,
94         _nb_special_register  ,
95         _priority             ,
96         _table_routing        ,
97         _table_thread
98         );
99     
100      msg(_("%s"),param->print(1).c_str());
101     
102      test (name,param);
103    }
104  catch (morpheo::ErrorMorpheo & error)
105    {
106      msg (_("<%s> : %s.\n"),name.c_str(), error.what ());
107      exit (EXIT_FAILURE);
108    }
109  catch (...)
110    {
111      err (_("<%s> : This test must generate a error.\n"),name.c_str());
112      exit (EXIT_FAILURE);
113    }
114
115  return (EXIT_SUCCESS);
116}
117
Note: See TracBrowser for help on using the repository browser.