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
Files:
45 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue.cpp

    r88 r123  
    3939    usage_environment(_usage);
    4040
    41 #if DEBUG_Execute_loop_Glue == true
    42     log_printf(INFO,Execute_loop_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
     41// #if DEBUG_Execute_loop_Glue == true
     42//     log_printf(INFO,Execute_loop_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4343
    44     std::cout << *param << std::endl;
    45 #endif   
     44//     std::cout << *param << std::endl;
     45// #endif   
    4646
    4747    log_printf(INFO,Execute_loop_Glue,FUNCTION,_("<%s> : Allocation"),_name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_gpr_write.cpp

    r88 r123  
    2323    log_begin(Execute_loop_Glue,FUNCTION);
    2424
     25    if (PORT_READ(in_NRESET))
     26      {
    2527    for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
    2628      {
     
    4547        PORT_WRITE(out_GPR_WRITE_READ_UNIT_DATA               [i],data         );
    4648      }
     49      }
     50    else
     51      {
     52        for (uint32_t i=0; i<_param->_nb_gpr_write; i++)
     53          {
     54            PORT_WRITE(out_GPR_WRITE_WRITE_UNIT_ACK               [i],0);
     55            PORT_WRITE(out_GPR_WRITE_REGISTER_FILE_VAL            [i],0);
     56            PORT_WRITE(out_GPR_WRITE_READ_UNIT_VAL                [i],0);
     57          }
     58      }
    4759
    4860    log_end(Execute_loop_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_spr_write.cpp

    r88 r123  
    2323    log_begin(Execute_loop_Glue,FUNCTION);
    2424
     25    if (PORT_READ(in_NRESET))
     26      {
    2527    for (uint32_t i=0; i<_param->_nb_spr_write; i++)
    2628      {
     
    4547        PORT_WRITE(out_SPR_WRITE_READ_UNIT_DATA               [i],data         );
    4648      }
     49      }
     50    else
     51      {
     52        for (uint32_t i=0; i<_param->_nb_spr_write; i++)
     53          {
     54            PORT_WRITE(out_SPR_WRITE_WRITE_UNIT_ACK               [i],0);
     55            PORT_WRITE(out_SPR_WRITE_REGISTER_FILE_VAL            [i],0);
     56            PORT_WRITE(out_SPR_WRITE_READ_UNIT_VAL                [i],0);
     57          }
     58      }
    4759
    4860    log_end(Execute_loop_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit.cpp

    r116 r123  
    4242    allocation ();
    4343
    44 #if DEBUG_Functionnal_unit == true
    45     log_printf(INFO,Functionnal_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     44// #if DEBUG_Functionnal_unit == true
     45//     log_printf(INFO,Functionnal_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4646
    47     std::cout << *param << std::endl;
    48 #endif   
     47//     std::cout << *param << std::endl;
     48// #endif   
    4949
    5050#ifdef STATISTICS
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMealy.cpp

    r118 r123  
    3131          // Can out if : have an instruction and is finish (latence == 0)
    3232          internal_EXECUTE_OUT_VAL = (reg_BUSY_OUT and (_execute_operation_out->_timing._latence == 0));
    33          
    34           PORT_WRITE(out_EXECUTE_OUT_VAL, internal_EXECUTE_OUT_VAL);
    3533        }
    3634       
     
    5048                                     (internal_EXECUTE_OUT_VAL and PORT_READ(in_EXECUTE_OUT_ACK)));
    5149            }
    52 
    53           PORT_WRITE(out_EXECUTE_IN_ACK , internal_EXECUTE_IN_ACK);
    5450        }
    5551      }
     52    else
     53      {
     54        // RESET
     55        internal_EXECUTE_IN_ACK = 0;
     56        internal_EXECUTE_OUT_VAL = 0;
     57      }
     58
     59    // Write Output
     60    PORT_WRITE(out_EXECUTE_IN_ACK , internal_EXECUTE_IN_ACK);
     61    PORT_WRITE(out_EXECUTE_OUT_VAL, internal_EXECUTE_OUT_VAL);
    5662
    5763    log_end(Functionnal_unit,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_genMoore.cpp

    r116 r123  
    2626    log_function(Functionnal_unit,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
    2829    {
    2930      if (_param->_have_port_context_id)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit.cpp

    r111 r123  
    3939    log_printf(FUNC,Load_store_unit,FUNCTION,"Begin");
    4040
    41 #if DEBUG_Load_store_unit == true
    42     log_printf(INFO,Load_store_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    43 
    44     std::cout << *param << std::endl;
    45 #endif   
     41// #if DEBUG_Load_store_unit == true
     42//     log_printf(INFO,Load_store_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     43
     44//     std::cout << *param << std::endl;
     45// #endif   
    4646
    4747#ifdef SYSTEMC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_function_speculative_load_commit_genMealy_insert.cpp

    r101 r123  
    3535      ack [i] = 0;
    3636
     37    if (PORT_READ(in_NRESET))
     38      {
    3739    // find first valid entry
    3840    // store queue is never full (pointer is manage by rename stage)
     
    4951            }
    5052        }
     53      }
     54    else
     55      {
     56        internal_MEMORY_IN_ACK = 0;
     57//         internal_MEMORY_IN_PORT = i;
     58      }
    5159
    5260    for (uint32_t i=0; i<_param->_nb_inst_memory; i++)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_function_speculative_load_commit_genMoore.cpp

    r122 r123  
    2727    log_function(Load_store_unit,FUNCTION,_name.c_str());
    2828
     29    if (PORT_READ(in_NRESET))
     30      {
    2931    // ~~~~~[ Interface "memory_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    3032
     
    140142
    141143    // write output
    142     PORT_WRITE(out_MEMORY_OUT_VAL          [0], internal_MEMORY_OUT_VAL);
    143 
    144144    if (_param->_have_port_context_id)
    145145    PORT_WRITE(out_MEMORY_OUT_CONTEXT_ID   [0], memory_out_context_id   );
     
    171171    // ~~~~~[ Interface "dache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    172172
    173     Tcontext_t        dcache_req_context_id;
    174     Tpacket_t         dcache_req_packet_id ;
    175     Tdcache_address_t dcache_req_address   ;
    176     Tdcache_type_t    dcache_req_type      ;
    177     Tdcache_data_t    dcache_req_wdata     ;
     173    Tcontext_t        dcache_req_context_id = 0;
     174    Tpacket_t         dcache_req_packet_id  = 0;
     175    Tdcache_address_t dcache_req_address    = 0;
     176    Tdcache_type_t    dcache_req_type       = 0;
     177    Tdcache_data_t    dcache_req_wdata      = 0;
    178178
    179179    log_printf(TRACE,Load_store_unit,FUNCTION,"  * Test DCACHE_REQ");
     
    241241      }
    242242
    243     PORT_WRITE(out_DCACHE_REQ_VAL       [0], internal_DCACHE_REQ_VAL);
    244243    if (_param->_have_port_dcache_context_id)
    245244    PORT_WRITE(out_DCACHE_REQ_CONTEXT_ID[0], dcache_req_context_id);
     
    248247    PORT_WRITE(out_DCACHE_REQ_TYPE      [0], dcache_req_type      );
    249248    PORT_WRITE(out_DCACHE_REQ_WDATA     [0], dcache_req_wdata     );
    250    
     249      }
     250    else
     251      {
     252        // Reset
     253    internal_MEMORY_OUT_VAL = 0;
     254//  internal_MEMORY_OUT_PTR =0
     255//  internal_MEMORY_OUT_SELECT_QUEUE = SELECT_STORE_QUEUE;
     256
     257    internal_DCACHE_REQ_VAL = 0;
     258    internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ = 0;
     259//  internal_DCACHE_REQ_SELECT_QUEUE = SELECT_LOAD_QUEUE_SPECULATIVE;
     260      }
     261
     262    // Write output
     263    PORT_WRITE(out_MEMORY_OUT_VAL [0], internal_MEMORY_OUT_VAL);
     264    PORT_WRITE(out_DCACHE_REQ_VAL [0], internal_DCACHE_REQ_VAL);
     265
     266
    251267    log_end(Load_store_unit,FUNCTION);
    252268  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_genMoore.cpp

    r81 r123  
    2626    log_printf(FUNC,Load_store_unit,FUNCTION,"Begin");
    2727
     28//     if (PORT_READ(in_NRESET))
    2829    (this->*function_genMoore) ();
    2930   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp

    r88 r123  
    3636    log_printf(FUNC,Read_queue,"Read_queue","Begin");
    3737
    38 #if DEBUG_Read_queue == true
    39     log_printf(INFO,Read_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());
    40 
    41     std::cout << *param << std::endl;
    42 #endif   
     38// #if DEBUG_Read_queue == true
     39//     log_printf(INFO,Read_queue,FUNCTION,_("<%s> Parameters"),_name.c_str());
     40
     41//     std::cout << *param << std::endl;
     42// #endif   
    4343
    4444#ifdef SYSTEMC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_gpr.cpp

    r88 r123  
    2525    log_function(Read_queue,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET))
     28      {
    2729    internal_READ_QUEUE_OUT_DATA_RA_VAL = (// Previous value
    2830                                           _queue_head->_data_ra_val or
     
    102104
    103105    // Affectation out port
     106    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RA    ,internal_READ_QUEUE_OUT_DATA_RA    );
     107    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RB    ,internal_READ_QUEUE_OUT_DATA_RB    );
     108      }
     109    else
     110      {
     111        internal_READ_QUEUE_OUT_DATA_RA_VAL = 0;
     112        internal_READ_QUEUE_OUT_DATA_RB_VAL = 0;
     113//         internal_READ_QUEUE_OUT_DATA_RA = 0;
     114//         internal_READ_QUEUE_OUT_DATA_RB = 0;
     115      }
     116
    104117    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RA_VAL,internal_READ_QUEUE_OUT_DATA_RA_VAL);
    105118    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RB_VAL,internal_READ_QUEUE_OUT_DATA_RB_VAL);
    106     PORT_WRITE(out_READ_QUEUE_OUT_DATA_RA    ,internal_READ_QUEUE_OUT_DATA_RA    );
    107     PORT_WRITE(out_READ_QUEUE_OUT_DATA_RB    ,internal_READ_QUEUE_OUT_DATA_RB    );
    108119
    109120    log_end(Read_queue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_spr.cpp

    r88 r123  
    2525    log_function(Read_queue,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET))
     28      {
    2729    internal_READ_QUEUE_OUT_DATA_RC_VAL = (// Previous value
    2830                                           _queue_head->_data_rc_val or
     
    7274
    7375    // Affectation out port
     76    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RC    ,internal_READ_QUEUE_OUT_DATA_RC    );
     77      }
     78    else
     79      {
     80        internal_READ_QUEUE_OUT_DATA_RC_VAL = 0;
     81//         internal_READ_QUEUE_OUT_DATA_RC
     82      }
     83
    7484    PORT_WRITE(out_READ_QUEUE_OUT_DATA_RC_VAL,internal_READ_QUEUE_OUT_DATA_RC_VAL);
    75     PORT_WRITE(out_READ_QUEUE_OUT_DATA_RC    ,internal_READ_QUEUE_OUT_DATA_RC    );
    7685
    7786    log_end(Read_queue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMealy_read_queue_out_val.cpp

    r88 r123  
    2525    log_function(Read_queue,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET))
     28      {
    2729    internal_READ_QUEUE_OUT_READ_RA_VAL = (// Previous value
    2830                                           _queue_head->_read_ra_val  and
     
    98100
    99101
    100     PORT_WRITE(out_READ_QUEUE_OUT_VAL, internal_READ_QUEUE_OUT_VAL);
    101 
    102102    log_printf(TRACE,Read_queue,FUNCTION,"  * internal_READ_QUEUE_OUT_VAL           : %d",internal_READ_QUEUE_OUT_VAL);
    103103    log_printf(TRACE,Read_queue,FUNCTION,"    * _queue->empty()                     : %d",_queue->empty());
     
    111111    log_printf(TRACE,Read_queue,FUNCTION,"      * _queue_head->_read_rc_val         : %d",_queue_head->_read_rc_val);
    112112    log_printf(TRACE,Read_queue,FUNCTION,"      * in_SPR_READ_ACK      [0]          : %d",PORT_READ(in_SPR_READ_ACK      [0]));
     113      }
     114    else
     115      {
     116        internal_READ_QUEUE_OUT_VAL = 0;
     117      }
     118
     119    PORT_WRITE(out_READ_QUEUE_OUT_VAL, internal_READ_QUEUE_OUT_VAL);
    113120
    114121    log_end(Read_queue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp

    r122 r123  
    2525    log_function(Read_queue,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET))
     28      {
    2729    bool not_full  = _queue->size() < _param->_size_queue;
    2830    bool not_empty = not _queue->empty();
     
    8486    PORT_WRITE (out_SPR_READ_OOO_ENGINE_ID [0],               _queue_head->_ooo_engine_id);
    8587    PORT_WRITE (out_SPR_READ_NUM_REG       [0],               _queue_head->_num_reg_rc);
    86                    
     88      }
     89    else
     90      {
     91        // Reset
     92
     93    PORT_WRITE (out_READ_QUEUE_IN_ACK , 0);
     94    PORT_WRITE (out_GPR_READ_VAL   [0], 0);
     95    PORT_WRITE (out_GPR_READ_VAL   [1], 0);
     96    PORT_WRITE (out_SPR_READ_VAL   [0], 0);
     97
     98      }
     99   
    87100    log_end(Read_queue,FUNCTION);
    88101  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp

    r122 r123  
    4343        // Init, else error in registerfile
    4444        _queue_head->_ooo_engine_id = 0;
     45        // not necessary
     46        _queue_head->_read_ra_val = false;
     47        _queue_head->_read_rb_val = false;
     48        _queue_head->_read_rc_val = false;
     49
     50        _queue_head->_data_ra_val = false;
     51        _queue_head->_data_rb_val = false;
     52        _queue_head->_data_rc_val = false;
     53
     54        _queue_head->_num_reg_ra  = 0;
     55        _queue_head->_num_reg_rb  = 0;
     56        _queue_head->_num_reg_rc  = 0;
    4557      }
    4658    else
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp

    r88 r123  
    3939    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
    4040
    41 #if DEBUG_Reservation_station == true
    42     log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Parameters"),_name.c_str());
     41// #if DEBUG_Reservation_station == true
     42//     log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4343
    44     std::cout << *param << std::endl;
    45 #endif   
     44//     std::cout << *param << std::endl;
     45// #endif   
    4646
    4747#ifdef SYSTEMC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_genMoore.cpp

    r122 r123  
    2727    log_function(Reservation_station,FUNCTION,_name.c_str());
    2828
     29    if (PORT_READ(in_NRESET))
     30      {
    2931    // ~~~~~[ Interface "insert" ]~~~~~~~~~~~~~~~~~~~~~~~~
    3032   
     
    3638    internal_INSERT_ACK = not _queue_control->full();
    3739#endif   
    38     PORT_WRITE(out_INSERT_ACK, internal_INSERT_ACK);
    3940
    4041    // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~
     
    9293
    9394        internal_RETIRE_VAL [i] = val;
    94         PORT_WRITE(out_RETIRE_VAL [i], val);
    9595
    9696        if (val)
     
    128128          }
    129129      }
     130      }
     131    else
     132      {
     133        // Reset
     134        internal_INSERT_ACK = 0;
     135        // internal_INSERT_SLOT
     136       
     137        for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
     138          {
     139            internal_RETIRE_VAL [i] = 0;
     140            // internal_RETIRE_SLOT [i];
     141          }
     142      }
     143
     144    // Write Output
     145    PORT_WRITE(out_INSERT_ACK    , internal_INSERT_ACK);
     146    for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
     147    PORT_WRITE(out_RETIRE_VAL [i], internal_RETIRE_VAL [i]);
    130148
    131149    log_end(Reservation_station,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/src/Read_unit.cpp

    r88 r123  
    3838    log_printf(FUNC,Read_unit,FUNCTION,"Begin");
    3939
    40 #if DEBUG_Read_unit == true
    41     log_printf(INFO,Read_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     40// #if DEBUG_Read_unit == true
     41//     log_printf(INFO,Read_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4242
    43     std::cout << *param << std::endl;
    44 #endif   
     43//     std::cout << *param << std::endl;
     44// #endif   
    4545
    4646    log_printf(INFO,Read_unit,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/Execute_queue/src/Execute_queue_genMoore.cpp

    r101 r123  
    2626    log_function(Execute_queue,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    // -----[ Interface "execute_queue_in" ]--------------------------------
    2931    {
    3032      internal_EXECUTE_QUEUE_IN_ACK = _queue->size() < _param->_size_queue;
    31      
    32       PORT_WRITE(out_EXECUTE_QUEUE_IN_ACK, internal_EXECUTE_QUEUE_IN_ACK);
    3333    }
    3434
    3535    // -----[ Interface "execute_queue_out" ]--------------------------------
    3636    {
    37       // TODO : make a genMealy version
    3837      internal_EXECUTE_QUEUE_OUT_VAL = (not _queue->empty());
    3938     
    40       PORT_WRITE(out_EXECUTE_QUEUE_OUT_VAL, internal_EXECUTE_QUEUE_OUT_VAL);
    41 
    4239      if (internal_EXECUTE_QUEUE_OUT_VAL)
    4340        {
     
    5956        }
    6057    }
     58      }
     59    else
     60      {
     61        // Reset
     62      internal_EXECUTE_QUEUE_IN_ACK  = 0;
     63      internal_EXECUTE_QUEUE_OUT_VAL = 0;
     64      }
     65
     66    // Write output
     67    PORT_WRITE(out_EXECUTE_QUEUE_IN_ACK , internal_EXECUTE_QUEUE_IN_ACK);
     68    PORT_WRITE(out_EXECUTE_QUEUE_OUT_VAL, internal_EXECUTE_QUEUE_OUT_VAL);
    6169
    6270    log_end(Execute_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_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  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit.cpp

    r88 r123  
    3838    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
    3939
    40 #if DEBUG_Execution_unit_to_Write_unit == true
    41     log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    42 
    43     std::cout << *param << std::endl;
    44 #endif   
     40// #if DEBUG_Execution_unit_to_Write_unit == true
     41//     log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     42
     43//     std::cout << *param << std::endl;
     44// #endif   
    4545
    4646    log_printf(INFO,Execution_unit_to_Write_unit,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Execution_unit_to_Write_unit/src/Execution_unit_to_Write_unit_genMealy.cpp

    r97 r123  
    2424    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"Begin");
    2525
     26    if (PORT_READ(in_NRESET))
     27      {
    2628    bool write_unit_use [_param->_nb_write_unit];
    2729
     
    9698        PORT_WRITE(out_WRITE_UNIT_IN_VAL[i], write_unit_use[i]); 
    9799      }
     100      }
     101    else
     102      {
     103        for (uint32_t i=0; i<_param->_nb_execute_unit; i++)
     104          for (uint32_t j=0; j<_param->_nb_execute_unit_port[i]; j++)
     105            PORT_WRITE(out_EXECUTE_UNIT_OUT_ACK [i][j], 0);
     106       
     107        for (uint32_t i=0; i<_param->_nb_write_unit; i++)
     108          PORT_WRITE(out_WRITE_UNIT_IN_VAL[i], 0); 
     109      }
    98110
    99111    log_printf(FUNC,Execution_unit_to_Write_unit,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit.cpp

    r88 r123  
    3838    log_printf(FUNC,Read_unit_to_Execution_unit,FUNCTION,"Begin");
    3939
    40 #if DEBUG_Read_unit_to_Execution_unit == true
    41     log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    42 
    43     std::cout << *param << std::endl;
    44 #endif   
     40// #if DEBUG_Read_unit_to_Execution_unit == true
     41//     log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     42
     43//     std::cout << *param << std::endl;
     44// #endif   
    4545
    4646    log_printf(INFO,Read_unit_to_Execution_unit,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Network/Read_unit_to_Execution_unit/src/Read_unit_to_Execution_unit_genMealy.cpp

    r122 r123  
    2525    log_function(Read_unit_to_Execution_unit,FUNCTION,_name.c_str());
    2626
     27    if (PORT_READ(in_NRESET))
     28      {
    2729    bool execute_unit_use [_param->_nb_execute_unit][_param->_max_nb_execute_unit_port];
    2830
     
    106108      for (uint32_t j=0; j<_param->_nb_execute_unit_port[i]; j++)
    107109        PORT_WRITE(out_EXECUTE_UNIT_IN_VAL[i][j], execute_unit_use[i][j]);
     110      }
     111    else
     112      {
    108113
     114        for (uint32_t i=0; i<_param->_nb_read_unit; i++)
     115          for (uint32_t j=0; j<_param->_nb_read_unit_port[i]; j++)
     116            PORT_WRITE(out_READ_UNIT_OUT_ACK [i][j], 0);
     117
     118        for (uint32_t i=0; i<_param->_nb_execute_unit; i++)
     119          for (uint32_t j=0; j<_param->_nb_execute_unit_port[i]; j++)
     120            PORT_WRITE(out_EXECUTE_UNIT_IN_VAL[i][j], 0);
     121
     122      }
     123   
    109124    log_end(Read_unit_to_Execution_unit,FUNCTION);
    110125  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp

    r88 r123  
    3838    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
    3939
    40 #if DEBUG_Register_unit_Glue == true
    41     log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
    42 
    43     std::cout << *param << std::endl;
    44 #endif   
     40// #if DEBUG_Register_unit_Glue == true
     41//     log_printf(INFO,Register_unit_Glue,FUNCTION,_("<%s> Parameters"),_name.c_str());
     42
     43//     std::cout << *param << std::endl;
     44// #endif   
    4545
    4646    log_printf(INFO,Register_unit_Glue,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
    31 //        PORT_WRITE(out_GPR_READ_ACK      [j], 0);
    32 //       }
    33 //     else
     28    if (PORT_READ(in_NRESET))
    3429      {
    3530        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
     
    4439            PORT_WRITE(out_GPR_READ_DATA_VAL [j], PORT_READ(in_GPR_READ_STATUS_DATA_VAL  [ooo_engine_id][j]));
    4540          }
     41      }
     42    else
     43      {
     44        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
     45          PORT_WRITE(out_GPR_READ_ACK      [j], 0);
    4646      }
    4747
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read_registerfile.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
    31 //        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    32 //          PORT_WRITE(out_GPR_READ_REGISTERFILE_VAL [i][j],0);
    33 //       }
    34 //     else
     28    if (PORT_READ(in_NRESET))
    3529      {
    3630        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
     
    4943          }
    5044      }
     45    else
     46      {
     47        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
     48          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     49            PORT_WRITE(out_GPR_READ_REGISTERFILE_VAL [i][j],0);
     50      }
    5151
    5252    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read_status.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
    31 //        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    32 //          PORT_WRITE(out_GPR_READ_STATUS_VAL       [i][j], 0);
    33 //       }
    34 //     else
     28    if (PORT_READ(in_NRESET))
    3529      {
    3630        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
     
    4943          }
    5044      }
     45    else
     46      {
     47        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
     48          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     49            PORT_WRITE(out_GPR_READ_STATUS_VAL       [i][j], 0);
     50      }
    5151
    5252    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_registerfile.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
    31 //        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    32 //          PORT_WRITE(out_GPR_WRITE_REGISTERFILE_VAL [i][j], 0);
    33 //       }
    34 //     else
     28    if (PORT_READ(in_NRESET))
    3529      {
    3630        for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
     
    4842          }
    4943      }
     44    else
     45      {
     46        for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
     47          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     48            PORT_WRITE(out_GPR_WRITE_REGISTERFILE_VAL [i][j], 0);
     49      }
    5050
    5151    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_write.cpp

    r88 r123  
    2525    log_begin(Register_unit_Glue,FUNCTION);
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    27 //     if (not PORT_READ(in_NRESET))
    28 //       {
    29 //      for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
    30 //        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    31 //          PORT_WRITE(out_GPR_WRITE_ACK [j], 0);
    32 //       }
    33 //     else
     27
     28
     29    if (PORT_READ(in_NRESET))
    3430      {
    3531        for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
     
    4238            PORT_WRITE(out_GPR_WRITE_ACK [j],registerfile_ack and status_ack);
    4339          }
     40      }
     41    else
     42      {
     43        for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
     44          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     45            PORT_WRITE(out_GPR_WRITE_ACK [j], 0);
    4446      }
    4547   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_write_status.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
    31 //        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    32 //          PORT_WRITE(out_GPR_WRITE_STATUS_VAL       [i][j], 0);
    33 //       }
    34 //     else
     28    if (PORT_READ(in_NRESET))
    3529      {
    3630        for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
     
    4842          }
    4943      }
     44    else
     45      {
     46        for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
     47          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     48            PORT_WRITE(out_GPR_WRITE_STATUS_VAL       [i][j], 0);
     49      }
     50
    5051
    5152    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_insert.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
     28    if (PORT_READ(in_NRESET))
     29      {
    2830    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    2931      for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
     
    5961
    6062        }
     63      }
     64    else
     65      {
     66        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     67          for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
     68            {
     69              PORT_WRITE(out_INSERT_ROB_ACK            [i][j], 0);
     70              PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], 0);
     71              PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], 0);
     72            }
     73      }
    6174
    6275    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_retire.cpp

    r88 r123  
    2727    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2828
     29    if (PORT_READ(in_NRESET))
     30      {
    2931    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    3032      {
     
    5860          }
    5961      }
    60 
     62}
    6163    log_end(Register_unit_Glue,FUNCTION);
    6264  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_spr_read; j++)
    31 //        PORT_WRITE(out_SPR_READ_ACK      [j], 0);
    32 //       }
    33 //     else
     28    if (PORT_READ(in_NRESET))
    3429      {
    3530        for (uint32_t j=0; j<_param->_nb_spr_read; j++)
     
    4439            PORT_WRITE(out_SPR_READ_DATA_VAL [j], PORT_READ(in_SPR_READ_STATUS_DATA_VAL  [ooo_engine_id][j]));
    4540          }
     41      }
     42    else
     43      {
     44        for (uint32_t j=0; j<_param->_nb_spr_read; j++)
     45          PORT_WRITE(out_SPR_READ_ACK      [j], 0);
    4646      }
    4747
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read_registerfile.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_spr_read; j++)
    31 //        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    32 //          PORT_WRITE(out_SPR_READ_REGISTERFILE_VAL [i][j],0);
    33 //       }
    34 //     else
     28    if (PORT_READ(in_NRESET))
    3529      {
    3630        for (uint32_t j=0; j<_param->_nb_spr_read; j++)
     
    4842          }
    4943      }
     44    else
     45      {
     46        for (uint32_t j=0; j<_param->_nb_spr_read; j++)
     47          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     48            PORT_WRITE(out_SPR_READ_REGISTERFILE_VAL [i][j],0);
     49      }
    5050
    5151    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read_status.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_spr_read; j++)
    31 //        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    32 //          PORT_WRITE(out_SPR_READ_STATUS_VAL       [i][j], 0);
    33 //       }
    34 //     else
     28    if (PORT_READ(in_NRESET))
    3529      {
    3630        for (uint32_t j=0; j<_param->_nb_spr_read; j++)
     
    4842          }
    4943      }
     44    else
     45      {
     46        for (uint32_t j=0; j<_param->_nb_spr_read; j++)
     47          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     48            PORT_WRITE(out_SPR_READ_STATUS_VAL       [i][j], 0);
     49      }
    5050
    5151    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_registerfile.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_spr_write; j++)
    31 //        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    32 //          PORT_WRITE(out_SPR_WRITE_REGISTERFILE_VAL [i][j], 0);
    33 //       }
    34 //     else
     28    if (PORT_READ(in_NRESET))
    3529      {
    3630        for (uint32_t j=0; j<_param->_nb_spr_write; j++)
     
    4842          }
    4943      }
     44    else
     45      {
     46        for (uint32_t j=0; j<_param->_nb_spr_write; j++)
     47          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     48            PORT_WRITE(out_SPR_WRITE_REGISTERFILE_VAL [i][j], 0);
     49      }
    5050
    5151    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_write.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_spr_write; j++)
    31 //        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    32 //          PORT_WRITE(out_SPR_WRITE_ACK [j], 0);
    33 //       }
    34 //     else
     28    if (PORT_READ(in_NRESET))
    3529      {
    3630        for (uint32_t j=0; j<_param->_nb_spr_write; j++)
     
    4337            PORT_WRITE(out_SPR_WRITE_ACK [j],registerfile_ack and status_ack);
    4438          }
     39      }
     40    else
     41      {
     42        for (uint32_t j=0; j<_param->_nb_spr_write; j++)
     43          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     44            PORT_WRITE(out_SPR_WRITE_ACK [j], 0);
    4545      }
    4646
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_write_status.cpp

    r88 r123  
    2626    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
    2727
    28 //     if (not PORT_READ(in_NRESET))
    29 //       {
    30 //      for (uint32_t j=0; j<_param->_nb_spr_write; j++)
    31 //        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    32 //          PORT_WRITE(out_SPR_WRITE_STATUS_VAL       [i][j], 0);
    33 //       }
    34 //     else
     28    if (PORT_READ(in_NRESET))
    3529      {
    3630        for (uint32_t j=0; j<_param->_nb_spr_write; j++)
     
    4842          }
    4943      }
     44    else
     45      {
     46        for (uint32_t j=0; j<_param->_nb_spr_write; j++)
     47          for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     48            PORT_WRITE(out_SPR_WRITE_STATUS_VAL       [i][j], 0);
     49      }
    5050
    5151    log_end(Register_unit_Glue,FUNCTION);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp

    r88 r123  
    3737    log_printf(FUNC,Register_unit,FUNCTION,"Begin");
    3838
    39 #if DEBUG_Register_unit == true
    40     log_printf(INFO,Register_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
     39// #if DEBUG_Register_unit == true
     40//     log_printf(INFO,Register_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4141
    42     std::cout << *param << std::endl;
    43 #endif   
     42//     std::cout << *param << std::endl;
     43// #endif   
    4444
    4545    log_printf(INFO,Register_unit,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop.cpp

    r88 r123  
    3636    log_printf(FUNC,Execute_loop,FUNCTION,"Begin");
    3737
    38 #if DEBUG_Execute_loop == true
    39     log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Parameters"),_name.c_str());
     38// #if DEBUG_Execute_loop == true
     39//     log_printf(INFO,Execute_loop,FUNCTION,_("<%s> Parameters"),_name.c_str());
    4040
    41     std::cout << *param << std::endl;
    42 #endif   
     41//     std::cout << *param << std::endl;
     42// #endif   
    4343
    4444    log_printf(INFO,Execute_loop,FUNCTION,"Allocation");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Parameters_msg_error.cpp

    r88 r123  
    99#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Parameters.h"
    1010#include <sstream>
     11#include <set>
    1112
    1213namespace morpheo                    {
     
    2930        test.error(toString(_("Functionnal_unit [%d] must treat once instruction.\n"),i));
    3031
     32    std::set<uint32_t> link_load_store_unit_and_write_unit [_nb_load_store_unit];
     33    for (uint32_t i=0; i<_nb_load_store_unit; ++i)
     34      link_load_store_unit_and_write_unit[i].clear();
     35
     36    for (uint32_t i=0; i<_nb_execute_unit; i++)
     37      if (_is_load_store_unit [i])
     38        {
     39          uint32_t lsq = _translate_num_execute_unit[i];
     40
     41          for (uint32_t j=0; j<_nb_execute_unit_port[i]; j++)
     42            for (uint32_t k=0; k<_nb_write_unit; k++)
     43              if (_execution_unit_to_write_unit_table_routing [i][j][k])
     44                {
     45                  if (link_load_store_unit_and_write_unit[lsq].find(k) != link_load_store_unit_and_write_unit[lsq].end())
     46                    {
     47                      if (link_load_store_unit_and_write_unit[lsq].size() != 0)
     48                        test.error(toString(_("Can't connect Load Store Unit [%d] (port %d) with Write unit [%d], because it's already connected with Write unit [%d]"),lsq,j,k,*(link_load_store_unit_and_write_unit[lsq].begin())));
     49
     50                      link_load_store_unit_and_write_unit[lsq].insert(link_load_store_unit_and_write_unit[lsq].end(),k);
     51                    }
     52                }
     53        }
    3154    log_printf(FUNC,Execute_loop,FUNCTION,"End");
    3255
Note: See TracChangeset for help on using the changeset viewer.