source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.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: 21.0 KB
Line 
1/*
2 * $Id: Register_unit_Glue.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#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.