Ignore:
Timestamp:
Jun 5, 2007, 11:06:46 PM (17 years ago)
Author:
rosiere
Message:

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

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/include
Files:
1 added
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Configuration_Parameters.h

    r3 r40  
    1212#include <iostream>
    1313#include "Behavioural/include/XML.h"
     14#include "Behavioural/include/Environnement.h"
    1415#include "Include/ErrorMorpheo.h"
    1516#include "Include/ToString.h"
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Environnement.h

    r2 r40  
    66#  error "To have the vhdl's test bench, you must set flags SYSTEMC"
    77#endif
     8
     9#if (defined(VHDL_TESTBENCH) and not defined(VHDL))
     10#  error "To have the vhdl's test bench, you must set flags VHDL"
     11#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h

    r38 r40  
    3939
    4040    // -----[ fields ]----------------------------------------------------
    41   private  : const string          _name         ;
    42   private  : const direction_t     _direction    ;
    43   private  : const localisation_t  _localisation ;
    44   private  :       string          _comment      ;
     41  protected : const string          _name         ;
     42  protected : const direction_t     _direction    ;
     43  protected : const localisation_t  _localisation ;
     44  protected :       string          _comment      ;
    4545
    46   private   : list<Signal *>      * _list_signal  ;
    47 
     46  protected : list<Signal *>      * _list_signal  ;
    4847
    4948#ifdef POSITION
    50   private  :       bool            _is_map       ;
    51   private  :       void          * _entity_map   ; // Entity -> erreur cyclique
    52   private  :       void          * _interface_map; // pour être homogène avec _entity_map
     49  protected :       bool            _is_map       ;
     50  protected :       void          * _entity_map   ; // Entity -> erreur cyclique
     51  protected :       void          * _interface_map; // pour être homogène avec _entity_map
    5352#endif
    5453
     54#ifdef VHDL_TESTBENCH
     55  private   : list<string>        * _list_cycle   ;
     56#endif
     57   
    5558    // -----[ methods ]---------------------------------------------------
    5659  public    :                       Interface            (string         name        ,
     
    6265
    6366  public    : void                  set_comment          (string comment);
    64   private  : string                get_comment          (void          );
     67  protected : string                get_comment          (void          );
    6568
    66   private   : string                get_signal           (void);
     69  protected : string                signal_name          (string      name_interface,
     70                                                          string      name_signal   ,
     71                                                          direction_t direction     );
     72
     73  protected : string                get_signal           (void);
    6774  public    : Signal *              set_signal           (string          name     ,
    6875                                                          direction_t     direction,
     
    135142
    136143#ifdef VHDL_TESTBENCH
     144  public    : void                  testbench_cycle      (void);
    137145  public    : void                  testbench            (Vhdl_Testbench * & vhdl_testbench);
    138146#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h

    r38 r40  
    1212#include <iostream>
    1313#include <list>
    14 #include "Behavioural/include/Interface.h"
     14#include "Behavioural/include/Interface_fifo.h"
    1515#include "Include/ToString.h"
    1616#include "Include/Debug.h"
     
    3030  {
    3131    // -----[ fields ]----------------------------------------------------
    32   private   : list<Interface*>    * _list_interface;
     32  private   : list<Interface_fifo*>    * _list_interface;
    3333
    3434    // -----[ methods ]---------------------------------------------------
     
    3737  public    :                       ~Interfaces           ();
    3838
    39   public    : Interface *           set_interface         (string         name        ,
     39  public    : Interface_fifo *      set_interface         (string         name        ,
    4040                                                           direction_t    direction   ,
    4141                                                           localisation_t localisation);
    42   public    : Interface *           set_interface         (string         name        ,
     42  public    : Interface_fifo *      set_interface         (string         name        ,
    4343                                                           direction_t    direction   ,
    4444                                                           localisation_t localisation,
     
    5353#endif
    5454
    55   public    : Interface  *          find_interface        (string name);
     55  public    : Interface_fifo  *     find_interface        (string name);
    5656
    5757#ifdef VHDL_TESTBENCH
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h

    r38 r40  
    2323#include "Behavioural/include/XML.h"
    2424#include "Include/ErrorMorpheo.h"
     25#include "Include/ToBase2.h"
    2526#include "Include/ToString.h"
    2627#include "Include/Debug.h"
     
    5657  private   : void *                _signal       ;
    5758  private   : type_info_t           _type_info    ;
     59
     60  private   : list<string>        * _list_value   ;
    5861#endif
    5962
     
    6770
    6871#ifdef VHDL_TESTBENCH
     72  public    :template <typename T>
     73             T                  read (void)
     74    {
     75      switch (_direction)
     76        {
     77        case IN  : {return read_in  <T>();}
     78        case OUT : {return read_out <T>();}
     79        default  : throw (ErrorMorpheo ("Signal \""+_name+"\" : direction unknow."));
     80        }
     81    }
     82
     83  public    :template <typename T>
     84             T                  read_in (void)
     85    {
     86      switch (_type_info)
     87        {
     88        case BOOL     : return (static_cast<sc_in  <bool    > *>(_signal)->read());
     89        case UINT8_T  : return (static_cast<sc_in  <uint8_t > *>(_signal)->read());
     90        case UINT16_T : return (static_cast<sc_in  <uint16_t> *>(_signal)->read());
     91        case UINT32_T : return (static_cast<sc_in  <uint32_t> *>(_signal)->read());
     92        case UINT64_T : return (static_cast<sc_in  <uint64_t> *>(_signal)->read());
     93        default       : throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow."));
     94        }
     95    }
     96
     97  public    :template <typename T>
     98             T                  read_out(void)
     99    {
     100      switch (_type_info)
     101        {
     102        case BOOL     : return (static_cast<sc_out <bool    > *>(_signal)->read());
     103        case UINT8_T  : return (static_cast<sc_out <uint8_t > *>(_signal)->read());
     104        case UINT16_T : return (static_cast<sc_out <uint16_t> *>(_signal)->read());
     105        case UINT32_T : return (static_cast<sc_out <uint32_t> *>(_signal)->read());
     106        case UINT64_T : return (static_cast<sc_out <uint64_t> *>(_signal)->read());
     107        default       : throw (ErrorMorpheo ("Signal \""+_name+"\" : type unknow."));
     108        }
     109    }
     110
    69111  public    : void              testbench       (Vhdl_Testbench * & vhdl_testbench);
    70112
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Statistics.h

    r2 r40  
    1313#include <stdint.h>
    1414#include <iostream>
     15#include "Behavioural/include/Environnement.h"
    1516#include "Behavioural/include/Parameters_Statistics.h"
    1617#include "Include/Average.h"
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Vhdl.h

    r29 r40  
    1414#include <iostream>
    1515#include <list>
     16#include "Behavioural/include/Environnement.h"
    1617#include "Behavioural/include/Direction.h"
    1718#include "Include/ToString.h"
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Vhdl_Testbench.h

    r2 r40  
    1111 */
    1212
     13#include "Behavioural/include/Environnement.h"
    1314#include "Behavioural/include/Vhdl.h"
    1415#include "Include/ToString.h"
     
    3940    // -----[ fields ]----------------------------------------------------
    4041  private   : const string     _name       ;
     42  private   : const bool       _exhaustive ;
     43
    4144  private   : string           _clock_name ;
    4245  private   : uint32_t         _num_cycle  ;
     
    4851  private   : list<string>     _list_input_cycle;
    4952  private   : list<uint32_t>   _list_input_size ;
     53
    5054  private   : list<string>     _list_output;
    5155  private   : list<string>     _list_output_cycle;
    5256  private   : list<uint32_t>   _list_output_size ;
     57
    5358  private   : list<bool>       _list_test;
    5459  private   : list<string>     _list_port;
     
    6166   
    6267    // -----[ methods ]---------------------------------------------------
    63   public    :                  Vhdl_Testbench              (string   name);
     68  public    :                  Vhdl_Testbench              (string   name,
     69                                                            bool     exhaustive=true);
    6470  public    : virtual          ~Vhdl_Testbench             ();
    6571                                                           
Note: See TracChangeset for help on using the changeset viewer.