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/Execution_unit_to_Write_unit/src/Parameters.cpp

    r81 r88  
    77
    88#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/include/Parameters.h"
    9 
     9#include "Common/include/Max.h"
    1010namespace morpheo {
    1111namespace behavioural {
     
    2020#define FUNCTION "Execution_unit_to_Write_unit::Parameters"
    2121  Parameters::Parameters (uint32_t    nb_execute_unit              ,
     22                          uint32_t  * nb_execute_unit_port         ,//[nb_execute_unit]
    2223                          uint32_t    nb_write_unit                ,
    2324                          uint32_t    nb_context                   ,
     
    3031                          uint32_t    nb_special_register          ,
    3132                          Tpriority_t priority                     ,
    32                           bool     ** table_routing                ,
    33                           bool     ** table_thread                 ):
    34     _nb_execute_unit         (nb_execute_unit    ),
    35     _nb_write_unit           (nb_write_unit      ),
    36     _nb_context              (nb_context         ),
    37     _nb_front_end            (nb_front_end       ),
    38     _nb_ooo_engine           (nb_ooo_engine      ),
    39     _nb_packet               (nb_packet          ),
    40     _size_general_data       (size_general_data  ),
    41     _size_special_data       (size_special_data  ),
    42     _nb_general_register     (nb_general_register),
    43     _nb_special_register     (nb_special_register),
    44     _priority                (priority           ),
    45    
    46     _size_context_id         (log2(nb_context         )),
    47     _size_front_end_id       (log2(nb_front_end       )),
    48     _size_ooo_engine_id      (log2(nb_ooo_engine      )),
    49     _size_packet_id          (log2(nb_packet          )),
    50     _size_general_register   (log2(nb_general_register)),
    51     _size_special_register   (log2(nb_special_register)),
    52    
    53     _have_port_context_id    (_size_context_id    > 0),
    54     _have_port_front_end_id  (_size_front_end_id  > 0),
    55     _have_port_ooo_engine_id (_size_ooo_engine_id > 0),
    56     _have_port_packet_id     (_size_packet_id     > 0),
    57 
    58     _nb_thread               (get_nb_thread (nb_context, nb_front_end, nb_ooo_engine))
     33                          bool    *** table_routing                ,//[nb_execute_unit][nb_execute_unit_port][nb_write_unit]
     34                          bool     ** table_thread                 ,//[nb_write_unit][nb_thread]                           
     35                          bool        is_toplevel                  )
    5936  {
    6037    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
    6138
    62     _table_routing = table_routing ;
    63     _table_thread  = table_thread  ;
     39    _nb_execute_unit         = nb_execute_unit     ;
     40    _nb_execute_unit_port    = nb_execute_unit_port;
     41    _nb_write_unit           = nb_write_unit       ;
     42    _nb_context              = nb_context          ;
     43    _nb_front_end            = nb_front_end        ;
     44    _nb_ooo_engine           = nb_ooo_engine       ;
     45    _nb_packet               = nb_packet           ;
     46    _nb_general_register     = nb_general_register ;
     47    _nb_special_register     = nb_special_register ;
     48    _priority                = priority            ;
     49    _table_routing           = table_routing       ;
     50    _table_thread            = table_thread        ;
     51
     52    _max_nb_execute_unit_port= max<uint32_t>(_nb_execute_unit_port, _nb_execute_unit);
     53
     54    _nb_thread               = get_nb_thread (nb_context, nb_front_end, nb_ooo_engine);
    6455
    6556    test();
     57
     58    if (is_toplevel)
     59      {
     60        _size_context_id         = log2(nb_context         );
     61        _size_front_end_id       = log2(nb_front_end       );
     62        _size_ooo_engine_id      = log2(nb_ooo_engine      );
     63        _size_rob_ptr            = log2(nb_packet          );
     64        _size_general_register   = log2(nb_general_register);
     65        _size_special_register   = log2(nb_special_register);
     66        _size_general_data       = size_general_data  ;
     67        _size_special_data       = size_special_data  ;
     68       
     69        _have_port_context_id    = _size_context_id    > 0;
     70        _have_port_front_end_id  = _size_front_end_id  > 0;
     71        _have_port_ooo_engine_id = _size_ooo_engine_id > 0;
     72        _have_port_rob_ptr       = _size_rob_ptr       > 0;
     73
     74        copy();
     75      }
     76
    6677    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
    6778  };
    6879 
     80// #undef  FUNCTION
     81// #define FUNCTION "Execution_unit_to_Write_unit::Parameters (copy)"
     82//   Parameters::Parameters (Parameters & param) 
     83//   {
     84//     log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
     85
     86//     test();
     87//     log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
     88//   };
     89
    6990#undef  FUNCTION
    70 #define FUNCTION "Execution_unit_to_Write_unit::Parameters (copy)"
    71   Parameters::Parameters (Parameters & param):
    72     _nb_execute_unit         (param._nb_execute_unit        ),
    73     _nb_write_unit           (param._nb_write_unit          ),
    74     _nb_context              (param._nb_context             ),
    75     _nb_front_end            (param._nb_front_end           ),
    76     _nb_ooo_engine           (param._nb_ooo_engine          ),
    77     _nb_packet               (param._nb_packet              ),
    78     _size_general_data       (param._size_general_data      ),
    79     _size_special_data       (param._size_special_data      ),
    80     _nb_general_register     (param._nb_general_register    ),
    81     _nb_special_register     (param._nb_special_register    ),
    82     _priority                (param._priority               ),
    83 
    84     _size_context_id         (param._size_context_id        ),
    85     _size_front_end_id       (param._size_front_end_id      ),
    86     _size_ooo_engine_id      (param._size_ooo_engine_id     ),
    87     _size_packet_id          (param._size_packet_id         ),
    88     _size_general_register   (param._size_general_register  ),
    89     _size_special_register   (param._size_special_register  ),
    90 
    91     _have_port_context_id    (param._have_port_context_id   ),
    92     _have_port_front_end_id  (param._have_port_front_end_id ),
    93     _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
    94     _have_port_packet_id     (param._have_port_packet_id    ),
    95 
    96     _nb_thread               (param._nb_thread              )
     91#define FUNCTION "Execution_unit_to_Write_unit::~Parameters"
     92  Parameters::~Parameters (void)
    9793  {
    9894    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
    99 
    100     _table_routing = param._table_routing ;
    101     _table_thread  = param._table_thread  ;
    102 
    103     test();
    10495    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
    10596  };
    10697
    10798#undef  FUNCTION
    108 #define FUNCTION "Execution_unit_to_Write_unit::~Parameters"
    109   Parameters::~Parameters ()
     99#define FUNCTION "Execution_unit_to_Write_unit::copy"
     100  void Parameters::copy (void)
    110101  {
    111102    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
Note: See TracChangeset for help on using the changeset viewer.