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

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

Interface normalisé
Début du banc de registres multi niveaux

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