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/Core/Multi_Front_end/Front_end/Decod_unit
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/src/test.cpp

    r110 r112  
    104104  ALLOC1_SC_SIGNAL( in_CONTEXT_DEPTH_VAL                  ," in_CONTEXT_DEPTH_VAL                  ",Tcontrol_t         ,_param->_nb_context);
    105105  ALLOC1_SC_SIGNAL( in_CONTEXT_DEPTH                      ," in_CONTEXT_DEPTH                      ",Tdepth_t           ,_param->_nb_context);
    106   ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_VAL                  ,"out_CONTEXT_EVENT_VAL                  ",Tcontrol_t         );
    107   ALLOC_SC_SIGNAL ( in_CONTEXT_EVENT_ACK                  ," in_CONTEXT_EVENT_ACK                  ",Tcontrol_t         );
    108   ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_CONTEXT_ID           ,"out_CONTEXT_EVENT_CONTEXT_ID           ",Tcontext_t         );
    109   ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_DEPTH                ,"out_CONTEXT_EVENT_DEPTH                ",Tdepth_t           );
    110   ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_TYPE                 ,"out_CONTEXT_EVENT_TYPE                 ",Tevent_type_t      );
    111   ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_IS_DELAY_SLOT        ,"out_CONTEXT_EVENT_IS_DELAY_SLOT        ",Tcontrol_t         );
    112   ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_ADDRESS              ,"out_CONTEXT_EVENT_ADDRESS              ",Tgeneral_data_t    );
    113   ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_ADDRESS_EPCR         ,"out_CONTEXT_EVENT_ADDRESS_EPCR         ",Tgeneral_data_t    );
     106  ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_VAL                  ,"out_CONTEXT_EVENT_VAL                  ",Tcontrol_t         );
     107  ALLOC0_SC_SIGNAL( in_CONTEXT_EVENT_ACK                  ," in_CONTEXT_EVENT_ACK                  ",Tcontrol_t         );
     108  ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID           ,"out_CONTEXT_EVENT_CONTEXT_ID           ",Tcontext_t         );
     109  ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_DEPTH                ,"out_CONTEXT_EVENT_DEPTH                ",Tdepth_t           );
     110  ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_TYPE                 ,"out_CONTEXT_EVENT_TYPE                 ",Tevent_type_t      );
     111  ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT        ,"out_CONTEXT_EVENT_IS_DELAY_SLOT        ",Tcontrol_t         );
     112  ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS              ,"out_CONTEXT_EVENT_ADDRESS              ",Tgeneral_data_t    );
     113  ALLOC0_SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR         ,"out_CONTEXT_EVENT_ADDRESS_EPCR         ",Tgeneral_data_t    );
    114114 
    115115  /********************************************************
     
    135135    {
    136136      if (_param->_have_port_inst_ifetch_ptr)
    137         INSTANCE_SC_SIGNAL(_Decod, in_IFETCH_INST_IFETCH_PTR [i]);
     137        INSTANCE0_SC_SIGNAL(_Decod, in_IFETCH_INST_IFETCH_PTR [i]);
    138138//       if (_param->_have_port_branch_update_prediction_id)
    139139      if (_param->_have_port_depth)
    140         INSTANCE_SC_SIGNAL(_Decod, in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i]);
     140        INSTANCE0_SC_SIGNAL(_Decod, in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i]);
    141141    }
    142142
     
    188188  for (uint32_t i=0; i<_param->_nb_context; i++)
    189189    if (_param->_have_port_depth)
    190       INSTANCE_SC_SIGNAL(_Decod, in_CONTEXT_DEPTH [i]);
    191   INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_VAL                  );
    192   INSTANCE_SC_SIGNAL (_Decod, in_CONTEXT_EVENT_ACK                  );
     190      INSTANCE0_SC_SIGNAL(_Decod, in_CONTEXT_DEPTH [i]);
     191  INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_VAL                  );
     192  INSTANCE0_SC_SIGNAL(_Decod, in_CONTEXT_EVENT_ACK                  );
    193193  if (_param->_have_port_context_id)
    194   INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_CONTEXT_ID           );
     194  INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_CONTEXT_ID           );
    195195  if (_param->_have_port_depth)
    196   INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_DEPTH                );
    197   INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_TYPE                 );
    198   INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_IS_DELAY_SLOT        );
    199   INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_ADDRESS              );
    200   INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_ADDRESS_EPCR         );
     196  INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_DEPTH                );
     197  INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_TYPE                 );
     198  INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_IS_DELAY_SLOT        );
     199  INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_ADDRESS              );
     200  INSTANCE0_SC_SIGNAL(_Decod,out_CONTEXT_EVENT_ADDRESS_EPCR         );
    201201
    202202  msg(_("<%s> : Start Simulation ............\n"),name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Parameters.h

    r88 r112  
    2323namespace decod {
    2424
     25    const uint32_t nb_opcod_type = 14;
     26    const uint32_t tab_opcod_type [] = {MAX_OPCOD_0,
     27                                        MAX_OPCOD_1 ,
     28                                        MAX_OPCOD_2 ,
     29                                        MAX_OPCOD_3 ,
     30                                        MAX_OPCOD_4 ,
     31                                        MAX_OPCOD_5 ,
     32                                        MAX_OPCOD_6 ,
     33                                        MAX_OPCOD_7 ,
     34                                        MAX_OPCOD_8 ,
     35                                        MAX_OPCOD_9 ,
     36                                        MAX_OPCOD_10,
     37                                        MAX_OPCOD_11,
     38                                        MAX_OPCOD_12,
     39                                        MAX_OPCOD_13};
     40
    2541  class Parameters : public morpheo::behavioural::Parameters
    2642  {
     
    3753  public : bool             ** _instruction_implemeted       ; //[nb_context][nb_instruction]
    3854  public : morpheo::behavioural::custom::custom_information_t (*_get_custom_information) (void);
    39    
     55
    4056  public : uint32_t            _max_nb_inst_fetch;
    4157//public : uint32_t            _size_address_inst;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_allocation.cpp

    r110 r112  
    5858    // ~~~~~[ Interface : "ifetch" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    5959    {
    60       ALLOC2_INTERFACE("ifetch", IN, WEST, "Instruction's bundle", _param->_nb_context, _param->_nb_inst_fetch[it1]);
     60      ALLOC2_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context, _param->_nb_inst_fetch[it1]);
    6161
    6262     
     
    6464      _ALLOC2_VALACK_OUT(out_IFETCH_ACK        ,ACK, _param->_nb_context, _param->_nb_inst_fetch[it1]);
    6565      _ALLOC2_SIGNAL_IN ( in_IFETCH_INSTRUCTION,"instruction", Tinstruction_t, _param->_size_instruction,_param->_nb_context, _param->_nb_inst_fetch[it1]);
    66     }
    67     {
    68       ALLOC1_INTERFACE("ifetch", IN, WEST, "Instruction's bundle", _param->_nb_context);
     66
     67      ALLOC2_INTERFACE_END(_param->_nb_context, _param->_nb_inst_fetch[it1]);
     68    }
     69    {
     70      ALLOC1_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context);
    6971     
     72
    7073      ALLOC1_SIGNAL_IN (in_IFETCH_CONTEXT_ID                 ,"context_id"                 ,Tcontext_t         ,_param->_size_context_id      );
    7174      ALLOC1_SIGNAL_IN (in_IFETCH_ADDRESS                    ,"address"                    ,Tgeneral_address_t ,_param->_size_instruction_address    );
     
    7578      ALLOC1_SIGNAL_IN (in_IFETCH_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t  ,_param->_size_depth           );
    7679      ALLOC1_SIGNAL_IN (in_IFETCH_EXCEPTION                  ,"exception"                  ,Texception_t       ,_param->_size_exception_ifetch);
     80
     81      ALLOC1_INTERFACE_END(_param->_nb_context);
    7782    }
    7883
    7984    // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
    8085    {
    81       ALLOC1_INTERFACE("decod", OUT, EAST, "Instructiont decoded", _param->_nb_inst_decod);
     86      ALLOC1_INTERFACE_BEGIN("decod", OUT, EAST, _("Instructiont decoded"), _param->_nb_inst_decod);
    8287
    8388      ALLOC1_VALACK_OUT(out_DECOD_VAL          ,VAL);
     
    107112      ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION_USE,"exception_use",Texception_t      ,_param->_size_exception_use         );
    108113      ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION    ,"exception"    ,Texception_t      ,_param->_size_exception_decod       );
     114
     115      ALLOC1_INTERFACE_END(_param->_nb_inst_decod);
    109116    }
    110117
    111118    // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    112119    {
    113       ALLOC1_INTERFACE("predict",OUT,NORTH,"Decod a branch -> inform the branch predictor.",_param->_nb_inst_decod);
     120      ALLOC1_INTERFACE_BEGIN("predict",OUT,NORTH,_("Decod a branch -> inform the branch predictor."),_param->_nb_inst_decod);
    114121
    115122      ALLOC1_VALACK_OUT(out_PREDICT_VAL                        ,VAL);
     
    125132      ALLOC1_SIGNAL_OUT(out_PREDICT_ADDRESS_DEST               ,"address_dest"               ,Tgeneral_data_t    ,_param->_size_instruction_address    );
    126133      ALLOC1_SIGNAL_IN ( in_PREDICT_CAN_CONTINUE               ,"can_continue"               ,Tcontrol_t         ,1                             );
     134
     135      ALLOC1_INTERFACE_END(_param->_nb_inst_decod);
    127136    }
    128137   
    129138    // ~~~~~[ Interface : "context" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    130139    {
    131       ALLOC1_INTERFACE("context", IN, NORTH, "context's information", _param->_nb_context);
     140      ALLOC1_INTERFACE_BEGIN("context", IN, NORTH, _("context's information"), _param->_nb_context);
    132141
    133142      ALLOC1_SIGNAL_IN (in_CONTEXT_DECOD_ENABLE,"decod_enable",Tcontrol_t,1);
    134143      ALLOC1_SIGNAL_IN (in_CONTEXT_DEPTH_VAL   ,"depth_val"   ,Tcontrol_t,1);
    135144      ALLOC1_SIGNAL_IN (in_CONTEXT_DEPTH       ,"depth"       ,Tdepth_t  ,_param->_size_depth);
     145
     146      ALLOC1_INTERFACE_END(_param->_nb_context);
    136147    }
    137148
    138149    // ~~~~~[ Interface : "context_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
    139150    {
    140       ALLOC_INTERFACE("context_event", OUT, NORTH, "context's evenement");
    141 
    142       ALLOC_VALACK_OUT(out_CONTEXT_EVENT_VAL          ,VAL);
    143       ALLOC_VALACK_IN ( in_CONTEXT_EVENT_ACK          ,ACK);
    144       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id  );
    145       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_DEPTH        ,"depth"        ,Tdepth_t       ,_param->_size_depth       );
    146       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_TYPE         ,"type"         ,Tevent_type_t  ,_param->_size_event_type  );
    147       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t     ,1                         );
    148       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS      ,"address"      ,Tgeneral_data_t,_param->_size_instruction_address);
    149       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS_EPCR ,"address_epcr" ,Tgeneral_data_t,_param->_size_instruction_address);
     151      ALLOC0_INTERFACE_BEGIN("context_event", OUT, NORTH, _("context's evenement"));
     152
     153      ALLOC0_VALACK_OUT(out_CONTEXT_EVENT_VAL          ,VAL);
     154      ALLOC0_VALACK_IN ( in_CONTEXT_EVENT_ACK          ,ACK);
     155      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id  );
     156      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_DEPTH        ,"depth"        ,Tdepth_t       ,_param->_size_depth       );
     157      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_TYPE         ,"type"         ,Tevent_type_t  ,_param->_size_event_type  );
     158      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t     ,1                         );
     159      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS      ,"address"      ,Tgeneral_data_t,_param->_size_instruction_address);
     160      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS_EPCR ,"address_epcr" ,Tgeneral_data_t,_param->_size_instruction_address);
     161
     162      ALLOC0_INTERFACE_END();
    150163    }
    151164
     
    154167    if (usage_is_set(_usage,USE_SYSTEMC))
    155168      {
    156     reg_CONTEXT_ADDRESS_PREVIOUS      = new Tgeneral_data_t [_param->_nb_context];
    157     reg_CONTEXT_IS_DELAY_SLOT         = new Tcontrol_t      [_param->_nb_context];
    158 
    159     internal_CONTEXT_HAVE_TRANSACTION = new Tcontrol_t      [_param->_nb_context];
    160     internal_CONTEXT_ADDRESS_PREVIOUS = new Tgeneral_data_t [_param->_nb_context];
    161     internal_CONTEXT_IS_DELAY_SLOT    = new Tcontrol_t      [_param->_nb_context];
     169    ALLOC1(reg_CONTEXT_ADDRESS_PREVIOUS      ,Tgeneral_data_t,_param->_nb_context);
     170    ALLOC1(reg_CONTEXT_IS_DELAY_SLOT         ,Tcontrol_t     ,_param->_nb_context);
     171
     172    ALLOC1(internal_CONTEXT_HAVE_TRANSACTION ,Tcontrol_t     ,_param->_nb_context);
     173    ALLOC1(internal_CONTEXT_ADDRESS_PREVIOUS ,Tgeneral_data_t,_param->_nb_context);
     174    ALLOC1(internal_CONTEXT_IS_DELAY_SLOT    ,Tcontrol_t     ,_param->_nb_context);
    162175
    163176#ifdef STATISTICS
    164     internal_DECOD_VAL                = new Tcontrol_t      [_param->_nb_inst_decod];
     177    ALLOC1(internal_DECOD_VAL                ,Tcontrol_t     ,_param->_nb_inst_decod);
    165178#endif
    166179      }
     
    174187                                                 _param->_nb_context_select);
    175188
    176     const uint32_t nb_opcod_type = 14;
    177     const uint32_t tab_opcod_type [] = {MAX_OPCOD_0,
    178                                         MAX_OPCOD_1 ,
    179                                         MAX_OPCOD_2 ,
    180                                         MAX_OPCOD_3 ,
    181                                         MAX_OPCOD_4 ,
    182                                         MAX_OPCOD_5 ,
    183                                         MAX_OPCOD_6 ,
    184                                         MAX_OPCOD_7 ,
    185                                         MAX_OPCOD_8 ,
    186                                         MAX_OPCOD_9 ,
    187                                         MAX_OPCOD_10,
    188                                         MAX_OPCOD_11,
    189                                         MAX_OPCOD_12,
    190                                         MAX_OPCOD_13};
    191    
    192     _function_decod  = new function_decod_t *** [_param->_nb_context];
    193     _function_custom = new function_decod_t *** [_param->_nb_context];
     189    ALLOC3(_function_decod ,function_decod_t *,_param->_nb_context,nb_opcod_type,tab_opcod_type[it2]);
     190    ALLOC3(_function_custom,function_decod_t *,_param->_nb_context,nb_opcod_type,tab_opcod_type[it2]);
     191
    194192    for (uint32_t i=0; i<_param->_nb_context; i++)
    195193      {
    196         _function_decod  [i] = new function_decod_t ** [nb_opcod_type];
    197         _function_custom [i] = new function_decod_t ** [nb_opcod_type];
    198194        for (uint32_t j=0; j<nb_opcod_type; j++)
    199           {
    200             _function_decod  [i][j] = new function_decod_t * [tab_opcod_type[j]];
    201             _function_custom [i][j] = new function_decod_t * [tab_opcod_type[j]];
    202             for (uint32_t k=0; k<tab_opcod_type[j]; k++)
    203               {
    204                 _function_decod  [i][j][k] = &(instruction_illegal);
    205                 _function_custom [i][j][k] = &(instruction_illegal);
    206               }
    207           }
     195          for (uint32_t k=0; k<tab_opcod_type[j]; k++)
     196            {
     197              _function_decod  [i][j][k] = &(instruction_illegal);
     198              _function_custom [i][j][k] = &(instruction_illegal);
     199            }
    208200
    209201        // Create indirection
     
    454446      }
    455447
    456     _decod_instruction = new decod_instruction_t;
    457 
    458     _decod_param = new decod_param_t * [_param->_nb_context];
     448    ALLOC0(_decod_instruction,decod_instruction_t);
     449    ALLOC1(_decod_param,decod_param_t *,_param->_nb_context);
     450
    459451    for (uint32_t i=0; i<_param->_nb_context; i++)
    460452      _decod_param [i] = new decod_param_t (_param->_size_general_data,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp

    r110 r112  
    8585        DELETE1_SIGNAL(in_CONTEXT_DEPTH       , _param->_nb_context,_param->_size_depth);
    8686
    87         DELETE_SIGNAL (out_CONTEXT_EVENT_VAL          ,1);
    88         DELETE_SIGNAL ( in_CONTEXT_EVENT_ACK          ,1);
    89         DELETE_SIGNAL (out_CONTEXT_EVENT_CONTEXT_ID   ,_param->_size_context_id  );
    90         DELETE_SIGNAL (out_CONTEXT_EVENT_DEPTH        ,_param->_size_depth       );
    91         DELETE_SIGNAL (out_CONTEXT_EVENT_TYPE         ,_param->_size_event_type  );
    92         DELETE_SIGNAL (out_CONTEXT_EVENT_IS_DELAY_SLOT,1                         );
    93         DELETE_SIGNAL (out_CONTEXT_EVENT_ADDRESS      ,_param->_size_instruction_address);
    94         DELETE_SIGNAL (out_CONTEXT_EVENT_ADDRESS_EPCR ,_param->_size_instruction_address);
     87        DELETE0_SIGNAL(out_CONTEXT_EVENT_VAL          ,1);
     88        DELETE0_SIGNAL( in_CONTEXT_EVENT_ACK          ,1);
     89        DELETE0_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID   ,_param->_size_context_id  );
     90        DELETE0_SIGNAL(out_CONTEXT_EVENT_DEPTH        ,_param->_size_depth       );
     91        DELETE0_SIGNAL(out_CONTEXT_EVENT_TYPE         ,_param->_size_event_type  );
     92        DELETE0_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT,1                         );
     93        DELETE0_SIGNAL(out_CONTEXT_EVENT_ADDRESS      ,_param->_size_instruction_address);
     94        DELETE0_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR ,_param->_size_instruction_address);
    9595
    9696
    97    
    98         delete    reg_CONTEXT_ADDRESS_PREVIOUS      ;
    99         delete [] reg_CONTEXT_IS_DELAY_SLOT         ;
    100        
    101         delete [] internal_CONTEXT_HAVE_TRANSACTION ;
    102         delete [] internal_CONTEXT_ADDRESS_PREVIOUS ;
    103         delete [] internal_CONTEXT_IS_DELAY_SLOT    ;
    104        
     97        DELETE1(reg_CONTEXT_ADDRESS_PREVIOUS      ,_param->_nb_context);
     98        DELETE1(reg_CONTEXT_IS_DELAY_SLOT         ,_param->_nb_context);
     99        DELETE1(internal_CONTEXT_HAVE_TRANSACTION ,_param->_nb_context);
     100        DELETE1(internal_CONTEXT_ADDRESS_PREVIOUS ,_param->_nb_context);
     101        DELETE1(internal_CONTEXT_IS_DELAY_SLOT    ,_param->_nb_context);
     102
    105103#ifdef STATISTICS
    106         delete [] internal_DECOD_VAL;
     104        DELETE1(internal_DECOD_VAL                ,_param->_nb_inst_decod);
    107105#endif
    108106      }
     
    111109    delete    _priority;
    112110
    113 
    114     const uint32_t nb_opcod_type = 14;
     111    DELETE3(_function_decod   ,_param->_nb_context,nb_opcod_type,tab_opcod_type[it2]);
     112    DELETE3(_function_custom  ,_param->_nb_context,nb_opcod_type,tab_opcod_type[it2]);
     113    DELETE0(_decod_instruction);
    115114
    116115    for (uint32_t i=0; i<_param->_nb_context; i++)
    117       {
    118         for (uint32_t j=0; j<nb_opcod_type; j++)
    119           {
    120             delete [] _function_decod  [i][j];
    121             delete [] _function_custom [i][j];
    122           }
    123         delete [] _function_decod  [i];
    124         delete [] _function_custom [i];
    125       }
    126     delete [] _function_decod ;
    127     delete [] _function_custom;
    128     delete    _decod_instruction;
    129     delete    _decod_param      ;
     116      delete _decod_param [i];
     117    DELETE1(_decod_param      ,_param->_nb_context);
     118
    130119    delete    _component;
    131120
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h

    r111 r112  
    1010
    1111#include "Behavioural/include/Types.h"
     12#include "Behavioural/include/Allocation.h"
    1213
    1314namespace morpheo {
     
    5859    _nb_inst (nb_inst)
    5960    {
    60       _val            = new Tcontrol_t         [_nb_inst];
    61       _context_id     = new Tcontext_t         [_nb_inst];
    62       _depth          = new Tdepth_t           [_nb_inst];
    63       _type           = new Ttype_t            [_nb_inst];
    64       _operation      = new Toperation_t       [_nb_inst];
    65       _no_execute     = new Tcontrol_t         [_nb_inst];
    66       _is_delay_slot  = new Tcontrol_t         [_nb_inst];
     61      ALLOC1(_val            ,Tcontrol_t         ,_nb_inst);
     62      ALLOC1(_context_id     ,Tcontext_t         ,_nb_inst);
     63      ALLOC1(_depth          ,Tdepth_t           ,_nb_inst);
     64      ALLOC1(_type           ,Ttype_t            ,_nb_inst);
     65      ALLOC1(_operation      ,Toperation_t       ,_nb_inst);
     66      ALLOC1(_no_execute     ,Tcontrol_t         ,_nb_inst);
     67      ALLOC1(_is_delay_slot  ,Tcontrol_t         ,_nb_inst);
    6768#ifdef DEBUG
    68       _address        = new Tgeneral_data_t    [_nb_inst];
     69      ALLOC1(_address        ,Tgeneral_data_t    ,_nb_inst);
    6970#endif
    70       _address_next   = new Tgeneral_data_t    [_nb_inst];
    71       _has_immediat   = new Tcontrol_t         [_nb_inst];
    72       _immediat       = new Tgeneral_data_t    [_nb_inst];
    73       _read_ra        = new Tcontrol_t         [_nb_inst];
    74       _num_reg_ra     = new Tgeneral_address_t [_nb_inst];
    75       _read_rb        = new Tcontrol_t         [_nb_inst];
    76       _num_reg_rb     = new Tgeneral_address_t [_nb_inst];
    77       _read_rc        = new Tcontrol_t         [_nb_inst];
    78       _num_reg_rc     = new Tspecial_address_t [_nb_inst];
    79       _write_rd       = new Tcontrol_t         [_nb_inst];
    80       _num_reg_rd     = new Tgeneral_address_t [_nb_inst];
    81       _write_re       = new Tcontrol_t         [_nb_inst];
    82       _num_reg_re     = new Tspecial_address_t [_nb_inst];
    83       _exception_use  = new Texception_t       [_nb_inst];
    84       _exception      = new Texception_t       [_nb_inst];
     71      ALLOC1(_address_next   ,Tgeneral_data_t    ,_nb_inst);
     72      ALLOC1(_has_immediat   ,Tcontrol_t         ,_nb_inst);
     73      ALLOC1(_immediat       ,Tgeneral_data_t    ,_nb_inst);
     74      ALLOC1(_read_ra        ,Tcontrol_t         ,_nb_inst);
     75      ALLOC1(_num_reg_ra     ,Tgeneral_address_t ,_nb_inst);
     76      ALLOC1(_read_rb        ,Tcontrol_t         ,_nb_inst);
     77      ALLOC1(_num_reg_rb     ,Tgeneral_address_t ,_nb_inst);
     78      ALLOC1(_read_rc        ,Tcontrol_t         ,_nb_inst);
     79      ALLOC1(_num_reg_rc     ,Tspecial_address_t ,_nb_inst);
     80      ALLOC1(_write_rd       ,Tcontrol_t         ,_nb_inst);
     81      ALLOC1(_num_reg_rd     ,Tgeneral_address_t ,_nb_inst);
     82      ALLOC1(_write_re       ,Tcontrol_t         ,_nb_inst);
     83      ALLOC1(_num_reg_re     ,Tspecial_address_t ,_nb_inst);
     84      ALLOC1(_exception_use  ,Texception_t       ,_nb_inst);
     85      ALLOC1(_exception      ,Texception_t       ,_nb_inst);
    8586
    8687      for (uint32_t i=0; i<_nb_inst; i++)
     
    9091  public : ~decod_queue_entry_t (void)
    9192    {
    92       delete [] _val            ;
    93       delete [] _context_id     ;
    94       delete [] _depth          ;
    95       delete [] _type           ;
    96       delete [] _operation      ;
    97       delete [] _no_execute     ;
    98       delete [] _is_delay_slot  ;
     93      DELETE1(_val            ,_nb_inst);
     94      DELETE1(_context_id     ,_nb_inst);
     95      DELETE1(_depth          ,_nb_inst);
     96      DELETE1(_type           ,_nb_inst);
     97      DELETE1(_operation      ,_nb_inst);
     98      DELETE1(_no_execute     ,_nb_inst);
     99      DELETE1(_is_delay_slot  ,_nb_inst);
    99100#ifdef DEBUG
    100       delete [] _address        ;
     101      DELETE1(_address        ,_nb_inst);
    101102#endif
    102       delete [] _address_next   ;
    103       delete [] _has_immediat   ;
    104       delete [] _immediat       ;
    105       delete [] _read_ra        ;
    106       delete [] _num_reg_ra     ;
    107       delete [] _read_rb        ;
    108       delete [] _num_reg_rb     ;
    109       delete [] _read_rc        ;
    110       delete [] _num_reg_rc     ;
    111       delete [] _write_rd       ;
    112       delete [] _num_reg_rd     ;
    113       delete [] _write_re       ;
    114       delete [] _num_reg_re     ;
    115       delete [] _exception_use  ;
    116       delete [] _exception      ;
     103      DELETE1(_address_next   ,_nb_inst);
     104      DELETE1(_has_immediat   ,_nb_inst);
     105      DELETE1(_immediat       ,_nb_inst);
     106      DELETE1(_read_ra        ,_nb_inst);
     107      DELETE1(_num_reg_ra     ,_nb_inst);
     108      DELETE1(_read_rb        ,_nb_inst);
     109      DELETE1(_num_reg_rb     ,_nb_inst);
     110      DELETE1(_read_rc        ,_nb_inst);
     111      DELETE1(_num_reg_rc     ,_nb_inst);
     112      DELETE1(_write_rd       ,_nb_inst);
     113      DELETE1(_num_reg_rd     ,_nb_inst);
     114      DELETE1(_write_re       ,_nb_inst);
     115      DELETE1(_num_reg_re     ,_nb_inst);
     116      DELETE1(_exception_use  ,_nb_inst);
     117      DELETE1(_exception      ,_nb_inst);
    117118    }
    118119  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp

    r111 r112  
    5757    // ~~~~~[ Interface : "decod_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    5858    {
    59       ALLOC1_INTERFACE("decod_in",IN ,WEST,"Input of decod_queue", _param->_nb_inst_decod);
     59      ALLOC1_INTERFACE_BEGIN("decod_in",IN ,WEST,_("Input of decod_queue"), _param->_nb_inst_decod);
    6060
    6161      ALLOC1_VALACK_IN ( in_DECOD_IN_VAL            ,VAL);
     
    8585      ALLOC1_SIGNAL_IN ( in_DECOD_IN_EXCEPTION_USE  ,"exception_use",Texception_t       ,_param->_size_exception_use         );
    8686      ALLOC1_SIGNAL_IN ( in_DECOD_IN_EXCEPTION      ,"exception"    ,Texception_t       ,_param->_size_exception_decod       );
     87
     88      ALLOC1_INTERFACE_END(_param->_nb_inst_decod);
    8789    }
    8890
    8991    // ~~~~~[ Interface : "decod_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    9092    {
    91       ALLOC1_INTERFACE("decod_out",OUT,EAST,"Output of decod_queue", _param->_nb_inst_decod);
     93      ALLOC1_INTERFACE_BEGIN("decod_out",OUT,EAST,_("Output of decod_queue"), _param->_nb_inst_decod);
    9294
    9395      ALLOC1_VALACK_OUT(out_DECOD_OUT_VAL            ,VAL);
     
    117119      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_EXCEPTION_USE  ,"exception_use",Texception_t       ,_param->_size_exception_use         );
    118120      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_EXCEPTION      ,"exception"    ,Texception_t       ,_param->_size_exception_decod       );
     121
     122      ALLOC1_INTERFACE_END(_param->_nb_inst_decod);
    119123    }
    120124
    121125    // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
    122126    {
    123       ALLOC1_INTERFACE("depth",IN ,NORTH,"Depth", _param->_nb_context);
     127      ALLOC1_INTERFACE_BEGIN("depth",IN ,NORTH,_("Depth"), _param->_nb_context);
    124128
    125129      ALLOC1_SIGNAL_IN ( in_DEPTH_MIN      ,"min"      ,Tdepth_t           ,_param->_size_depth);
    126130      ALLOC1_SIGNAL_IN ( in_DEPTH_MAX      ,"max"      ,Tdepth_t           ,_param->_size_depth);
    127131      ALLOC1_SIGNAL_IN ( in_DEPTH_FULL     ,"full"     ,Tcontrol_t         ,1);
     132
     133      ALLOC1_INTERFACE_END(_param->_nb_context);
    128134    }
    129135
    130136    // ~~~~~[ Interface : "nb_inst" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
    131137    {
    132       ALLOC1_INTERFACE("nb_inst",OUT,NORTH,"Instruction's number", _param->_nb_context);
     138      ALLOC1_INTERFACE_BEGIN("nb_inst",OUT,NORTH,_("Instruction's number"), _param->_nb_context);
    133139
    134140      ALLOC1_SIGNAL_OUT(out_NB_INST_ALL    ,"all"      ,Tcontext_t         ,_param->_size_nb_inst_decod);
     141
     142      ALLOC1_INTERFACE_END(_param->_nb_context);
    135143    }
    136144
     
    140148    switch (_param->_queue_scheme)
    141149      {
    142       case DECOD_QUEUE_SCHEME_ONE_FIFO   : reg_QUEUE = new std::list<decod_queue_entry_t*>; break;
     150      case DECOD_QUEUE_SCHEME_ONE_FIFO   : ALLOC0(reg_QUEUE,std::list<decod_queue_entry_t*>); break;
    143151      case DECOD_QUEUE_SCHEME_MULTI_FIFO : ALLOC1(reg_QUEUE,std::list<decod_queue_entry_t*>,_param->_nb_bank); break;
    144152      }
    145     reg_NB_INST            = new uint32_t   [_param->_nb_context];
     153
     154    ALLOC1(reg_NB_INST,uint32_t,_param->_nb_context);
    146155
    147156    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    148     internal_DECOD_IN_ACK  = new Tcontrol_t [_param->_nb_inst_decod];
    149     internal_DECOD_OUT_VAL = new Tcontrol_t [_param->_nb_inst_decod];
    150     internal_DECOD_OUT_ACK = new Tcontrol_t [_param->_nb_inst_decod];
     157    ALLOC1(internal_DECOD_IN_ACK ,Tcontrol_t,_param->_nb_inst_decod);
     158    ALLOC1(internal_DECOD_OUT_VAL,Tcontrol_t,_param->_nb_inst_decod);
     159    ALLOC1(internal_DECOD_OUT_ACK,Tcontrol_t,_param->_nb_inst_decod);
    151160      }
    152161   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp

    r111 r112  
    9292        switch (_param->_queue_scheme)
    9393          {
    94           case DECOD_QUEUE_SCHEME_ONE_FIFO   : delete reg_QUEUE; break;
    95           case DECOD_QUEUE_SCHEME_MULTI_FIFO : DELETE1(reg_QUEUE,_param->_nb_bank); break;
    96           }
    97         delete [] reg_NB_INST;
     94          case DECOD_QUEUE_SCHEME_ONE_FIFO   :
     95            {
     96              while (not reg_QUEUE->empty())
     97                {
     98                  delete reg_QUEUE->front();
     99                  reg_QUEUE->pop_front();
     100                }
     101
     102              DELETE0(reg_QUEUE);
     103              break;
     104            }
     105          case DECOD_QUEUE_SCHEME_MULTI_FIFO :
     106            {
     107              for (uint32_t i=0; i<_param->_nb_bank; ++i)
     108                while (not reg_QUEUE[i].empty())
     109                  {
     110                    delete reg_QUEUE[i].front();
     111                    reg_QUEUE[i].pop_front();
     112                  }
     113
     114              DELETE1(reg_QUEUE,_param->_nb_bank); break;
     115            }
     116          }
     117
     118        DELETE1(reg_NB_INST ,_param->_nb_context);
    98119       
    99120        // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    100         delete [] internal_DECOD_IN_ACK ;
    101         delete [] internal_DECOD_OUT_VAL;
    102         delete [] internal_DECOD_OUT_ACK;
     121        DELETE1(internal_DECOD_IN_ACK ,_param->_nb_inst_decod);
     122        DELETE1(internal_DECOD_OUT_VAL,_param->_nb_inst_decod);
     123        DELETE1(internal_DECOD_OUT_ACK,_param->_nb_inst_decod);
    103124      }
    104125
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp

    r111 r112  
    2828      {
    2929        for (uint32_t i=0; i<_param->_nb_bank; ++i)
    30           reg_QUEUE[i].clear();
     30          while (not reg_QUEUE[i].empty())
     31            {
     32              delete reg_QUEUE[i].front();
     33              reg_QUEUE[i].pop_front();
     34            }
    3135
    3236        for (uint32_t i=0; i<_param->_nb_context; i++)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp

    r111 r112  
    2727    if (PORT_READ(in_NRESET) == 0)
    2828      {
    29         reg_QUEUE->clear();
     29        while (not reg_QUEUE->empty())
     30          {
     31            delete reg_QUEUE->front();
     32            reg_QUEUE->pop_front();
     33          }
    3034
    3135        for (uint32_t i=0; i<_param->_nb_context; i++)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/SelfTest/src/test.cpp

    r110 r112  
    115115  ALLOC1_SC_SIGNAL( in_CONTEXT_DEPTH                      ," in_CONTEXT_DEPTH                      ",Tdepth_t           ,_param->_nb_context);
    116116
    117   ALLOC_SC_SIGNAL( out_CONTEXT_EVENT_VAL                  ,"out_CONTEXT_EVENT_VAL                  ",Tcontrol_t         );
    118   ALLOC_SC_SIGNAL(  in_CONTEXT_EVENT_ACK                  ," in_CONTEXT_EVENT_ACK                  ",Tcontrol_t         );
    119   ALLOC_SC_SIGNAL( out_CONTEXT_EVENT_CONTEXT_ID           ,"out_CONTEXT_EVENT_CONTEXT_ID           ",Tcontext_t         );
    120   ALLOC_SC_SIGNAL( out_CONTEXT_EVENT_DEPTH                ,"out_CONTEXT_EVENT_DEPTH                ",Tdepth_t           );
    121   ALLOC_SC_SIGNAL( out_CONTEXT_EVENT_TYPE                 ,"out_CONTEXT_EVENT_TYPE                 ",Tevent_type_t      );
    122   ALLOC_SC_SIGNAL( out_CONTEXT_EVENT_IS_DELAY_SLOT        ,"out_CONTEXT_EVENT_IS_DELAY_SLOT        ",Tcontrol_t         );
    123   ALLOC_SC_SIGNAL( out_CONTEXT_EVENT_ADDRESS              ,"out_CONTEXT_EVENT_ADDRESS              ",Tgeneral_data_t    );
    124   ALLOC_SC_SIGNAL( out_CONTEXT_EVENT_ADDRESS_EPCR         ,"out_CONTEXT_EVENT_ADDRESS_EPCR         ",Tgeneral_data_t    );
     117  ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_VAL                  ,"out_CONTEXT_EVENT_VAL                  ",Tcontrol_t         );
     118  ALLOC0_SC_SIGNAL(  in_CONTEXT_EVENT_ACK                  ," in_CONTEXT_EVENT_ACK                  ",Tcontrol_t         );
     119  ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_CONTEXT_ID           ,"out_CONTEXT_EVENT_CONTEXT_ID           ",Tcontext_t         );
     120  ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_DEPTH                ,"out_CONTEXT_EVENT_DEPTH                ",Tdepth_t           );
     121  ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_TYPE                 ,"out_CONTEXT_EVENT_TYPE                 ",Tevent_type_t      );
     122  ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_IS_DELAY_SLOT        ,"out_CONTEXT_EVENT_IS_DELAY_SLOT        ",Tcontrol_t         );
     123  ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_ADDRESS              ,"out_CONTEXT_EVENT_ADDRESS              ",Tgeneral_data_t    );
     124  ALLOC0_SC_SIGNAL( out_CONTEXT_EVENT_ADDRESS_EPCR         ,"out_CONTEXT_EVENT_ADDRESS_EPCR         ",Tgeneral_data_t    );
    125125 
    126126  /********************************************************
     
    144144    {
    145145      if (_param->_have_port_inst_ifetch_ptr)
    146         INSTANCE_SC_SIGNAL(_Decod_unit,in_IFETCH_INST_IFETCH_PTR[i]);
     146        INSTANCE0_SC_SIGNAL(_Decod_unit,in_IFETCH_INST_IFETCH_PTR[i]);
    147147      if (_param->_have_port_depth)
    148         INSTANCE_SC_SIGNAL(_Decod_unit,in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i]);
     148        INSTANCE0_SC_SIGNAL(_Decod_unit,in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i]);
    149149    }
    150150
     
    210210  INSTANCE1_SC_SIGNAL(_Decod_unit, in_CONTEXT_DEPTH                      ,_param->_nb_context);
    211211
    212   INSTANCE_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_VAL                  );
    213   INSTANCE_SC_SIGNAL( _Decod_unit, in_CONTEXT_EVENT_ACK                  );
     212  INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_VAL                  );
     213  INSTANCE0_SC_SIGNAL( _Decod_unit, in_CONTEXT_EVENT_ACK                  );
    214214  if (_param->_have_port_context_id)
    215   INSTANCE_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_CONTEXT_ID           );
     215  INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_CONTEXT_ID           );
    216216  if (_param->_have_port_depth)
    217   INSTANCE_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_DEPTH                );
    218   INSTANCE_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_TYPE                 );
    219   INSTANCE_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_IS_DELAY_SLOT        );
    220   INSTANCE_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_ADDRESS              );
    221   INSTANCE_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_ADDRESS_EPCR         );
     217  INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_DEPTH                );
     218  INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_TYPE                 );
     219  INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_IS_DELAY_SLOT        );
     220  INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_ADDRESS              );
     221  INSTANCE0_SC_SIGNAL( _Decod_unit,out_CONTEXT_EVENT_ADDRESS_EPCR         );
    222222
    223223  msg(_("<%s> : Start Simulation ............\n"),name.c_str());
     
    538538  DELETE1_SC_SIGNAL( in_CONTEXT_DEPTH                      ,_param->_nb_context);
    539539
    540   DELETE_SC_SIGNAL( out_CONTEXT_EVENT_VAL                  );
    541   DELETE_SC_SIGNAL( in_CONTEXT_EVENT_ACK                  );
    542   DELETE_SC_SIGNAL( out_CONTEXT_EVENT_CONTEXT_ID           );
    543   DELETE_SC_SIGNAL( out_CONTEXT_EVENT_DEPTH                );
    544   DELETE_SC_SIGNAL( out_CONTEXT_EVENT_TYPE                 );
    545   DELETE_SC_SIGNAL( out_CONTEXT_EVENT_IS_DELAY_SLOT        );
    546   DELETE_SC_SIGNAL( out_CONTEXT_EVENT_ADDRESS              );
    547   DELETE_SC_SIGNAL( out_CONTEXT_EVENT_ADDRESS_EPCR         );
     540  DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_VAL                  );
     541  DELETE0_SC_SIGNAL( in_CONTEXT_EVENT_ACK                  );
     542  DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID           );
     543  DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_DEPTH                );
     544  DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_TYPE                 );
     545  DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT        );
     546  DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS              );
     547  DELETE0_SC_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR         );
    548548    }
    549549#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_allocation.cpp

    r110 r112  
    5858    // ~~~~~[ Interface : "ifetch" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    5959    {
    60       ALLOC2_INTERFACE("ifetch", IN, WEST, "Instruction's bundle", _param->_nb_context, _param->_nb_inst_fetch[it1]);
    61 
     60      ALLOC2_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context, _param->_nb_inst_fetch[it1]);
    6261     
    6362      _ALLOC2_VALACK_IN ( in_IFETCH_VAL        ,VAL, _param->_nb_context, _param->_nb_inst_fetch[it1]);
    6463      _ALLOC2_VALACK_OUT(out_IFETCH_ACK        ,ACK, _param->_nb_context, _param->_nb_inst_fetch[it1]);
    6564      _ALLOC2_SIGNAL_IN ( in_IFETCH_INSTRUCTION,"instruction", Tinstruction_t, _param->_size_instruction,_param->_nb_context, _param->_nb_inst_fetch[it1]);
    66     }
    67     {
    68       ALLOC1_INTERFACE("ifetch", IN, WEST, "Instruction's bundle", _param->_nb_context);
     65
     66      ALLOC2_INTERFACE_END(_param->_nb_context, _param->_nb_inst_fetch[it1]);
     67    }
     68    {
     69      ALLOC1_INTERFACE_BEGIN("ifetch", IN, WEST, _("Instruction's bundle"), _param->_nb_context);
    6970     
    7071      ALLOC1_SIGNAL_IN (in_IFETCH_CONTEXT_ID                 ,"context_id"                 ,Tcontext_t         ,_param->_size_context_id      );
     
    7576      ALLOC1_SIGNAL_IN (in_IFETCH_BRANCH_UPDATE_PREDICTION_ID,"branch_update_prediction_id",Tprediction_ptr_t  ,_param->_size_depth           );
    7677      ALLOC1_SIGNAL_IN (in_IFETCH_EXCEPTION                  ,"exception"                  ,Texception_t       ,_param->_size_exception_ifetch);
     78
     79      ALLOC1_INTERFACE_END(_param->_nb_context);
    7780    }
    7881
    7982    // ~~~~~[ Interface : "decod" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
    8083    {
    81       ALLOC1_INTERFACE("decod", OUT, EAST, "Instructiont decoded", _param->_nb_inst_decod);
     84      ALLOC1_INTERFACE_BEGIN("decod", OUT, EAST, _("Instruction decoded"), _param->_nb_inst_decod);
    8285
    8386      ALLOC1_VALACK_OUT(out_DECOD_VAL          ,VAL);
     
    107110      ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION_USE,"exception_use",Texception_t      ,_param->_size_exception_use         );
    108111      ALLOC1_SIGNAL_OUT(out_DECOD_EXCEPTION    ,"exception"    ,Texception_t      ,_param->_size_exception_decod       );
     112   
     113      ALLOC1_INTERFACE_END(_param->_nb_inst_decod);
    109114    }
    110115
    111116    // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    112117    {
    113       ALLOC1_INTERFACE("predict",OUT,NORTH,"Decod a branch -> inform the branch predictor.",_param->_nb_inst_decod);
     118      ALLOC1_INTERFACE_BEGIN("predict",OUT,NORTH,_("Decod a branch -> inform the branch predictor."),_param->_nb_inst_decod);
    114119
    115120      ALLOC1_VALACK_OUT(out_PREDICT_VAL                        ,VAL);
     
    125130      ALLOC1_SIGNAL_OUT(out_PREDICT_ADDRESS_DEST               ,"address_dest"               ,Tgeneral_data_t    ,_param->_size_instruction_address    );
    126131      ALLOC1_SIGNAL_IN ( in_PREDICT_CAN_CONTINUE               ,"can_continue"               ,Tcontrol_t         ,1                             );
    127     }
    128 
     132   
     133      ALLOC1_INTERFACE_END(_param->_nb_inst_decod);
     134    }
     135   
    129136    // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
    130137    {
    131       ALLOC1_INTERFACE("depth",IN ,NORTH,"Depth", _param->_nb_context);
     138      ALLOC1_INTERFACE_BEGIN("depth",IN ,NORTH,_("Depth"), _param->_nb_context);
    132139
    133140      ALLOC1_SIGNAL_IN ( in_DEPTH_MIN      ,"min"      ,Tdepth_t           ,_param->_size_depth);
    134141      ALLOC1_SIGNAL_IN ( in_DEPTH_MAX      ,"max"      ,Tdepth_t           ,_param->_size_depth);
    135142      ALLOC1_SIGNAL_IN ( in_DEPTH_FULL     ,"full"     ,Tcontrol_t         ,1);
     143
     144      ALLOC1_INTERFACE_END(_param->_nb_context);
    136145    }
    137146
    138147    // ~~~~~[ Interface : "nb_inst" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
    139148    {
    140       ALLOC1_INTERFACE("nb_inst",OUT,NORTH,"Instruction's number", _param->_nb_context);
     149      ALLOC1_INTERFACE_BEGIN("nb_inst",OUT,NORTH,_("Instruction's number"), _param->_nb_context);
    141150
    142151      ALLOC1_SIGNAL_OUT(out_NB_INST_DECOD_ALL  ,"decod_all"   ,Tcontext_t         ,_param->_size_nb_inst_decod);
     152
     153      ALLOC1_INTERFACE_END(_param->_nb_context);
    143154    }
    144155   
    145156    // ~~~~~[ Interface : "context" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    146157    {
    147       ALLOC1_INTERFACE("context", IN, NORTH, "context's information", _param->_nb_context);
     158      ALLOC1_INTERFACE_BEGIN("context", IN, NORTH, _("context's information"), _param->_nb_context);
    148159
    149160      ALLOC1_SIGNAL_IN (in_CONTEXT_DECOD_ENABLE,"decod_enable",Tcontrol_t,1);
    150161      ALLOC1_SIGNAL_IN (in_CONTEXT_DEPTH_VAL   ,"depth_val"   ,Tcontrol_t,1);
    151162      ALLOC1_SIGNAL_IN (in_CONTEXT_DEPTH       ,"depth"       ,Tdepth_t  ,_param->_size_depth);
     163
     164      ALLOC1_INTERFACE_END(_param->_nb_context);
    152165    }
    153166
    154167    // ~~~~~[ Interface : "context_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
    155168    {
    156       ALLOC_INTERFACE("context_event", OUT, NORTH, "context's evenement");
    157 
    158       ALLOC_VALACK_OUT(out_CONTEXT_EVENT_VAL          ,VAL);
    159       ALLOC_VALACK_IN ( in_CONTEXT_EVENT_ACK          ,ACK);
    160       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id  );
    161       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_DEPTH        ,"depth"        ,Tdepth_t       ,_param->_size_depth       );
    162       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_TYPE         ,"type"         ,Tevent_type_t  ,_param->_size_event_type  );
    163       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t     ,1                         );
    164       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS      ,"address"      ,Tgeneral_data_t,_param->_size_instruction_address);
    165       ALLOC_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS_EPCR ,"address_epcr" ,Tgeneral_data_t,_param->_size_instruction_address);
     169      ALLOC0_INTERFACE_BEGIN("context_event", OUT, NORTH, _("context's evenement"));
     170
     171      ALLOC0_VALACK_OUT(out_CONTEXT_EVENT_VAL          ,VAL);
     172      ALLOC0_VALACK_IN ( in_CONTEXT_EVENT_ACK          ,ACK);
     173      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_CONTEXT_ID   ,"context_id"   ,Tcontext_t     ,_param->_size_context_id  );
     174      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_DEPTH        ,"depth"        ,Tdepth_t       ,_param->_size_depth       );
     175      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_TYPE         ,"type"         ,Tevent_type_t  ,_param->_size_event_type  );
     176      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_IS_DELAY_SLOT,"is_delay_slot",Tcontrol_t     ,1                         );
     177      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS      ,"address"      ,Tgeneral_data_t,_param->_size_instruction_address);
     178      ALLOC0_SIGNAL_OUT(out_CONTEXT_EVENT_ADDRESS_EPCR ,"address_epcr" ,Tgeneral_data_t,_param->_size_instruction_address);
     179
     180      ALLOC0_INTERFACE_END();
    166181    }
    167182   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/src/Decod_unit_deallocation.cpp

    r110 r112  
    8989        DELETE1_SIGNAL(in_CONTEXT_DEPTH                       ,_param->_nb_context,_param->_size_depth);
    9090       
    91         DELETE_SIGNAL(out_CONTEXT_EVENT_VAL                   ,1);
    92         DELETE_SIGNAL( in_CONTEXT_EVENT_ACK                   ,1);
    93         DELETE_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID            ,_param->_size_context_id  );
    94         DELETE_SIGNAL(out_CONTEXT_EVENT_DEPTH                 ,_param->_size_depth       );
    95         DELETE_SIGNAL(out_CONTEXT_EVENT_TYPE                  ,_param->_size_event_type  );
    96         DELETE_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT         ,1                         );
    97         DELETE_SIGNAL(out_CONTEXT_EVENT_ADDRESS               ,_param->_size_instruction_address);
    98         DELETE_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR          ,_param->_size_instruction_address);
     91        DELETE0_SIGNAL(out_CONTEXT_EVENT_VAL                   ,1);
     92        DELETE0_SIGNAL( in_CONTEXT_EVENT_ACK                   ,1);
     93        DELETE0_SIGNAL(out_CONTEXT_EVENT_CONTEXT_ID            ,_param->_size_context_id  );
     94        DELETE0_SIGNAL(out_CONTEXT_EVENT_DEPTH                 ,_param->_size_depth       );
     95        DELETE0_SIGNAL(out_CONTEXT_EVENT_TYPE                  ,_param->_size_event_type  );
     96        DELETE0_SIGNAL(out_CONTEXT_EVENT_IS_DELAY_SLOT         ,1                         );
     97        DELETE0_SIGNAL(out_CONTEXT_EVENT_ADDRESS               ,_param->_size_instruction_address);
     98        DELETE0_SIGNAL(out_CONTEXT_EVENT_ADDRESS_EPCR          ,_param->_size_instruction_address);
    9999      }
    100100    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
Note: See TracChangeset for help on using the changeset viewer.