Ignore:
Timestamp:
May 31, 2007, 11:22:29 PM (17 years ago)
Author:
rosiere
Message:

Interface et vhdl_testbench : l'appel aux fonction add_input et add_ouput est maintenant réalisé par la classe Interface (et autre).

2 remarques :

  • tester avec des sous composants (en particulier les sorties d'un est directement relié au sortie d'un autre)
  • Signal_testbench.cpp -> l'optimisé (par exemple pointeur de fonction afin d'éviter le test et le switch)
Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/include
Files:
6 edited

Legend:

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

    r15 r38  
    88#define     DEBUG_Shifter                                   false
    99#define     DEBUG_Register_File                             false
    10 #define     DEBUG_RegisterFile_Multi_Banked                 true
    11 #define       DEBUG_RegisterFile_Multi_Banked_Glue          true
     10#define     DEBUG_RegisterFile_Multi_Banked                 false
     11#define       DEBUG_RegisterFile_Multi_Banked_Glue          false
    1212#define     DEBUG_Select                                    false
    13 #define       DEBUG_Select_Priority_Fixed                   true
     13#define       DEBUG_Select_Priority_Fixed                   false
    1414#define     DEBUG_Victim                                    false
    1515#define       DEBUG_Victim_Pseudo_LRU                       false
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Entity.h

    r31 r38  
    5757  public    : Interface  *          find_interface    (string name);
    5858
    59   public    : void                  mapping           (uint32_t size_x,
    60                                                        uint32_t size_y,
    61                                                        uint32_t pos_x ,
    62                                                        uint32_t pos_y );
     59  public    : void                  mapping           (uint32_t pos_x,
     60                                                       uint32_t pos_y,
     61                                                       uint32_t size_x ,
     62                                                       uint32_t size_y );
    6363
    6464  public    : XML                   toXML             (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h

    r31 r38  
    4444  private   :       string          _comment      ;
    4545
     46  private   : list<Signal *>      * _list_signal  ;
     47
     48
    4649#ifdef POSITION
    4750  private   :       bool            _is_map       ;
     
    4952  private   :       void          * _interface_map; // pour être homogène avec _entity_map
    5053#endif
    51   private   : list<Signal>        * _list_signal  ;
    5254
    5355    // -----[ methods ]---------------------------------------------------
     
    7375                                                          presence_port_t presence_port=PORT_VHDL_YES_TESTBENCH_YES)
    7476    {
     77      log_printf(FUNC,Behavioural,"set_signal_clk","Begin");
     78
    7579      Signal * sig = set_signal (name, IN , size, presence_port);
    7680      sc_in_clk * signal = new sc_in_clk (sig->_name.c_str());
     81
     82      log_printf(FUNC,Behavioural,"set_signal_clk","End");
     83
    7784      return signal;
    7885    };
     
    8390                                                         presence_port_t presence_port=PORT_VHDL_YES_TESTBENCH_YES)
    8491    {
     92      log_printf(FUNC,Behavioural,"set_signal_in","Begin");
     93
    8594      Signal * sig = set_signal (name, IN , size, presence_port);
    86       sc_in <T> * signal = new sc_in <T> (sig->_name.c_str());
    87       return signal;
     95      sc_in <T> * port = new sc_in <T> (sig->_name.c_str());
     96#ifdef VHDL_TESTBENCH
     97      sig->alloc<T> (static_cast<void *>(port));
     98#endif
     99
     100      log_printf(FUNC,Behavioural,"set_signal_in","End");
     101
     102      return port;
    88103    };
    89104
     
    93108                                                         presence_port_t presence_port=PORT_VHDL_YES_TESTBENCH_YES)
    94109    {
     110      log_printf(FUNC,Behavioural,"set_signal_out","Begin");
     111
    95112      Signal * sig = set_signal (name, OUT , size, presence_port);
    96       sc_out <T> * signal = new sc_out <T> (sig->_name.c_str());
    97       return signal;
     113      sc_out <T> * port = new sc_out <T> (sig->_name.c_str());
     114#ifdef VHDL_TESTBENCH
     115      sig->alloc<T> (static_cast<void *>(port));
     116#endif
     117
     118      log_printf(FUNC,Behavioural,"set_signal_out","End");
     119
     120      return port;
    98121    };
    99122#endif
     
    111134#endif
    112135
     136#ifdef VHDL_TESTBENCH
     137  public    : void                  testbench            (Vhdl_Testbench * & vhdl_testbench);
     138#endif
     139
    113140  public    : XML                   toXML                (void);
    114141#ifdef POSITION
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h

    r31 r38  
    3030  {
    3131    // -----[ fields ]----------------------------------------------------
    32   private   : list<Interface>     * _list_interface;
     32  private   : list<Interface*>    * _list_interface;
    3333
    3434    // -----[ methods ]---------------------------------------------------
     
    5555  public    : Interface  *          find_interface        (string name);
    5656
     57#ifdef VHDL_TESTBENCH
     58  public    : void                  testbench             (Vhdl_Testbench * & vhdl_testbench);
     59#endif
     60
    5761  public    : XML                   toXML                 (void);
    5862#ifdef POSITION
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Position.h

    r31 r38  
    3838  private   : string                get_entity        (void);
    3939
    40   public    : void                  set_component     (Entity * entity,
    41                                                        uint32_t size_x,
    42                                                        uint32_t size_y,
    43                                                        uint32_t pos_x ,
    44                                                        uint32_t pos_y );
     40  public    : void                  set_component     (Position * position,
     41                                                       uint32_t   pos_x  ,
     42                                                       uint32_t   pos_y  ,
     43                                                       uint32_t   size_x ,
     44                                                       uint32_t   size_y );
    4545
    4646  private   : string                get_component     (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Signal.h

    r31 r38  
    99 */
    1010
     11#ifdef SYSTEMC
     12#include "systemc.h"
     13#endif
     14
    1115#include <stdint.h>
    1216#include <iostream>
     17
     18#ifdef VHDL_TESTBENCH
     19#include "Behavioural/include/Vhdl_Testbench.h"
     20#endif
     21
    1322#include "Behavioural/include/Direction.h"
    1423#include "Behavioural/include/XML.h"
     24#include "Include/ErrorMorpheo.h"
    1525#include "Include/ToString.h"
    1626#include "Include/Debug.h"
     
    2030namespace morpheo              {
    2131namespace behavioural          {
     32
     33  typedef enum {UNKNOW                     ,
     34                BOOL                       ,
     35                UINT8_T                    ,
     36                UINT16_T                   ,
     37                UINT32_T                   ,
     38                UINT64_T                   } type_info_t;
    2239
    2340  typedef enum {PORT_VHDL_YES_TESTBENCH_YES,
     
    3653  private   : const presence_port_t _presence_port;
    3754
     55#ifdef VHDL_TESTBENCH
     56  private   : void *                _signal       ;
     57  private   : type_info_t           _type_info    ;
     58#endif
     59
    3860    // -----[ methods ]---------------------------------------------------
    3961  public    :                   Signal          (string          name          ,
     
    4365  public    :                   Signal          (const Signal &);
    4466  public    :                   ~Signal         ();
     67
     68#ifdef VHDL_TESTBENCH
     69  public    : void              testbench       (Vhdl_Testbench * & vhdl_testbench);
     70
     71  public    : template <typename T>
     72              void              alloc           (void * port)
     73    {
     74      if (_type_info != UNKNOW)
     75        throw (ErrorMorpheo ("Signal \""+_name+"\" : already allocate."));
     76
     77      _signal    = port;
     78
     79      if (typeid(T) == typeid(bool    ))
     80        _type_info = BOOL;
     81      else
     82      if (typeid(T) == typeid(uint8_t ))
     83        _type_info = UINT8_T;
     84      else
     85      if (typeid(T) == typeid(uint16_t))
     86        _type_info = UINT16_T;
     87      else
     88      if (typeid(T) == typeid(uint32_t))
     89        _type_info = UINT32_T;
     90      else
     91      if (typeid(T) == typeid(uint64_t))
     92        _type_info = UINT64_T;
     93      else
     94        _type_info = UNKNOW;
     95    }
     96#endif
    4597
    4698  public    : XML               toXML           (void);
Note: See TracChangeset for help on using the changeset viewer.