Ignore:
Timestamp:
Mar 18, 2009, 11:36:26 PM (15 years ago)
Author:
rosiere
Message:

1) Stat_list : fix retire old and new register bug
2) Stat_list : remove read_counter and valid flag, because validation of destination is in retire step (not in commit step)
3) Model : add class Model (cf Morpheo.sim)
4) Allocation : alloc_interface_begin and alloc_interface_end to delete temporary array.
5) Script : add distexe.sh
6) Add Comparator, Multiplier, Divider. But this component are not implemented
7) Software : add Dhrystone

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_allocation.cpp

    r88 r112  
    77
    88#include "Behavioural/Generic/Shifter/include/Shifter.h"
     9#include "Behavioural/include/Allocation.h"
    910
    1011namespace morpheo                    {
     
    3334                                                              , IN 
    3435                                                              , SOUTH
    35                                                               , "Generalist interface"
     36                                                              , _("Generalist interface")
    3637#endif
    3738                                                              );
     
    4344   
    4445    {
    45       // Interface "shifter"
    46        in_SHIFTER_DATA      = new SC_IN (Tdata_t)      * [_param->_nb_port];
     46      ALLOC1_INTERFACE_BEGIN("shifter", IN, SOUTH,_("Generalist interface"),_param->_nb_port);
     47     
     48      ALLOC1_SIGNAL_IN ( in_SHIFTER_DATA       ,"data"      ,Tdata_t     ,_param->_size_data);
    4749      if (_param->_shift_value == 0)
    48        in_SHIFTER_SHIFT     = new SC_IN (Tshift_t)     * [_param->_nb_port];
    49       if (_param->_direction   == external_direction)
    50        in_SHIFTER_DIRECTION = new SC_IN (Tdirection_t) * [_param->_nb_port];
    51       if (_param->_rotate      == external_rotate)
    52        in_SHIFTER_TYPE      = new SC_IN (Ttype_t)      * [_param->_nb_port];
    53       if (_param->_carry       == external_carry)
    54        in_SHIFTER_CARRY     = new SC_IN (Tcarry_t)     * [_param->_nb_port];
    55       if (_param->_carry       == external_completion)
     50      ALLOC1_SIGNAL_IN ( in_SHIFTER_SHIFT      ,"shift"     ,Tshift_t    ,_param->_size_shift);
     51      if (_param->_direction == external_direction)
     52      ALLOC1_SIGNAL_IN ( in_SHIFTER_DIRECTION  ,"direction" ,Tdirection_t,1);
     53      if (_param->_rotate == external_rotate)
     54      ALLOC1_SIGNAL_IN ( in_SHIFTER_TYPE       ,"type"      ,Ttype_t     ,1);
     55      if (_param->_carry == external_carry)
     56      ALLOC1_SIGNAL_IN ( in_SHIFTER_CARRY      ,"carry"     ,Tcarry_t    ,1);
     57      if (_param->_carry == external_completion)
     58      {
    5659      if (_param->_type_completion_bool == true)
    57        in_SHIFTER_CARRY_IN  = new SC_IN (Tcontrol_t)   * [_param->_nb_port];
     60        {
     61      ALLOC1_SIGNAL_IN ( in_SHIFTER_CARRY_IN   ,"carry_in"  ,Tcontrol_t  ,1);
     62        }
    5863      else
    59        in_SHIFTER_COMPLETION= new SC_IN (Tdata_t)      * [_param->_nb_port];
    60       out_SHIFTER_DATA      = new SC_OUT(Tdata_t)      * [_param->_nb_port];
     64        {
     65      ALLOC1_SIGNAL_IN ( in_SHIFTER_COMPLETION ,"completion",Tdata_t     ,_param->_size_data_completion);
     66        }
     67      }
     68      ALLOC1_SIGNAL_OUT(out_SHIFTER_DATA       ,"data"      ,Tdata_t     ,_param->_size_data);
    6169     
    62       for (uint32_t i=0; i<_param->_nb_port; i++)
    63         {
    64           Interface_fifo * interface = _interfaces->set_interface("shifter_"+toString(i)
    65 #ifdef POSITION
    66                                                                   , IN 
    67                                                                   , SOUTH
    68                                                                   , "Generalist interface"
    69 #endif
    70                                                                   );
    71          
    72            in_SHIFTER_DATA       [i] = interface->set_signal_in  <Tdata_t     > ("data"      ,_param->_size_data);
    73           if (_param->_shift_value == 0)
    74            in_SHIFTER_SHIFT      [i] = interface->set_signal_in  <Tshift_t    > ("shift"     ,static_cast<uint32_t>(ceil(log2(_param->_size_data))));
    75           if (_param->_direction == external_direction)
    76            in_SHIFTER_DIRECTION  [i] = interface->set_signal_in  <Tdirection_t> ("direction" ,1);
    77           if (_param->_rotate  == external_rotate)
    78            in_SHIFTER_TYPE       [i] = interface->set_signal_in  <Ttype_t     > ("type"      ,1);
    79           if (_param->_carry == external_carry)
    80            in_SHIFTER_CARRY      [i] = interface->set_signal_in  <Tcarry_t    > ("carry"     ,1);
    81           if (_param->_carry       == external_completion)
    82           if (_param->_type_completion_bool == true)
    83            in_SHIFTER_CARRY_IN   [i] = interface->set_signal_in  <Tcontrol_t  > ("carry_in"  ,1);
    84           else
    85            in_SHIFTER_COMPLETION [i] = interface->set_signal_in  <Tdata_t     > ("completion",_param->_size_data_completion);
    86           out_SHIFTER_DATA       [i] = interface->set_signal_out <Tdata_t     > ("data"      ,_param->_size_data);
    87         }
     70      ALLOC1_INTERFACE_END(_param->_nb_port);
    8871    }
    89 
     72   
    9073#ifdef POSITION
    9174    if (usage_is_set(_usage,USE_POSITION))
Note: See TracChangeset for help on using the changeset viewer.