Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (15 years ago)
Author:
rosiere
Message:

Almost complete design
with Test and test platform

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/SelfTest/src/main.cpp

    r81 r88  
    1515  err (_("list_params is :\n"));
    1616  err (_("  * nb_read_unit                                         (uint32_t)\n"));
     17  err (_("  * nb_read_unit_port    [nb_read_unit]                  (uint32_t)\n"));
    1718  err (_("  * nb_execute_unit                                      (uint32_t)\n"));
     19  err (_("  * nb_execute_unit_port [nb_execute_unit]               (uint32_t)\n"));
    1820  err (_("  * nb_context                                           (uint32_t)\n"));
    1921  err (_("  * nb_front_end                                         (uint32_t)\n"));
     
    3335  err (_("    * [TYPE_MOVE   ]\n"));
    3436  err (_("    * [TYPE_TEST   ]\n"));
    35   err (_("    * [TYPE_MUL_DIV]\n"));
     37  err (_("    * [TYPE_MUL    ]\n"));
     38  err (_("    * [TYPE_DIV    ]\n"));
    3639  err (_("    * [TYPE_EXTEND ]\n"));
    3740  err (_("    * [TYPE_FIND   ]\n"));
     
    5861  string      name                  =      argv[x++];
    5962  uint32_t    _nb_read_unit         = atoi(argv[x++]);
     63
     64  if (static_cast<uint32_t>(argc) < 2+NB_PARAMS+_nb_read_unit)
     65    usage (argc, argv);
     66
     67  uint32_t *  _nb_read_unit_port = new uint32_t [_nb_read_unit];
     68  for (uint32_t i=0; i<_nb_read_unit; i++)
     69    _nb_read_unit_port [i] = atoi(argv[x++]);
     70 
    6071  uint32_t    _nb_execute_unit      = atoi(argv[x++]);
     72
     73  if (static_cast<uint32_t>(argc) < 2+NB_PARAMS+_nb_read_unit+_nb_execute_unit)
     74    usage (argc, argv);
     75
     76  uint32_t    _sum_execute_unit_port = 0;
     77  uint32_t *  _nb_execute_unit_port = new uint32_t [_nb_execute_unit];
     78  for (uint32_t i=0; i<_nb_execute_unit; i++)
     79    {
     80      _nb_execute_unit_port [i] = atoi(argv[x++]);
     81      _sum_execute_unit_port += _nb_execute_unit_port [i];
     82    }
     83
    6184  uint32_t    _nb_context           = atoi(argv[x++]);
    6285  uint32_t    _nb_front_end         = atoi(argv[x++]);
     
    7093  uint32_t    _size_load_queue      = atoi(argv[x++]);
    7194  Tpriority_t _priority             = fromString<Tpriority_t>(argv[x++]);
    72 
     95 
    7396  uint32_t    _nb_thread            = get_nb_thread(_nb_context, _nb_front_end, _nb_ooo_engine);
    7497
    75   if (static_cast<uint32_t>(argc) != 2+NB_PARAMS+(_nb_read_unit*_nb_execute_unit)+(_nb_execute_unit*11)+(_nb_execute_unit*_nb_thread))
    76     usage (argc, argv);
    77  
    78   bool ** _table_routing        ;
    79   bool ** _table_execute_type   ;
    80   bool ** _table_execute_thread ;
    81  
    82   _table_routing = new bool * [_nb_read_unit];
     98  msg("%d\n",argc);
     99  msg("%d\n",2+NB_PARAMS+(_nb_read_unit+_nb_execute_unit+(_nb_read_unit*_sum_execute_unit_port)+(_nb_execute_unit*12)+(_nb_execute_unit*_nb_thread)));
     100 
     101  if (static_cast<uint32_t>(argc) != 2+NB_PARAMS+(_nb_read_unit+_nb_execute_unit+(_nb_read_unit*_sum_execute_unit_port)+(_nb_execute_unit*12)+(_nb_execute_unit*_nb_thread)))
     102      usage (argc, argv);
     103 
     104  bool *** _table_routing        ;
     105  bool  ** _table_execute_type   ;
     106  bool  ** _table_execute_thread ;
     107 
     108  _table_routing = new bool ** [_nb_read_unit];
    83109  for (uint32_t i=0; i<_nb_read_unit; i++)
    84110    {
    85       _table_routing [i] = new bool [_nb_execute_unit];
     111      _table_routing [i] = new bool * [_nb_execute_unit];
    86112      for (uint32_t j=0; j<_nb_execute_unit; j++)
    87         _table_routing [i][j] = atoi(argv[x++]);
    88     }
    89 
     113        {
     114          _table_routing [i][j] = new bool [_nb_execute_unit_port [j]];
     115     
     116          for (uint32_t k=0; k<_nb_execute_unit_port [j]; k++)
     117            _table_routing [i][j][k] = atoi(argv[x++]);
     118        }
     119    }
     120     
    90121  _table_execute_type = new bool * [_nb_execute_unit];
    91122  for (uint32_t i=0; i<_nb_execute_unit; i++)
     
    97128      _table_execute_type [i][TYPE_MOVE   ] = atoi(argv[x++]);
    98129      _table_execute_type [i][TYPE_TEST   ] = atoi(argv[x++]);
    99       _table_execute_type [i][TYPE_MUL_DIV] = atoi(argv[x++]);
     130      _table_execute_type [i][TYPE_MUL    ] = atoi(argv[x++]);
     131      _table_execute_type [i][TYPE_DIV    ] = atoi(argv[x++]);
    100132      _table_execute_type [i][TYPE_EXTEND ] = atoi(argv[x++]);
    101133      _table_execute_type [i][TYPE_FIND   ] = atoi(argv[x++]);
     
    119151      morpheo::behavioural::core::multi_execute_loop::execute_loop::network::read_unit_to_execution_unit::Parameters * param = new morpheo::behavioural::core::multi_execute_loop::execute_loop::network::read_unit_to_execution_unit::Parameters
    120152        (_nb_read_unit         ,
     153         _nb_read_unit_port    ,
    121154         _nb_execute_unit      ,
     155         _nb_execute_unit_port ,
    122156         _nb_context           ,
    123157         _nb_front_end         ,
     
    133167         _table_routing        ,
    134168         _table_execute_type   ,
    135          _table_execute_thread
     169         _table_execute_thread ,
     170         true // is_toplevel
    136171         );
    137172     
     
    151186    }
    152187
    153   delete [] _table_routing        ;
     188  delete [] _nb_read_unit_port;
     189  delete [] _nb_execute_unit_port ;
     190
     191  for (uint32_t i=0; i<_nb_read_unit; i++)
     192    {
     193      for (uint32_t j=0; j<_nb_execute_unit; j++)
     194        delete [] _table_routing [i][j];
     195      delete [] _table_routing [i];
     196    }
     197  delete [] _table_routing;
     198
     199
     200  for (uint32_t i=0; i<_nb_execute_unit; i++)
     201    delete [] _table_execute_type [i];
    154202  delete [] _table_execute_type   ;
     203
     204  for (uint32_t i=0; i<_nb_execute_unit; i++)
     205    delete [] _table_execute_thread [i];
    155206  delete [] _table_execute_thread ;
     207
    156208
    157209  return (EXIT_SUCCESS);
Note: See TracChangeset for help on using the changeset viewer.