source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_deallocation.cpp

Last change on this file was 139, checked in by rosiere, 14 years ago
  • Add test for all configuration
  • RAT : add rat scheme (depth_save)
  • Property svn:keywords set to Id
File size: 8.5 KB
Line 
1/*
2 * $Id: Decod_unit_deallocation.cpp 139 2010-07-30 14:47:27Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/include/Decod_unit.h"
9#include "Behavioural/include/Allocation.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_front_end {
15namespace front_end {
16namespace decod_unit {
17
18
19#undef  FUNCTION
20#define FUNCTION "Decod_unit::deallocation"
21  void Decod_unit::deallocation (void)
22  {
23    log_begin(Decod_unit,FUNCTION);
24
25    if (usage_is_set(_usage,USE_SYSTEMC))
26      {
27        delete    in_CLOCK ;
28        delete    in_NRESET;
29
30        DELETE2_SIGNAL( in_IFETCH_VAL                         ,_param->_nb_context,_param->_nb_inst_fetch[it1],1);
31        DELETE2_SIGNAL(out_IFETCH_ACK                         ,_param->_nb_context,_param->_nb_inst_fetch[it1],1);
32        DELETE2_SIGNAL( in_IFETCH_INSTRUCTION                 ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_instruction);
33        DELETE2_SIGNAL(in_IFETCH_CONTEXT_ID                   ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_context_id         );
34        DELETE2_SIGNAL(in_IFETCH_ADDRESS                      ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_instruction_address);
35//      DELETE2_SIGNAL(in_IFETCH_ADDRESS_NEXT                 ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_instruction_address);
36//      DELETE2_SIGNAL(in_IFETCH_INST_IFETCH_PTR              ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_inst_ifetch_ptr    );
37        DELETE2_SIGNAL(in_IFETCH_BRANCH_STATE                 ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_branch_state       );
38        DELETE2_SIGNAL(in_IFETCH_BRANCH_UPDATE_PREDICTION_ID  ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_depth              );
39        DELETE2_SIGNAL(in_IFETCH_EXCEPTION                    ,_param->_nb_context,_param->_nb_inst_fetch[it1],_param->_size_exception_ifetch   );
40       
41        DELETE1_SIGNAL(out_DECOD_VAL                          ,_param->_nb_inst_decod,1);
42        DELETE1_SIGNAL( in_DECOD_ACK                          ,_param->_nb_inst_decod,1);
43        DELETE1_SIGNAL(out_DECOD_CONTEXT_ID                   ,_param->_nb_inst_decod,_param->_size_context_id            );
44        DELETE1_SIGNAL(out_DECOD_DEPTH                        ,_param->_nb_inst_decod,_param->_size_depth                 );
45#ifdef STATISTICS
46        DELETE1_SIGNAL(out_DECOD_INSTRUCTION                  ,_param->_nb_inst_decod,32);
47#endif
48        DELETE1_SIGNAL(out_DECOD_TYPE                         ,_param->_nb_inst_decod,_param->_size_type                  );
49        DELETE1_SIGNAL(out_DECOD_OPERATION                    ,_param->_nb_inst_decod,_param->_size_operation             );
50        DELETE1_SIGNAL(out_DECOD_NO_EXECUTE                   ,_param->_nb_inst_decod,1                                   );
51//      DELETE1_SIGNAL(out_DECOD_HAVE_EVENT                   ,_param->_nb_inst_decod,1                                   );
52        DELETE1_SIGNAL(out_DECOD_LAST_EVENT                   ,_param->_nb_inst_decod,1                                   );
53        DELETE1_SIGNAL(out_DECOD_IS_DELAY_SLOT                ,_param->_nb_inst_decod,1                                   );
54        DELETE1_SIGNAL(out_DECOD_SAVE_RAT                     ,_param->_nb_inst_decod,1                                   );
55#ifdef DEBUG
56        DELETE1_SIGNAL(out_DECOD_ADDRESS                      ,_param->_nb_inst_decod,_param->_size_instruction_address   );
57#endif
58        DELETE1_SIGNAL(out_DECOD_ADDRESS_NEXT                 ,_param->_nb_inst_decod,_param->_size_instruction_address   );
59        DELETE1_SIGNAL(out_DECOD_HAS_IMMEDIAT                 ,_param->_nb_inst_decod,1                                   );
60        DELETE1_SIGNAL(out_DECOD_IMMEDIAT                     ,_param->_nb_inst_decod,_param->_size_general_data          );
61        DELETE1_SIGNAL(out_DECOD_READ_RA                      ,_param->_nb_inst_decod,1                                   );
62        DELETE1_SIGNAL(out_DECOD_NUM_REG_RA                   ,_param->_nb_inst_decod,_param->_size_general_register_logic);
63        DELETE1_SIGNAL(out_DECOD_READ_RB                      ,_param->_nb_inst_decod,1                                   );
64        DELETE1_SIGNAL(out_DECOD_NUM_REG_RB                   ,_param->_nb_inst_decod,_param->_size_general_register_logic);
65        DELETE1_SIGNAL(out_DECOD_READ_RC                      ,_param->_nb_inst_decod,1                                   );
66        DELETE1_SIGNAL(out_DECOD_NUM_REG_RC                   ,_param->_nb_inst_decod,_param->_size_special_register_logic);
67        DELETE1_SIGNAL(out_DECOD_WRITE_RD                     ,_param->_nb_inst_decod,1                                   );
68        DELETE1_SIGNAL(out_DECOD_NUM_REG_RD                   ,_param->_nb_inst_decod,_param->_size_general_register_logic);
69        DELETE1_SIGNAL(out_DECOD_WRITE_RE                     ,_param->_nb_inst_decod,1                                   );
70        DELETE1_SIGNAL(out_DECOD_NUM_REG_RE                   ,_param->_nb_inst_decod,_param->_size_special_register_logic);
71        DELETE1_SIGNAL(out_DECOD_EXCEPTION_USE                ,_param->_nb_inst_decod,_param->_size_exception_use         );
72        DELETE1_SIGNAL(out_DECOD_EXCEPTION                    ,_param->_nb_inst_decod,_param->_size_exception_decod       );
73       
74        DELETE1_SIGNAL(out_PREDICT_VAL                        ,_param->_nb_inst_decod,1);
75        DELETE1_SIGNAL( in_PREDICT_ACK                        ,_param->_nb_inst_decod,1);
76        DELETE1_SIGNAL(out_PREDICT_CONTEXT_ID                 ,_param->_nb_inst_decod,_param->_size_context_id      );
77        DELETE1_SIGNAL(out_PREDICT_MATCH_INST_IFETCH_PTR      ,_param->_nb_inst_decod,1                             );
78        DELETE1_SIGNAL(out_PREDICT_BRANCH_STATE               ,_param->_nb_inst_decod,_param->_size_branch_state    );
79        DELETE1_SIGNAL(out_PREDICT_BRANCH_UPDATE_PREDICTION_ID,_param->_nb_inst_decod,_param->_size_depth           );
80        DELETE1_SIGNAL(out_PREDICT_BRANCH_CONDITION           ,_param->_nb_inst_decod,_param->_size_branch_condition);
81//      DELETE1_SIGNAL(out_PREDICT_BRANCH_STACK_WRITE         ,_param->_nb_inst_decod,1                             );
82        DELETE1_SIGNAL(out_PREDICT_BRANCH_DIRECTION           ,_param->_nb_inst_decod,1                             );
83        DELETE1_SIGNAL(out_PREDICT_ADDRESS_SRC                ,_param->_nb_inst_decod,_param->_size_instruction_address);
84        DELETE1_SIGNAL(out_PREDICT_ADDRESS_DEST               ,_param->_nb_inst_decod,_param->_size_instruction_address);
85        DELETE1_SIGNAL( in_PREDICT_CAN_CONTINUE               ,_param->_nb_inst_decod,1                             );
86       
87        DELETE1_SIGNAL( in_DEPTH_MIN                          ,_param->_nb_context,_param->_size_depth);
88        DELETE1_SIGNAL( in_DEPTH_MAX                          ,_param->_nb_context,_param->_size_depth);
89        DELETE1_SIGNAL( in_DEPTH_FULL                         ,_param->_nb_context,1);
90       
91        DELETE1_SIGNAL(out_NB_INST_DECOD_ALL                  ,_param->_nb_context,_param->_size_nb_inst_decod);
92       
93        DELETE1_SIGNAL(in_CONTEXT_DECOD_ENABLE                ,_param->_nb_context,1);
94        DELETE1_SIGNAL(in_CONTEXT_EVENT                       ,_param->_nb_context,1);
95        DELETE1_SIGNAL(in_CONTEXT_DEPTH_VAL                   ,_param->_nb_context,1);
96        DELETE1_SIGNAL(in_CONTEXT_DEPTH                       ,_param->_nb_context,_param->_size_depth);
97       
98        DELETE0_SIGNAL(out_CONTEXT_EVENT_VAL                   ,1);
99        DELETE0_SIGNAL( in_CONTEXT_EVENT_ACK                   ,1);
100        DELETE0_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID            ,_param->_size_context_id  );
101        DELETE0_SIGNAL(out_CONTEXT_EVENT_DEPTH                 ,_param->_size_depth       );
102        DELETE0_SIGNAL(out_CONTEXT_EVENT_TYPE                  ,_param->_size_event_type  );
103        DELETE0_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT         ,1                         );
104        DELETE0_SIGNAL(out_CONTEXT_EVENT_ADDRESS               ,_param->_size_instruction_address);
105        DELETE0_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR          ,_param->_size_instruction_address);
106      }
107    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
108
109    delete _component;
110    delete _component_decod;
111    delete _component_decod_queue;
112
113    log_end(Decod_unit,FUNCTION);
114  };
115
116}; // end namespace decod_unit
117}; // end namespace front_end
118}; // end namespace multi_front_end
119}; // end namespace core
120
121}; // end namespace behavioural
122}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.