source: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface_fifo.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: 2.5 KB
Line 
1#ifndef morpheo_behavioural_Interface_fifo_h
2#define morpheo_behavioural_Interface_fifo_h
3
4/*
5 * $Id$
6 *
7 * [ Description ]
8 *
9 */
10
11#include "Behavioural/include/Interface.h"
12
13namespace morpheo              {
14namespace behavioural          {
15
16  typedef enum {VAL, ACK} val_ack_t;
17
18  class Interface_fifo : public Interface
19  {
20  private   : list<Signal *>      * _list_signal_val;
21  private   : list<Signal *>      * _list_signal_ack;
22
23#ifdef VHDL_TESTBENCH
24  private   : bool                  _test_exhaustive;
25#endif
26
27   // -----[ methods ]---------------------------------------------------
28  public    :                       Interface_fifo       (string         name        ,
29                                                          direction_t    direction   ,
30                                                          localisation_t localisation);
31   
32  public    :                       Interface_fifo       (const Interface_fifo & interface_fifo);
33  public    :                       ~Interface_fifo      ();
34
35  public    : Signal *              set_signal_valack    (string          name     ,
36                                                          direction_t     direction,
37                                                          val_ack_t       val_ack  ,
38                                                          presence_port_t presence_port = PORT_VHDL_YES_TESTBENCH_YES);
39
40  private   : void                  save_ptr             (Signal *        signal   ,
41                                                          val_ack_t       val_ack  );
42
43#ifdef SYSTEMC
44  public    : sc_in <bool> *        set_signal_valack_in (string          name     ,
45                                                          val_ack_t       val_ack  ,
46                                                          presence_port_t presence_port=PORT_VHDL_YES_TESTBENCH_YES)
47    {
48      log_printf(FUNC,Behavioural,"set_signal_valack_in","Begin");
49
50      sc_in <bool> * port = set_signal_in <bool> (name, 1, presence_port);
51     
52      save_ptr(_list_signal->back(), val_ack);
53     
54      log_printf(FUNC,Behavioural,"set_signal_valack_in","End");
55      return port;
56    };
57
58  public    : sc_out<bool> *        set_signal_valack_out(string          name     ,
59                                                          val_ack_t       val_ack  ,
60                                                          presence_port_t presence_port=PORT_VHDL_YES_TESTBENCH_YES)
61    {
62      log_printf(FUNC,Behavioural,"set_signal_valack_out","Begin");
63
64      sc_out<bool> * port = set_signal_out<bool> (name, 1, presence_port);
65     
66      save_ptr(_list_signal->back(), val_ack);
67     
68      log_printf(FUNC,Behavioural,"set_signal_valack_out","End");
69      return port;
70    };
71#endif
72
73#ifdef VHDL_TESTBENCH
74  public    : bool                  testbench_transaction(void);
75  public    : void                  testbench            (Vhdl_Testbench * & vhdl_testbench);
76#endif
77  };
78
79}; // end namespace behavioural         
80}; // end namespace morpheo             
81
82#endif
Note: See TracBrowser for help on using the repository browser.