source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp @ 88

Last change on this file since 88 was 88, checked in by rosiere, 16 years ago

Almost complete design
with Test and test platform

  • Property svn:keywords set to Id
File size: 5.5 KB
RevLine 
[54]1#ifdef SYSTEMC
2/*
3 * $Id: Read_queue_deallocation.cpp 88 2008-12-10 18:31:39Z rosiere $
4 *
[88]5 * [ Description ]
[54]6 *
7 */
8
9#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_execute_loop {
15namespace execute_loop {
16namespace multi_read_unit {
17namespace read_unit {
18namespace read_queue {
19
20
21  void Read_queue::deallocation (void)
22  {
23    log_printf(FUNC,Read_queue,"deallocation","Begin");
24
[88]25    if (usage_is_set(_usage,USE_SYSTEMC))
26      {
27    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[54]28    delete     in_CLOCK ;
29    delete     in_NRESET;
30
[88]31    // ~~~~~[ Interface : "read_queue_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[54]32    delete     in_READ_QUEUE_IN_VAL            ;
33    delete    out_READ_QUEUE_IN_ACK            ;
[68]34
35    if(_param->_have_port_context_id   )
36      delete     in_READ_QUEUE_IN_CONTEXT_ID     ;
37    if(_param->_have_port_front_end_id )
38      delete     in_READ_QUEUE_IN_FRONT_END_ID   ;
39    if(_param->_have_port_ooo_engine_id)
40      delete     in_READ_QUEUE_IN_OOO_ENGINE_ID  ;
[88]41    if(_param->_have_port_rob_ptr       )
[68]42      delete     in_READ_QUEUE_IN_ROB_ID         ;
[54]43    delete     in_READ_QUEUE_IN_OPERATION      ;
44    delete     in_READ_QUEUE_IN_TYPE           ;
[76]45    delete     in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE;
[78]46    if (_param->_have_port_load_queue_ptr)
[76]47    delete     in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ;
[54]48    delete     in_READ_QUEUE_IN_HAS_IMMEDIAT   ;
49    delete     in_READ_QUEUE_IN_IMMEDIAT       ;
50    delete     in_READ_QUEUE_IN_READ_RA        ;
51    delete     in_READ_QUEUE_IN_NUM_REG_RA     ;
52    delete     in_READ_QUEUE_IN_READ_RB        ;
53    delete     in_READ_QUEUE_IN_NUM_REG_RB     ;
54    delete     in_READ_QUEUE_IN_READ_RC        ;
55    delete     in_READ_QUEUE_IN_NUM_REG_RC     ;
56    delete     in_READ_QUEUE_IN_WRITE_RD       ;
57    delete     in_READ_QUEUE_IN_NUM_REG_RD     ;
58    delete     in_READ_QUEUE_IN_WRITE_RE       ;
59    delete     in_READ_QUEUE_IN_NUM_REG_RE     ;
60
[88]61    // ~~~~~[ Interface : "read_queue_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[54]62    delete    out_READ_QUEUE_OUT_VAL            ;
63    delete     in_READ_QUEUE_OUT_ACK            ;
[68]64
65    if(_param->_have_port_context_id   )
66      delete    out_READ_QUEUE_OUT_CONTEXT_ID     ;
67    if(_param->_have_port_front_end_id )
68      delete    out_READ_QUEUE_OUT_FRONT_END_ID   ;
69    if(_param->_have_port_ooo_engine_id)
70      delete    out_READ_QUEUE_OUT_OOO_ENGINE_ID  ;
[88]71    if(_param->_have_port_rob_ptr       )
[68]72      delete    out_READ_QUEUE_OUT_ROB_ID         ;
[54]73    delete    out_READ_QUEUE_OUT_OPERATION      ;
74    delete    out_READ_QUEUE_OUT_TYPE           ;
[76]75    delete    out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE;
[78]76    if (_param->_have_port_load_queue_ptr)
[76]77    delete    out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ;
[54]78    delete    out_READ_QUEUE_OUT_HAS_IMMEDIAT   ;
79    delete    out_READ_QUEUE_OUT_IMMEDIAT       ;
[76]80//     delete    out_READ_QUEUE_OUT_READ_RA        ;
[54]81    delete    out_READ_QUEUE_OUT_NUM_REG_RA     ;
82    delete    out_READ_QUEUE_OUT_DATA_RA_VAL    ;
83    delete    out_READ_QUEUE_OUT_DATA_RA        ;
[76]84//     delete    out_READ_QUEUE_OUT_READ_RB        ;
[54]85    delete    out_READ_QUEUE_OUT_NUM_REG_RB     ;
86    delete    out_READ_QUEUE_OUT_DATA_RB_VAL    ;
87    delete    out_READ_QUEUE_OUT_DATA_RB        ;
[76]88//     delete    out_READ_QUEUE_OUT_READ_RC        ;
[54]89    delete    out_READ_QUEUE_OUT_NUM_REG_RC     ;
90    delete    out_READ_QUEUE_OUT_DATA_RC_VAL    ;
91    delete    out_READ_QUEUE_OUT_DATA_RC        ;
92    delete    out_READ_QUEUE_OUT_WRITE_RD       ;
93    delete    out_READ_QUEUE_OUT_NUM_REG_RD     ;
94    delete    out_READ_QUEUE_OUT_WRITE_RE       ;
95    delete    out_READ_QUEUE_OUT_NUM_REG_RE     ;
96
[88]97    // ~~~~~[ Interface : "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[54]98   
99    delete [] out_GPR_READ_VAL       ;
100    delete []  in_GPR_READ_ACK       ;
[68]101    if(_param->_have_port_ooo_engine_id)
102      delete [] out_GPR_READ_OOO_ENGINE_ID;
[54]103    delete [] out_GPR_READ_NUM_REG   ;
104    delete []  in_GPR_READ_DATA      ;
105    delete []  in_GPR_READ_DATA_VAL  ;
106
[88]107    // ~~~~~[ Interface : "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[54]108   
109    delete [] out_SPR_READ_VAL       ;
110    delete []  in_SPR_READ_ACK       ;
[68]111    if(_param->_have_port_ooo_engine_id)
112      delete [] out_SPR_READ_OOO_ENGINE_ID;
[54]113    delete [] out_SPR_READ_NUM_REG   ;
114    delete []  in_SPR_READ_DATA      ;
115    delete []  in_SPR_READ_DATA_VAL  ;
116
[88]117    // ~~~~~[ Interface : "gpr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[54]118   
[55]119    delete []  in_GPR_WRITE_VAL       ;
[68]120    if(_param->_have_port_ooo_engine_id)
121      delete []  in_GPR_WRITE_OOO_ENGINE_ID;
[55]122    delete []  in_GPR_WRITE_NUM_REG   ;
123    delete []  in_GPR_WRITE_DATA      ;
[54]124
[88]125    // ~~~~~[ Interface : "spr_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[54]126   
[55]127    delete []  in_SPR_WRITE_VAL       ;
[68]128    if(_param->_have_port_ooo_engine_id)
129      delete []  in_SPR_WRITE_OOO_ENGINE_ID;
[55]130    delete []  in_SPR_WRITE_NUM_REG   ;
131    delete []  in_SPR_WRITE_DATA      ;
[88]132      }
[54]133
[88]134    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
[66]135
[54]136    while (_queue->empty() == false)
137      {
138        delete _queue->front();
[88]139        _queue->pop_front();
[54]140      }
141    delete _queue;
142    delete _queue_head;
143    delete _component;
144    log_printf(FUNC,Read_queue,"deallocation","End");
145  };
146
147}; // end namespace read_queue
148}; // end namespace read_unit
149}; // end namespace multi_read_unit
150}; // end namespace execute_loop
151}; // end namespace multi_execute_loop
152}; // end namespace core
153
154}; // end namespace behavioural
155}; // end namespace morpheo             
156#endif
Note: See TracBrowser for help on using the repository browser.