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

Last change on this file since 76 was 76, checked in by rosiere, 16 years ago

Add new component : Read_unit (no tested)
Change functionnal_unit : now use type and operation to execute the good function
Change New_Component's script

File size: 7.0 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/include/Parameters.h"
9
10namespace morpheo {
11namespace behavioural {
12namespace core {
13namespace multi_execute_loop {
14namespace execute_loop {
15namespace multi_read_unit {
16namespace read_unit {
17
18
19#undef  FUNCTION
20#define FUNCTION "Read_unit::Parameters"
21  Parameters::Parameters (uint32_t size_read_queue         ,
22                          uint32_t size_reservation_station,
23                          uint32_t nb_context              ,
24                          uint32_t nb_front_end            ,
25                          uint32_t nb_ooo_engine           ,
26                          uint32_t nb_packet               ,
27                          uint32_t size_general_data       ,
28                          uint32_t size_special_data       ,
29                          uint32_t nb_general_register     ,
30                          uint32_t nb_special_register     ,
31                          uint32_t nb_operation            ,
32                          uint32_t nb_type                 ,
33                          uint32_t nb_gpr_write            ,
34                          uint32_t nb_spr_write            ,
35                          uint32_t size_store_queue        ,
36                          uint32_t size_load_queue         ,
37                          uint32_t nb_inst_retire          ,
38                          uint32_t nb_bypass_write         ,
39                          uint32_t nb_bypass_memory        ):
40    _size_read_queue          (size_read_queue         ),
41    _size_reservation_station (size_reservation_station),
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    _size_general_data        (size_general_data       ),
47    _size_special_data        (size_special_data       ),
48    _nb_general_register      (nb_general_register     ),
49    _nb_special_register      (nb_special_register     ),
50    _nb_operation             (nb_operation            ),
51    _nb_type                  (nb_type                 ),
52    _nb_gpr_write             (nb_gpr_write            ),
53    _nb_spr_write             (nb_spr_write            ),
54    _size_store_queue         (size_store_queue        ),
55    _size_load_queue          (size_load_queue         ),
56    _nb_inst_retire           (nb_inst_retire          ),
57    _nb_bypass_write          (nb_bypass_write         ),
58    _nb_bypass_memory         (nb_bypass_memory        ),
59   
60    _nb_gpr_read              (2),
61    _nb_spr_read              (1),   
62    _size_context_id          (log2(nb_context         )),
63    _size_front_end_id        (log2(nb_front_end       )),
64    _size_ooo_engine_id       (log2(nb_ooo_engine      )),
65    _size_packet_id           (log2(nb_packet          )),
66    _size_general_register    (log2(nb_general_register)),
67    _size_special_register    (log2(nb_special_register)),
68    _size_operation           (log2(nb_operation       )),
69    _size_type                (log2(nb_type            )),
70   
71    _have_port_context_id     (_size_context_id   >0),
72    _have_port_front_end_id   (_size_front_end_id >0),
73    _have_port_ooo_engine_id  (_size_ooo_engine_id>0),
74    _have_port_packet_id      (_size_packet_id    >0)
75  {
76    log_printf(FUNC,Read_unit,FUNCTION,"Begin");
77
78    _param_read_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Parameters
79      ( _size_read_queue   
80        ,_nb_context         
81        ,_nb_front_end       
82        ,_nb_ooo_engine
83        ,_nb_packet         
84        ,_size_general_data 
85        ,_size_special_data 
86        ,_nb_general_register
87        ,_nb_special_register
88        ,_nb_operation       
89        ,_nb_type           
90        ,_nb_gpr_write
91        ,_nb_spr_write
92        ,_size_store_queue
93        ,_size_load_queue
94        );
95
96    _param_reservation_station = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::reservation_station::Parameters
97        (size_reservation_station
98         ,nb_inst_retire     
99         ,nb_context         
100         ,nb_front_end       
101         ,nb_ooo_engine
102         ,nb_packet         
103         ,size_general_data 
104         ,size_special_data 
105         ,nb_general_register
106         ,nb_special_register
107         ,nb_operation       
108         ,nb_type           
109         ,nb_gpr_write
110         ,nb_spr_write
111         ,nb_bypass_write
112         ,nb_bypass_memory
113         ,size_store_queue
114         ,size_load_queue
115         );
116
117
118    test();
119
120    log_printf(FUNC,Read_unit,FUNCTION,"End");
121  };
122 
123#undef  FUNCTION
124#define FUNCTION "Read_unit::Parameters (copy)"
125  Parameters::Parameters (Parameters & param):
126    _size_read_queue          (param._size_read_queue         ),
127    _size_reservation_station (param._size_reservation_station),
128    _nb_context               (param._nb_context              ),
129    _nb_front_end             (param._nb_front_end            ),
130    _nb_ooo_engine            (param._nb_ooo_engine           ),
131    _nb_packet                (param._nb_packet               ),
132    _size_general_data        (param._size_general_data       ),
133    _size_special_data        (param._size_special_data       ),
134    _nb_general_register      (param._nb_general_register     ),
135    _nb_special_register      (param._nb_special_register     ),
136    _nb_operation             (param._nb_operation            ),
137    _nb_type                  (param._nb_type                 ),
138    _nb_gpr_write             (param._nb_gpr_write            ),
139    _nb_spr_write             (param._nb_spr_write            ),
140    _size_store_queue         (param._size_store_queue        ),
141    _size_load_queue          (param._size_load_queue         ),
142    _nb_inst_retire           (param._nb_inst_retire          ),
143    _nb_bypass_write          (param._nb_bypass_write         ),
144    _nb_bypass_memory         (param._nb_bypass_memory        ),
145
146    _nb_gpr_read              (param._nb_gpr_read             ),
147    _nb_spr_read              (param._nb_spr_read             ),   
148    _size_context_id          (param._size_context_id         ),
149    _size_front_end_id        (param._size_front_end_id       ),
150    _size_ooo_engine_id       (param._size_ooo_engine_id      ),
151    _size_packet_id           (param._size_packet_id          ),
152    _size_general_register    (param._size_general_register   ),
153    _size_special_register    (param._size_special_register   ),
154    _size_operation           (param._size_operation          ),
155    _size_type                (param._size_type               ),
156
157    _have_port_context_id     (param._have_port_context_id    ),
158    _have_port_front_end_id   (param._have_port_front_end_id  ),
159    _have_port_ooo_engine_id  (param._have_port_ooo_engine_id ),
160    _have_port_packet_id      (param._have_port_packet_id     )
161  {
162    log_printf(FUNC,Read_unit,FUNCTION,"Begin");
163
164    _param_read_queue          = param._param_read_queue         ;
165    _param_reservation_station = param._param_reservation_station;
166
167    test();
168
169    log_printf(FUNC,Read_unit,FUNCTION,"End");
170  };
171
172#undef  FUNCTION
173#define FUNCTION "Read_unit::~Parameters"
174  Parameters::~Parameters () 
175  {
176    log_printf(FUNC,Read_unit,FUNCTION,"Begin");
177
178    delete _param_read_queue;
179    delete _param_reservation_station;
180
181    log_printf(FUNC,Read_unit,FUNCTION,"End");
182  };
183
184}; // end namespace read_unit
185}; // end namespace multi_read_unit
186}; // end namespace execute_loop
187}; // end namespace multi_execute_loop
188}; // end namespace core
189
190}; // end namespace behavioural
191}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.