source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h @ 29

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

Changement de classes de gestions des Interfaces.

-> simplification pour les déclarations de ports, application pour le composant Select_Priority_Fixed.
-> !!! essayer de supprimer la redondance dans les fichierx xxx_vhdl_testbench_transition.cpp

File size: 4.0 KB
Line 
1#ifndef morpheo_behavioural_generic_select_select_priority_fixed_Select_Priority_Fixed_h
2#define morpheo_behavioural_generic_select_select_priority_fixed_Select_Priority_Fixed_h
3
4/*
5 * $Id$
6 *
7 * [ Description ]
8 *
9 */
10
11#ifdef SYSTEMC
12#include "systemc.h"
13#endif
14
15#include <iostream>
16#include "Include/ToString.h"
17#include "Include/Debug.h"
18
19#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Parameters.h"
20#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Types.h"
21#include "Behavioural/include/Interfaces.h"
22
23#ifdef STATISTICS
24#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
25#endif
26#ifdef VHDL
27#include "Behavioural/include/Vhdl.h"
28#endif
29#ifdef VHDL_TESTBENCH
30#include "Behavioural/include/Vhdl_Testbench.h"
31#endif
32
33using namespace std;
34
35namespace morpheo {
36namespace behavioural {
37namespace generic {
38namespace select {
39namespace select_priority_fixed {
40
41
42  class Select_Priority_Fixed
43#if SYSTEMC
44    : public sc_module
45#endif
46  {
47    // -----[ fields ]----------------------------------------------------
48    // Parameters
49  protected : const string     _name;
50
51  protected : const Parameters _param;
52//#ifdef STATISTICS
53//  protected : const morpheo::behavioural::Parameters_Statistics _param_statistics;
54//#endif
55
56#ifdef STATISTICS
57  private   : Statistics                     * _stat;
58#endif
59
60#ifdef VHDL_TESTBENCH
61  private   : Vhdl_Testbench                 * _vhdl_testbench;
62#endif
63
64  private   : Interfaces                     * interfaces;
65
66#ifdef SYSTEMC
67    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68    // Interface
69
70  public    : SC_CLOCK                      *  in_CLOCK        ;
71  public    : SC_IN (Tcontrol_t)            *  in_NRESET       ;
72
73  public    : SC_IN (Tcontrol_t)           **  in_VAL          ;
74  public    : SC_OUT(Tcontrol_t)           ** out_ACK          ;
75  public    : SC_OUT(Tcontrol_t)            * out_ENTITY_ACK   ;
76  public    : SC_OUT(Tentity_t)             * out_ENTITY       ;
77
78    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
79   
80    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
81
82    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83#endif
84
85    // -----[ methods ]---------------------------------------------------
86
87#ifdef SYSTEMC
88    SC_HAS_PROCESS (Select_Priority_Fixed);
89#endif
90  public  :          Select_Priority_Fixed              (
91#ifdef SYSTEMC
92                                              sc_module_name                              name,
93#else                                         
94                                              string                                      name,
95#endif                                         
96#ifdef STATISTICS
97                                              morpheo::behavioural::Parameters_Statistics param_statistics,
98#endif
99                                              Parameters                                  param );
100                                               
101  public  :          Select_Priority_Fixed              (Parameters param );
102  public  :          ~Select_Priority_Fixed             (void);
103                                               
104#ifdef SYSTEMC                                 
105  private : void     allocation                (void);
106  private : void     deallocation              (void);
107                                               
108#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
109  public  : void     transition                (void);
110#endif
111  public  : void     genMealy_entity           (void);
112#endif                                         
113#ifdef STATISTICS
114  public  : string   statistics                (uint32_t depth);
115#endif
116                                               
117#if VHDL                                       
118  public  : void     vhdl                      (void);
119  private : void     vhdl_port                 (Vhdl * & vhdl);
120  private : void     vhdl_declaration          (Vhdl * & vhdl);
121  private : void     vhdl_body                 (Vhdl * & vhdl);
122#endif                                         
123                                               
124#ifdef VHDL_TESTBENCH                         
125  private : void     vhdl_testbench_transition (void);
126#endif
127  public  : void     vhdl_testbench_label      (string label);
128  };
129
130}; // end namespace select_priority_fixed
131}; // end namespace select
132}; // end namespace generic
133
134}; // end namespace behavioural
135}; // end namespace morpheo             
136
137#endif
Note: See TracBrowser for help on using the repository browser.