source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_deallocation.cpp @ 73

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

add two component :

  • Write Queue (in Moore version)
  • Execute Queue

add macro to help the interface allocation : Allocation.h

File size: 4.3 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/include/Write_queue.h"
9
10namespace morpheo                    {
11namespace behavioural {
12namespace core {
13namespace multi_execute_loop {
14namespace execute_loop {
15namespace multi_write_unit {
16namespace write_unit {
17namespace write_queue {
18
19
20#undef  FUNCTION
21#define FUNCTION "Write_queue::deallocation"
22  void Write_queue::deallocation (void)
23  {
24    log_printf(FUNC,Write_queue,FUNCTION,"Begin");
25
26    if (_usage & USE_SYSTEMC)
27      {
28        delete    in_CLOCK ;
29        delete    in_NRESET;
30       
31        // -----[ Interface "Write_queue_in" ]--------------------------------   
32        delete      in_WRITE_QUEUE_IN_VAL          ;
33        delete     out_WRITE_QUEUE_IN_ACK          ;
34        if (_param->_have_port_context_id)
35        delete      in_WRITE_QUEUE_IN_CONTEXT_ID   ;
36        if (_param->_have_port_front_end_id)
37        delete      in_WRITE_QUEUE_IN_FRONT_END_ID ;
38        if (_param->_have_port_ooo_engine_id)
39        delete      in_WRITE_QUEUE_IN_OOO_ENGINE_ID;
40        if (_param->_have_port_packet_id)
41        delete      in_WRITE_QUEUE_IN_PACKET_ID    ;
42//      delete      in_WRITE_QUEUE_IN_OPERATION    ;
43//      delete      in_WRITE_QUEUE_IN_TYPE         ;
44        delete      in_WRITE_QUEUE_IN_WRITE_RD     ;
45        delete      in_WRITE_QUEUE_IN_NUM_REG_RD   ;
46        delete      in_WRITE_QUEUE_IN_DATA_RD      ;
47        delete      in_WRITE_QUEUE_IN_WRITE_RE     ;
48        delete      in_WRITE_QUEUE_IN_NUM_REG_RE   ;
49        delete      in_WRITE_QUEUE_IN_DATA_RE      ;
50        delete      in_WRITE_QUEUE_IN_EXCEPTION    ;
51        delete      in_WRITE_QUEUE_IN_NO_SEQUENCE  ;
52        delete      in_WRITE_QUEUE_IN_ADDRESS      ;
53
54        // -----[ Interface "Write_queue_out" ]-------------------------------   
55        delete     out_WRITE_QUEUE_OUT_VAL          ;
56        delete      in_WRITE_QUEUE_OUT_ACK          ;
57        if (_param->_have_port_context_id)
58        delete     out_WRITE_QUEUE_OUT_CONTEXT_ID   ;
59        if (_param->_have_port_front_end_id)
60        delete     out_WRITE_QUEUE_OUT_FRONT_END_ID ;
61        if (_param->_have_port_ooo_engine_id)
62        delete     out_WRITE_QUEUE_OUT_OOO_ENGINE_ID;
63        if (_param->_have_port_packet_id)
64        delete     out_WRITE_QUEUE_OUT_PACKET_ID    ;
65//      delete     out_WRITE_QUEUE_OUT_OPERATION    ;
66//      delete     out_WRITE_QUEUE_OUT_TYPE         ;
67        delete     out_WRITE_QUEUE_OUT_FLAGS        ;
68        delete     out_WRITE_QUEUE_OUT_EXCEPTION    ;
69        delete     out_WRITE_QUEUE_OUT_NO_SEQUENCE  ;
70        delete     out_WRITE_QUEUE_OUT_ADDRESS      ;
71
72        // -----[ Interface "gpr_write" ]-------------------------------------
73        delete []  out_GPR_WRITE_VAL               ;
74        delete []   in_GPR_WRITE_ACK               ;
75        if (_param->_have_port_ooo_engine_id)
76        delete []  out_GPR_WRITE_OOO_ENGINE_ID     ;
77        delete []  out_GPR_WRITE_NUM_REG           ;
78        delete []  out_GPR_WRITE_DATA              ;
79       
80        // -----[ Interface "spr_write" ]-------------------------------------
81        delete []  out_SPR_WRITE_VAL               ;
82        delete []   in_SPR_WRITE_ACK               ;
83        if (_param->_have_port_ooo_engine_id)
84        delete []  out_SPR_WRITE_OOO_ENGINE_ID     ;
85        delete []  out_SPR_WRITE_NUM_REG           ;
86        delete []  out_SPR_WRITE_DATA              ;
87
88        // -----[ Interface "bypass_write" ]----------------------------------
89        if (_param->_have_port_ooo_engine_id)
90        delete []  out_BYPASS_WRITE_OOO_ENGINE_ID ;
91        delete []  out_BYPASS_WRITE_GPR_VAL       ;
92        delete []  out_BYPASS_WRITE_GPR_NUM_REG   ;
93        delete []  out_BYPASS_WRITE_GPR_DATA      ;
94        delete []  out_BYPASS_WRITE_SPR_VAL       ;
95        delete []  out_BYPASS_WRITE_SPR_NUM_REG   ;
96        delete []  out_BYPASS_WRITE_SPR_DATA      ;
97      }
98
99    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
100    while (not _queue->empty())
101      {
102        delete _queue->front();
103        _queue->pop_front();
104      }
105    delete _queue;
106
107    delete _component;
108
109    log_printf(FUNC,Write_queue,FUNCTION,"End");
110  };
111
112}; // end namespace write_queue
113}; // end namespace write_unit
114}; // end namespace multi_write_unit
115}; // end namespace execute_loop
116}; // end namespace multi_execute_loop
117}; // end namespace core
118
119}; // end namespace behavioural
120}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.