source: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal.cpp @ 62

Last change on this file since 62 was 62, checked in by rosiere, 17 years ago

Modification en profondeur de Component-port_map.
Compilation ok pour Register_unit ... a tester (systemC et vhdl)

File size: 4.0 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/include/Signal.h"
9
10namespace morpheo              {
11namespace behavioural          {
12
13  Signal::Signal  (string          name         ,
14                   direction_t     direction    ,
15                   uint32_t        size         ,
16                   presence_port_t presence_port):
17    _name          (name         ),
18    _direction     (direction    ),
19    _size          (size         ),
20    _presence_port ((direction==INTERNAL)?PORT_VHDL_NO_TESTBENCH_NO:presence_port)
21  {
22    log_printf(FUNC,Behavioural,"Signal","Begin");
23    _is_allocate   = false;
24    _is_map_as_src = false;
25    _is_map_as_dest= false;
26    _connect_from_signal = NULL;
27    _connect_to_signal   = NULL;
28    _sc_signal     = NULL;
29    _sc_signal_map = NULL;
30    _type_info     = UNKNOW;
31#ifdef VHDL_TESTBENCH
32    _list_value    = new list<string>;
33#endif
34    log_printf(FUNC,Behavioural,"Signal","End");
35  };
36
37  Signal::Signal  (const Signal & signal):
38    _name          (signal._name         ),
39    _direction     (signal._direction    ),
40    _size          (signal._size         ),
41    _presence_port (signal._presence_port)
42  {
43    log_printf(FUNC,Behavioural,"Signal (copy)","Begin");
44    _is_allocate    = signal._is_allocate;
45    _is_map_as_src  = signal._is_map_as_src ;
46    _is_map_as_dest = signal._is_map_as_dest;
47    _connect_from_signal = signal._connect_from_signal;
48    _connect_to_signal   = signal._connect_to_signal;
49    _sc_signal      = signal._sc_signal    ;
50    _sc_signal_map  = signal._sc_signal_map;
51    _type_info      = signal._type_info ;
52#ifdef VHDL_TESTBENCH
53    _list_value     = signal._list_value;
54#endif
55    log_printf(FUNC,Behavioural,"Signal (copy)","End");
56  };
57
58  Signal::~Signal ()
59  {
60    log_printf(FUNC,Behavioural,"~Signal","Begin");
61
62//     if (_is_allocate == true)
63//       switch (_direction)
64//      {
65//      case IN :
66//        {
67//          switch (_type_info)
68//            {
69//            case BOOL     : {delete (static_cast<sc_in  <bool    > *>(_sc_signal)); break;}
70//            case UINT8_T  : {delete (static_cast<sc_in  <uint8_t > *>(_sc_signal)); break;}
71//            case UINT16_T : {delete (static_cast<sc_in  <uint16_t> *>(_sc_signal)); break;}
72//            case UINT32_T : {delete (static_cast<sc_in  <uint32_t> *>(_sc_signal)); break;}
73//            case UINT64_T : {delete (static_cast<sc_in  <uint64_t> *>(_sc_signal)); break;}
74//            default       : {throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow.")); break;}
75//            }
76//          break;
77//        }
78//      case OUT :
79//        {
80//          switch (_type_info)
81//            {
82//            case BOOL     : {delete (static_cast<sc_out <bool    > *>(_sc_signal)); break;}
83//            case UINT8_T  : {delete (static_cast<sc_out <uint8_t > *>(_sc_signal)); break;}
84//            case UINT16_T : {delete (static_cast<sc_out <uint16_t> *>(_sc_signal)); break;}
85//            case UINT32_T : {delete (static_cast<sc_out <uint32_t> *>(_sc_signal)); break;}
86//            case UINT64_T : {delete (static_cast<sc_out <uint64_t> *>(_sc_signal)); break;}
87//            default       : {throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow.")); break;}
88//            }
89//          break;
90//        }
91//      case INTERNAL :
92//        {
93//          switch (_type_info)
94//            {
95//            case BOOL     : {delete (static_cast<sc_sc_signal <bool    > *>(_sc_signal)); break;}
96//            case UINT8_T  : {delete (static_cast<sc_sc_signal <uint8_t > *>(_sc_signal)); break;}
97//            case UINT16_T : {delete (static_cast<sc_sc_signal <uint16_t> *>(_sc_signal)); break;}
98//            case UINT32_T : {delete (static_cast<sc_sc_signal <uint32_t> *>(_sc_signal)); break;}
99//            case UINT64_T : {delete (static_cast<sc_sc_signal <uint64_t> *>(_sc_signal)); break;}
100//            default       : {throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow.")); break;}
101//            }
102//          break;
103//        }
104//      default       : {throw (ErrorMorpheo ("Signal \""+_name+"\" : direction unknow.")); break;}
105//      }
106
107#ifdef VHDL_TESTBENCH
108    delete _list_value;
109#endif
110    log_printf(FUNC,Behavioural,"~Signal","End");
111  };
112
113}; // end namespace behavioural         
114}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.