Ignore:
Timestamp:
Dec 10, 2008, 7:31:39 PM (16 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_deallocation.cpp

    r81 r88  
    66 * $Id$
    77 *
    8  * [ Description ]
     8 * [ Description ]
    99 *
    1010 */
    1111
    1212#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h"
     13#include "Behavioural/include/Allocation.h"
    1314
    1415namespace morpheo                    {
     
    2829    log_printf(FUNC,Load_store_unit,FUNCTION,"Begin");
    2930
     31    if (usage_is_set(_usage,USE_SYSTEMC))
     32      {
    3033//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    3134    delete    in_CLOCK ;
     
    3336    delete    in_NRESET;
    3437
    35     delete     in_MEMORY_IN_VAL         ;
    36     delete    out_MEMORY_IN_ACK         ;
    37     if (_param->_have_port_context_id)
    38     delete     in_MEMORY_IN_CONTEXT_ID  ;
    39     if (_param->_have_port_front_end_id)
    40     delete     in_MEMORY_IN_FRONT_END_ID  ;
    41     if (_param->_have_port_ooo_engine_id)
    42     delete     in_MEMORY_IN_OOO_ENGINE_ID  ;
    43     if (_param->_have_port_packet_id)
    44     delete     in_MEMORY_IN_PACKET_ID   ;
    45     delete     in_MEMORY_IN_OPERATION   ;
    46     delete     in_MEMORY_IN_TYPE        ;
    47     delete     in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;
    48     if (_param->_have_port_load_queue_ptr)
    49     delete     in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ;
    50     delete     in_MEMORY_IN_HAS_IMMEDIAT;
    51     delete     in_MEMORY_IN_IMMEDIAT    ;
    52     delete     in_MEMORY_IN_DATA_RA     ;
    53     delete     in_MEMORY_IN_DATA_RB     ;
    54     delete     in_MEMORY_IN_DATA_RC     ;
    55     delete     in_MEMORY_IN_WRITE_RD    ;
    56     delete     in_MEMORY_IN_NUM_REG_RD  ;
    57     delete     in_MEMORY_IN_WRITE_RE    ;
    58     delete     in_MEMORY_IN_NUM_REG_RE  ;
     38    DELETE1_SIGNAL( in_MEMORY_IN_VAL                  ,_param->_nb_inst_memory,1);
     39    DELETE1_SIGNAL(out_MEMORY_IN_ACK                  ,_param->_nb_inst_memory,1);
     40    DELETE1_SIGNAL( in_MEMORY_IN_CONTEXT_ID           ,_param->_nb_inst_memory,_param->_size_context_id           );
     41    DELETE1_SIGNAL( in_MEMORY_IN_FRONT_END_ID         ,_param->_nb_inst_memory,_param->_size_front_end_id         );
     42    DELETE1_SIGNAL( in_MEMORY_IN_OOO_ENGINE_ID        ,_param->_nb_inst_memory,_param->_size_ooo_engine_id        );
     43    DELETE1_SIGNAL( in_MEMORY_IN_PACKET_ID            ,_param->_nb_inst_memory,_param->_size_rob_ptr              );
     44    DELETE1_SIGNAL( in_MEMORY_IN_OPERATION            ,_param->_nb_inst_memory,_param->_size_operation            );
     45    DELETE1_SIGNAL( in_MEMORY_IN_TYPE                 ,_param->_nb_inst_memory,_param->_size_type                 );
     46    DELETE1_SIGNAL( in_MEMORY_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_memory,_param->_size_store_queue_ptr      );
     47    DELETE1_SIGNAL( in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ,_param->_nb_inst_memory,_param->_size_load_queue_ptr       );
     48    DELETE1_SIGNAL( in_MEMORY_IN_HAS_IMMEDIAT         ,_param->_nb_inst_memory,1                                  );
     49    DELETE1_SIGNAL( in_MEMORY_IN_IMMEDIAT             ,_param->_nb_inst_memory,_param->_size_general_data         );
     50    DELETE1_SIGNAL( in_MEMORY_IN_DATA_RA              ,_param->_nb_inst_memory,_param->_size_general_data         );
     51    DELETE1_SIGNAL( in_MEMORY_IN_DATA_RB              ,_param->_nb_inst_memory,_param->_size_general_data         );
     52    DELETE1_SIGNAL( in_MEMORY_IN_DATA_RC              ,_param->_nb_inst_memory,_param->_size_special_data         );
     53    DELETE1_SIGNAL( in_MEMORY_IN_WRITE_RD             ,_param->_nb_inst_memory,1                                  );
     54    DELETE1_SIGNAL( in_MEMORY_IN_NUM_REG_RD           ,_param->_nb_inst_memory,1                                  );
     55    DELETE1_SIGNAL( in_MEMORY_IN_WRITE_RE             ,_param->_nb_inst_memory,1                                  );
     56    DELETE1_SIGNAL( in_MEMORY_IN_NUM_REG_RE           ,_param->_nb_inst_memory,1                                  );
     57
     58    DELETE1_SIGNAL(out_MEMORY_OUT_VAL          ,_param->_nb_inst_memory,1);
     59    DELETE1_SIGNAL( in_MEMORY_OUT_ACK          ,_param->_nb_inst_memory,1);
     60    DELETE1_SIGNAL(out_MEMORY_OUT_CONTEXT_ID   ,_param->_nb_inst_memory,_param->_size_context_id       );
     61    DELETE1_SIGNAL(out_MEMORY_OUT_FRONT_END_ID ,_param->_nb_inst_memory,_param->_size_front_end_id     );
     62    DELETE1_SIGNAL(out_MEMORY_OUT_OOO_ENGINE_ID,_param->_nb_inst_memory,_param->_size_ooo_engine_id    );
     63    DELETE1_SIGNAL(out_MEMORY_OUT_PACKET_ID    ,_param->_nb_inst_memory,_param->_size_rob_ptr          );
     64//  DELETE1_SIGNAL(out_MEMORY_OUT_OPERATION    ,_param->_nb_inst_memory,_param->_size_operation        );
     65    DELETE1_SIGNAL(out_MEMORY_OUT_TYPE         ,_param->_nb_inst_memory,_param->_size_type             );
     66    DELETE1_SIGNAL(out_MEMORY_OUT_WRITE_RD     ,_param->_nb_inst_memory,1                              );
     67    DELETE1_SIGNAL(out_MEMORY_OUT_NUM_REG_RD   ,_param->_nb_inst_memory,_param->_size_general_register );
     68    DELETE1_SIGNAL(out_MEMORY_OUT_DATA_RD      ,_param->_nb_inst_memory,_param->_size_general_data     );
     69    DELETE1_SIGNAL(out_MEMORY_OUT_WRITE_RE     ,_param->_nb_inst_memory,1                              );
     70    DELETE1_SIGNAL(out_MEMORY_OUT_NUM_REG_RE   ,_param->_nb_inst_memory,_param->_size_general_register );
     71    DELETE1_SIGNAL(out_MEMORY_OUT_DATA_RE      ,_param->_nb_inst_memory,_param->_size_general_data     );
     72    DELETE1_SIGNAL(out_MEMORY_OUT_EXCEPTION    ,_param->_nb_inst_memory,_param->_size_exception        );
     73    DELETE1_SIGNAL(out_MEMORY_OUT_NO_SEQUENCE  ,_param->_nb_inst_memory,1                              );
     74    DELETE1_SIGNAL(out_MEMORY_OUT_ADDRESS      ,_param->_nb_inst_memory,_param->_size_general_data     );
     75
     76    DELETE1_SIGNAL(out_DCACHE_REQ_VAL        ,_param->_nb_cache_port,1);
     77    DELETE1_SIGNAL( in_DCACHE_REQ_ACK        ,_param->_nb_cache_port,1);
     78    DELETE1_SIGNAL(out_DCACHE_REQ_CONTEXT_ID ,_param->_nb_cache_port,_param->_size_dcache_context_id  );
     79    DELETE1_SIGNAL(out_DCACHE_REQ_PACKET_ID  ,_param->_nb_cache_port,_param->_size_dcache_packet_id   );
     80    DELETE1_SIGNAL(out_DCACHE_REQ_ADDRESS    ,_param->_nb_cache_port,_param->_size_general_data);
     81    DELETE1_SIGNAL(out_DCACHE_REQ_TYPE       ,_param->_nb_cache_port,_param->_size_dcache_type );
     82    DELETE1_SIGNAL(out_DCACHE_REQ_WDATA      ,_param->_nb_cache_port,_param->_size_general_data);
     83
     84    DELETE1_SIGNAL( in_DCACHE_RSP_VAL        ,_param->_nb_cache_port,1);
     85    DELETE1_SIGNAL(out_DCACHE_RSP_ACK        ,_param->_nb_cache_port,1);
     86    DELETE1_SIGNAL( in_DCACHE_RSP_CONTEXT_ID ,_param->_nb_cache_port,_param->_size_dcache_context_id  );
     87    DELETE1_SIGNAL( in_DCACHE_RSP_PACKET_ID  ,_param->_nb_cache_port,_param->_size_dcache_packet_id   );
     88    DELETE1_SIGNAL( in_DCACHE_RSP_RDATA      ,_param->_nb_cache_port,_param->_size_general_data);
     89    DELETE1_SIGNAL( in_DCACHE_RSP_ERROR      ,_param->_nb_cache_port,_param->_size_dcache_error);
     90
     91    DELETE1_SIGNAL(out_BYPASS_MEMORY_VAL           ,_param->_nb_bypass_memory,1);
     92    DELETE1_SIGNAL(out_BYPASS_MEMORY_OOO_ENGINE_ID ,_param->_nb_bypass_memory,_param->_size_ooo_engine_id   );
     93    DELETE1_SIGNAL(out_BYPASS_MEMORY_NUM_REG       ,_param->_nb_bypass_memory,_param->_size_general_register);
     94    DELETE1_SIGNAL(out_BYPASS_MEMORY_DATA          ,_param->_nb_bypass_memory,_param->_size_general_data    );
     95
     96    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    5997   
    60     delete    out_MEMORY_OUT_VAL       ;
    61     delete     in_MEMORY_OUT_ACK       ;
    62     if (_param->_have_port_context_id)
    63     delete    out_MEMORY_OUT_CONTEXT_ID;
    64     if (_param->_have_port_front_end_id)
    65     delete    out_MEMORY_OUT_FRONT_END_ID;
    66     if (_param->_have_port_ooo_engine_id)
    67       delete    out_MEMORY_OUT_OOO_ENGINE_ID;
    68     if (_param->_have_port_packet_id)
    69     delete    out_MEMORY_OUT_PACKET_ID ;
    70 //  delete    out_MEMORY_OUT_OPERATION ;
    71     delete    out_MEMORY_OUT_TYPE      ;
    72     delete    out_MEMORY_OUT_WRITE_RD  ;
    73     delete    out_MEMORY_OUT_NUM_REG_RD;
    74     delete    out_MEMORY_OUT_DATA_RD   ;
    75     delete    out_MEMORY_OUT_WRITE_RE  ;
    76     delete    out_MEMORY_OUT_NUM_REG_RE;
    77     delete    out_MEMORY_OUT_DATA_RE   ;
    78     delete    out_MEMORY_OUT_EXCEPTION ;
    79     delete    out_MEMORY_OUT_NO_SEQUENCE;
    80     delete    out_MEMORY_OUT_ADDRESS   ;
     98//     delete [] internal_MEMORY_IN_ACK          ;
     99//     delete [] internal_MEMORY_OUT_VAL         ;
     100//     delete [] internal_MEMORY_OUT_SELECT_QUEUE;
     101//     delete [] internal_MEMORY_OUT_PTR         ;
    81102   
    82     delete    out_DCACHE_REQ_VAL       ;
    83     delete     in_DCACHE_REQ_ACK       ;
    84     if (_param->_have_port_dcache_context_id)
    85     delete    out_DCACHE_REQ_CONTEXT_ID;
    86     delete    out_DCACHE_REQ_PACKET_ID ;
    87     delete    out_DCACHE_REQ_ADDRESS   ;
    88     delete    out_DCACHE_REQ_TYPE      ;
    89     delete    out_DCACHE_REQ_WDATA     ;
    90    
    91     delete     in_DCACHE_RSP_VAL       ;
    92     delete    out_DCACHE_RSP_ACK       ;
    93     if (_param->_have_port_dcache_context_id)
    94     delete     in_DCACHE_RSP_CONTEXT_ID;
    95     delete     in_DCACHE_RSP_PACKET_ID ;
    96     delete     in_DCACHE_RSP_RDATA     ;
    97     delete     in_DCACHE_RSP_ERROR     ;
    98    
    99     delete [] out_BYPASS_MEMORY_VAL       ;
    100     if (_param->_have_port_ooo_engine_id)   
    101     delete [] out_BYPASS_MEMORY_OOO_ENGINE_ID;
    102     delete [] out_BYPASS_MEMORY_NUM_REG   ;
    103     delete [] out_BYPASS_MEMORY_DATA      ;
    104     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     103//     delete [] internal_DCACHE_RSP_ACK         ;
     104//     delete [] internal_DCACHE_REQ_VAL         ;
     105//     delete [] internal_DCACHE_REQ_SELECT_QUEUE;
     106
     107//     delete [] internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ;
     108      }
     109
     110    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    105111
    106112    delete    _component;
Note: See TracChangeset for help on using the changeset viewer.