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

Almost complete design
with Test and test platform

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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

    r81 r88  
    2727
    2828    // ~~~~~[ Output "memory_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     29   
     30    // Initialisation
     31    internal_MEMORY_IN_PORT = 0;
     32    Tcontrol_t ack [_param->_nb_inst_memory];
     33    for (uint32_t i=0; i<_param->_nb_inst_memory; i++)
     34      ack [i] = 0;
    2935
     36    // find first valid entry
    3037    // store queue is never full (pointer is manage by rename stage)
    31     internal_MEMORY_IN_ACK = is_operation_memory_store(PORT_READ(in_MEMORY_IN_OPERATION)) or not _speculative_access_queue_control->full();
     38    for (uint32_t i=0; i<_param->_nb_inst_memory; i++)
     39      if (PORT_READ(in_MEMORY_IN_VAL [i]))
     40        {
     41          internal_MEMORY_IN_ACK = is_operation_memory_store(PORT_READ(in_MEMORY_IN_OPERATION [i])) or not _speculative_access_queue_control->full();
    3242
    33     PORT_WRITE(out_MEMORY_IN_ACK, internal_MEMORY_IN_ACK);
     43          if (internal_MEMORY_IN_ACK)
     44            {
     45              ack [i] = 1;
     46              internal_MEMORY_IN_PORT = i;
     47              break; // end
     48            }
     49        }
     50
     51    for (uint32_t i=0; i<_param->_nb_inst_memory; i++)
     52      PORT_WRITE(out_MEMORY_IN_ACK [i], ack [i]);
    3453
    3554    log_printf(FUNC,Load_store_unit,FUNCTION,"End");
Note: See TracChangeset for help on using the changeset viewer.