source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/src/OOO_Engine_Glue_deallocation.cpp

Last change on this file was 137, checked in by rosiere, 14 years ago

Various modif (add test, and vhdl)

  • Property svn:keywords set to Id
File size: 18.0 KB
Line 
1/*
2 * $Id: OOO_Engine_Glue_deallocation.cpp 137 2010-02-16 12:35:48Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/OOO_Engine_Glue/include/OOO_Engine_Glue.h"
9#include "Behavioural/include/Allocation.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_ooo_engine {
15namespace ooo_engine {
16namespace ooo_engine_glue {
17
18
19#undef  FUNCTION
20#define FUNCTION "OOO_Engine_Glue::deallocation"
21  void OOO_Engine_Glue::deallocation (void)
22  {
23    log_begin(OOO_Engine_Glue,FUNCTION);
24
25    if (usage_is_set(_usage,USE_SYSTEMC))
26      {
27        delete    in_CLOCK ;
28        delete    in_NRESET;
29
30        DELETE2_SIGNAL( in_RENAME_FRONT_END_ID                          ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_front_end_id    );
31        DELETE2_SIGNAL(out_RENAME_RENAME_UNIT_FRONT_END_ID              ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_front_end_id    );
32
33//         DELETE1_SIGNAL(out_INSERT_VAL                                   ,_param->_sum_inst_insert,1                             );
34//         DELETE1_SIGNAL( in_INSERT_ACK                                   ,_param->_sum_inst_insert,1                             );
35//         DELETE1_SIGNAL(out_INSERT_RD_USE                                ,_param->_sum_inst_insert,1                             );
36//         DELETE1_SIGNAL(out_INSERT_RD_NUM_REG                            ,_param->_sum_inst_insert,_param->_size_general_register);
37//         DELETE1_SIGNAL(out_INSERT_RE_USE                                ,_param->_sum_inst_insert,1                             );
38//         DELETE1_SIGNAL(out_INSERT_RE_NUM_REG                            ,_param->_sum_inst_insert,_param->_size_general_register);
39
40        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_VAL                       ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
41        DELETE2_SIGNAL(out_INSERT_RENAME_UNIT_ACK                       ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
42        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_FRONT_END_ID              ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_front_end_id    );
43        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_CONTEXT_ID                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_context_id      );
44        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_TYPE                      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_type            );
45        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_OPERATION                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_operation       );
46        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_NO_EXECUTE                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
47        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_HAS_IMMEDIAT              ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
48        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_IMMEDIAT                  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_data    );
49        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_STORE_QUEUE_PTR_WRITE     ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_store_queue_ptr );
50        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_STORE_QUEUE_PTR_READ      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_store_queue_ptr );
51        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_STORE_QUEUE_EMPTY         ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
52        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_LOAD_QUEUE_PTR_WRITE      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_load_queue_ptr  );
53        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_READ_RA                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
54        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_NUM_REG_RA_PHY            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
55        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_READ_RB                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
56        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_NUM_REG_RB_PHY            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
57        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_READ_RC                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
58        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_NUM_REG_RC_PHY            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_special_register);
59        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_WRITE_RD                  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
60        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_NUM_REG_RD_PHY_OLD        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
61        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_NUM_REG_RD_PHY_NEW        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
62        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_WRITE_RE                  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
63        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_NUM_REG_RE_PHY_OLD        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_special_register);
64        DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_NUM_REG_RE_PHY_NEW        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_special_register);
65
66        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_VAL                       ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
67        DELETE2_SIGNAL( in_INSERT_COMMIT_UNIT_ACK                       ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
68        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_FRONT_END_ID              ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_front_end_id    );
69        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_CONTEXT_ID                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_context_id      );
70//      DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_RENAME_UNIT_ID            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_rename_unit_id  );
71        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_TYPE                      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_type            );
72        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_OPERATION                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_operation       );
73        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NO_EXECUTE                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1);
74        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_STORE_QUEUE_PTR_WRITE     ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_store_queue_ptr );
75        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_LOAD_QUEUE_PTR_WRITE      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_load_queue_ptr  );
76#ifdef DEBUG
77        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_READ_RA                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
78        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RA_PHY            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
79#endif
80        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_READ_RB                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
81#ifdef DEBUG
82        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RB_PHY            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
83        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_READ_RC                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
84        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RC_PHY            ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_special_register);
85#endif
86        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_WRITE_RD                  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
87        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RD_PHY_OLD        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
88        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RD_PHY_NEW        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
89        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_WRITE_RE                  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
90        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RE_PHY_OLD        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_special_register);
91        DELETE2_SIGNAL(out_INSERT_COMMIT_UNIT_NUM_REG_RE_PHY_NEW        ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_special_register);
92
93        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_VAL                       ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
94        DELETE2_SIGNAL( in_INSERT_ISSUE_QUEUE_ACK                       ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
95        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_FRONT_END_ID              ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_front_end_id    );
96        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_CONTEXT_ID                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_context_id      );
97        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_OPERATION                 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_operation       );
98        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_TYPE                      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_type            );
99        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_STORE_QUEUE_PTR_WRITE     ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_store_queue_ptr );
100        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_STORE_QUEUE_PTR_READ      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_store_queue_ptr );
101        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_STORE_QUEUE_EMPTY         ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1);
102        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_LOAD_QUEUE_PTR_WRITE      ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_load_queue_ptr  );
103        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_HAS_IMMEDIAT              ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
104        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_IMMEDIAT                  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_data    );
105        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_READ_RA                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
106        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_NUM_REG_RA                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
107        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_READ_RB                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
108        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_NUM_REG_RB                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
109        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_READ_RC                   ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
110        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_NUM_REG_RC                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_special_register);
111        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_WRITE_RD                  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
112        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_NUM_REG_RD                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register);
113        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_WRITE_RE                  ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1                             );
114        DELETE2_SIGNAL(out_INSERT_ISSUE_QUEUE_NUM_REG_RE                ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_special_register);
115
116//         DELETE1_SIGNAL(out_RETIRE_VAL                                   ,_param->_sum_inst_retire,1                             );
117//         DELETE1_SIGNAL( in_RETIRE_ACK                                   ,_param->_sum_inst_retire,1                             );
118//         DELETE1_SIGNAL(out_RETIRE_RD_OLD_USE                            ,_param->_sum_inst_retire,1                             );
119//         DELETE1_SIGNAL(out_RETIRE_RD_OLD_NUM_REG                        ,_param->_sum_inst_retire,_param->_size_general_register);
120//         DELETE1_SIGNAL(out_RETIRE_RD_NEW_USE                            ,_param->_sum_inst_retire,1                             );
121//         DELETE1_SIGNAL(out_RETIRE_RD_NEW_NUM_REG                        ,_param->_sum_inst_retire,_param->_size_general_register);
122//         DELETE1_SIGNAL(out_RETIRE_RE_OLD_USE                            ,_param->_sum_inst_retire,1                             );
123//         DELETE1_SIGNAL(out_RETIRE_RE_OLD_NUM_REG                        ,_param->_sum_inst_retire,_param->_size_special_register);
124//         DELETE1_SIGNAL(out_RETIRE_RE_NEW_USE                            ,_param->_sum_inst_retire,1                             );
125//         DELETE1_SIGNAL(out_RETIRE_RE_NEW_NUM_REG                        ,_param->_sum_inst_retire,_param->_size_special_register);
126
127//         DELETE2_SIGNAL(out_RETIRE_RENAME_UNIT_VAL                       ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1                             );
128//         DELETE2_SIGNAL( in_RETIRE_RENAME_UNIT_ACK                       ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1                             );
129//         DELETE2_SIGNAL(out_RETIRE_RENAME_UNIT_FRONT_END_ID              ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_front_end_id    );
130//         DELETE2_SIGNAL(out_RETIRE_RENAME_UNIT_WRITE_RD                  ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1                             );
131//         DELETE2_SIGNAL(out_RETIRE_RENAME_UNIT_NUM_REG_RD_PHY_OLD        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_general_register);
132//         DELETE2_SIGNAL(out_RETIRE_RENAME_UNIT_NUM_REG_RD_PHY_NEW        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_general_register);
133//         DELETE2_SIGNAL(out_RETIRE_RENAME_UNIT_WRITE_RE                  ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1                             );
134//         DELETE2_SIGNAL(out_RETIRE_RENAME_UNIT_NUM_REG_RE_PHY_OLD        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_special_register);
135//         DELETE2_SIGNAL(out_RETIRE_RENAME_UNIT_NUM_REG_RE_PHY_NEW        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_special_register);
136//         DELETE2_SIGNAL(out_RETIRE_RENAME_UNIT_EVENT_STATE               ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_event_state     );
137
138//         DELETE2_SIGNAL( in_RETIRE_COMMIT_UNIT_VAL                       ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1                             );
139//         DELETE2_SIGNAL(out_RETIRE_COMMIT_UNIT_ACK                       ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1                             );
140//         DELETE2_SIGNAL( in_RETIRE_COMMIT_UNIT_FRONT_END_ID              ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_front_end_id    );
141//         DELETE2_SIGNAL( in_RETIRE_COMMIT_UNIT_WRITE_RD                  ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1                             );
142//         DELETE2_SIGNAL( in_RETIRE_COMMIT_UNIT_NUM_REG_RD_PHY_OLD        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_general_register);
143//         DELETE2_SIGNAL( in_RETIRE_COMMIT_UNIT_NUM_REG_RD_PHY_NEW        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_general_register);
144//         DELETE2_SIGNAL( in_RETIRE_COMMIT_UNIT_WRITE_RE                  ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],1                             );
145//         DELETE2_SIGNAL( in_RETIRE_COMMIT_UNIT_NUM_REG_RE_PHY_OLD        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_special_register);
146//         DELETE2_SIGNAL( in_RETIRE_COMMIT_UNIT_NUM_REG_RE_PHY_NEW        ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_special_register);
147//         DELETE2_SIGNAL( in_RETIRE_COMMIT_UNIT_EVENT_STATE               ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1],_param->_size_event_state     );
148
149        DELETE2_SIGNAL(out_SPR_SR_IEE                                   ,_param->_nb_front_end,_param->_nb_context[it1],1                             );
150        DELETE2_SIGNAL(out_SPR_SR_EPH                                   ,_param->_nb_front_end,_param->_nb_context[it1],1                             );
151        DELETE2_SIGNAL(out_SPR_RENAME_UNIT_SR                           ,_param->_nb_front_end,_param->_nb_context[it1],_param->_size_spr             );
152        DELETE2_SIGNAL(out_SPR_COMMIT_UNIT_SR_OVE                       ,_param->_nb_front_end,_param->_nb_context[it1],1                             );
153        DELETE2_SIGNAL( in_SPR_SPECIAL_REGISTER_UNIT_SR                 ,_param->_nb_front_end,_param->_nb_context[it1],_param->_size_spr             );
154      }
155
156    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
157
158    delete _component;
159
160    log_end(OOO_Engine_Glue,FUNCTION);
161  };
162
163}; // end namespace ooo_engine_glue
164}; // end namespace ooo_engine
165}; // end namespace multi_ooo_engine
166}; // end namespace core
167
168}; // end namespace behavioural
169}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.