Ignore:
Timestamp:
Sep 28, 2007, 2:58:08 PM (17 years ago)
Author:
rosiere
Message:
  • VHDL - RegisterFile_Multi_Banked (only partial_crossbar)
  • SystemC - modif Component, interface and co -> ajout du type Tusage_T pour instancier un coposant mais ne demander que le VHDL ou le systemC.
  • Séminaire interne
Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/include
Files:
2 added
5 edited

Legend:

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

    r44 r57  
    2020#include "Common/include/ToString.h"
    2121#include "Common/include/Debug.h"
     22#include "Behavioural/include/Usage.h"
    2223
    2324using namespace std;
     
    2627namespace behavioural          {
    2728
     29  typedef uint8_t Tinstance_t;
     30
     31#define INSTANCE_NONE         0x0
     32#define INSTANCE_LIBRARY      0x1
     33#define INSTANCE_COMPONENT    0x2
     34#define INSTANCE_POSITION     0x4
     35#define INSTANCE_ALL          0x7
     36
     37  typedef struct
     38  {
     39    public : Tinstance_t _instance;
     40    public : Entity         * _entity  ;
     41  } Tcomponent_t;   
     42 
    2843  class Component
    2944  {
    3045    // -----[ fields ]----------------------------------------------------
     46  private   : const Tusage_t        _usage;
    3147  private   : Entity              * _entity        ;
    32   private   : list<Entity *>      * _list_component;
    33    
     48  private   : list<Tcomponent_t*> * _list_component;
     49
    3450    // -----[ methods ]---------------------------------------------------
    35   public    :                       Component         (void);
     51  public    :                       Component         (Tusage_t usage=USE_ALL);
    3652  public    :                       Component         (const Component & component);
    3753  public    :                       ~Component        ();
     
    5268                                                       ,uint32_t   size_y
    5369#endif
     70                                                       ,Tinstance_t instance=INSTANCE_ALL
    5471                                                       );
    5572
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Entity.h

    r44 r57  
    1818#include "Common/include/ToString.h"
    1919#include "Common/include/Debug.h"
     20#include "Behavioural/include/Usage.h"
    2021
    2122using namespace std;
     
    3233  private   : const schema_t        _schema       ;
    3334#endif
     35  private   : const Tusage_t        _usage;
     36
    3437  private   : Interfaces          * _interfaces   ;
    3538
     
    5053                                                       ,schema_t      schema
    5154#endif
     55                                                        ,Tusage_t       usage=USE_ALL
    5256                                                        );
    5357  public    :                        Entity           (const Entity & entity);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface.h

    r44 r57  
    2525#include "Common/include/ErrorMorpheo.h"
    2626#include "Common/include/Debug.h"
     27#include "Behavioural/include/Usage.h"
    2728
    2829using namespace std;
     
    3839  protected : const direction_t     _direction    ;
    3940  protected : const localisation_t  _localisation ;
     41#endif
     42  protected : const Tusage_t        _usage;
     43
     44#ifdef POSITION
    4045  protected :       string          _comment      ;
    4146#endif
     
    5964                                                          ,localisation_t localisation
    6065#endif
     66                                                          ,Tusage_t       usage=USE_ALL
    6167                                                          );
    6268
     
    97103
    98104      Signal    * sig  = set_signal (name, IN , size, presence_port);
    99       sc_in_clk * port = new sc_in_clk (sig->_name.c_str());
    100 
    101       sig->alloc<bool> (static_cast<void *>(port));
     105      sc_in_clk * port;
     106
     107      if (_usage & USE_SYSTEMC)
     108        {
     109          port = new sc_in_clk (sig->_name.c_str());
     110          sig->alloc<bool> (static_cast<void *>(port));
     111        }
     112      else
     113        {
     114          port = NULL;
     115        }
    102116
    103117      log_printf(FUNC,Behavioural,"set_signal_clk","End");
     
    118132
    119133      Signal    * sig  = set_signal (name, IN , size, presence_port);
    120       sc_in <T> * port = new sc_in <T> (sig->_name.c_str());
    121 
    122       sig->alloc<T> (static_cast<void *>(port));
     134      sc_in <T> * port;
     135
     136      if (_usage & USE_SYSTEMC)
     137        {
     138          port = new sc_in <T> (sig->_name.c_str());
     139          sig->alloc<T> (static_cast<void *>(port));
     140        }
     141      else
     142        {
     143          port = NULL;
     144        }
    123145
    124146      log_printf(FUNC,Behavioural,"set_signal_in","End");
     
    139161
    140162      Signal * sig = set_signal (name, OUT , size, presence_port);
    141       sc_out <T> * port = new sc_out <T> (sig->_name.c_str());
    142 
    143       sig->alloc<T> (static_cast<void *>(port));
     163      sc_out <T> * port;
     164
     165      if (_usage & USE_SYSTEMC)
     166        {
     167          port = new sc_out <T> (sig->_name.c_str());
     168          sig->alloc<T> (static_cast<void *>(port));
     169        }
     170      else
     171        {
     172          port = NULL;
     173        }
    144174
    145175      log_printf(FUNC,Behavioural,"set_signal_out","End");
     
    155185
    156186      Signal * sig = set_signal (name, INTERNAL , size, PORT_VHDL_NO_TESTBENCH_NO);
    157       sc_signal <T> * port = new sc_signal <T> (sig->_name.c_str());
    158 
    159       sig->alloc<T> (static_cast<void *>(port));
     187      sc_signal <T> * port;
     188
     189      if (_usage & USE_SYSTEMC)
     190        {
     191          port = new sc_signal <T> (sig->_name.c_str());
     192          sig->alloc<T> (static_cast<void *>(port));
     193        }
     194      else
     195        {
     196          port = NULL;
     197        }
    160198
    161199      log_printf(FUNC,Behavioural,"set_signal_internal","End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interface_fifo.h

    r55 r57  
    4545                                                          ,localisation_t localisation
    4646#endif
     47                                                          ,Tusage_t       usage=USE_ALL
    4748                                                          );
    4849   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Interfaces.h

    r44 r57  
    1818#include "Behavioural/include/Vhdl.h"
    1919#endif
     20#include "Behavioural/include/Usage.h"
    2021
    2122using namespace std;
     
    2829    // -----[ fields ]----------------------------------------------------
    2930  private   : const string               _name;
     31  private   : const Tusage_t             _usage;
    3032  private   : list<Interface_fifo*>    * _list_interface;
    3133
    3234    // -----[ methods ]---------------------------------------------------
    33   public    :                       Interfaces            (string name);
     35  public    :                       Interfaces            (string name,
     36                                                           Tusage_t usage=USE_ALL);
    3437  public    :                       Interfaces            (const Interfaces & interfaces);
    3538  public    :                       ~Interfaces           ();
Note: See TracChangeset for help on using the changeset viewer.