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

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

Vhdl_Testbench : Modification du testbench. Maintenant complétement encapsuler dans la classe "Interfaces".
Suppression de la class Vhdl_Testbench dans un avenir proche :D
Suppression du répertoire Configuration.old

File size: 2.1 KB
Line 
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 (void)
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      {
22        string str;
23
24        switch (_type_info)
25          {
26          case BOOL     : 
27            {
28              bool value = read <bool> ();
29
30              switch (_direction)
31                {
32                case IN    : {str =             toBase2 (value); break;}
33                case OUT   : {str =             toBase2 (value); break;}
34//              case INOUT : {break;}
35                }
36              break;
37            }
38          case UINT8_T  :
39            {
40              uint8_t value = read <uint8_t> ();
41
42              switch (_direction)
43                {
44                case IN    : {str =             toBase2 (value,_size); break;}
45                case OUT   : {str =             toBase2 (value,_size); break;}
46//              case INOUT : {break;}
47                }
48              break;
49            }
50          case UINT16_T :
51            {
52              uint16_t value = read <uint16_t> ();
53
54              switch (_direction)
55                {
56                case IN    : {str =             toBase2 (value,_size); break;}
57                case OUT   : {str =             toBase2 (value,_size); break;}
58//              case INOUT : {break;}           
59                }
60              break;
61            }
62          case UINT32_T :
63            {
64              uint32_t value = read <uint32_t> ();
65
66              switch (_direction)
67                {
68                case IN    : {str =             toBase2 (value,_size); break;}
69                case OUT   : {str =             toBase2 (value,_size); break;}
70//              case INOUT : {break;}
71                }
72              break;
73            }
74          case UINT64_T :
75            {
76              uint64_t value = read <uint64_t> ();
77
78              switch (_direction)
79                {
80                case IN    : {str =             toBase2 (value,_size); break;}
81                case OUT   : {str =             toBase2 (value,_size); break;}
82//              case INOUT : {break;}
83                }
84              break;
85            }
86          default       :
87            throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow."));
88          }
89
90        _list_value->push_back(str);
91      }
92
93    log_printf(FUNC,Behavioural,"testbench","End");
94  };
95
96}; // end namespace behavioural         
97}; // end namespace morpheo             
98#endif
Note: See TracBrowser for help on using the repository browser.