Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (16 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/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters.cpp

    r81 r88  
    3535                          uint32_t nb_bypass_memory   ,
    3636                          uint32_t size_store_queue   ,
    37                           uint32_t size_load_queue    ):
    38     _size_queue            (size_queue           ),
    39     _nb_inst_retire        (nb_inst_retire       ),
    40     _nb_context            (nb_context           ),
    41     _nb_front_end          (nb_front_end         ),
    42     _nb_ooo_engine         (nb_ooo_engine        ),
    43     _nb_packet             (nb_packet            ),
    44     _size_general_data     (size_general_data    ),
    45     _size_special_data     (size_special_data    ),
    46     _nb_general_register   (nb_general_register  ),
    47     _nb_special_register   (nb_special_register  ),
    48     _nb_gpr_write          (nb_gpr_write         ),
    49     _nb_spr_write          (nb_spr_write         ),
    50     _nb_bypass_write       (nb_bypass_write      ),
    51     _nb_bypass_memory      (nb_bypass_memory     ),
    52     _size_store_queue      (size_store_queue     ),
    53     _size_load_queue       (size_load_queue      ),
    54 
    55     _size_context_id       (static_cast<uint32_t>(log2(_nb_context         ))),
    56     _size_front_end_id     (static_cast<uint32_t>(log2(_nb_front_end       ))),
    57     _size_ooo_engine_id    (static_cast<uint32_t>(log2(_nb_ooo_engine      ))),
    58     _size_rob_id           (static_cast<uint32_t>(log2(_nb_packet          ))),
    59     _size_general_register (static_cast<uint32_t>(log2(_nb_general_register))),
    60     _size_special_register (static_cast<uint32_t>(log2(_nb_special_register))),
    61 
    62     _have_port_context_id    (_size_context_id    > 0),
    63     _have_port_front_end_id  (_size_front_end_id  > 0),
    64     _have_port_ooo_engine_id (_size_ooo_engine_id > 0),
    65     _have_port_rob_id        (_size_rob_id        > 0),
    66     _have_port_load_queue_ptr(_size_load_queue    > 1)
     37                          uint32_t size_load_queue    ,
     38                          bool     is_toplevel)
    6739  {
    6840    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
     41
     42    _size_queue              = size_queue           ;
     43    _nb_inst_retire          = nb_inst_retire       ;
     44    _nb_context              = nb_context           ;
     45    _nb_front_end            = nb_front_end         ;
     46    _nb_ooo_engine           = nb_ooo_engine        ;
     47    _nb_packet               = nb_packet            ;
     48    _nb_general_register     = nb_general_register  ;
     49    _nb_special_register     = nb_special_register  ;
     50    _nb_gpr_write            = nb_gpr_write         ;
     51    _nb_spr_write            = nb_spr_write         ;
     52    _nb_bypass_write         = nb_bypass_write      ;
     53    _nb_bypass_memory        = nb_bypass_memory     ;
     54
    6955    test();
     56
     57    if (is_toplevel)
     58      {
     59        _size_context_id         = log2(_nb_context         );
     60        _size_front_end_id       = log2(_nb_front_end       );
     61        _size_ooo_engine_id      = log2(_nb_ooo_engine      );
     62        _size_rob_ptr            = log2(_nb_packet          );
     63        _size_general_register   = log2(_nb_general_register);
     64        _size_special_register   = log2(_nb_special_register);
     65        _size_general_data       = size_general_data         ;
     66        _size_special_data       = size_special_data         ;
     67        _size_store_queue_ptr    = log2(size_store_queue    );
     68        _size_load_queue_ptr     = log2(size_load_queue     );
     69       
     70        _have_port_context_id    = _size_context_id     > 0;
     71        _have_port_front_end_id  = _size_front_end_id   > 0;
     72        _have_port_ooo_engine_id = _size_ooo_engine_id  > 0;
     73        _have_port_rob_ptr       = _size_rob_ptr        > 0;
     74        _have_port_load_queue_ptr= _size_load_queue_ptr > 0;
     75
     76        copy();
     77      }
     78
    7079    log_printf(FUNC,Reservation_station,FUNCTION,"End");
    7180  };
    7281 
     82// #undef  FUNCTION
     83// #define FUNCTION "Reservation_station::Parameters (copy)"
     84//   Parameters::Parameters (Parameters & param):
     85//     _size_queue            (param._size_queue            ),
     86//     _nb_inst_retire        (param._nb_inst_retire        ),
     87//     _nb_context            (param._nb_context            ),
     88//     _nb_front_end          (param._nb_front_end          ),
     89//     _nb_ooo_engine         (param._nb_ooo_engine         ),
     90//     _nb_packet             (param._nb_packet             ),
     91//     _size_general_data     (param._size_general_data     ),
     92//     _size_special_data     (param._size_special_data     ),
     93//     _nb_general_register   (param._nb_general_register   ),
     94//     _nb_special_register   (param._nb_special_register   ),
     95//     _nb_gpr_write          (param._nb_gpr_write          ),
     96//     _nb_spr_write          (param._nb_spr_write          ),
     97//     _nb_bypass_write       (param._nb_bypass_write       ),
     98//     _nb_bypass_memory      (param._nb_bypass_memory      ),
     99//     _size_store_queue      (param._size_store_queue      ),
     100//     _size_load_queue       (param._size_load_queue       ),
     101
     102//     _size_context_id       (param._size_context_id       ),
     103//     _size_front_end_id     (param._size_front_end_id     ),
     104//     _size_ooo_engine_id    (param._size_ooo_engine_id    ),
     105//     _size_rob_id           (param._size_rob_id           ),
     106//     _size_general_register (param._size_general_register ),
     107//     _size_special_register (param._size_special_register ),
     108
     109//     _have_port_context_id    (param._have_port_context_id   ),
     110//     _have_port_front_end_id  (param._have_port_front_end_id ),
     111//     _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
     112//     _have_port_rob_id        (param._have_port_rob_id       ),
     113//     _have_port_load_queue_ptr(param._have_port_load_queue_ptr)
     114//   {
     115//     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
     116//     test();
     117//     log_printf(FUNC,Reservation_station,FUNCTION,"End");
     118//   };
     119
    73120#undef  FUNCTION
    74 #define FUNCTION "Reservation_station::Parameters (copy)"
    75   Parameters::Parameters (Parameters & param):
    76     _size_queue            (param._size_queue            ),
    77     _nb_inst_retire        (param._nb_inst_retire        ),
    78     _nb_context            (param._nb_context            ),
    79     _nb_front_end          (param._nb_front_end          ),
    80     _nb_ooo_engine         (param._nb_ooo_engine         ),
    81     _nb_packet             (param._nb_packet             ),
    82     _size_general_data     (param._size_general_data     ),
    83     _size_special_data     (param._size_special_data     ),
    84     _nb_general_register   (param._nb_general_register   ),
    85     _nb_special_register   (param._nb_special_register   ),
    86     _nb_gpr_write          (param._nb_gpr_write          ),
    87     _nb_spr_write          (param._nb_spr_write          ),
    88     _nb_bypass_write       (param._nb_bypass_write       ),
    89     _nb_bypass_memory      (param._nb_bypass_memory      ),
    90     _size_store_queue      (param._size_store_queue      ),
    91     _size_load_queue       (param._size_load_queue       ),
    92 
    93     _size_context_id       (param._size_context_id       ),
    94     _size_front_end_id     (param._size_front_end_id     ),
    95     _size_ooo_engine_id    (param._size_ooo_engine_id    ),
    96     _size_rob_id           (param._size_rob_id           ),
    97     _size_general_register (param._size_general_register ),
    98     _size_special_register (param._size_special_register ),
    99 
    100     _have_port_context_id    (param._have_port_context_id   ),
    101     _have_port_front_end_id  (param._have_port_front_end_id ),
    102     _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
    103     _have_port_rob_id        (param._have_port_rob_id       ),
    104     _have_port_load_queue_ptr(param._have_port_load_queue_ptr)
     121#define FUNCTION "Reservation_station::~Parameters"
     122  Parameters::~Parameters (void)
    105123  {
    106124    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
    107     test();
    108125    log_printf(FUNC,Reservation_station,FUNCTION,"End");
    109126  };
    110127
    111128#undef  FUNCTION
    112 #define FUNCTION "Reservation_station::~Parameters"
    113   Parameters::~Parameters ()
     129#define FUNCTION "Reservation_station::copy"
     130  void Parameters::copy (void)
    114131  {
    115132    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
Note: See TracChangeset for help on using the changeset viewer.