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

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter
Files:
1 added
7 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/include/test.h

    r81 r112  
    1414#include <iostream>
    1515
     16#include "Common/include/Time.h"
    1617#include "Behavioural/Generic/Shifter/include/Shifter.h"
    1718
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/SelfTest/src/test.cpp

    r88 r112  
    9999      (*(_Shifter->out_SHIFTER_DATA      [i])) (SHIFTER_DATA_OUT  [i]);
    100100    }
     101
     102  Time * _time = new Time();
    101103
    102104  /********************************************************
     
    309311   * Simulation - End
    310312   ********************************************************/
     313  delete _time;
    311314
    312315  cout << "<" << name << "> ............ Stop Simulation" << endl;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/include/Parameters.h

    r88 r112  
    2929  public : const uint32_t    _size_data_completion;
    3030  public : const bool        _type_completion_bool;
     31
     32  public : const uint32_t    _size_shift        ;
    3133
    3234  public : const bool        _internal_direction;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Parameters.cpp

    r88 r112  
    2929    _size_data_completion          ((carry != external_completion)?0:((_shift_value==0)?size_data:_shift_value)),
    3030    _type_completion_bool          (type_completion_bool),
     31
     32    _size_shift                    (static_cast<uint32_t>(ceil(log2(_size_data)))),
    3133
    3234    _internal_direction            ((direction == internal_right_shift)?_right :_left      ),
  • 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))
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_deallocation.cpp

    r88 r112  
    77
    88#include "Behavioural/Generic/Shifter/include/Shifter.h"
     9#include "Behavioural/include/Allocation.h"
    910
    1011namespace morpheo                    {
     
    1920      {
    2021#if (defined(STATISTICS) || defined (VHDL_TESTBENCH))
    21     delete     in_CLOCK;
     22        delete     in_CLOCK;
    2223#endif
    2324
    24     delete []  in_SHIFTER_DATA      ;
    25     if (_param->_shift_value == 0)
    26     delete []  in_SHIFTER_SHIFT     ;
    27     if (_param->_direction   == external_direction )
    28     delete []  in_SHIFTER_DIRECTION ;
    29     if (_param->_rotate      == external_rotate    )
    30     delete []  in_SHIFTER_TYPE      ;
    31     if (_param->_carry       == external_carry     )
    32     delete []  in_SHIFTER_CARRY     ;
    33     if (_param->_carry       == external_completion)
    34     if (_param->_type_completion_bool == true)
    35     delete []  in_SHIFTER_CARRY_IN  ;
    36     else
    37     delete []  in_SHIFTER_COMPLETION;
    38     delete [] out_SHIFTER_DATA      ;
     25        DELETE1_SIGNAL( in_SHIFTER_DATA       ,_param->_nb_port,_param->_size_data);
     26        if (_param->_shift_value == 0)
     27        DELETE1_SIGNAL( in_SHIFTER_SHIFT      ,_param->_nb_port,_param->_size_shift);
     28        if (_param->_direction == external_direction)
     29        DELETE1_SIGNAL( in_SHIFTER_DIRECTION  ,_param->_nb_port,1);
     30        if (_param->_rotate == external_rotate)
     31        DELETE1_SIGNAL( in_SHIFTER_TYPE       ,_param->_nb_port,1);
     32        if (_param->_carry == external_carry)
     33        DELETE1_SIGNAL( in_SHIFTER_CARRY      ,_param->_nb_port,1);
     34        if (_param->_carry == external_completion)
     35        {
     36        if (_param->_type_completion_bool == true)
     37          {
     38        DELETE1_SIGNAL( in_SHIFTER_CARRY_IN   ,_param->_nb_port,1);
     39          }
     40        else
     41          {
     42        DELETE1_SIGNAL( in_SHIFTER_COMPLETION ,_param->_nb_port,_param->_size_data_completion);
     43          }
     44        }
     45        DELETE1_SIGNAL(out_SHIFTER_DATA       ,_param->_nb_port,_param->_size_data);
    3946      }
    4047
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Shifter/src/Shifter_vhdl_declaration.cpp

    r81 r112  
    1717  void Shifter::vhdl_declaration (Vhdl * & vhdl)
    1818  {
    19     uint32_t log2_size_data = static_cast<uint32_t>(ceil(log2(_param._size_data)));
     19    uint32_t log2_size_data = static_cast<uint32_t>(ceil(log2(_param->_size_data)));
    2020
    2121    vhdl->set_constant("cst_is_direction_left  ",1,_left      );
     
    2525    vhdl->set_constant("cst_is_carry_arithmetic",1,_arithmetic);
    2626    vhdl->set_constant("cst_is_carry_logic     ",1,_logic     );
    27     vhdl->set_constant("cst_completion         ",_param._size_data,"(others => '1')");
     27    vhdl->set_constant("cst_completion         ",_param->_size_data,"(others => '1')");
    2828   
    29     for (uint32_t i=0; i<_param._nb_port; i++)
     29    for (uint32_t i=0; i<_param->_nb_port; i++)
    3030      {
    31         if (_param._shift_value != 0)
    32           vhdl->set_constant("shift_"+toString(i),log2_size_data, _param._shift_value);
     31        if (_param->_shift_value != 0)
     32          vhdl->set_constant("shift_"+toString(i),log2_size_data, _param->_shift_value);
    3333        else
    3434          vhdl->set_alias   ("shift_"+toString(i),std_logic(log2_size_data), "in_SHIFTER_"+toString(i)+"_SHIFT",std_logic_range(log2_size_data));
    3535       
    36         if (_param._size_data_completion > 0)
     36        if (_param->_size_data_completion > 0)
    3737          {
    38             vhdl->set_signal ("shifter_completion_left_"+toString(i)+" ",_param._size_data);
    39             vhdl->set_signal ("shifter_completion_right_"+toString(i)+"",_param._size_data);
    40             vhdl->set_signal ("mask_completion_left_"+toString(i)+"    ",_param._size_data);
    41             vhdl->set_signal ("mask_completion_right_"+toString(i)+"   ",_param._size_data);
     38            vhdl->set_signal ("shifter_completion_left_"+toString(i)+" ",_param->_size_data);
     39            vhdl->set_signal ("shifter_completion_right_"+toString(i)+"",_param->_size_data);
     40            vhdl->set_signal ("mask_completion_left_"+toString(i)+"    ",_param->_size_data);
     41            vhdl->set_signal ("mask_completion_right_"+toString(i)+"   ",_param->_size_data);
    4242          }
    4343       
    4444        //-----[ Shift logic Left ]--------------------------------------------
    45         if (_param._have_shift_logic_left)
    46           vhdl->set_signal ("shift_logic_left_"+toString(i)+"      ",_param._size_data);
     45        if (_param->_have_shift_logic_left)
     46          vhdl->set_signal ("shift_logic_left_"+toString(i)+"      ",_param->_size_data);
    4747       
    4848        //-----[ Shift logic Right ]-------------------------------------------
    49         if (_param._have_shift_logic_right)
    50           vhdl->set_signal ("shift_logic_right_"+toString(i)+"     ",_param._size_data);
     49        if (_param->_have_shift_logic_right)
     50          vhdl->set_signal ("shift_logic_right_"+toString(i)+"     ",_param->_size_data);
    5151       
    5252        //-----[ Shift arithmetic Left ]---------------------------------------
    53         if (_param._have_shift_arithmetic_left)
    54           vhdl->set_signal ("shift_arithmetic_left_"+toString(i)+" ",_param._size_data);
     53        if (_param->_have_shift_arithmetic_left)
     54          vhdl->set_signal ("shift_arithmetic_left_"+toString(i)+" ",_param->_size_data);
    5555       
    5656        //-----[ Shift arithmetic Right ]--------------------------------------
    57         if (_param._have_shift_arithmetic_right)
    58           vhdl->set_signal ("shift_arithmetic_right_"+toString(i)+"",_param._size_data);
     57        if (_param->_have_shift_arithmetic_right)
     58          vhdl->set_signal ("shift_arithmetic_right_"+toString(i)+"",_param->_size_data);
    5959       
    6060        //-----[ Rotate Left ]-------------------------------------------------
    61         if (_param._have_rotate_left)
    62           vhdl->set_signal ("rotate_left_"+toString(i)+"           ",_param._size_data);
     61        if (_param->_have_rotate_left)
     62          vhdl->set_signal ("rotate_left_"+toString(i)+"           ",_param->_size_data);
    6363       
    6464        //-----[ Rotate Right ]------------------------------------------------
    65         if (_param._have_rotate_right)
    66           vhdl->set_signal ("rotate_right_"+toString(i)+"          ",_param._size_data);
     65        if (_param->_have_rotate_right)
     66          vhdl->set_signal ("rotate_right_"+toString(i)+"          ",_param->_size_data);
    6767      }
    6868  };
Note: See TracChangeset for help on using the changeset viewer.