source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters.cpp @ 88

Last change on this file since 88 was 88, checked in by rosiere, 15 years ago

Almost complete design
with Test and test platform

  • Property svn:keywords set to Id
File size: 5.5 KB
Line 
1/*
2 * $Id: Parameters.cpp 88 2008-12-10 18:31:39Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Parameters.h"
9
10namespace morpheo {
11namespace behavioural {
12namespace core {
13namespace multi_execute_loop {
14namespace execute_loop {
15namespace multi_read_unit {
16namespace read_unit {
17namespace reservation_station {
18
19
20#undef  FUNCTION
21#define FUNCTION "Reservation_station::Parameters"
22  Parameters::Parameters (uint32_t size_queue         ,
23                          uint32_t nb_inst_retire     ,
24                          uint32_t nb_context         ,
25                          uint32_t nb_front_end       ,
26                          uint32_t nb_ooo_engine      ,
27                          uint32_t nb_packet          ,
28                          uint32_t size_general_data  ,
29                          uint32_t size_special_data  ,
30                          uint32_t nb_general_register,
31                          uint32_t nb_special_register,
32                          uint32_t nb_gpr_write       ,
33                          uint32_t nb_spr_write       ,
34                          uint32_t nb_bypass_write    ,
35                          uint32_t nb_bypass_memory   ,
36                          uint32_t size_store_queue   ,
37                          uint32_t size_load_queue    ,
38                          bool     is_toplevel)
39  {
40    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
55    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
79    log_printf(FUNC,Reservation_station,FUNCTION,"End");
80  };
81 
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
120#undef  FUNCTION
121#define FUNCTION "Reservation_station::~Parameters"
122  Parameters::~Parameters (void) 
123  {
124    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
125    log_printf(FUNC,Reservation_station,FUNCTION,"End");
126  };
127
128#undef  FUNCTION
129#define FUNCTION "Reservation_station::copy"
130  void Parameters::copy (void) 
131  {
132    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
133    log_printf(FUNC,Reservation_station,FUNCTION,"End");
134  };
135
136}; // end namespace reservation_station
137}; // end namespace read_unit
138}; // end namespace multi_read_unit
139}; // end namespace execute_loop
140}; // end namespace multi_execute_loop
141}; // end namespace core
142
143}; // end namespace behavioural
144}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.