Ignore:
Timestamp:
Feb 2, 2008, 12:39:01 PM (16 years ago)
Author:
rosiere
Message:

Add new component : Read_unit (no tested)
Change functionnal_unit : now use type and operation to execute the good function
Change New_Component's script

File:
1 edited

Legend:

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

    r73 r76  
    4141  }                                                                     
    4242#define ALLOC_SIGNAL_IN(  sig, name, type, size)                        \
    43   {                                                                     \
    44     sig = interface->set_signal_in <type> (name, size);                 \
    45   }                                                                     
     43  if (size > 0)                                                         \
     44    {                                                                   \
     45      sig = interface->set_signal_in <type> (name, size);               \
     46    }                                                                   
    4647#define ALLOC_SIGNAL_OUT( sig, name, type, size)                        \
    47   {                                                                     \
    48     sig = interface->set_signal_out<type> (name, size);                 \
    49   }
     48  if (size > 0)                                                         \
     49    {                                                                   \
     50      sig = interface->set_signal_out<type> (name, size);               \
     51    }
    5052
    5153#define ALLOC_SC_SIGNAL(  sig, name, type)                              \
     
    6163#ifdef POSITION
    6264#define ALLOC1_INTERFACE( name, direction, localisation, str, it1)      \
    63   Interface_fifo * interface [it1];                                     \
     65  const uint32_t iterator_1 = it1;                                      \
     66  Interface_fifo * interface [iterator_1];                              \
    6467  {                                                                     \
    6568    std::string      separator="_";                                     \
    66     for (uint32_t i=0; i<it1; i++)                                      \
     69    for (uint32_t i=0; i<iterator_1; i++)                               \
    6770      {                                                                 \
    6871        interface [i] = _interfaces->set_interface( name+separator+toString(i), direction, localisation, str); \
     
    7174#else
    7275#define ALLOC1_INTERFACE( name, direction, localisation, str, it1)      \
    73   Interface_fifo * interface [it1];                                     \
     76  const uint32_t iterator_1 = it1;                                      \
     77  Interface_fifo * interface [iterator_1];                              \
    7478  {                                                                     \
    7579    std::string      separator="_";                                     \
    76     for (uint32_t i=0; i<it1; i++)                                      \
     80    for (uint32_t i=0; i<iterator_1; i++)                               \
    7781      {                                                                 \
    7882        interface [i] = _interfaces->set_interface( name+separator+toString(i)); \
     
    8286
    8387
    84 #define ALLOC1_VALACK_IN( sig, name, type, it1)                         \
     88#define ALLOC1_VALACK_IN( sig, name, type)                              \
    8589  {                                                                     \
    86     sig = new SC_IN (Tcontrol_t) * [it1];                               \
    87     for (uint32_t i=0; i<it1; i++)                                      \
     90    sig = new SC_IN (Tcontrol_t) * [iterator_1];                        \
     91    for (uint32_t i=0; i<iterator_1; i++)                               \
    8892      {                                                                 \
    8993        sig [i] = interface[i]->set_signal_valack_in (name, type);      \
    9094      }                                                                 \
    9195  }
    92 #define ALLOC1_VALACK_OUT(sig, name, type, it1)                         \
     96#define ALLOC1_VALACK_OUT(sig, name, type)                              \
    9397  {                                                                     \
    94     sig = new SC_OUT(Tcontrol_t) * [it1];                               \
    95     for (uint32_t i=0; i<it1; i++)                                      \
     98    sig = new SC_OUT(Tcontrol_t) * [iterator_1];                        \
     99    for (uint32_t i=0; i<iterator_1; i++)                               \
    96100      {                                                                 \
    97101        sig [i] = interface[i]->set_signal_valack_out(name, type);      \
    98102      }                                                                 \
    99103  }
    100 #define ALLOC1_VAL_IN(    sig, it1)                                     \
     104#define ALLOC1_VAL_IN(    sig                                        \
    101105  {                                                                     \
    102     sig = new SC_IN (Tcontrol_t) * [it1];                               \
    103     for (uint32_t i=0; i<it1; i++)                                      \
     106    sig = new SC_IN (Tcontrol_t) * [iterator_1];                        \
     107    for (uint32_t i=0; i<iterator_1; i++)                               \
    104108      {                                                                 \
    105109        sig [i] = interface[i]->set_signal_valack_in (VAL);             \
    106110      }                                                                 \
    107111  }
    108 #define ALLOC1_VAL_OUT(   sig, it1)                                     \
     112#define ALLOC1_VAL_OUT(   sig                                        \
    109113  {                                                                     \
    110     sig = new SC_OUT(Tcontrol_t) * [it1];                               \
    111     for (uint32_t i=0; i<it1; i++)                                      \
     114    sig = new SC_OUT(Tcontrol_t) * [iterator_1];                        \
     115    for (uint32_t i=0; i<iterator_1; i++)                               \
    112116      {                                                                 \
    113117        sig [i] = interface[i]->set_signal_valack_out(VAL);             \
    114118      }                                                                 \
    115119  }
    116 #define ALLOC1_ACK_IN(    sig, it1)                                     \
     120#define ALLOC1_ACK_IN(    sig                                        \
    117121  {                                                                     \
    118     sig = new SC_IN (Tcontrol_t) * [it1];                               \
    119     for (uint32_t i=0; i<it1; i++)                                      \
     122    sig = new SC_IN (Tcontrol_t) * [iterator_1];                        \
     123    for (uint32_t i=0; i<iterator_1; i++)                               \
    120124      {                                                                 \
    121125        sig [i] = interface[i]->set_signal_valack_in (ACK);             \
    122126      }                                                                 \
    123127  }
    124 #define ALLOC1_ACK_OUT(   sig, it1)                                     \
     128#define ALLOC1_ACK_OUT(   sig                                        \
    125129  {                                                                     \
    126     sig = new SC_OUT(Tcontrol_t) * [it1];                               \
    127     for (uint32_t i=0; i<it1; i++)                                      \
     130    sig = new SC_OUT(Tcontrol_t) * [iterator_1];                        \
     131    for (uint32_t i=0; i<iterator_1; i++)                               \
    128132      {                                                                 \
    129133        sig [i] = interface[i]->set_signal_valack_out(ACK);             \
    130134      }                                                                 \
    131135  }
    132 #define ALLOC1_SIGNAL_IN( sig, name, type, size, it1)                   \
    133   {                                                                     \
    134     sig = new SC_IN (type) * [it1];                                     \
    135     for (uint32_t i=0; i<it1; i++)                                      \
    136       {                                                                 \
    137         sig [i] = interface[i]->set_signal_in <type> (name, size);      \
    138       }                                                                 \
    139   }
     136#define ALLOC1_SIGNAL_IN( sig, name, type, size)                        \
     137  if (size > 0)                                                         \
     138    {                                                                   \
     139      sig = new SC_IN (type) * [iterator_1];                            \
     140      for (uint32_t i=0; i<iterator_1; i++)                             \
     141        {                                                               \
     142          sig [i] = interface[i]->set_signal_in <type> (name, size);    \
     143        }                                                               \
     144    }
    140145
    141 #define ALLOC1_SIGNAL_OUT(sig, name, type, size, it1)                   \
    142   {                                                                     \
    143     sig = new SC_OUT(type) * [it1];                                     \
    144     for (uint32_t i=0; i<it1; i++)                                      \
    145       {                                                                 \
    146         sig [i] = interface[i]->set_signal_out<type> (name, size);      \
    147       }                                                                 \
    148   }
     146#define ALLOC1_SIGNAL_OUT(sig, name, type, size)                        \
     147  if (size > 0)                                                         \
     148    {                                                                   \
     149      sig = new SC_OUT(type) * [iterator_1];                            \
     150      for (uint32_t i=0; i<iterator_1; i++)                             \
     151        {                                                               \
     152          sig [i] = interface[i]->set_signal_out<type> (name, size);    \
     153        }                                                               \
     154    }
    149155
    150156#define ALLOC1_SC_SIGNAL( sig, name, type, it1)                         \
Note: See TracChangeset for help on using the changeset viewer.