Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (16 years ago)
Author:
rosiere
Message:

Almost complete design
with Test and test platform

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/Makefile

    r81 r88  
    2424library_clean                   : Decod_library_clean
    2525
     26local_clean                     :
     27
    2628include                         $(DIR_COMPONENT)/Makefile.deps
    2729include                         $(DIR_MORPHEO)/Behavioural/Makefile.flags
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/config_min.cfg

    r87 r88  
    11Decod
    221       1       *4      # nb_context           
    3 1       1       *4      # nb_inst_fetch        [0] [nb_context]
     31       1       *4      # nb_inst_fetch                 [0] [nb_context]
    441       1       *4      # nb_inst_decod       
    5 1       1       *2      # nb_branch_speculated
    6 0       0       +1      # size_branch_update_prediction
     51       1       *2      # nb_branch_speculated          [0] [nb_context]
    761       1       *2      # nb_context_select   
    8732      32      *2      # size_general_data   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/config_mono_context.cfg

    r87 r88  
    11Decod
    221       1       *4      # nb_context           
    3 4       16      *4      # nb_inst_fetch        [0] [nb_context]
    4 1       4       *4      # nb_inst_decod       
    5 1       1       *2      # nb_branch_speculated
    6 0       2       +1      # size_branch_update_prediction
     34       16      *4      # nb_inst_fetch                 [0] [nb_context]
     41       4       *4      # nb_inst_decod         
     51       1       *2      # nb_branch_speculated          [0] [nb_context]
    761       1       *2      # nb_context_select   
    8732      32      *2      # size_general_data   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/config_multi_context.cfg

    r87 r88  
    11Decod
    224       4       *4      # nb_context           
    3 1       1       *4      # nb_inst_fetch        [0] [nb_context]
    4 2       2       *4      # nb_inst_fetch        [1] [nb_context]
    5 4       4       *4      # nb_inst_fetch        [2] [nb_context]
    6 8       8       *4      # nb_inst_fetch        [3] [nb_context]
     31       1       *4      # nb_inst_fetch                 [0] [nb_context]
     42       2       *4      # nb_inst_fetch                 [1] [nb_context]
     54       4       *4      # nb_inst_fetch                 [2] [nb_context]
     68       8       *4      # nb_inst_fetch                 [3] [nb_context]
    771       8       *2      # nb_inst_decod       
    8 1       1       *2      # nb_branch_speculated
    9 2       2       *2      # size_branch_update_prediction
     81       1       *2      # nb_branch_speculated          [0] [nb_context]
     90       0       *2      # nb_branch_speculated          [1] [nb_context]
     101       1       *2      # nb_branch_speculated          [2] [nb_context]
     112       2       *2      # nb_branch_speculated          [3] [nb_context]
    10121       4       *2      # nb_context_select   
    111332      32      *2      # size_general_data   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/include/Decod_request.h

    r87 r88  
    3232  public : Ttype_t             _type                       ;
    3333  public : Toperation_t        _operation                  ;
     34  public : Tcontrol_t          _no_execute                 ;
    3435  public : Tcontrol_t          _is_delay_slot              ;
    3536  public : Tcontrol_t          _has_immediat               ;
     
    4647  public : Tspecial_address_t  _num_reg_re                 ;
    4748  public : Texception_t        _exception_use              ;
     49  public : Texception_t        _exception_ifetch           ;
     50  public : Texception_t        _exception_decod            ;
    4851  public : Tevent_type_t       _context_event_type         ;
    4952
     
    6467                    Ttype_t             type                       ,
    6568                    Toperation_t        operation                  ,
     69//                  Tcontrol_t          no_execute                 ,
    6670                    Tcontrol_t          is_delay_slot              ,
    6771                    Tcontrol_t          has_immediat               ,
     
    7882                    Tspecial_address_t  num_reg_re                 ,
    7983                    Texception_t        exception_use              ,
     84//                     Texception_t        exception_ifetch           ,
     85//                     Texception_t        exception_decod            ,
    8086                    Tevent_type_t       context_event_type         )
    8187    {
     
    110116      _exception_use               = exception_use              ;
    111117      _context_event_type          = context_event_type         ;
     118
     119      _no_execute                  = 0                          ;
     120      _exception_ifetch            = EXCEPTION_IFETCH_NONE      ;
     121      _exception_decod             = EXCEPTION_DECOD_NONE       ;
    112122    }
    113123  };
     
    246256    0xe3caa309,x,y,z,
    247257    BRANCH_STATE_NONE,0,BRANCH_CONDITION_NONE_WITHOUT_WRITE_STACK,0, 0x0,
    248     0,TYPE_MUL_DIV,OPERATION_MUL_DIV_L_DIV,false,
     258    0,TYPE_DIV,OPERATION_DIV_L_DIV,false,
    249259    0,0x0,1,10,1,20,0,0                 ,1,30,1,SPR_LOGIC_SR_CY_OV,
    250260    EXCEPTION_USE_RANGE,EVENT_TYPE_NONE));
     
    265275    0xe3caa30a,x,y,z,
    266276    BRANCH_STATE_NONE,0,BRANCH_CONDITION_NONE_WITHOUT_WRITE_STACK,0, 0x0,
    267     0,TYPE_MUL_DIV,OPERATION_MUL_DIV_L_DIVU,true,
     277    0,TYPE_DIV,OPERATION_DIV_L_DIVU,true,
    268278    0,0x0,1,10,1,20,0,0                 ,1,30,1,SPR_LOGIC_SR_CY_OV,
    269279    EXCEPTION_USE_RANGE,EVENT_TYPE_NONE));
     
    622632    0xe3caa306,x,y,z,
    623633    0,0,0,0,0,0,
    624     TYPE_MUL_DIV,OPERATION_MUL_DIV_L_MUL,false,
     634    TYPE_MUL,OPERATION_MUL_L_MUL,false,
    625635    0,0, 1,10, 1,20, 0,0, 1,30, 1,SPR_LOGIC_SR_CY_OV,
    626636    EXCEPTION_USE_RANGE,EVENT_TYPE_NONE));
     
    631641    0xb3ca03fa,x,y,z,
    632642    0,0,0,0,0,0,
    633     TYPE_MUL_DIV,OPERATION_MUL_DIV_L_MUL,false,
     643    TYPE_MUL,OPERATION_MUL_L_MUL,false,
    634644    1,0x3fa, 1,10, 0,0, 0,0, 1,30, 1,SPR_LOGIC_SR_CY_OV,
    635645    EXCEPTION_USE_RANGE,EVENT_TYPE_NONE));
     
    640650    0xb3cafc06,x,y,z,
    641651    0,0,0,0,0,0,
    642     TYPE_MUL_DIV,OPERATION_MUL_DIV_L_MUL,false,
     652    TYPE_MUL,OPERATION_MUL_L_MUL,false,
    643653    1,0xfffffc06, 1,10, 0,0, 0,0, 1,30, 1,SPR_LOGIC_SR_CY_OV,
    644654    EXCEPTION_USE_RANGE,EVENT_TYPE_NONE));
     
    649659    0xe3caa30b,x,y,z,
    650660    0,0,0,0,0,0,
    651     TYPE_MUL_DIV,OPERATION_MUL_DIV_L_MULU,false,
     661    TYPE_MUL,OPERATION_MUL_L_MULU,false,
    652662    0,0, 1,10, 1,20, 0,0, 1,30, 1,SPR_LOGIC_SR_CY_OV,
    653663    EXCEPTION_USE_RANGE,EVENT_TYPE_NONE));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/src/main.cpp

    r87 r88  
    99#include "Behavioural/Custom/include/Custom_example.h"
    1010
    11 #define NB_PARAMS 8
     11#define NB_PARAMS 6
    1212
    1313void usage (int argc, char * argv[])
     
    1515  err (_("<Usage> %s name_instance list_params.\n"),argv[0]);
    1616  err (_("list_params is :\n"));
    17   err (_(" * nb_context                                (uint32_t         )\n"));
    18   err (_(" * nb_inst_fetch                [nb_context] (uint32_t         )\n"));
    19   err (_(" * nb_inst_decod                             (uint32_t         )\n"));
    20   err (_(" * nb_branch_speculated                      (uint32_t         )\n"));
    21   err (_(" * size_branch_update_prediction             (uint32_t         )\n"));
    22   err (_(" * nb_context_select                         (uint32_t         )\n"));
    23   err (_(" * size_general_data                         (uint32_t         )\n"));
    24   err (_(" * priority                                  (Tpriority_t      )\n"));
    25   err (_(" * load_balancing                            (Tload_balancing_t)\n"));
     17  err (_(" * nb_context                                 (uint32_t         )\n"));
     18  err (_(" * nb_inst_fetch                 [nb_context] (uint32_t         )\n"));
     19  err (_(" * nb_inst_decod                              (uint32_t         )\n"));
     20  err (_(" * nb_branch_speculated          [nb_context] (uint32_t         )\n"));
     21  err (_(" * nb_context_select                          (uint32_t         )\n"));
     22  err (_(" * size_general_data                          (uint32_t         )\n"));
     23  err (_(" * priority                                   (Tpriority_t      )\n"));
     24  err (_(" * load_balancing                             (Tload_balancing_t)\n"));
    2625
    2726  exit (1);
     
    4241  uint32_t            _nb_context           = fromString<uint32_t         >(argv[x++]);
    4342
    44   if (argc != static_cast<int>(2+NB_PARAMS+_nb_context))
     43  if (argc != static_cast<int>(2+NB_PARAMS+2*_nb_context))
    4544    usage (argc, argv);
    4645 
    47   uint32_t          * _nb_inst_fetch        = new uint32_t [_nb_context];
     46  uint32_t          * _nb_inst_fetch                = new uint32_t [_nb_context];
    4847  for (uint32_t i=0;i<_nb_context; i++)
    4948    _nb_inst_fetch [i] = fromString<uint32_t>(argv[x++]);
    5049
    5150  uint32_t            _nb_inst_decod                = fromString<uint32_t         >(argv[x++]);
    52   uint32_t            _nb_branch_speculated         = fromString<uint32_t         >(argv[x++]);
    53   uint32_t            _size_branch_update_prediction= fromString<uint32_t         >(argv[x++]);
     51
     52  uint32_t          * _nb_branch_speculated         = new uint32_t [_nb_context];
     53  for (uint32_t i=0;i<_nb_context; i++)
     54    _nb_branch_speculated [i] = fromString<uint32_t>(argv[x++]);
     55
     56//   uint32_t          * _size_branch_update_prediction= new uint32_t [_nb_context];
     57//   for (uint32_t i=0;i<_nb_context; i++)
     58//     _size_branch_update_prediction[i] = fromString<uint32_t>(argv[x++]);
     59
    5460  uint32_t            _nb_context_select            = fromString<uint32_t         >(argv[x++]);
    5561  uint32_t            _size_general_data            = fromString<uint32_t         >(argv[x++]);
     
    6369     
    6470      for (uint32_t j=0; j<NB_INSTRUCTION; j++)
    65         _instruction_implemeted [i][j] = true;
     71        _instruction_implemeted [i][j] = true;
    6672    }
    6773
     
    7076    {
    7177      morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod::Parameters * param = new morpheo::behavioural::core::multi_front_end::front_end::decod_unit::decod::Parameters
    72         (_nb_context                   ,
    73          _nb_inst_fetch                ,
    74          _nb_inst_decod                ,
    75          _nb_branch_speculated         ,
    76          _size_branch_update_prediction,
    77          _nb_context_select            ,
    78          _size_general_data            ,
    79          _priority                     ,
    80          _load_balancing               ,
    81          _instruction_implemeted       ,
    82          &(morpheo::behavioural::custom::example_get_custom_information)
    83          );
     78        (_nb_context                   ,
     79         _nb_inst_fetch                ,
     80         _nb_inst_decod                ,
     81         _nb_branch_speculated         ,
     82//          _size_branch_update_prediction,
     83         _nb_context_select            ,
     84         _size_general_data            ,
     85         _priority                     ,
     86         _load_balancing               ,
     87         _instruction_implemeted       ,
     88         &(morpheo::behavioural::custom::example_get_custom_information),
     89         true // is_toplevel
     90         );
    8491     
    8592      msg(_("%s"),param->print(1).c_str());
     
    100107  delete _nb_inst_fetch;
    101108  delete _instruction_implemeted;
     109  delete _nb_branch_speculated;
     110//   delete _size_branch_update_prediction;
     111
    102112  return (_return);
    103113}
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/SelfTest/src/test.cpp

    r87 r88  
    2222
    2323#ifdef STATISTICS
    24   morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,50);
     24  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,0);
    2525#endif
     26
     27  Tusage_t _usage = USE_ALL;
     28
     29//   _usage = usage_unset(_usage,USE_SYSTEMC              );
     30//   _usage = usage_unset(_usage,USE_VHDL                 );
     31//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH       );
     32//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
     33//   _usage = usage_unset(_usage,USE_POSITION             );
     34//   _usage = usage_unset(_usage,USE_STATISTICS           );
     35//   _usage = usage_unset(_usage,USE_INFORMATION          );
    2636
    2737  Decod * _Decod = new Decod
     
    3141#endif
    3242     _param,
    33      USE_ALL);
     43     _usage);
    3444 
    3545#ifdef SYSTEMC
     
    4252  sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
    4353
    44   ALLOC2_SC_SIGNAL( in_IFETCH_VAL                         ," in_IFETCH_VAL                         ",Tcontrol_t         ,_param->_nb_context,_param->_nb_inst_fetch[alloc_signal_it1]);
    45   ALLOC2_SC_SIGNAL(out_IFETCH_ACK                         ,"out_IFETCH_ACK                         ",Tcontrol_t         ,_param->_nb_context,_param->_nb_inst_fetch[alloc_signal_it1]);
    46   ALLOC2_SC_SIGNAL( in_IFETCH_INSTRUCTION                 ," in_IFETCH_INSTRUCTION                 ",Tinstruction_t     ,_param->_nb_context,_param->_nb_inst_fetch[alloc_signal_it1]);
     54  ALLOC2_SC_SIGNAL( in_IFETCH_VAL                         ," in_IFETCH_VAL                         ",Tcontrol_t         ,_param->_nb_context,_param->_nb_inst_fetch[it1]);
     55  ALLOC2_SC_SIGNAL(out_IFETCH_ACK                         ,"out_IFETCH_ACK                         ",Tcontrol_t         ,_param->_nb_context,_param->_nb_inst_fetch[it1]);
     56  ALLOC2_SC_SIGNAL( in_IFETCH_INSTRUCTION                 ," in_IFETCH_INSTRUCTION                 ",Tinstruction_t     ,_param->_nb_context,_param->_nb_inst_fetch[it1]);
    4757  ALLOC1_SC_SIGNAL( in_IFETCH_CONTEXT_ID                  ," in_IFETCH_CONTEXT_ID                  ",Tcontext_t         ,_param->_nb_context);
    4858  ALLOC1_SC_SIGNAL( in_IFETCH_ADDRESS                     ," in_IFETCH_ADDRESS                     ",Tgeneral_address_t ,_param->_nb_context);
     
    5161  ALLOC1_SC_SIGNAL( in_IFETCH_BRANCH_STATE                ," in_IFETCH_BRANCH_STATE                ",Tbranch_state_t    ,_param->_nb_context);
    5262  ALLOC1_SC_SIGNAL( in_IFETCH_BRANCH_UPDATE_PREDICTION_ID ," in_IFETCH_BRANCH_UPDATE_PREDICTION_ID ",Tprediction_ptr_t  ,_param->_nb_context);
     63  ALLOC1_SC_SIGNAL( in_IFETCH_EXCEPTION                   ," in_IFETCH_EXCEPTION                   ",Texception_t       ,_param->_nb_context);
     64
    5365  ALLOC1_SC_SIGNAL(out_DECOD_VAL                          ,"out_DECOD_VAL                          ",Tcontrol_t         ,_param->_nb_inst_decod);
    5466  ALLOC1_SC_SIGNAL( in_DECOD_ACK                          ," in_DECOD_ACK                          ",Tcontrol_t         ,_param->_nb_inst_decod);
     
    5769  ALLOC1_SC_SIGNAL(out_DECOD_TYPE                         ,"out_DECOD_TYPE                         ",Ttype_t            ,_param->_nb_inst_decod);
    5870  ALLOC1_SC_SIGNAL(out_DECOD_OPERATION                    ,"out_DECOD_OPERATION                    ",Toperation_t       ,_param->_nb_inst_decod);
     71  ALLOC1_SC_SIGNAL(out_DECOD_NO_EXECUTE                   ,"out_DECOD_NO_EXECUTE                   ",Tcontrol_t         ,_param->_nb_inst_decod);
    5972  ALLOC1_SC_SIGNAL(out_DECOD_IS_DELAY_SLOT                ,"out_DECOD_IS_DELAY_SLOT                ",Tcontrol_t         ,_param->_nb_inst_decod);
    6073  ALLOC1_SC_SIGNAL(out_DECOD_ADDRESS                      ,"out_DECOD_ADDRESS                      ",Tgeneral_data_t    ,_param->_nb_inst_decod);
     
    7285  ALLOC1_SC_SIGNAL(out_DECOD_NUM_REG_RE                   ,"out_DECOD_NUM_REG_RE                   ",Tspecial_address_t ,_param->_nb_inst_decod);
    7386  ALLOC1_SC_SIGNAL(out_DECOD_EXCEPTION_USE                ,"out_DECOD_EXCEPTION_USE                ",Texception_t       ,_param->_nb_inst_decod);
     87  ALLOC1_SC_SIGNAL(out_DECOD_EXCEPTION                    ,"out_DECOD_EXCEPTION                    ",Texception_t       ,_param->_nb_inst_decod);
    7488  ALLOC1_SC_SIGNAL(out_PREDICT_VAL                        ,"out_PREDICT_VAL                        ",Tcontrol_t         ,_param->_nb_inst_decod);
    7589  ALLOC1_SC_SIGNAL( in_PREDICT_ACK                        ," in_PREDICT_ACK                        ",Tcontrol_t         ,_param->_nb_inst_decod);
     
    89103  ALLOC_SC_SIGNAL ( in_CONTEXT_EVENT_ACK                  ," in_CONTEXT_EVENT_ACK                  ",Tcontrol_t         );
    90104  ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_CONTEXT_ID           ,"out_CONTEXT_EVENT_CONTEXT_ID           ",Tcontext_t         );
     105  ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_DEPTH                ,"out_CONTEXT_EVENT_DEPTH                ",Tdepth_t           );
    91106  ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_TYPE                 ,"out_CONTEXT_EVENT_TYPE                 ",Tevent_type_t      );
    92107  ALLOC_SC_SIGNAL (out_CONTEXT_EVENT_IS_DELAY_SLOT        ,"out_CONTEXT_EVENT_IS_DELAY_SLOT        ",Tcontrol_t         );
     
    103118  (*(_Decod->in_NRESET))       (*(in_NRESET));
    104119
    105   INSTANCE2_SC_SIGNAL(_Decod, in_IFETCH_VAL                         ,_param->_nb_context,_param->_nb_inst_fetch[alloc_signal_it1]);
    106   INSTANCE2_SC_SIGNAL(_Decod,out_IFETCH_ACK                         ,_param->_nb_context,_param->_nb_inst_fetch[alloc_signal_it1]);
    107   INSTANCE2_SC_SIGNAL(_Decod, in_IFETCH_INSTRUCTION                 ,_param->_nb_context,_param->_nb_inst_fetch[alloc_signal_it1]);
     120  INSTANCE2_SC_SIGNAL(_Decod, in_IFETCH_VAL                         ,_param->_nb_context,_param->_nb_inst_fetch[it1]);
     121  INSTANCE2_SC_SIGNAL(_Decod,out_IFETCH_ACK                         ,_param->_nb_context,_param->_nb_inst_fetch[it1]);
     122  INSTANCE2_SC_SIGNAL(_Decod, in_IFETCH_INSTRUCTION                 ,_param->_nb_context,_param->_nb_inst_fetch[it1]);
    108123  if (_param->_have_port_context_id)
    109124  INSTANCE1_SC_SIGNAL(_Decod, in_IFETCH_CONTEXT_ID                  ,_param->_nb_context);
    110125  INSTANCE1_SC_SIGNAL(_Decod, in_IFETCH_ADDRESS                     ,_param->_nb_context);
    111126//   INSTANCE1_SC_SIGNAL(_Decod, in_IFETCH_ADDRESS_NEXT                ,_param->_nb_context);
    112   if (_param->_have_port_inst_ifetch_ptr)
    113   INSTANCE1_SC_SIGNAL(_Decod, in_IFETCH_INST_IFETCH_PTR             ,_param->_nb_context);
    114127  INSTANCE1_SC_SIGNAL(_Decod, in_IFETCH_BRANCH_STATE                ,_param->_nb_context);
    115   if (_param->_have_port_branch_update_prediction_id)
    116   INSTANCE1_SC_SIGNAL(_Decod, in_IFETCH_BRANCH_UPDATE_PREDICTION_ID ,_param->_nb_context);
     128  INSTANCE1_SC_SIGNAL(_Decod, in_IFETCH_EXCEPTION                   ,_param->_nb_context);
     129
     130  for (uint32_t i=0; i<_param->_nb_context; i++)
     131    {
     132      if (_param->_have_port_inst_ifetch_ptr)
     133        INSTANCE_SC_SIGNAL(_Decod, in_IFETCH_INST_IFETCH_PTR [i]);
     134//       if (_param->_have_port_branch_update_prediction_id)
     135      if (_param->_have_port_depth)
     136        INSTANCE_SC_SIGNAL(_Decod, in_IFETCH_BRANCH_UPDATE_PREDICTION_ID [i]);
     137    }
     138
    117139  INSTANCE1_SC_SIGNAL(_Decod,out_DECOD_VAL                          ,_param->_nb_inst_decod);
    118140  INSTANCE1_SC_SIGNAL(_Decod, in_DECOD_ACK                          ,_param->_nb_inst_decod);
     
    123145  INSTANCE1_SC_SIGNAL(_Decod,out_DECOD_TYPE                         ,_param->_nb_inst_decod);
    124146  INSTANCE1_SC_SIGNAL(_Decod,out_DECOD_OPERATION                    ,_param->_nb_inst_decod);
     147  INSTANCE1_SC_SIGNAL(_Decod,out_DECOD_NO_EXECUTE                   ,_param->_nb_inst_decod);
    125148  INSTANCE1_SC_SIGNAL(_Decod,out_DECOD_IS_DELAY_SLOT                ,_param->_nb_inst_decod);
    126149  INSTANCE1_SC_SIGNAL(_Decod,out_DECOD_ADDRESS                      ,_param->_nb_inst_decod);
     
    138161  INSTANCE1_SC_SIGNAL(_Decod,out_DECOD_NUM_REG_RE                   ,_param->_nb_inst_decod);
    139162  INSTANCE1_SC_SIGNAL(_Decod,out_DECOD_EXCEPTION_USE                ,_param->_nb_inst_decod);
     163  INSTANCE1_SC_SIGNAL(_Decod,out_DECOD_EXCEPTION                    ,_param->_nb_inst_decod);
    140164  INSTANCE1_SC_SIGNAL(_Decod,out_PREDICT_VAL                        ,_param->_nb_inst_decod);
    141165  INSTANCE1_SC_SIGNAL(_Decod, in_PREDICT_ACK                        ,_param->_nb_inst_decod);
     
    144168  INSTANCE1_SC_SIGNAL(_Decod,out_PREDICT_MATCH_INST_IFETCH_PTR      ,_param->_nb_inst_decod);
    145169  INSTANCE1_SC_SIGNAL(_Decod,out_PREDICT_BRANCH_STATE               ,_param->_nb_inst_decod);
    146   if (_param->_have_port_branch_update_prediction_id)
     170//   if (_param->_have_port_branch_update_prediction_id)
     171  if (_param->_have_port_depth)
    147172  INSTANCE1_SC_SIGNAL(_Decod,out_PREDICT_BRANCH_UPDATE_PREDICTION_ID,_param->_nb_inst_decod);
    148173  INSTANCE1_SC_SIGNAL(_Decod,out_PREDICT_BRANCH_CONDITION           ,_param->_nb_inst_decod);
     
    153178//   INSTANCE1_SC_SIGNAL(_Decod, in_PREDICT_CAN_CONTINUE               ,_param->_nb_inst_decod);
    154179  INSTANCE1_SC_SIGNAL(_Decod, in_CONTEXT_DECOD_ENABLE               ,_param->_nb_context);
    155   if (_param->_have_port_depth)
    156   INSTANCE1_SC_SIGNAL(_Decod, in_CONTEXT_DEPTH                      ,_param->_nb_context);
     180  for (uint32_t i=0; i<_param->_nb_context; i++)
     181    if (_param->_have_port_depth)
     182      INSTANCE_SC_SIGNAL(_Decod, in_CONTEXT_DEPTH [i]);
    157183  INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_VAL                  );
    158184  INSTANCE_SC_SIGNAL (_Decod, in_CONTEXT_EVENT_ACK                  );
    159185  if (_param->_have_port_context_id)
    160186  INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_CONTEXT_ID           );
     187  if (_param->_have_port_depth)
     188  INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_DEPTH                );
    161189  INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_TYPE                 );
    162190  INSTANCE_SC_SIGNAL (_Decod,out_CONTEXT_EVENT_IS_DELAY_SLOT        );
     
    236264                      if (_param->_have_port_inst_ifetch_ptr)
    237265                      in_IFETCH_INST_IFETCH_PTR [i]->write(0);
     266                      in_IFETCH_EXCEPTION       [i]->write(EXCEPTION_IFETCH_NONE);
    238267
    239268                      // Alignement
     
    336365                    TEST(Tcontrol_t         , out_PREDICT_MATCH_INST_IFETCH_PTR       [i]->read(),((request [context].front()._address)%_param->_nb_inst_fetch[context]) == 0);
    337366                    TEST(Tbranch_state_t    , out_PREDICT_BRANCH_STATE                [i]->read(), request [context].front()._branch_state               );
    338                     if (_param->_have_port_branch_update_prediction_id)
     367//                  if (_param->_have_port_branch_update_prediction_id)
     368                    if (_param->_have_port_depth)
    339369                    TEST(Tprediction_ptr_t  , out_PREDICT_BRANCH_UPDATE_PREDICTION_ID [i]->read(), request [context].front()._branch_update_prediction_id);
    340370                    TEST(Tbranch_condition_t, out_PREDICT_BRANCH_CONDITION            [i]->read(), request [context].front()._branch_condition           );
     
    358388                    if (_param->_have_port_context_id)
    359389                    TEST(Tcontext_t     ,out_CONTEXT_EVENT_CONTEXT_ID   ->read(), context);
     390                    if (_param->_have_port_depth )
     391                    TEST(Tcontext_t     ,out_CONTEXT_EVENT_DEPTH        ->read(), request [context].front()._depth        );
    360392                    TEST(Tevent_type_t  ,out_CONTEXT_EVENT_TYPE         ->read(), request [context].front()._context_event_type);
    361393                    TEST(Tcontrol_t     ,out_CONTEXT_EVENT_IS_DELAY_SLOT->read(), request [context].front()._is_delay_slot);
     
    403435  delete []  in_IFETCH_BRANCH_STATE                ;
    404436  delete []  in_IFETCH_BRANCH_UPDATE_PREDICTION_ID ;
     437  delete []  in_IFETCH_EXCEPTION                   ;
    405438 
    406439  delete [] out_DECOD_VAL                          ;
     
    410443  delete [] out_DECOD_TYPE                         ;
    411444  delete [] out_DECOD_OPERATION                    ;
     445  delete [] out_DECOD_NO_EXECUTE                   ;
    412446  delete [] out_DECOD_IS_DELAY_SLOT                ;
    413447  delete [] out_DECOD_ADDRESS                      ;
     
    425459  delete [] out_DECOD_NUM_REG_RE                   ;
    426460  delete [] out_DECOD_EXCEPTION_USE                ;
     461  delete [] out_DECOD_EXCEPTION                    ;
    427462 
    428463  delete [] out_PREDICT_VAL                        ;
     
    445480  delete     in_CONTEXT_EVENT_ACK                  ;
    446481  delete    out_CONTEXT_EVENT_CONTEXT_ID           ;
     482  delete    out_CONTEXT_EVENT_DEPTH                ;
    447483  delete    out_CONTEXT_EVENT_TYPE                 ;
    448484  delete    out_CONTEXT_EVENT_IS_DELAY_SLOT        ;
Note: See TracChangeset for help on using the changeset viewer.