source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/include/Select_Priority_Fixed.h @ 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: 4.1 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#ifdef STATISTICS
22#include "Behavioural/Generic/Select/Select_Priority_Fixed/include/Statistics.h"
23#endif
24#ifdef POSITION
25#include "Behavioural/include/Position.h"
26#else
27#include "Behavioural/include/Interfaces.h"
28#endif
29#ifdef VHDL
30#include "Behavioural/include/Vhdl.h"
31#endif
32#ifdef VHDL_TESTBENCH
33#include "Behavioural/include/Vhdl_Testbench.h"
34#endif
35
36using namespace std;
37
38namespace morpheo {
39namespace behavioural {
40namespace generic {
41namespace select {
42namespace select_priority_fixed {
43
44
45  class Select_Priority_Fixed
46#if SYSTEMC
47    : public sc_module
48#endif
49  {
50    // -----[ fields ]----------------------------------------------------
51    // Parameters
52  protected : const string     _name;
53
54  protected : const Parameters _param;
55//#ifdef STATISTICS
56//  protected : const morpheo::behavioural::Parameters_Statistics _param_statistics;
57//#endif
58
59#ifdef STATISTICS
60  private   : Statistics                     * _stat;
61#endif
62
63#ifdef VHDL_TESTBENCH
64  private   : Vhdl_Testbench                 * _vhdl_testbench;
65#endif
66
67#ifdef POSITION
68  private   : Position                       * _position;
69#endif
70
71  private   : Interfaces                     * _interfaces;
72
73#ifdef SYSTEMC
74    // ~~~~~[ Interface ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75    // Interface
76
77  public    : SC_CLOCK                      *  in_CLOCK        ;
78  public    : SC_IN (Tcontrol_t)            *  in_NRESET       ;
79
80  public    : SC_IN (Tcontrol_t)           **  in_VAL          ;
81  public    : SC_OUT(Tcontrol_t)           ** out_ACK          ;
82  public    : SC_OUT(Tcontrol_t)            * out_ENTITY_ACK   ;
83  public    : SC_OUT(Tentity_t)             * out_ENTITY       ;
84
85    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
86   
87    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
88
89    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90#endif
91
92    // -----[ methods ]---------------------------------------------------
93
94#ifdef SYSTEMC
95    SC_HAS_PROCESS (Select_Priority_Fixed);
96#endif
97  public  :          Select_Priority_Fixed              (
98#ifdef SYSTEMC
99                                              sc_module_name                              name,
100#else                                         
101                                              string                                      name,
102#endif                                         
103#ifdef STATISTICS
104                                              morpheo::behavioural::Parameters_Statistics param_statistics,
105#endif
106                                              Parameters                                  param );
107                                               
108  public  :          Select_Priority_Fixed              (Parameters param );
109  public  :          ~Select_Priority_Fixed             (void);
110                                               
111#ifdef SYSTEMC                                 
112  private : void     allocation                (void);
113  private : void     deallocation              (void);
114                                               
115#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
116  public  : void     transition                (void);
117#endif
118  public  : void     genMealy_entity           (void);
119#endif                                         
120#ifdef STATISTICS
121  public  : string   statistics                (uint32_t depth);
122#endif
123                                               
124#if VHDL                                       
125  public  : void     vhdl                      (void);
126  private : void     vhdl_port                 (Vhdl * & vhdl);
127  private : void     vhdl_declaration          (Vhdl * & vhdl);
128  private : void     vhdl_body                 (Vhdl * & vhdl);
129#endif                                         
130                                               
131#ifdef VHDL_TESTBENCH                         
132  private : void     vhdl_testbench_transition (void);
133#endif
134  public  : void     vhdl_testbench_label      (string label);
135  };
136
137}; // end namespace select_priority_fixed
138}; // end namespace select
139}; // end namespace generic
140
141}; // end namespace behavioural
142}; // end namespace morpheo             
143
144#endif
Note: See TracBrowser for help on using the repository browser.