source: trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_testbench.cpp @ 40

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

Interface et Signal, c'est deux classes enregistres la valeurs des signaux à chaque cycle ... étape préparatoire avan le changement de la classe Vhdl_Testbench

File size: 2.7 KB
RevLine 
[38]1#ifdef VHDL_TESTBENCH
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/include/Signal.h"
10
11namespace morpheo              {
12namespace behavioural          {
13
14  // à optimisé -> pointeur de fonction afin d'éviter le test et le switch
15  void Signal::testbench (Vhdl_Testbench * & vhdl_testbench)
16  {
17    log_printf(FUNC,Behavioural,"testbench","Begin");
18
19    if ((_presence_port == PORT_VHDL_YES_TESTBENCH_YES) or
20        (_presence_port == PORT_VHDL_NO_TESTBENCH_YES))
21      {
[40]22        string str;
23
[38]24        switch (_type_info)
25          {
26          case BOOL     : 
27            {
[40]28              bool value = read <bool> ();
29
[38]30              switch (_direction)
31                {
[40]32                case IN    : {vhdl_testbench->add_input (value);
33                              str =             toBase2 (value); break;}
34                case OUT   : {vhdl_testbench->add_output(value); 
35                              str =             toBase2 (value); break;}
[38]36                case INOUT : {break;}
37                }
38              break;
39            }
40          case UINT8_T  :
41            {
[40]42              uint8_t value = read <uint8_t> ();
43
[38]44              switch (_direction)
45                {
[40]46                case IN    : {vhdl_testbench->add_input (value); 
47                              str =             toBase2 (value,_size); break;}
48                case OUT   : {vhdl_testbench->add_output(value); 
49                              str =             toBase2 (value,_size); break;}
[38]50                case INOUT : {break;}
51                }
52              break;
53            }
54          case UINT16_T :
55            {
[40]56              uint16_t value = read <uint16_t> ();
57
[38]58              switch (_direction)
59                {
[40]60                case IN    : {vhdl_testbench->add_input (value);
61                              str =             toBase2 (value,_size); break;}
62                case OUT   : {vhdl_testbench->add_output(value);
63                              str =             toBase2 (value,_size); break;}
64                case INOUT : {break;}           
[38]65                }
66              break;
67            }
68          case UINT32_T :
69            {
[40]70              uint32_t value = read <uint32_t> ();
71
[38]72              switch (_direction)
73                {
[40]74                case IN    : {vhdl_testbench->add_input (value); 
75                              str =             toBase2 (value,_size); break;}
76                case OUT   : {vhdl_testbench->add_output(value); 
77                              str =             toBase2 (value,_size); break;}
[38]78                case INOUT : {break;}
79                }
80              break;
81            }
82          case UINT64_T :
83            {
[40]84              uint64_t value = read <uint64_t> ();
85
[38]86              switch (_direction)
87                {
[40]88                case IN    : {vhdl_testbench->add_input (value); 
89                              str =             toBase2 (value,_size); break;}
90                case OUT   : {vhdl_testbench->add_output(value); 
91                              str =             toBase2 (value,_size); break;}
[38]92                case INOUT : {break;}
93                }
94              break;
95            }
96          default       :
97            throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow."));
98          }
99
[40]100        _list_value->push_back(str);
[38]101      }
102
103    log_printf(FUNC,Behavioural,"testbench","End");
104  };
105
106}; // end namespace behavioural         
107}; // end namespace morpheo             
108#endif
Note: See TracBrowser for help on using the repository browser.