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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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
Note: See TracChangeset for help on using the changeset viewer.