Ignore:
Timestamp:
Dec 4, 2007, 2:31:54 PM (17 years ago)
Author:
rosiere
Message:

Modification en profondeur de Component-port_map.
Compilation ok pour Register_unit ... a tester (systemC et vhdl)

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_genMoore.cpp

    r59 r62  
    2828    // ~~~~~[ Interface "memory_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    2929
    30     // Test store and load queue
    3130    Tcontext_t         memory_out_context_id = 0;
    3231    Tpacket_t          memory_out_packet_id  = 0;
    33 #ifdef HAVE_MEMORY_OUT_OPERATION
    34     Toperation_t       memory_out_operation  = 0;
    35 #endif
    36 #ifdef HAVE_MEMORY_OUT_TYPE
    37     Ttype_t            memory_out_type       = 0;
    38 #endif
    3932    Tcontrol_t         memory_out_write_rd   = 0;
    4033    Tgeneral_address_t memory_out_num_reg_rd = 0;
     
    4740    internal_MEMORY_OUT_VAL          = 0;
    4841
    49     // TODO : now only store queue
     42    // Test store and load queue
     43    // TODO : il faut d'abord tester si un elment de l'access queue n'est pas commitable !!!!!!!
    5044
    5145    // Test an store must be commited.
    52 
    53    
    5446    if (_store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._state == STORE_QUEUE_COMMIT)
    5547      {
     
    5951        memory_out_context_id= _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._context_id;
    6052        memory_out_packet_id = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._packet_id ;
    61 #ifdef HAVE_MEMORY_OUT_OPERATION
    62         memory_out_operation = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._operation;
    63 #endif
    64 #ifdef HAVE_MEMORY_OUT_TYPE
    65         memory_out_type      = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._type;
    66 #endif
    6753//      memory_out_write_rd 
    6854//      memory_out_num_reg_rd
     
    7157      }
    7258
     59    // write output
    7360    PORT_WRITE(out_MEMORY_OUT_VAL       , internal_MEMORY_OUT_VAL);
    7461
    7562    PORT_WRITE(out_MEMORY_OUT_CONTEXT_ID, memory_out_context_id);
    7663    PORT_WRITE(out_MEMORY_OUT_PACKET_ID , memory_out_packet_id );
    77 #ifdef HAVE_MEMORY_OUT_OPERATION
    78     PORT_WRITE(out_MEMORY_OUT_OPERATION , memory_out_operation );
    79 #endif
    80 #ifdef HAVE_MEMORY_OUT_TYPE
    81     PORT_WRITE(out_MEMORY_OUT_TYPE      , memory_out_type      );
    82 #endif
    8364    PORT_WRITE(out_MEMORY_OUT_WRITE_RD  , memory_out_write_rd  );
    8465    PORT_WRITE(out_MEMORY_OUT_NUM_REG_RD, memory_out_num_reg_rd);
     
    8970    PORT_WRITE(out_MEMORY_OUT_EXCEPTION , memory_out_exception );
    9071
     72    // ~~~~~[ Interface "dache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    9173
     74    Tcontext_t        dcache_req_context_id;
     75    Tpacket_t         dcache_req_packet_id ;
     76    Tdcache_address_t dcache_req_address   ;
     77    Tdcache_type_t    dcache_req_type      ;
     78    Tcontrol_t        dcache_req_uncached  ;
     79    Tdcache_data_t    dcache_req_wdata     ;
     80
     81    internal_DCACHE_REQ_VAL          = 0;
     82
     83    // Test store and load queue
     84
     85    // TODO : il faut d'abord tester si un elment de l'access queue n'est pas commitable !!!!!!!
     86
     87    // Test an store must be commited.
     88    if (_store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._state == STORE_QUEUE_VALID_NO_SPECULATIVE)
     89      {
     90        internal_DCACHE_REQ_VAL          = 1;
     91        internal_DCACHE_REQ_SELECT_QUEUE = SELECT_STORE_QUEUE;
     92
     93        dcache_req_context_id = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._context_id;
     94        dcache_req_packet_id  = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._packet_id ;
     95        dcache_req_address    = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._address   ;
     96        dcache_req_type       = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._dcache_type;
     97        dcache_req_uncached   = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._uncached  ;
     98        dcache_req_wdata      = _store_queue [internal_MEMORY_STORE_QUEUE_PTR_READ]._wdata     ;
     99      }
     100
     101    PORT_WRITE(out_DCACHE_REQ_VAL       , internal_DCACHE_REQ_VAL);
     102    PORT_WRITE(out_DCACHE_REQ_CONTEXT_ID, dcache_req_context_id);
     103    PORT_WRITE(out_DCACHE_REQ_PACKET_ID , dcache_req_packet_id );
     104    PORT_WRITE(out_DCACHE_REQ_ADDRESS   , dcache_req_address   );
     105    PORT_WRITE(out_DCACHE_REQ_TYPE      , dcache_req_type      );
     106    PORT_WRITE(out_DCACHE_REQ_UNCACHED  , dcache_req_uncached  );
     107    PORT_WRITE(out_DCACHE_REQ_WDATA     , dcache_req_wdata     );
     108   
    92109    log_printf(FUNC,Load_store_unit,FUNCTION,"End");
    93110  };
Note: See TracChangeset for help on using the changeset viewer.