Ignore:
Timestamp:
Jun 8, 2009, 10:43:30 PM (15 years ago)
Author:
rosiere
Message:

1) Fix performance
2) add auto generation to SPECINT2000
3) add reset in genMoore and genMealy

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMealy_bypass.cpp

    r118 r123  
    2626    log_function(Write_queue,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    Tcontrol_t val = PORT_READ(in_WRITE_QUEUE_IN_VAL);
    2931
     
    3638    PORT_WRITE(out_BYPASS_WRITE_SPR_NUM_REG   [0], PORT_READ(in_WRITE_QUEUE_IN_NUM_REG_RE   )); // RE
    3739    PORT_WRITE(out_BYPASS_WRITE_SPR_DATA      [0], PORT_READ(in_WRITE_QUEUE_IN_DATA_RE      ));
    38    
    39     // -----[ Interface "bypass_write" ]----------------------------------
     40      }
     41    else
     42      {
     43    PORT_WRITE(out_BYPASS_WRITE_GPR_VAL       [0], 0);
     44    PORT_WRITE(out_BYPASS_WRITE_SPR_VAL       [0], 0);
     45      }
    4046
    4147    log_end(Write_queue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMealy_write.cpp

    r118 r123  
    2626    log_function(Write_queue,FUNCTION,_name.c_str());
    2727   
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    // -----[ Interface "bypass_write" ]----------------------------------
    2931    // in genMoore
     
    9193        }
    9294    }
     95      }
     96    else
     97      {
     98        internal_WRITE_QUEUE_OUT_VAL = 0;
     99      }
     100   
     101    PORT_WRITE(out_WRITE_QUEUE_OUT_VAL, internal_WRITE_QUEUE_OUT_VAL);
    93102
    94103    log_end(Write_queue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Write_queue/src/Write_queue_genMoore.cpp

    r118 r123  
    2626    log_function(Write_queue,FUNCTION,_name.c_str());
    2727   
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    // -----[ Interface "bypass_write" ]----------------------------------
    2931    {
     
    7173    {
    7274      internal_WRITE_QUEUE_IN_ACK = _queue->size() < _param->_size_queue;
    73      
    74       PORT_WRITE(out_WRITE_QUEUE_IN_ACK, internal_WRITE_QUEUE_IN_ACK);
    7575    }
    7676
     
    8585      internal_SPR_WRITE_VAL = val and _queue->front()->_write_re;
    8686     
    87       PORT_WRITE(out_GPR_WRITE_VAL [0], internal_GPR_WRITE_VAL);
    88       PORT_WRITE(out_SPR_WRITE_VAL [0], internal_SPR_WRITE_VAL);
    89 
    9087      if (val)
    9188        {
     
    110107                                      );
    111108     
    112       PORT_WRITE(out_WRITE_QUEUE_OUT_VAL, internal_WRITE_QUEUE_OUT_VAL);
    113 
    114109      if (internal_WRITE_QUEUE_OUT_VAL)
    115110        {
     
    133128
    134129      } // end WRITE_QUEUE_SCHEME_MOORE
     130      }
     131    else
     132      {
     133        // Reset
     134        internal_WRITE_QUEUE_IN_ACK  = 0;
     135        internal_WRITE_QUEUE_OUT_VAL = 0;
     136        internal_GPR_WRITE_VAL = 0;
     137        internal_SPR_WRITE_VAL = 0;
     138
     139      }
     140
     141    // Write output
     142    PORT_WRITE(out_WRITE_QUEUE_IN_ACK , internal_WRITE_QUEUE_IN_ACK);
     143    PORT_WRITE(out_WRITE_QUEUE_OUT_VAL, internal_WRITE_QUEUE_OUT_VAL);
     144
     145    PORT_WRITE(out_GPR_WRITE_VAL [0]  , internal_GPR_WRITE_VAL);
     146    PORT_WRITE(out_SPR_WRITE_VAL [0]  , internal_SPR_WRITE_VAL);
     147
    135148    log_end(Write_queue,FUNCTION);
    136149  };
Note: See TracChangeset for help on using the changeset viewer.