Ignore:
Timestamp:
Feb 5, 2008, 5:21:20 PM (16 years ago)
Author:
rosiere
Message:
  • Add two component :
    • network between read unit and execute unit
    • network between execute unit and write unit
  • remove parameters "nb_operation" and "nb_type"
  • in write_queue add the special case : load_speculative
File:
1 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_transition.cpp

    r74 r77  
    5353               (_param->_have_port_packet_id    )?PORT_READ(in_WRITE_QUEUE_IN_PACKET_ID    ):0,
    5454             //PORT_READ(in_WRITE_QUEUE_IN_OPERATION    ),
    55              //PORT_READ(in_WRITE_QUEUE_IN_TYPE         ),
     55               PORT_READ(in_WRITE_QUEUE_IN_TYPE         ),
    5656               PORT_READ(in_WRITE_QUEUE_IN_WRITE_RD     ),
    5757               PORT_READ(in_WRITE_QUEUE_IN_NUM_REG_RD   ),
     
    6767          }
    6868
    69         // Test if pop
    70         if (internal_WRITE_QUEUE_OUT_VAL and PORT_READ(in_WRITE_QUEUE_OUT_ACK))
     69        // Test if pop :
     70        //  * transaction on write_queue_out interface
     71        //  * have a speculative load and all register is write in registerfile
     72        if ( (internal_WRITE_QUEUE_OUT_VAL and PORT_READ(in_WRITE_QUEUE_OUT_ACK)) or
     73             ((_queue->empty() == false)                                         and
     74              (_queue->front()->_type      == TYPE_MEMORY)                       and
     75              (_queue->front()->_exception == EXCEPTION_MEMORY_LOAD_SPECULATIVE) and
     76              (_queue->front()->_write_rd  == 0)                                 and
     77              (_queue->front()->_write_re  == 0)))
    7178          {
    7279            delete _queue->front();
Note: See TracChangeset for help on using the changeset viewer.