source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp @ 123

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

1) Fix performance
2) add auto generation to SPECINT2000
3) add reset in genMoore and genMealy

  • Property svn:keywords set to Id
File size: 21.0 KB
Line 
1/*
2 * $Id: Register_unit_Glue.cpp 123 2009-06-08 20:43:30Z 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#undef  FUNCTION
20#define FUNCTION "Register_unit_Glue::Register_unit_Glue"
21  Register_unit_Glue::Register_unit_Glue
22  (
23#ifdef SYSTEMC
24   sc_module_name name,
25#else
26   std::string name,
27#endif
28#ifdef STATISTICS
29   morpheo::behavioural::Parameters_Statistics * param_statistics,
30#endif
31   morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Parameters * param,
32   morpheo::behavioural::Tusage_t usage
33   ):
34    _name              (name)
35    ,_param            (param)
36    ,_usage            (usage)
37  {
38    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
39
40// #if DEBUG_Register_unit_Glue == true
41//     log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
42
43//     std::cout << *param << std::endl;
44// #endif   
45
46    log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation");
47    allocation ();
48
49#ifdef STATISTICS
50    if (usage_is_set(_usage,USE_STATISTICS))
51      {
52        log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation of statistics");
53       
54        // Allocation of statistics
55        statistics_declaration(param_statistics);
56      }
57#endif
58
59#ifdef VHDL
60    if (usage_is_set(_usage,USE_VHDL))
61      {
62        // generate the vhdl
63        log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate the vhdl");
64       
65        vhdl();
66      }
67#endif
68
69#ifdef SYSTEMC
70    if (usage_is_set(_usage,USE_SYSTEMC))
71      {
72    // Constant
73
74    PORT_WRITE(out_CONST_0 ,0);
75    PORT_WRITE(out_CONST_1 ,1);
76
77    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - transition");
78
79    SC_METHOD (transition);
80    dont_initialize ();
81    sensitive_pos << *(in_CLOCK);
82
83#ifdef SYSTEMCASS_SPECIFIC
84    // List dependency information
85#endif   
86
87    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_read");
88
89    SC_METHOD (genMealy_gpr_read);
90    dont_initialize ();
91//     sensitive_neg << *(in_CLOCK);
92    for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
93      {
94        if (_param->_have_port_ooo_engine_id == true)
95          sensitive << *(in_GPR_READ_OOO_ENGINE_ID [j]);
96
97        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
98          sensitive << *(in_GPR_READ_REGISTERFILE_ACK  [i][j])
99                    << *(in_GPR_READ_REGISTERFILE_DATA [i][j])
100                    << *(in_GPR_READ_STATUS_ACK        [i][j])
101                    << *(in_GPR_READ_STATUS_DATA_VAL   [i][j]);
102      }
103
104#ifdef SYSTEMCASS_SPECIFIC
105    // List dependency information
106    for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
107      {
108        if (_param->_have_port_ooo_engine_id == true)
109          {
110            (*(out_GPR_READ_ACK                  [j])) (*( in_GPR_READ_OOO_ENGINE_ID        [j]));
111            (*(out_GPR_READ_DATA_VAL             [j])) (*( in_GPR_READ_OOO_ENGINE_ID        [j]));
112            (*(out_GPR_READ_DATA                 [j])) (*( in_GPR_READ_OOO_ENGINE_ID        [j]));
113          }
114        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
115          {
116            (*(out_GPR_READ_ACK                  [j])) (*( in_GPR_READ_REGISTERFILE_ACK  [i][j]));
117            (*(out_GPR_READ_ACK                  [j])) (*( in_GPR_READ_STATUS_ACK        [i][j]));
118            (*(out_GPR_READ_DATA                 [j])) (*( in_GPR_READ_REGISTERFILE_DATA [i][j]));
119            (*(out_GPR_READ_DATA_VAL             [j])) (*( in_GPR_READ_STATUS_DATA_VAL   [i][j]));     
120          }
121      }
122#endif   
123
124    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_read_status");
125
126    SC_METHOD (genMealy_gpr_read_status);
127    dont_initialize ();
128//     sensitive_neg << *(in_CLOCK);
129    for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
130      {
131        sensitive << *(in_GPR_READ_VAL           [j]);
132        if (_param->_have_port_ooo_engine_id == true)
133          sensitive << *(in_GPR_READ_OOO_ENGINE_ID [j]);
134
135        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
136          sensitive << *(in_GPR_READ_REGISTERFILE_ACK  [i][j]);
137      }
138
139#ifdef SYSTEMCASS_SPECIFIC
140    // List dependency information
141    for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
142      {
143        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
144          {
145            (*(out_GPR_READ_STATUS_VAL        [i][j])) (*( in_GPR_READ_VAL                  [j]));
146            (*(out_GPR_READ_STATUS_VAL        [i][j])) (*( in_GPR_READ_REGISTERFILE_ACK  [i][j]));
147            if (_param->_have_port_ooo_engine_id == true)
148            (*(out_GPR_READ_STATUS_VAL        [i][j])) (*( in_GPR_READ_OOO_ENGINE_ID        [j]));
149          }
150      }
151#endif   
152
153    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_read_registerfile");
154
155    SC_METHOD (genMealy_gpr_read_registerfile);
156    dont_initialize ();
157//     sensitive_neg << *(in_CLOCK);
158    for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
159      {
160        sensitive << *(in_GPR_READ_VAL           [j]);
161        if (_param->_have_port_ooo_engine_id == true)
162          sensitive << *(in_GPR_READ_OOO_ENGINE_ID [j]);
163
164        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
165          sensitive << *(in_GPR_READ_STATUS_ACK        [i][j]);
166      }
167
168#ifdef SYSTEMCASS_SPECIFIC
169    // List dependency information
170    for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
171      {
172        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
173          {
174            (*(out_GPR_READ_REGISTERFILE_VAL  [i][j])) (*( in_GPR_READ_VAL                  [j]));
175            (*(out_GPR_READ_REGISTERFILE_VAL  [i][j])) (*( in_GPR_READ_STATUS_ACK        [i][j]));
176            if (_param->_have_port_ooo_engine_id == true)
177            (*(out_GPR_READ_REGISTERFILE_VAL  [i][j])) (*( in_GPR_READ_OOO_ENGINE_ID        [j]));
178          }
179      }
180#endif   
181
182    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_write");
183
184    SC_METHOD (genMealy_gpr_write);
185    dont_initialize ();
186//     sensitive_neg << *(in_CLOCK);
187    for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
188      {
189        if (_param->_have_port_ooo_engine_id == true)
190          sensitive << *(in_GPR_WRITE_OOO_ENGINE_ID [j]);
191
192        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
193          sensitive << *(in_GPR_WRITE_REGISTERFILE_ACK  [i][j])
194                    << *(in_GPR_WRITE_STATUS_ACK        [i][j]);
195      }
196
197#ifdef SYSTEMCASS_SPECIFIC
198    // List dependency information
199    for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
200      {
201        if (_param->_have_port_ooo_engine_id == true)
202        (*(out_GPR_WRITE_ACK                  [j])) (*( in_GPR_WRITE_OOO_ENGINE_ID        [j]));
203                   
204        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
205          {
206            (*(out_GPR_WRITE_ACK                  [j])) (*( in_GPR_WRITE_REGISTERFILE_ACK  [i][j]));
207            (*(out_GPR_WRITE_ACK                  [j])) (*( in_GPR_WRITE_STATUS_ACK        [i][j]));
208          }
209      }
210#endif   
211
212    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_write_status");
213
214    SC_METHOD (genMealy_gpr_write_status);
215    dont_initialize ();
216//     sensitive_neg << *(in_CLOCK);
217    for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
218      {
219        sensitive << *(in_GPR_WRITE_VAL           [j]);
220        if (_param->_have_port_ooo_engine_id == true)
221          sensitive << *(in_GPR_WRITE_OOO_ENGINE_ID [j]);
222
223        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
224          sensitive << *(in_GPR_WRITE_REGISTERFILE_ACK  [i][j]);
225      }
226
227#ifdef SYSTEMCASS_SPECIFIC
228    // List dependency information
229    for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
230      {
231        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
232          {
233            (*(out_GPR_WRITE_STATUS_VAL        [i][j])) (*( in_GPR_WRITE_VAL                  [j]));
234            (*(out_GPR_WRITE_STATUS_VAL        [i][j])) (*( in_GPR_WRITE_REGISTERFILE_ACK  [i][j]));
235            if (_param->_have_port_ooo_engine_id == true)
236            (*(out_GPR_WRITE_STATUS_VAL        [i][j])) (*( in_GPR_WRITE_OOO_ENGINE_ID        [j]));
237          }
238      }
239#endif   
240
241    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_gpr_write_registerfile");
242
243    SC_METHOD (genMealy_gpr_write_registerfile);
244    dont_initialize ();
245//     sensitive_neg << *(in_CLOCK);
246    for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
247      {
248        sensitive << *(in_GPR_WRITE_VAL           [j]);
249        if (_param->_have_port_ooo_engine_id == true)
250          sensitive << *(in_GPR_WRITE_OOO_ENGINE_ID [j]);
251
252        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
253          sensitive << *(in_GPR_WRITE_STATUS_ACK        [i][j]);
254      }
255
256#ifdef SYSTEMCASS_SPECIFIC
257    // List dependency information
258    for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
259      {
260        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
261          {
262            (*(out_GPR_WRITE_REGISTERFILE_VAL  [i][j])) (*( in_GPR_WRITE_VAL                  [j]));
263            (*(out_GPR_WRITE_REGISTERFILE_VAL  [i][j])) (*( in_GPR_WRITE_STATUS_ACK        [i][j]));
264            if (_param->_have_port_ooo_engine_id == true)
265            (*(out_GPR_WRITE_REGISTERFILE_VAL  [i][j])) (*( in_GPR_WRITE_OOO_ENGINE_ID        [j]));
266          }
267      }
268#endif   
269
270    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_read");
271
272    SC_METHOD (genMealy_spr_read);
273    dont_initialize ();
274//     sensitive_neg << *(in_CLOCK);
275    for (uint32_t j=0; j<_param->_nb_spr_read; j++)
276      {
277        if (_param->_have_port_ooo_engine_id == true)
278          sensitive << *(in_SPR_READ_OOO_ENGINE_ID [j]);
279
280        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
281          sensitive << *(in_SPR_READ_REGISTERFILE_ACK  [i][j])
282                    << *(in_SPR_READ_REGISTERFILE_DATA [i][j])
283                    << *(in_SPR_READ_STATUS_ACK        [i][j])
284                    << *(in_SPR_READ_STATUS_DATA_VAL   [i][j]);
285      }
286
287#ifdef SYSTEMCASS_SPECIFIC
288    // List dependency information
289    for (uint32_t j=0; j<_param->_nb_spr_read; j++)
290      {
291        if (_param->_have_port_ooo_engine_id == true)
292          {
293            (*(out_SPR_READ_ACK                  [j])) (*( in_SPR_READ_OOO_ENGINE_ID        [j]));
294            (*(out_SPR_READ_DATA_VAL             [j])) (*( in_SPR_READ_OOO_ENGINE_ID        [j]));
295            (*(out_SPR_READ_DATA                 [j])) (*( in_SPR_READ_OOO_ENGINE_ID        [j]));
296          }
297        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
298          {
299            (*(out_SPR_READ_ACK                  [j])) (*( in_SPR_READ_REGISTERFILE_ACK  [i][j]));
300            (*(out_SPR_READ_ACK                  [j])) (*( in_SPR_READ_STATUS_ACK        [i][j]));
301            (*(out_SPR_READ_DATA                 [j])) (*( in_SPR_READ_REGISTERFILE_DATA [i][j]));
302            (*(out_SPR_READ_DATA_VAL             [j])) (*( in_SPR_READ_STATUS_DATA_VAL   [i][j]));     
303          }
304      }
305#endif   
306
307    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_read_status");
308
309    SC_METHOD (genMealy_spr_read_status);
310    dont_initialize ();
311//     sensitive_neg << *(in_CLOCK);
312    for (uint32_t j=0; j<_param->_nb_spr_read; j++)
313      {
314        sensitive << *(in_SPR_READ_VAL           [j]);
315        if (_param->_have_port_ooo_engine_id == true)
316          sensitive << *(in_SPR_READ_OOO_ENGINE_ID [j]);
317
318        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
319          sensitive << *(in_SPR_READ_REGISTERFILE_ACK  [i][j]);
320      }
321
322#ifdef SYSTEMCASS_SPECIFIC
323    // List dependency information
324    for (uint32_t j=0; j<_param->_nb_spr_read; j++)
325      {
326        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
327          {
328            (*(out_SPR_READ_STATUS_VAL        [i][j])) (*( in_SPR_READ_VAL                  [j]));
329            (*(out_SPR_READ_STATUS_VAL        [i][j])) (*( in_SPR_READ_REGISTERFILE_ACK  [i][j]));
330            if (_param->_have_port_ooo_engine_id == true)
331            (*(out_SPR_READ_STATUS_VAL        [i][j])) (*( in_SPR_READ_OOO_ENGINE_ID        [j]));
332          }
333      }
334#endif   
335
336    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_read_registerfile");
337
338    SC_METHOD (genMealy_spr_read_registerfile);
339    dont_initialize ();
340//     sensitive_neg << *(in_CLOCK);
341    for (uint32_t j=0; j<_param->_nb_spr_read; j++)
342      {
343        sensitive << *(in_SPR_READ_VAL           [j]);
344        if (_param->_have_port_ooo_engine_id == true)
345          sensitive << *(in_SPR_READ_OOO_ENGINE_ID [j]);
346
347        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
348          sensitive << *(in_SPR_READ_STATUS_ACK        [i][j]);
349      }
350
351#ifdef SYSTEMCASS_SPECIFIC
352    // List dependency information
353    for (uint32_t j=0; j<_param->_nb_spr_read; j++)
354      {
355        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
356          {
357            (*(out_SPR_READ_REGISTERFILE_VAL  [i][j])) (*( in_SPR_READ_VAL                  [j]));
358            (*(out_SPR_READ_REGISTERFILE_VAL  [i][j])) (*( in_SPR_READ_STATUS_ACK        [i][j]));
359            if (_param->_have_port_ooo_engine_id == true)
360            (*(out_SPR_READ_REGISTERFILE_VAL  [i][j])) (*( in_SPR_READ_OOO_ENGINE_ID        [j]));
361          }
362      }
363#endif   
364
365    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_write");
366
367    SC_METHOD (genMealy_spr_write);
368    dont_initialize ();
369//     sensitive_neg << *(in_CLOCK);
370    for (uint32_t j=0; j<_param->_nb_spr_write; j++)
371      {
372        if (_param->_have_port_ooo_engine_id == true)
373          sensitive << *(in_SPR_WRITE_OOO_ENGINE_ID [j]);
374
375        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
376          sensitive << *(in_SPR_WRITE_REGISTERFILE_ACK  [i][j])
377                    << *(in_SPR_WRITE_STATUS_ACK        [i][j]);
378      }
379
380#ifdef SYSTEMCASS_SPECIFIC
381    // List dependency information
382    for (uint32_t j=0; j<_param->_nb_spr_write; j++)
383      {
384        if (_param->_have_port_ooo_engine_id == true)
385        (*(out_SPR_WRITE_ACK                  [j])) (*( in_SPR_WRITE_OOO_ENGINE_ID        [j]));
386                   
387        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
388          {
389            (*(out_SPR_WRITE_ACK                  [j])) (*( in_SPR_WRITE_REGISTERFILE_ACK  [i][j]));
390            (*(out_SPR_WRITE_ACK                  [j])) (*( in_SPR_WRITE_STATUS_ACK        [i][j]));
391          }
392      }
393#endif   
394
395    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_write_status");
396
397    SC_METHOD (genMealy_spr_write_status);
398    dont_initialize ();
399//     sensitive_neg << *(in_CLOCK);
400    for (uint32_t j=0; j<_param->_nb_spr_write; j++)
401      {
402        sensitive << *(in_SPR_WRITE_VAL           [j]);
403        if (_param->_have_port_ooo_engine_id == true)
404          sensitive << *(in_SPR_WRITE_OOO_ENGINE_ID [j]);
405
406        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
407          sensitive << *(in_SPR_WRITE_REGISTERFILE_ACK  [i][j]);
408      }
409
410#ifdef SYSTEMCASS_SPECIFIC
411    // List dependency information
412    for (uint32_t j=0; j<_param->_nb_spr_write; j++)
413      {
414        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
415          {
416            (*(out_SPR_WRITE_STATUS_VAL        [i][j])) (*( in_SPR_WRITE_VAL                  [j]));
417            (*(out_SPR_WRITE_STATUS_VAL        [i][j])) (*( in_SPR_WRITE_REGISTERFILE_ACK  [i][j]));
418            if (_param->_have_port_ooo_engine_id == true)
419            (*(out_SPR_WRITE_STATUS_VAL        [i][j])) (*( in_SPR_WRITE_OOO_ENGINE_ID        [j]));
420          }
421      }
422#endif   
423
424    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_spr_write_registerfile");
425
426    SC_METHOD (genMealy_spr_write_registerfile);
427    dont_initialize ();
428//     sensitive_neg << *(in_CLOCK);
429    for (uint32_t j=0; j<_param->_nb_spr_write; j++)
430      {
431        sensitive << *(in_SPR_WRITE_VAL           [j]);
432        if (_param->_have_port_ooo_engine_id == true)
433          sensitive << *(in_SPR_WRITE_OOO_ENGINE_ID [j]);
434
435        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
436          sensitive << *(in_SPR_WRITE_STATUS_ACK        [i][j]);
437      }
438
439#ifdef SYSTEMCASS_SPECIFIC
440    // List dependency information
441    for (uint32_t j=0; j<_param->_nb_spr_write; j++)
442      {
443        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
444          {
445            (*(out_SPR_WRITE_REGISTERFILE_VAL  [i][j])) (*( in_SPR_WRITE_VAL                  [j]));
446            (*(out_SPR_WRITE_REGISTERFILE_VAL  [i][j])) (*( in_SPR_WRITE_STATUS_ACK        [i][j]));
447            if (_param->_have_port_ooo_engine_id == true)
448            (*(out_SPR_WRITE_REGISTERFILE_VAL  [i][j])) (*( in_SPR_WRITE_OOO_ENGINE_ID        [j]));
449          }
450      }
451#endif   
452
453    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_insert");
454
455    SC_METHOD (genMealy_insert);
456    dont_initialize ();
457//     sensitive_neg << *(in_CLOCK);
458    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
459      {
460        uint32_t x=_param->_nb_inst_insert_rob [i];
461        for (uint32_t j=0; j<x; j++)
462          sensitive << *( in_INSERT_ROB_VAL            [i][j])
463                    << *( in_INSERT_ROB_RD_USE         [i][j]) 
464                    << *( in_INSERT_ROB_RE_USE         [i][j]) 
465                    << *( in_INSERT_ROB_GPR_STATUS_ACK [i][j])
466                    << *( in_INSERT_ROB_SPR_STATUS_ACK [i][j]);
467      }
468#ifdef SYSTEMCASS_SPECIFIC
469    // List dependency information
470    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
471      {
472        uint32_t x=_param->_nb_inst_insert_rob [i];
473        for (uint32_t j=0; j<x; j++)
474          {
475            (*(out_INSERT_ROB_ACK            [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
476            (*(out_INSERT_ROB_ACK            [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
477
478            (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL            [i][j]));
479            (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RD_USE         [i][j])); 
480            (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
481
482            (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_VAL            [i][j])); 
483            (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_RE_USE         [i][j]));
484            (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]))(*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
485          }
486      }
487#endif   
488
489//     log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - genMealy_retire");
490
491//     SC_METHOD (genMealy_retire);
492//     dont_initialize ();
493// //     sensitive_neg << *(in_CLOCK);
494//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
495//       {
496//      uint32_t x=_param->_nb_inst_retire_rob [i];
497//      for (uint32_t j=0; j<x; j++)
498//        sensitive << *( in_RETIRE_ROB_VAL                [i][j])
499//                  << *( in_RETIRE_ROB_RD_OLD_USE         [i][j])
500//                  << *( in_RETIRE_ROB_RD_NEW_USE         [i][j])
501//                  << *( in_RETIRE_ROB_RE_OLD_USE         [i][j])
502//                  << *( in_RETIRE_ROB_RE_NEW_USE         [i][j])
503//                  << *( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j])
504//                  << *( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j])
505//                  << *( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j])
506//                  << *( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]);
507//       }
508// #ifdef SYSTEMCASS_SPECIFIC
509//     // List dependency information
510//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
511//       {
512//      uint32_t x=_param->_nb_inst_retire_rob [i];
513//      for (uint32_t j=0; j<x; j++)
514//        {
515//          (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
516//          (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
517//          (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
518//          (*(out_RETIRE_ROB_ACK                [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
519
520//          (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
521//          (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_RD_OLD_USE         [i][j]));
522//          (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
523//          (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
524//          (*(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
525
526//          (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
527//          (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_RD_NEW_USE         [i][j]));
528//          (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
529//          (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
530//          (*(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
531
532//          (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
533//          (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_RE_OLD_USE         [i][j]));
534//          (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
535//          (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
536//          (*(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]));
537
538//          (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_VAL                [i][j]));
539//          (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_RE_NEW_USE         [i][j]));
540//          (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]));
541//          (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]));
542//          (*(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j]))(*( in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]));
543//        }
544//       }
545// #endif   
546      }
547#endif
548    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
549  };
550 
551#undef  FUNCTION
552#define FUNCTION "Register_unit_Glue::~Register_unit_Glue"
553  Register_unit_Glue::~Register_unit_Glue (void)
554  {
555    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
556
557#ifdef STATISTICS
558    if (usage_is_set(_usage,USE_STATISTICS))
559      {
560        log_printf(INFO,Register_unit_Glue,FUNCTION,"Generate Statistics file");
561       
562        delete _stat;
563      }
564#endif
565
566    log_printf(INFO,Register_unit_Glue,FUNCTION,"Deallocation");
567    deallocation ();
568
569    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
570  };
571
572}; // end namespace register_unit_glue
573}; // end namespace register_unit
574}; // end namespace execute_loop
575}; // end namespace multi_execute_loop
576}; // end namespace core
577
578}; // end namespace behavioural
579}; // end namespace morpheo             
580
581
582
Note: See TracBrowser for help on using the repository browser.