source: trunk/IPs/systemC/processor/Morpheo/Behavioural/New_Component/include/New_Component.h @ 55

Last change on this file since 55 was 53, checked in by rosiere, 17 years ago
  • Banc de registre multi banc
  • Banc de registre générique.
File size: 3.0 KB
RevLine 
[2]1#ifndef morpheo_behavioural_@DEFINE_@COMPONENT_h
2#define morpheo_behavioural_@DEFINE_@COMPONENT_h
3
4/*
5 * $Id$
6 *
7 * [ Description ]
8 *
9 */
10
11#ifdef SYSTEMC
12#include "systemc.h"
13#endif
14
15#include <iostream>
[44]16#include "Common/include/ToString.h"
17#include "Common/include/Debug.h"
[2]18
19#include "Behavioural/@DIRECTORY/include/Parameters.h"
20#include "Behavioural/@DIRECTORY/include/Types.h"
21#ifdef STATISTICS
22#include "Behavioural/@DIRECTORY/include/Statistics.h"
23#endif
[42]24#include "Behavioural/include/Component.h"
[2]25#ifdef VHDL
26#include "Behavioural/include/Vhdl.h"
27#endif
28
29using namespace std;
30
31namespace morpheo {
32namespace behavioural {
33@NAMESPACE_BEGIN
34
35  class @COMPONENT
36#if SYSTEMC
37    : public sc_module
38#endif
39  {
40    // -----[ fields ]----------------------------------------------------
41    // Parameters
[53]42  protected : const string       _name;
[2]43
[53]44  protected : const Parameters * _param;
[2]45//#ifdef STATISTICS
[53]46//  protected : const morpheo::behavioural::Parameters_Statistics * _param_statistics;
[2]47//#endif
48
49#ifdef STATISTICS
50  private   : Statistics                     * _stat;
51#endif
52
[42]53  public    : Component                      * _component;
[40]54  private   : Interfaces                     * _interfaces;
55
[2]56#ifdef SYSTEMC
57    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
58    // Interface
59  public    : SC_CLOCK                      *  in_CLOCK        ;
60  public    : SC_IN (Tcontrol_t)            *  in_NRESET       ;
61
62    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
63
64    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
65
66    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
67#endif
68
69    // -----[ methods ]---------------------------------------------------
70
71#ifdef SYSTEMC
72    SC_HAS_PROCESS (@COMPONENT);
73#endif
74  public  :          @COMPONENT              (
75#ifdef SYSTEMC
[53]76                                              sc_module_name                                name,
[2]77#else                                         
[53]78                                              string                                        name,
[2]79#endif                                         
80#ifdef STATISTICS
[53]81                                              morpheo::behavioural::Parameters_Statistics * param_statistics,
[2]82#endif
[53]83                                              Parameters                                  * param );
[2]84  public  :          ~@COMPONENT             (void);
85                                               
86#ifdef SYSTEMC                                 
87  private : void     allocation                (void);
88  private : void     deallocation              (void);
89                                               
[15]90//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
[2]91  public  : void     transition                (void);
[15]92//#endif
[2]93#endif                                         
94#ifdef STATISTICS
95  public  : string   statistics                (uint32_t depth);
96#endif
97                                               
98#if VHDL                                       
99  public  : void     vhdl                      (void);
[50]100  private : void     vhdl_declaration          (Vhdl * & vhdl);
101  private : void     vhdl_body                 (Vhdl * & vhdl);
[2]102#endif                                         
103                                               
104#ifdef VHDL_TESTBENCH                         
105  private : void     vhdl_testbench_transition (void);
106#endif
107  };
108
109@NAMESPACE_END
110}; // end namespace behavioural
111}; // end namespace morpheo             
112
113#endif
Note: See TracBrowser for help on using the repository browser.