source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/src/Rename_unit_Glue_genMealy_insert_valack.cpp @ 115

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

1) Write queue with mealy
2) Network : fix bug
3) leak memory

  • Property svn:keywords set to Id
File size: 4.0 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id: Rename_unit_Glue_genMealy_insert_valack.cpp 115 2009-04-20 21:29:17Z rosiere $
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_unit_Glue/include/Rename_unit_Glue.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_ooo_engine {
15namespace ooo_engine {
16namespace rename_unit {
17namespace rename_unit_glue {
18
19
20#undef  FUNCTION
21#define FUNCTION "Rename_unit_Glue::genMealy_insert_valack"
22  void Rename_unit_Glue::genMealy_insert_valack (void)
23  {
24    log_begin(Rename_unit_Glue,FUNCTION);
25    log_function(Rename_unit_Glue,FUNCTION,_name.c_str());
26
27//     // Transaction must be in-order - made in rename_select
28//     Tcontrol_t previous_transaction = true;
29   
30    for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
31      {
32      //Tcontrol_t ACK                          = PORT_READ(in_INSERT_ACK                          [i]);
33        Tcontrol_t NO_EXECUTE                   = PORT_READ(in_INSERT_RENAME_SELECT_NO_EXECUTE     [i]);
34        Tcontrol_t RENAME_SELECT_VAL            = PORT_READ(in_INSERT_RENAME_SELECT_VAL            [i]);
35        Tcontrol_t REGISTER_TRANSLATION_ACK     = PORT_READ(in_INSERT_REGISTER_TRANSLATION_ACK     [i]);
36        Tcontrol_t LOAD_STORE_QUEUE_POINTER_ACK = PORT_READ(in_INSERT_LOAD_STORE_QUEUE_POINTER_ACK [i]);
37
38//      Tcontrol_t VAL                          = (
39//                                                 previous_transaction         and
40//                                                 RENAME_SELECT_VAL            and
41//                                                 REGISTER_TRANSLATION_ACK     and
42//                                                 LOAD_STORE_QUEUE_POINTER_ACK );
43        Tcontrol_t RENAME_SELECT_ACK            = (
44//                                                 previous_transaction         and
45//                                                 ACK                          and
46                                                   REGISTER_TRANSLATION_ACK     and
47                                                   LOAD_STORE_QUEUE_POINTER_ACK );
48        Tcontrol_t REGISTER_TRANSLATION_VAL     = (
49//                                                 previous_transaction         and
50//                                                 ACK                          and
51                                                   RENAME_SELECT_VAL            and
52                                                   LOAD_STORE_QUEUE_POINTER_ACK );
53        Tcontrol_t LOAD_STORE_QUEUE_POINTER_VAL = (
54//                                                 previous_transaction         and
55//                                                 ACK                          and
56                                                   RENAME_SELECT_VAL            and
57                                                   REGISTER_TRANSLATION_ACK     and
58                                                   not NO_EXECUTE               );
59
60        log_printf(TRACE,Rename_unit_Glue,FUNCTION,"  * insert [%d]",i);
61        log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * no_execute                   (r) : %d",NO_EXECUTE);
62        log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * rename_select_val            (r) : %d",RENAME_SELECT_VAL           );
63        log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * rename_select_ack            (w) : %d",RENAME_SELECT_ACK           );
64        log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * register_translation_val     (w) : %d",REGISTER_TRANSLATION_VAL    );
65        log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * register_translation_ack     (r) : %d",REGISTER_TRANSLATION_ACK    );
66        log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * load_store_queue_pointer_val (w) : %d",LOAD_STORE_QUEUE_POINTER_VAL);
67        log_printf(TRACE,Rename_unit_Glue,FUNCTION,"    * load_store_queue_pointer_ack (r) : %d",LOAD_STORE_QUEUE_POINTER_ACK);
68       
69        PORT_WRITE(out_INSERT_NO_EXECUTE                   [i], NO_EXECUTE                  );
70//      PORT_WRITE(out_INSERT_VAL                          [i], VAL                         );
71        PORT_WRITE(out_INSERT_RENAME_SELECT_ACK            [i], RENAME_SELECT_ACK           );
72        PORT_WRITE(out_INSERT_REGISTER_TRANSLATION_VAL     [i], REGISTER_TRANSLATION_VAL    );
73        PORT_WRITE(out_INSERT_LOAD_STORE_QUEUE_POINTER_VAL [i], LOAD_STORE_QUEUE_POINTER_VAL);
74
75//      previous_transaction = RENAME_SELECT_VAL and RENAME_SELECT_ACK;
76      }
77
78    log_end(Rename_unit_Glue,FUNCTION);
79  };
80
81}; // end namespace rename_unit_glue
82}; // end namespace rename_unit
83}; // end namespace ooo_engine
84}; // end namespace multi_ooo_engine
85}; // end namespace core
86
87}; // end namespace behavioural
88}; // end namespace morpheo             
89#endif
Note: See TracBrowser for help on using the repository browser.