Ignore:
Timestamp:
Feb 16, 2010, 1:35:48 PM (14 years ago)
Author:
rosiere
Message:

Various modif (add test, and vhdl)

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Decod_queue.h

    r136 r137  
    7575  public    : SC_IN (Tcontext_t         )  **  in_DECOD_IN_CONTEXT_ID     ;//[nb_inst_decod]
    7676  public    : SC_IN (Tdepth_t           )  **  in_DECOD_IN_DEPTH          ;//[nb_inst_decod]
     77#ifdef STATISTICS
     78  public    : SC_IN (uint32_t           )  **  in_DECOD_IN_INSTRUCTION    ;//[nb_inst_decod]
     79#endif
    7780  public    : SC_IN (Ttype_t            )  **  in_DECOD_IN_TYPE           ;//[nb_inst_decod]
    7881  public    : SC_IN (Toperation_t       )  **  in_DECOD_IN_OPERATION      ;//[nb_inst_decod]
     
    103106  public    : SC_OUT(Tcontext_t         )  ** out_DECOD_OUT_CONTEXT_ID    ;//[nb_inst_decod]
    104107  public    : SC_OUT(Tdepth_t           )  ** out_DECOD_OUT_DEPTH         ;//[nb_inst_decod]
     108#ifdef STATISTICS
     109  public    : SC_OUT(uint32_t           )  ** out_DECOD_OUT_INSTRUCTION   ;//[nb_inst_decod]
     110#endif
    105111  public    : SC_OUT(Ttype_t            )  ** out_DECOD_OUT_TYPE          ;//[nb_inst_decod]
    106112  public    : SC_OUT(Toperation_t       )  ** out_DECOD_OUT_OPERATION     ;//[nb_inst_decod]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/include/Types.h

    r112 r137  
    3333  public : Tcontext_t         * _context_id     ;
    3434  public : Tdepth_t           * _depth          ;
     35#ifdef STATISTICS
     36  public : uint32_t           * _instruction    ;
     37#endif
    3538  public : Ttype_t            * _type           ;
    3639  public : Toperation_t       * _operation      ;
     
    6265      ALLOC1(_context_id     ,Tcontext_t         ,_nb_inst);
    6366      ALLOC1(_depth          ,Tdepth_t           ,_nb_inst);
     67#ifdef STATISTICS
     68      ALLOC1(_instruction    ,uint32_t           ,_nb_inst);
     69#endif
    6470      ALLOC1(_type           ,Ttype_t            ,_nb_inst);
    6571      ALLOC1(_operation      ,Toperation_t       ,_nb_inst);
     
    94100      DELETE1(_context_id     ,_nb_inst);
    95101      DELETE1(_depth          ,_nb_inst);
     102#ifdef STATISTICS
     103      DELETE1(_instruction    ,_nb_inst);
     104#endif
    96105      DELETE1(_type           ,_nb_inst);
    97106      DELETE1(_operation      ,_nb_inst);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_allocation.cpp

    r123 r137  
    6363      ALLOC1_SIGNAL_IN ( in_DECOD_IN_CONTEXT_ID     ,"context_id"   ,Tcontext_t         ,_param->_size_context_id            );
    6464      ALLOC1_SIGNAL_IN ( in_DECOD_IN_DEPTH          ,"depth"        ,Tdepth_t           ,_param->_size_depth                 );
     65#ifdef STATISTICS
     66      ALLOC1_SIGNAL_IN ( in_DECOD_IN_INSTRUCTION    ,"instruction"  ,uint32_t           ,32                                  );
     67#endif
    6568      ALLOC1_SIGNAL_IN ( in_DECOD_IN_TYPE           ,"type"         ,Ttype_t            ,_param->_size_type                  );
    6669      ALLOC1_SIGNAL_IN ( in_DECOD_IN_OPERATION      ,"operation"    ,Toperation_t       ,_param->_size_operation             );
     
    97100      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_CONTEXT_ID     ,"context_id"   ,Tcontext_t         ,_param->_size_context_id            );
    98101      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_DEPTH          ,"depth"        ,Tdepth_t           ,_param->_size_depth                 );
     102#ifdef STATISTICS
     103      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_INSTRUCTION    ,"instruction"  ,uint32_t           ,32                                  );
     104#endif
    99105      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_TYPE           ,"type"         ,Ttype_t            ,_param->_size_type                  );
    100106      ALLOC1_SIGNAL_OUT(out_DECOD_OUT_OPERATION      ,"operation"    ,Toperation_t       ,_param->_size_operation             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_deallocation.cpp

    r123 r137  
    3333        DELETE1_SIGNAL( in_DECOD_IN_CONTEXT_ID     ,_param->_nb_inst_decod,_param->_size_context_id            );
    3434        DELETE1_SIGNAL( in_DECOD_IN_DEPTH          ,_param->_nb_inst_decod,_param->_size_depth                 );
     35#ifdef STATISTICS
     36        DELETE1_SIGNAL( in_DECOD_IN_INSTRUCTION    ,_param->_nb_inst_decod,32);
     37#endif
    3538        DELETE1_SIGNAL( in_DECOD_IN_TYPE           ,_param->_nb_inst_decod,_param->_size_type                  );
    3639        DELETE1_SIGNAL( in_DECOD_IN_OPERATION      ,_param->_nb_inst_decod,_param->_size_operation             );
     
    6063        DELETE1_SIGNAL(out_DECOD_OUT_CONTEXT_ID    ,_param->_nb_inst_decod,_param->_size_context_id            );
    6164        DELETE1_SIGNAL(out_DECOD_OUT_DEPTH         ,_param->_nb_inst_decod,_param->_size_depth                 );
     65#ifdef STATISTICS
     66        DELETE1_SIGNAL(out_DECOD_OUT_INSTRUCTION   ,_param->_nb_inst_decod,32);
     67#endif
    6268        DELETE1_SIGNAL(out_DECOD_OUT_TYPE          ,_param->_nb_inst_decod,_param->_size_type                  );
    6369        DELETE1_SIGNAL(out_DECOD_OUT_OPERATION     ,_param->_nb_inst_decod,_param->_size_operation             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_genMoore.cpp

    r123 r137  
    5555                if (_param->_have_port_depth)
    5656                PORT_WRITE(out_DECOD_OUT_DEPTH         [i],reg_QUEUE[num_bank].front()->_depth         [0]);
     57#ifdef STATISTICS
     58                PORT_WRITE(out_DECOD_OUT_INSTRUCTION   [i],reg_QUEUE[num_bank].front()->_instruction   [0]);
     59#endif
    5760                PORT_WRITE(out_DECOD_OUT_TYPE          [i],reg_QUEUE[num_bank].front()->_type          [0]);
    5861                PORT_WRITE(out_DECOD_OUT_OPERATION     [i],reg_QUEUE[num_bank].front()->_operation     [0]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_multi_fifo_transition.cpp

    r136 r137  
    7474                entry->_context_id    [0] = context;
    7575                entry->_depth         [0] = (_param->_have_port_depth)?PORT_READ(in_DECOD_IN_DEPTH [i]):0;
     76#ifdef STATISTICS
     77                entry->_instruction   [0] = PORT_READ(in_DECOD_IN_INSTRUCTION   [i]);
     78#endif
    7679                entry->_type          [0] = PORT_READ(in_DECOD_IN_TYPE          [i]);
    7780                entry->_operation     [0] = PORT_READ(in_DECOD_IN_OPERATION     [i]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_genMoore.cpp

    r123 r137  
    5555          if (_param->_have_port_depth)
    5656          PORT_WRITE(out_DECOD_OUT_DEPTH         [i],reg_QUEUE->front()->_depth         [index]);
     57#ifdef STATISTICS
     58          PORT_WRITE(out_DECOD_OUT_INSTRUCTION   [i],reg_QUEUE->front()->_instruction   [index]);
     59#endif
    5760          PORT_WRITE(out_DECOD_OUT_TYPE          [i],reg_QUEUE->front()->_type          [index]);
    5861          PORT_WRITE(out_DECOD_OUT_OPERATION     [i],reg_QUEUE->front()->_operation     [index]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Decod_queue_function_one_fifo_transition.cpp

    r136 r137  
    7777                entry->_context_id    [i] = context;
    7878                entry->_depth         [i] = (_param->_have_port_depth)?PORT_READ(in_DECOD_IN_DEPTH [i]):0;
     79#ifdef STATISTICS
     80                entry->_instruction   [i] = PORT_READ(in_DECOD_IN_INSTRUCTION   [i]);
     81#endif
    7982                entry->_type          [i] = PORT_READ(in_DECOD_IN_TYPE          [i]);
    8083                entry->_operation     [i] = PORT_READ(in_DECOD_IN_OPERATION     [i]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod_queue/src/Parameters.cpp

    r135 r137  
    4242    test();
    4343
    44     _size_internal_queue =
    45       (1                            + // _val
    46        _size_context_id             + // _context_id
    47        _size_depth                  + // _depth
    48        _size_type                   + // _type   
    49        _size_operation              + // _operation
    50        1                            + // _no_execute
    51        1                            + // _is_delay_slot
    52 #ifdef DEBUG
    53        _size_instruction_address    + // _address
    54 #endif
    55        _size_instruction_address    + // _address_next
    56        1                            + // _has_immediat
    57        _size_general_data           + // _immediat
    58        1                            + // _read_ra
    59        _size_general_register_logic + // _num_reg_ra
    60        1                            + // _read_rb
    61        _size_general_register_logic + // _num_reg_rb
    62        1                            + // _read_rc
    63        _size_special_register_logic + // _num_reg_rc
    64        1                            + // _write_rd
    65        _size_general_register_logic + // _num_reg_rd
    66        1                            + // _write_re
    67        _size_special_register_logic + // _num_reg_re
    68        _size_exception_use          + // _exception_use
    69        _size_exception_decod          // _exception
    70        ) * _nb_inst_decod;
    71 
    7244    if (is_toplevel)
    7345      {
     
    11183    log_begin(Decod_queue,FUNCTION);
    11284
     85    _size_internal_queue =
     86      (1                            + // _val
     87       _size_context_id             + // _context_id
     88       _size_depth                  + // _depth
     89       _size_type                   + // _type   
     90       _size_operation              + // _operation
     91       1                            + // _no_execute
     92       1                            + // _is_delay_slot
     93#ifdef DEBUG
     94       _size_instruction_address    + // _address
     95#endif
     96       _size_instruction_address    + // _address_next
     97       1                            + // _has_immediat
     98       _size_general_data           + // _immediat
     99       1                            + // _read_ra
     100       _size_general_register_logic + // _num_reg_ra
     101       1                            + // _read_rb
     102       _size_general_register_logic + // _num_reg_rb
     103       1                            + // _read_rc
     104       _size_special_register_logic + // _num_reg_rc
     105       1                            + // _write_rd
     106       _size_general_register_logic + // _num_reg_rd
     107       1                            + // _write_re
     108       _size_special_register_logic + // _num_reg_re
     109       _size_exception_use          + // _exception_use
     110       _size_exception_decod          // _exception
     111       ) * _nb_inst_decod;
     112
    113113    log_end(Decod_queue,FUNCTION);
    114114  };
Note: See TracChangeset for help on using the changeset viewer.