source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.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: 23.5 KB
Line 
1/*
2 * $Id: Register_unit_Glue_allocation.cpp 88 2008-12-10 18:31:39Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h"
9
10namespace morpheo                    {
11namespace behavioural {
12namespace core {
13namespace multi_execute_loop {
14namespace execute_loop {
15namespace register_unit {
16namespace register_unit_glue {
17
18
19
20#undef  FUNCTION
21#define FUNCTION "Register_unit_Glue::allocation"
22  void Register_unit_Glue::allocation (void)
23  {
24    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
25
26    _component   = new Component (_usage);
27
28    Entity * entity = _component->set_entity (_name       
29                                              ,"Register_unit_Glue"
30#ifdef POSITION
31                                              ,COMBINATORY
32#endif
33                                              );
34
35    _interfaces = entity->set_interfaces();
36
37    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38
39    Interface * interface = _interfaces->set_interface(""
40#ifdef POSITION
41                                                       ,IN
42                                                       ,SOUTH,
43                                                       "Generalist interface"
44#endif
45                                                       );
46   
47     in_CLOCK        = interface->set_signal_clk              ("clock" ,1, CLOCK_VHDL_NO);
48     in_NRESET       = interface->set_signal_in  <Tcontrol_t> ("nreset",1, RESET_VHDL_NO);
49    out_CONST_0      = interface->set_signal_out <Tcontrol_t> ("const_0",1);
50    out_CONST_1      = interface->set_signal_out <Tcontrol_t> ("const_1",1);
51
52    // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53   in_GPR_READ_VAL               = new SC_IN (Tcontrol_t        )   * [_param->_nb_gpr_read];
54  out_GPR_READ_ACK               = new SC_OUT(Tcontrol_t        )   * [_param->_nb_gpr_read];
55  if (_param->_have_port_ooo_engine_id == true)
56   in_GPR_READ_OOO_ENGINE_ID     = new SC_IN (Tcontext_t        )   * [_param->_nb_gpr_read];
57  out_GPR_READ_DATA              = new SC_OUT(Tgeneral_data_t   )   * [_param->_nb_gpr_read];
58  out_GPR_READ_DATA_VAL          = new SC_OUT(Tcontrol_t        )   * [_param->_nb_gpr_read];
59
60  out_GPR_READ_REGISTERFILE_VAL  = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
61   in_GPR_READ_REGISTERFILE_ACK  = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
62   in_GPR_READ_REGISTERFILE_DATA = new SC_IN (Tgeneral_data_t   )  ** [_param->_nb_ooo_engine];
63
64  out_GPR_READ_STATUS_VAL        = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
65   in_GPR_READ_STATUS_ACK        = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
66   in_GPR_READ_STATUS_DATA_VAL   = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
67
68   for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
69     {
70       out_GPR_READ_REGISTERFILE_VAL  [i] = new SC_OUT(Tcontrol_t        )  * [_param->_nb_gpr_read];
71        in_GPR_READ_REGISTERFILE_ACK  [i] = new SC_IN (Tcontrol_t        )  * [_param->_nb_gpr_read];
72        in_GPR_READ_REGISTERFILE_DATA [i] = new SC_IN (Tgeneral_data_t   )  * [_param->_nb_gpr_read];
73
74       out_GPR_READ_STATUS_VAL        [i] = new SC_OUT(Tcontrol_t        )  * [_param->_nb_gpr_read];
75        in_GPR_READ_STATUS_ACK        [i] = new SC_IN (Tcontrol_t        )  * [_param->_nb_gpr_read];
76        in_GPR_READ_STATUS_DATA_VAL   [i] = new SC_IN (Tcontrol_t        )  * [_param->_nb_gpr_read];
77     }
78
79   for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
80     {
81       Interface_fifo * interface = _interfaces->set_interface("gpr_read_"+toString(j)
82#ifdef POSITION
83                                                          ,IN
84                                                          ,NORTH,
85                                                          "Interface to read generalist register"
86#endif
87                                                          );
88     
89        in_GPR_READ_VAL           [j] = interface->set_signal_valack_in  (VAL);
90       out_GPR_READ_ACK           [j] = interface->set_signal_valack_out (ACK);
91       if (_param->_have_port_ooo_engine_id == true)
92        in_GPR_READ_OOO_ENGINE_ID [j] = interface->set_signal_in <Tcontext_t     > ("ooo_engine_id", _param->_size_ooo_engine_id);
93       out_GPR_READ_DATA          [j] = interface->set_signal_out<Tgeneral_data_t> ("data"         , _param->_size_general_data);
94       out_GPR_READ_DATA_VAL      [j] = interface->set_signal_out<Tcontrol_t     > ("data_val"     , 1);
95
96       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
97         {
98           {
99             Interface_fifo * interface = _interfaces->set_interface("gpr_read_registerfile_"+toString(i)+"_"+toString(j)
100#ifdef POSITION
101                                                                ,IN
102                                                                ,NORTH,
103                                                                "Interface to read generalist register - from/to register file"
104#endif
105                                                                );
106             
107             out_GPR_READ_REGISTERFILE_VAL  [i][j] = interface->set_signal_valack_out (VAL);
108              in_GPR_READ_REGISTERFILE_ACK  [i][j] = interface->set_signal_valack_in  (ACK);
109              in_GPR_READ_REGISTERFILE_DATA [i][j] = interface->set_signal_in <Tgeneral_data_t> ("data"         , _param->_size_general_data);
110           }
111           {
112             Interface_fifo * interface = _interfaces->set_interface("gpr_read_status_"+toString(i)+"_"+toString(j)
113#ifdef POSITION
114                                                                ,IN
115                                                                ,NORTH,
116                                                                "Interface to read generalist register - from/to status"
117#endif
118                                                                );
119
120
121             out_GPR_READ_STATUS_VAL        [i][j] = interface->set_signal_valack_out (VAL);
122              in_GPR_READ_STATUS_ACK        [i][j] = interface->set_signal_valack_in  (ACK);
123              in_GPR_READ_STATUS_DATA_VAL   [i][j] = interface->set_signal_in <Tcontrol_t     > ("data_val"     , 1);
124           }
125         }
126     }
127
128    // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
129   in_SPR_READ_VAL               = new SC_IN (Tcontrol_t        )   * [_param->_nb_spr_read];
130  out_SPR_READ_ACK               = new SC_OUT(Tcontrol_t        )   * [_param->_nb_spr_read];
131  if (_param->_have_port_ooo_engine_id == true)
132   in_SPR_READ_OOO_ENGINE_ID     = new SC_IN (Tcontext_t        )   * [_param->_nb_spr_read];
133  out_SPR_READ_DATA              = new SC_OUT(Tspecial_data_t   )   * [_param->_nb_spr_read];
134  out_SPR_READ_DATA_VAL          = new SC_OUT(Tcontrol_t        )   * [_param->_nb_spr_read];
135
136  out_SPR_READ_REGISTERFILE_VAL  = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
137   in_SPR_READ_REGISTERFILE_ACK  = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
138   in_SPR_READ_REGISTERFILE_DATA = new SC_IN (Tspecial_data_t   )  ** [_param->_nb_ooo_engine];
139
140  out_SPR_READ_STATUS_VAL        = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
141   in_SPR_READ_STATUS_ACK        = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
142   in_SPR_READ_STATUS_DATA_VAL   = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
143
144   for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
145     {
146       out_SPR_READ_REGISTERFILE_VAL  [i] = new SC_OUT(Tcontrol_t        )  * [_param->_nb_spr_read];
147        in_SPR_READ_REGISTERFILE_ACK  [i] = new SC_IN (Tcontrol_t        )  * [_param->_nb_spr_read];
148        in_SPR_READ_REGISTERFILE_DATA [i] = new SC_IN (Tspecial_data_t   )  * [_param->_nb_spr_read];
149
150       out_SPR_READ_STATUS_VAL        [i] = new SC_OUT(Tcontrol_t        )  * [_param->_nb_spr_read];
151        in_SPR_READ_STATUS_ACK        [i] = new SC_IN (Tcontrol_t        )  * [_param->_nb_spr_read];
152        in_SPR_READ_STATUS_DATA_VAL   [i] = new SC_IN (Tcontrol_t        )  * [_param->_nb_spr_read];
153     }
154
155   for (uint32_t j=0; j<_param->_nb_spr_read; j++)
156     {
157       Interface_fifo * interface = _interfaces->set_interface("spr_read_"+toString(j)
158#ifdef POSITION
159                                                          ,IN
160                                                          ,NORTH,
161                                                          "Interface to read special register"
162#endif
163                                                          );
164     
165        in_SPR_READ_VAL           [j] = interface->set_signal_valack_in  (VAL);
166       out_SPR_READ_ACK           [j] = interface->set_signal_valack_out (ACK);
167       if (_param->_have_port_ooo_engine_id == true)
168        in_SPR_READ_OOO_ENGINE_ID [j] = interface->set_signal_in <Tcontext_t     > ("ooo_engine_id", _param->_size_ooo_engine_id);
169       out_SPR_READ_DATA          [j] = interface->set_signal_out<Tspecial_data_t> ("data"         , _param->_size_special_data);
170       out_SPR_READ_DATA_VAL      [j] = interface->set_signal_out<Tcontrol_t     > ("data_val"     , 1);
171
172       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
173         {
174           {
175             Interface_fifo * interface = _interfaces->set_interface("spr_read_registerfile_"+toString(i)+"_"+toString(j)
176#ifdef POSITION
177                                                                ,IN
178                                                                ,NORTH,
179                                                                "Interface to read special register - from/to register file"
180#endif
181                                                                );
182             
183             out_SPR_READ_REGISTERFILE_VAL  [i][j] = interface->set_signal_valack_out (VAL);
184              in_SPR_READ_REGISTERFILE_ACK  [i][j] = interface->set_signal_valack_in  (ACK);
185              in_SPR_READ_REGISTERFILE_DATA [i][j] = interface->set_signal_in <Tspecial_data_t> ("data"         , _param->_size_special_data);
186           }
187           {
188             Interface_fifo * interface = _interfaces->set_interface("spr_read_status_"+toString(i)+"_"+toString(j)
189#ifdef POSITION
190                                                                ,IN
191                                                                ,NORTH,
192                                                                "Interface to read special register - from/to status"
193#endif
194                                                                );
195
196
197             out_SPR_READ_STATUS_VAL        [i][j] = interface->set_signal_valack_out (VAL);
198              in_SPR_READ_STATUS_ACK        [i][j] = interface->set_signal_valack_in  (ACK);
199              in_SPR_READ_STATUS_DATA_VAL   [i][j] = interface->set_signal_in <Tcontrol_t     > ("data_val"     , 1);
200           }
201         }
202     }
203
204    // ~~~~~[ Interface "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
205   in_GPR_WRITE_VAL               = new SC_IN (Tcontrol_t        )   * [_param->_nb_gpr_write];
206  out_GPR_WRITE_ACK               = new SC_OUT(Tcontrol_t        )   * [_param->_nb_gpr_write];
207  if (_param->_have_port_ooo_engine_id == true) 
208  in_GPR_WRITE_OOO_ENGINE_ID     = new SC_IN (Tcontext_t        )   * [_param->_nb_gpr_write];
209
210  out_GPR_WRITE_REGISTERFILE_VAL  = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
211   in_GPR_WRITE_REGISTERFILE_ACK  = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
212
213  out_GPR_WRITE_STATUS_VAL        = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
214   in_GPR_WRITE_STATUS_ACK        = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
215
216   for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
217     {
218       out_GPR_WRITE_REGISTERFILE_VAL  [i] = new SC_OUT(Tcontrol_t        )  * [_param->_nb_gpr_write];
219        in_GPR_WRITE_REGISTERFILE_ACK  [i] = new SC_IN (Tcontrol_t        )  * [_param->_nb_gpr_write];
220
221       out_GPR_WRITE_STATUS_VAL        [i] = new SC_OUT(Tcontrol_t        )  * [_param->_nb_gpr_write];
222        in_GPR_WRITE_STATUS_ACK        [i] = new SC_IN (Tcontrol_t        )  * [_param->_nb_gpr_write];
223     }
224
225   for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
226     {
227       Interface_fifo * interface = _interfaces->set_interface("gpr_write_"+toString(j)
228#ifdef POSITION
229                                                          ,IN
230                                                          ,NORTH,
231                                                          "Interface to write generalist register"
232#endif
233                                                          );
234     
235        in_GPR_WRITE_VAL           [j] = interface->set_signal_valack_in  (VAL);
236       out_GPR_WRITE_ACK           [j] = interface->set_signal_valack_out (ACK);
237       if (_param->_have_port_ooo_engine_id == true)
238        in_GPR_WRITE_OOO_ENGINE_ID [j] = interface->set_signal_in <Tcontext_t     > ("ooo_engine_id", _param->_size_ooo_engine_id);
239
240       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
241         {
242           {
243             Interface_fifo * interface = _interfaces->set_interface("gpr_write_registerfile_"+toString(i)+"_"+toString(j)
244#ifdef POSITION
245                                                                ,IN
246                                                                ,NORTH,
247                                                                "Interface to write generalist register - from/to register file"
248#endif
249                                                                );
250             
251             out_GPR_WRITE_REGISTERFILE_VAL  [i][j] = interface->set_signal_valack_out (VAL);
252              in_GPR_WRITE_REGISTERFILE_ACK  [i][j] = interface->set_signal_valack_in  (ACK);
253           }
254           {
255             Interface_fifo * interface = _interfaces->set_interface("gpr_write_status_"+toString(i)+"_"+toString(j)
256#ifdef POSITION
257                                                                ,IN
258                                                                ,NORTH,
259                                                                "Interface to write generalist register - from/to status"
260#endif
261                                                                );
262
263
264             out_GPR_WRITE_STATUS_VAL        [i][j] = interface->set_signal_valack_out (VAL);
265              in_GPR_WRITE_STATUS_ACK        [i][j] = interface->set_signal_valack_in  (ACK);
266           }
267         }
268     }
269
270    // ~~~~~[ Interface "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
271   in_SPR_WRITE_VAL               = new SC_IN (Tcontrol_t        )   * [_param->_nb_spr_write];
272  out_SPR_WRITE_ACK               = new SC_OUT(Tcontrol_t        )   * [_param->_nb_spr_write];
273  if (_param->_have_port_ooo_engine_id == true) 
274   in_SPR_WRITE_OOO_ENGINE_ID     = new SC_IN (Tcontext_t        )   * [_param->_nb_spr_write];
275
276  out_SPR_WRITE_REGISTERFILE_VAL  = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
277   in_SPR_WRITE_REGISTERFILE_ACK  = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
278
279  out_SPR_WRITE_STATUS_VAL        = new SC_OUT(Tcontrol_t        )  ** [_param->_nb_ooo_engine];
280   in_SPR_WRITE_STATUS_ACK        = new SC_IN (Tcontrol_t        )  ** [_param->_nb_ooo_engine];
281
282   for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
283     {
284       out_SPR_WRITE_REGISTERFILE_VAL  [i] = new SC_OUT(Tcontrol_t        )  * [_param->_nb_spr_write];
285        in_SPR_WRITE_REGISTERFILE_ACK  [i] = new SC_IN (Tcontrol_t        )  * [_param->_nb_spr_write];
286
287       out_SPR_WRITE_STATUS_VAL        [i] = new SC_OUT(Tcontrol_t        )  * [_param->_nb_spr_write];
288        in_SPR_WRITE_STATUS_ACK        [i] = new SC_IN (Tcontrol_t        )  * [_param->_nb_spr_write];
289     }
290
291   for (uint32_t j=0; j<_param->_nb_spr_write; j++)
292     {
293       Interface_fifo * interface = _interfaces->set_interface("spr_write_"+toString(j)
294#ifdef POSITION
295                                                          ,IN
296                                                          ,NORTH,
297                                                          "Interface to write special register"
298#endif
299                                                          );
300     
301        in_SPR_WRITE_VAL           [j] = interface->set_signal_valack_in  (VAL);
302       out_SPR_WRITE_ACK           [j] = interface->set_signal_valack_out (ACK);
303       if (_param->_have_port_ooo_engine_id == true)
304        in_SPR_WRITE_OOO_ENGINE_ID [j] = interface->set_signal_in <Tcontext_t     > ("ooo_engine_id", _param->_size_ooo_engine_id);
305
306       for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
307         {
308           {
309             Interface_fifo * interface = _interfaces->set_interface("spr_write_registerfile_"+toString(i)+"_"+toString(j)
310#ifdef POSITION
311                                                                ,IN
312                                                                ,NORTH,
313                                                                "Interface to write special register - from/to register file"
314#endif
315                                                                );
316             
317             out_SPR_WRITE_REGISTERFILE_VAL  [i][j] = interface->set_signal_valack_out (VAL);
318              in_SPR_WRITE_REGISTERFILE_ACK  [i][j] = interface->set_signal_valack_in  (ACK);
319           }
320           {
321             Interface_fifo * interface = _interfaces->set_interface("spr_write_status_"+toString(i)+"_"+toString(j)
322#ifdef POSITION
323                                                                ,IN
324                                                                ,NORTH,
325                                                                "Interface to write special register - from/to status"
326#endif
327                                                                );
328
329
330             out_SPR_WRITE_STATUS_VAL        [i][j] = interface->set_signal_valack_out (VAL);
331              in_SPR_WRITE_STATUS_ACK        [i][j] = interface->set_signal_valack_in  (ACK);
332           }
333         }
334     }
335
336   // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
337    in_INSERT_ROB_VAL                  = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
338   out_INSERT_ROB_ACK                  = new SC_OUT(Tcontrol_t) ** [_param->_nb_ooo_engine];
339    in_INSERT_ROB_RD_USE               = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
340    in_INSERT_ROB_RE_USE               = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
341   out_INSERT_ROB_GPR_STATUS_VAL       = new SC_OUT(Tcontrol_t) ** [_param->_nb_ooo_engine];
342    in_INSERT_ROB_GPR_STATUS_ACK       = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
343   out_INSERT_ROB_SPR_STATUS_VAL       = new SC_OUT(Tcontrol_t) ** [_param->_nb_ooo_engine];
344    in_INSERT_ROB_SPR_STATUS_ACK       = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
345
346    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
347      {
348        uint32_t x=_param->_nb_inst_insert_rob [i];
349
350        in_INSERT_ROB_VAL                  [i] = new SC_IN (Tcontrol_t) * [x];
351       out_INSERT_ROB_ACK                  [i] = new SC_OUT(Tcontrol_t) * [x];
352        in_INSERT_ROB_RD_USE               [i] = new SC_IN (Tcontrol_t) * [x];
353        in_INSERT_ROB_RE_USE               [i] = new SC_IN (Tcontrol_t) * [x];
354       out_INSERT_ROB_GPR_STATUS_VAL       [i] = new SC_OUT(Tcontrol_t) * [x];
355        in_INSERT_ROB_GPR_STATUS_ACK       [i] = new SC_IN (Tcontrol_t) * [x];
356       out_INSERT_ROB_SPR_STATUS_VAL       [i] = new SC_OUT(Tcontrol_t) * [x];
357        in_INSERT_ROB_SPR_STATUS_ACK       [i] = new SC_IN (Tcontrol_t) * [x];
358
359        for (uint32_t j=0; j<x; j++)
360          {
361            {
362              Interface_fifo * interface = _interfaces->set_interface("insert_rob_"+toString(i)+"_"+toString(j)
363#ifdef POSITION
364                                                                      ,IN
365                                                                      ,WEST
366                                                                      ,"Interface to update status (insert)"
367#endif
368                                                                      );
369
370               in_INSERT_ROB_VAL                  [i][j] = interface->set_signal_valack_in (VAL);
371              out_INSERT_ROB_ACK                  [i][j] = interface->set_signal_valack_out(ACK);
372               in_INSERT_ROB_RD_USE               [i][j] = interface->set_signal_in <Tcontrol_t> ("rd_use", 1);
373               in_INSERT_ROB_RE_USE               [i][j] = interface->set_signal_in <Tcontrol_t> ("re_use", 1);
374            }
375            {
376              Interface_fifo * interface = _interfaces->set_interface("insert_rob_gpr_status_"+toString(i)+"_"+toString(j)
377#ifdef POSITION
378                                                                      ,IN
379                                                                      ,EAST
380                                                                      ,"Interface to update status (insert)"
381#endif
382                                                                      );
383
384              out_INSERT_ROB_GPR_STATUS_VAL       [i][j] = interface->set_signal_valack_out(VAL);
385               in_INSERT_ROB_GPR_STATUS_ACK       [i][j] = interface->set_signal_valack_in (ACK);
386            }
387            {
388              Interface_fifo * interface = _interfaces->set_interface("insert_rob_spr_status_"+toString(i)+"_"+toString(j)
389#ifdef POSITION
390                                                                      ,IN
391                                                                      ,EAST
392                                                                      ,"Interface to update status (insert)"
393#endif
394                                                                      );
395
396              out_INSERT_ROB_SPR_STATUS_VAL       [i][j] = interface->set_signal_valack_out(VAL);
397               in_INSERT_ROB_SPR_STATUS_ACK       [i][j] = interface->set_signal_valack_in (ACK);
398            }
399          }
400      }
401
402//     // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
403//     in_RETIRE_ROB_VAL                      = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
404//    out_RETIRE_ROB_ACK                      = new SC_OUT(Tcontrol_t) ** [_param->_nb_ooo_engine];
405//     in_RETIRE_ROB_RD_OLD_USE               = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
406//     in_RETIRE_ROB_RD_NEW_USE               = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
407//     in_RETIRE_ROB_RE_OLD_USE               = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
408//     in_RETIRE_ROB_RE_NEW_USE               = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
409//    out_RETIRE_ROB_GPR_STATUS_OLD_VAL       = new SC_OUT(Tcontrol_t) ** [_param->_nb_ooo_engine];
410//    out_RETIRE_ROB_GPR_STATUS_NEW_VAL       = new SC_OUT(Tcontrol_t) ** [_param->_nb_ooo_engine];
411//     in_RETIRE_ROB_GPR_STATUS_OLD_ACK       = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
412//     in_RETIRE_ROB_GPR_STATUS_NEW_ACK       = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
413//    out_RETIRE_ROB_SPR_STATUS_OLD_VAL       = new SC_OUT(Tcontrol_t) ** [_param->_nb_ooo_engine];
414//    out_RETIRE_ROB_SPR_STATUS_NEW_VAL       = new SC_OUT(Tcontrol_t) ** [_param->_nb_ooo_engine];
415//     in_RETIRE_ROB_SPR_STATUS_OLD_ACK       = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
416//     in_RETIRE_ROB_SPR_STATUS_NEW_ACK       = new SC_IN (Tcontrol_t) ** [_param->_nb_ooo_engine];
417
418//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
419//       {
420//      uint32_t x=_param->_nb_inst_retire_rob [i];
421
422//       in_RETIRE_ROB_VAL                      [i] = new SC_IN (Tcontrol_t) * [x];
423//      out_RETIRE_ROB_ACK                      [i] = new SC_OUT(Tcontrol_t) * [x];
424//       in_RETIRE_ROB_RD_OLD_USE               [i] = new SC_IN (Tcontrol_t) * [x];
425//       in_RETIRE_ROB_RD_NEW_USE               [i] = new SC_IN (Tcontrol_t) * [x];
426//       in_RETIRE_ROB_RE_OLD_USE               [i] = new SC_IN (Tcontrol_t) * [x];
427//       in_RETIRE_ROB_RE_NEW_USE               [i] = new SC_IN (Tcontrol_t) * [x];
428//      out_RETIRE_ROB_GPR_STATUS_OLD_VAL       [i] = new SC_OUT(Tcontrol_t) * [x];
429//      out_RETIRE_ROB_GPR_STATUS_NEW_VAL       [i] = new SC_OUT(Tcontrol_t) * [x];
430//       in_RETIRE_ROB_GPR_STATUS_OLD_ACK       [i] = new SC_IN (Tcontrol_t) * [x];
431//       in_RETIRE_ROB_GPR_STATUS_NEW_ACK       [i] = new SC_IN (Tcontrol_t) * [x];
432//      out_RETIRE_ROB_SPR_STATUS_OLD_VAL       [i] = new SC_OUT(Tcontrol_t) * [x];
433//      out_RETIRE_ROB_SPR_STATUS_NEW_VAL       [i] = new SC_OUT(Tcontrol_t) * [x];
434//       in_RETIRE_ROB_SPR_STATUS_OLD_ACK       [i] = new SC_IN (Tcontrol_t) * [x];
435//       in_RETIRE_ROB_SPR_STATUS_NEW_ACK       [i] = new SC_IN (Tcontrol_t) * [x];
436   
437//      for (uint32_t j=0; j<x; j++)
438//        {
439//          {
440//            Interface_fifo * interface = _interfaces->set_interface("retire_rob_"+toString(i)+"_"+toString(j)
441// #ifdef POSITION
442//                                                                    ,IN
443//                                                                    ,WEST
444//                                                                    ,"Interface to update status (retire)"
445// #endif
446//                                                                    );
447
448//             in_RETIRE_ROB_VAL                      [i][j] = interface->set_signal_valack_in (VAL);
449//            out_RETIRE_ROB_ACK                      [i][j] = interface->set_signal_valack_out(ACK);
450//             in_RETIRE_ROB_RD_OLD_USE               [i][j] = interface->set_signal_in <Tcontrol_t> ("rd_old_use", 1);
451//             in_RETIRE_ROB_RD_NEW_USE               [i][j] = interface->set_signal_in <Tcontrol_t> ("rd_new_use", 1);
452//             in_RETIRE_ROB_RE_OLD_USE               [i][j] = interface->set_signal_in <Tcontrol_t> ("re_old_use", 1);
453//             in_RETIRE_ROB_RE_NEW_USE               [i][j] = interface->set_signal_in <Tcontrol_t> ("re_new_use", 1);
454//          }
455//          {
456//            Interface_fifo * interface = _interfaces->set_interface("retire_rob_gpr_status_old_"+toString(i)+"_"+toString(j)
457// #ifdef POSITION
458//                                                                    ,IN
459//                                                                    ,EAST
460//                                                                    ,"Interface to update status (retire)"
461// #endif
462//                                                                    );
463
464//            out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j] = interface->set_signal_valack_out(VAL);
465//             in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j] = interface->set_signal_valack_in (ACK);
466//          }
467//          {
468//            Interface_fifo * interface = _interfaces->set_interface("retire_rob_gpr_status_new_"+toString(i)+"_"+toString(j)
469// #ifdef POSITION
470//                                                                    ,IN
471//                                                                    ,EAST
472//                                                                    ,"Interface to update status (retire)"
473// #endif
474//                                                                    );
475
476//            out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j] = interface->set_signal_valack_out(VAL);
477//             in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j] = interface->set_signal_valack_in (ACK);
478//          }
479//          {
480//            Interface_fifo * interface = _interfaces->set_interface("retire_rob_spr_status_old_"+toString(i)+"_"+toString(j)
481// #ifdef POSITION
482//                                                                    ,IN
483//                                                                    ,EAST
484//                                                                    ,"Interface to update status (retire)"
485// #endif
486//                                                                    );
487
488//            out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j] = interface->set_signal_valack_out(VAL);
489//             in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j] = interface->set_signal_valack_in (ACK);
490//          }
491//          {
492//            Interface_fifo * interface = _interfaces->set_interface("retire_rob_spr_status_new_"+toString(i)+"_"+toString(j)
493// #ifdef POSITION
494//                                                                    ,IN
495//                                                                    ,EAST
496//                                                                    ,"Interface to update status (retire)"
497// #endif
498//                                                                    );
499
500//            out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j] = interface->set_signal_valack_out(VAL);
501//             in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j] = interface->set_signal_valack_in (ACK);
502//          }
503//        }
504//       }
505
506    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
507
508#ifdef POSITION
509    if (usage_is_set(_usage,USE_POSITION))
510      _component->generate_file();
511#endif
512
513    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
514  };
515
516}; // end namespace register_unit_glue
517}; // end namespace register_unit
518}; // end namespace execute_loop
519}; // end namespace multi_execute_loop
520}; // end namespace core
521
522}; // end namespace behavioural
523}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.