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_Front_end/Front_end/Decod_unit/Decod/src/Decod_deallocation.cpp

    r86 r88  
    77
    88#include "Behavioural/Core/Multi_Front_end/Front_end/Decod_unit/Decod/include/Decod.h"
     9#include "Behavioural/include/Allocation.h"
    910
    1011namespace morpheo                    {
     
    2728        delete    in_CLOCK ;
    2829        delete    in_NRESET;
     30     
     31        DELETE2_SIGNAL( in_IFETCH_VAL        , _param->_nb_context, _param->_nb_inst_fetch[it1],1);
     32        DELETE2_SIGNAL(out_IFETCH_ACK        , _param->_nb_context, _param->_nb_inst_fetch[it1],1);
     33        DELETE2_SIGNAL( in_IFETCH_INSTRUCTION, _param->_nb_context, _param->_nb_inst_fetch[it1],_param->_size_instruction);
     34     
     35        DELETE1_SIGNAL(in_IFETCH_CONTEXT_ID                 , _param->_nb_context,_param->_size_context_id      );
     36        DELETE1_SIGNAL(in_IFETCH_ADDRESS                    , _param->_nb_context,_param->_size_instruction_address    );
     37//      DELETE1_SIGNAL(in_IFETCH_ADDRESS_NEXT               , _param->_nb_context,_param->_size_instruction_address    );
     38        DELETE1_SIGNAL(in_IFETCH_INST_IFETCH_PTR            , _param->_nb_context,_param->_size_inst_ifetch_ptr );
     39        DELETE1_SIGNAL(in_IFETCH_BRANCH_STATE               , _param->_nb_context,_param->_size_branch_state    );
     40        DELETE1_SIGNAL(in_IFETCH_BRANCH_UPDATE_PREDICTION_ID, _param->_nb_context,_param->_size_depth           );
     41        DELETE1_SIGNAL(in_IFETCH_EXCEPTION                  , _param->_nb_context,_param->_size_exception_ifetch);
    2942
    30         delete []  in_IFETCH_VAL                         ;
    31         delete [] out_IFETCH_ACK                         ;
    32         delete []  in_IFETCH_INSTRUCTION                 ;
    33         if (_param->_have_port_context_id)
    34         delete []  in_IFETCH_CONTEXT_ID                  ;
    35         delete []  in_IFETCH_ADDRESS                     ;
    36 //      delete []  in_IFETCH_ADDRESS_NEXT                ;
    37         if (_param->_have_port_inst_ifetch_ptr)
    38         delete []  in_IFETCH_INST_IFETCH_PTR             ;
    39         delete []  in_IFETCH_BRANCH_STATE                ;
    40         if (_param->_have_port_branch_update_prediction_id)
    41         delete []  in_IFETCH_BRANCH_UPDATE_PREDICTION_ID ;
     43        DELETE1_SIGNAL(out_DECOD_VAL          ,_param->_nb_inst_decod,1);
     44        DELETE1_SIGNAL( in_DECOD_ACK          ,_param->_nb_inst_decod,1);
     45        DELETE1_SIGNAL(out_DECOD_CONTEXT_ID   ,_param->_nb_inst_decod,_param->_size_context_id            );
     46        DELETE1_SIGNAL(out_DECOD_DEPTH        ,_param->_nb_inst_decod,_param->_size_depth                 );
     47        DELETE1_SIGNAL(out_DECOD_TYPE         ,_param->_nb_inst_decod,_param->_size_type                  );
     48        DELETE1_SIGNAL(out_DECOD_OPERATION    ,_param->_nb_inst_decod,_param->_size_operation             );
     49        DELETE1_SIGNAL(out_DECOD_NO_EXECUTE   ,_param->_nb_inst_decod,1                                   );
     50        DELETE1_SIGNAL(out_DECOD_IS_DELAY_SLOT,_param->_nb_inst_decod,1                                   );
     51        DELETE1_SIGNAL(out_DECOD_ADDRESS      ,_param->_nb_inst_decod,_param->_size_instruction_address          );
     52        DELETE1_SIGNAL(out_DECOD_HAS_IMMEDIAT ,_param->_nb_inst_decod,1                                   );
     53        DELETE1_SIGNAL(out_DECOD_IMMEDIAT     ,_param->_nb_inst_decod,_param->_size_general_data          );
     54        DELETE1_SIGNAL(out_DECOD_READ_RA      ,_param->_nb_inst_decod,1                                   );
     55        DELETE1_SIGNAL(out_DECOD_NUM_REG_RA   ,_param->_nb_inst_decod,_param->_size_general_register_logic);
     56        DELETE1_SIGNAL(out_DECOD_READ_RB      ,_param->_nb_inst_decod,1                                   );
     57        DELETE1_SIGNAL(out_DECOD_NUM_REG_RB   ,_param->_nb_inst_decod,_param->_size_general_register_logic);
     58        DELETE1_SIGNAL(out_DECOD_READ_RC      ,_param->_nb_inst_decod,1                                   );
     59        DELETE1_SIGNAL(out_DECOD_NUM_REG_RC   ,_param->_nb_inst_decod,_param->_size_special_register_logic);
     60        DELETE1_SIGNAL(out_DECOD_WRITE_RD     ,_param->_nb_inst_decod,1                                   );
     61        DELETE1_SIGNAL(out_DECOD_NUM_REG_RD   ,_param->_nb_inst_decod,_param->_size_general_register_logic);
     62        DELETE1_SIGNAL(out_DECOD_WRITE_RE     ,_param->_nb_inst_decod,1                                   );
     63        DELETE1_SIGNAL(out_DECOD_NUM_REG_RE   ,_param->_nb_inst_decod,_param->_size_special_register_logic);
     64        DELETE1_SIGNAL(out_DECOD_EXCEPTION_USE,_param->_nb_inst_decod,_param->_size_exception_use         );
     65        DELETE1_SIGNAL(out_DECOD_EXCEPTION    ,_param->_nb_inst_decod,_param->_size_exception_decod       );
    4266
    43         delete [] out_DECOD_VAL                          ;
    44         delete []  in_DECOD_ACK                          ;
    45         if (_param->_have_port_context_id)
    46         delete [] out_DECOD_CONTEXT_ID                   ;
    47         if (_param->_have_port_depth)
    48         delete [] out_DECOD_DEPTH                        ;
    49         delete [] out_DECOD_TYPE                         ;
    50         delete [] out_DECOD_OPERATION                    ;
    51         delete [] out_DECOD_IS_DELAY_SLOT                ;
    52         delete [] out_DECOD_ADDRESS                      ;
    53         delete [] out_DECOD_HAS_IMMEDIAT                 ;
    54         delete [] out_DECOD_IMMEDIAT                     ;
    55         delete [] out_DECOD_READ_RA                      ;
    56         delete [] out_DECOD_NUM_REG_RA                   ;
    57         delete [] out_DECOD_READ_RB                      ;
    58         delete [] out_DECOD_NUM_REG_RB                   ;
    59         delete [] out_DECOD_READ_RC                      ;
    60         delete [] out_DECOD_NUM_REG_RC                   ;
    61         delete [] out_DECOD_WRITE_RD                     ;
    62         delete [] out_DECOD_NUM_REG_RD                   ;
    63         delete [] out_DECOD_WRITE_RE                     ;
    64         delete [] out_DECOD_NUM_REG_RE                   ;
    65         delete [] out_DECOD_EXCEPTION_USE                ;
     67        DELETE1_SIGNAL(out_PREDICT_VAL                        ,_param->_nb_inst_decod,1);
     68        DELETE1_SIGNAL( in_PREDICT_ACK                        ,_param->_nb_inst_decod,1);
     69        DELETE1_SIGNAL(out_PREDICT_CONTEXT_ID                 ,_param->_nb_inst_decod,_param->_size_context_id      );
     70        DELETE1_SIGNAL(out_PREDICT_MATCH_INST_IFETCH_PTR      ,_param->_nb_inst_decod,1                             );
     71        DELETE1_SIGNAL(out_PREDICT_BRANCH_STATE               ,_param->_nb_inst_decod,_param->_size_branch_state    );
     72        DELETE1_SIGNAL(out_PREDICT_BRANCH_UPDATE_PREDICTION_ID,_param->_nb_inst_decod,_param->_size_depth           );
     73        DELETE1_SIGNAL(out_PREDICT_BRANCH_CONDITION           ,_param->_nb_inst_decod,_param->_size_branch_condition);
     74//      DELETE1_SIGNAL(out_PREDICT_BRANCH_STACK_WRITE         ,_param->_nb_inst_decod,1                             );
     75        DELETE1_SIGNAL(out_PREDICT_BRANCH_DIRECTION           ,_param->_nb_inst_decod,1                             );
     76        DELETE1_SIGNAL(out_PREDICT_ADDRESS_SRC                ,_param->_nb_inst_decod,_param->_size_instruction_address    );
     77        DELETE1_SIGNAL(out_PREDICT_ADDRESS_DEST               ,_param->_nb_inst_decod,_param->_size_instruction_address    );
     78//      DELETE1_SIGNAL( in_PREDICT_CAN_CONTINUE               ,_param->_nb_inst_decod,1                             );
    6679
    67         delete [] out_PREDICT_VAL                        ;
    68         delete []  in_PREDICT_ACK                        ;
    69         if (_param->_have_port_context_id)
    70         delete [] out_PREDICT_CONTEXT_ID                 ;
    71         delete [] out_PREDICT_BRANCH_STATE               ;
    72         delete [] out_PREDICT_MATCH_INST_IFETCH_PTR      ;
    73         if (_param->_have_port_branch_update_prediction_id)
    74         delete [] out_PREDICT_BRANCH_UPDATE_PREDICTION_ID;
    75         delete [] out_PREDICT_BRANCH_CONDITION           ;
    76 //      delete [] out_PREDICT_BRANCH_STACK_WRITE         ;
    77         delete [] out_PREDICT_BRANCH_DIRECTION           ;
    78         delete [] out_PREDICT_ADDRESS_SRC                ;
    79         delete [] out_PREDICT_ADDRESS_DEST               ;
    80 //      delete []  in_PREDICT_CAN_CONTINUE               ;
     80        DELETE1_SIGNAL(in_CONTEXT_DECOD_ENABLE, _param->_nb_context,1);
     81        DELETE1_SIGNAL(in_CONTEXT_DEPTH       , _param->_nb_context,_param->_size_depth);
    8182
    82         delete []  in_CONTEXT_DECOD_ENABLE               ;
    83         if (_param->_have_port_depth)
    84         delete []  in_CONTEXT_DEPTH                      ;
     83        DELETE_SIGNAL (out_CONTEXT_EVENT_VAL          ,1);
     84        DELETE_SIGNAL ( in_CONTEXT_EVENT_ACK          ,1);
     85        DELETE_SIGNAL (out_CONTEXT_EVENT_CONTEXT_ID   ,_param->_size_context_id  );
     86        DELETE_SIGNAL (out_CONTEXT_EVENT_DEPTH        ,_param->_size_depth       );
     87        DELETE_SIGNAL (out_CONTEXT_EVENT_TYPE         ,_param->_size_event_type  );
     88        DELETE_SIGNAL (out_CONTEXT_EVENT_IS_DELAY_SLOT,1                         );
     89        DELETE_SIGNAL (out_CONTEXT_EVENT_ADDRESS      ,_param->_size_instruction_address);
     90        DELETE_SIGNAL (out_CONTEXT_EVENT_ADDRESS_EPCR ,_param->_size_instruction_address);
    8591
    86         delete    out_CONTEXT_EVENT_VAL                  ;
    87         delete     in_CONTEXT_EVENT_ACK                  ;
    88         if (_param->_have_port_context_id)
    89         delete    out_CONTEXT_EVENT_CONTEXT_ID           ;
    90         delete    out_CONTEXT_EVENT_TYPE                 ;
    91         delete    out_CONTEXT_EVENT_IS_DELAY_SLOT        ;
    92         delete    out_CONTEXT_EVENT_ADDRESS              ;
    93         delete    out_CONTEXT_EVENT_ADDRESS_EPCR         ;
     92
     93   
     94        delete    reg_CONTEXT_ADDRESS_PREVIOUS      ;
     95        delete [] reg_CONTEXT_IS_DELAY_SLOT         ;
     96       
     97        delete [] internal_CONTEXT_HAVE_TRANSACTION ;
     98        delete [] internal_CONTEXT_ADDRESS_PREVIOUS ;
     99        delete [] internal_CONTEXT_IS_DELAY_SLOT    ;
     100       
     101#ifdef STATISTICS
     102        delete [] internal_DECOD_VAL;
     103#endif
    94104      }
    95105
    96106    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    97     delete    reg_CONTEXT_ADDRESS_PREVIOUS      ;
    98     delete    reg_CONTEXT_IS_DELAY_SLOT         ;
     107    delete    _priority;
    99108
    100     delete    internal_CONTEXT_HAVE_TRANSACTION ;
    101     delete    internal_CONTEXT_ADDRESS_PREVIOUS ;
    102     delete    internal_CONTEXT_IS_DELAY_SLOT    ;
    103109
    104110    const uint32_t nb_opcod_type = 14;
Note: See TracChangeset for help on using the changeset viewer.