Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (16 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include
- Files:
-
- 2 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/include/Load_store_unit.h
r82 r88 90 90 91 91 // ~~~~~[ Interface "memory_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 92 public : SC_IN (Tcontrol_t ) * in_MEMORY_IN_VAL ;93 public : SC_OUT(Tcontrol_t ) * out_MEMORY_IN_ACK ;94 public : SC_IN (Tcontext_t ) * in_MEMORY_IN_CONTEXT_ID ;95 public : SC_IN (Tcontext_t ) * in_MEMORY_IN_FRONT_END_ID;96 public : SC_IN (Tcontext_t ) * in_MEMORY_IN_OOO_ENGINE_ID;97 public : SC_IN (Tpacket_t ) * in_MEMORY_IN_PACKET_ID ;98 public : SC_IN (Toperation_t ) * in_MEMORY_IN_OPERATION ;99 public : SC_IN (Ttype_t ) * in_MEMORY_IN_TYPE ;100 public : SC_IN (Tlsq_ptr_t ) * in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;101 public : SC_IN (Tlsq_ptr_t ) * in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ;102 public : SC_IN (Tcontrol_t ) * in_MEMORY_IN_HAS_IMMEDIAT;103 public : SC_IN (Tgeneral_data_t ) * in_MEMORY_IN_IMMEDIAT ;// memory address104 public : SC_IN (Tgeneral_data_t ) * in_MEMORY_IN_DATA_RA ;// memory address105 public : SC_IN (Tgeneral_data_t ) * in_MEMORY_IN_DATA_RB ;// data (store)106 public : SC_IN (Tspecial_data_t ) * in_MEMORY_IN_DATA_RC ;107 public : SC_IN (Tcontrol_t ) * in_MEMORY_IN_WRITE_RD ;// = (operation==load)108 public : SC_IN (Tgeneral_address_t) * in_MEMORY_IN_NUM_REG_RD ;// destination (load)109 public : SC_IN (Tcontrol_t ) * in_MEMORY_IN_WRITE_RE ;110 public : SC_IN (Tspecial_address_t) * in_MEMORY_IN_NUM_REG_RE ;92 public : SC_IN (Tcontrol_t ) ** in_MEMORY_IN_VAL ;//[nb_inst_memory] 93 public : SC_OUT(Tcontrol_t ) ** out_MEMORY_IN_ACK ;//[nb_inst_memory] 94 public : SC_IN (Tcontext_t ) ** in_MEMORY_IN_CONTEXT_ID ;//[nb_inst_memory] 95 public : SC_IN (Tcontext_t ) ** in_MEMORY_IN_FRONT_END_ID ;//[nb_inst_memory] 96 public : SC_IN (Tcontext_t ) ** in_MEMORY_IN_OOO_ENGINE_ID ;//[nb_inst_memory] 97 public : SC_IN (Tpacket_t ) ** in_MEMORY_IN_PACKET_ID ;//[nb_inst_memory] 98 public : SC_IN (Toperation_t ) ** in_MEMORY_IN_OPERATION ;//[nb_inst_memory] 99 public : SC_IN (Ttype_t ) ** in_MEMORY_IN_TYPE ;//[nb_inst_memory] 100 public : SC_IN (Tlsq_ptr_t ) ** in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;//[nb_inst_memory] 101 public : SC_IN (Tlsq_ptr_t ) ** in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ;//[nb_inst_memory] 102 public : SC_IN (Tcontrol_t ) ** in_MEMORY_IN_HAS_IMMEDIAT ;//[nb_inst_memory] 103 public : SC_IN (Tgeneral_data_t ) ** in_MEMORY_IN_IMMEDIAT ;//[nb_inst_memory] // memory address 104 public : SC_IN (Tgeneral_data_t ) ** in_MEMORY_IN_DATA_RA ;//[nb_inst_memory] // memory address 105 public : SC_IN (Tgeneral_data_t ) ** in_MEMORY_IN_DATA_RB ;//[nb_inst_memory] // data (store) 106 public : SC_IN (Tspecial_data_t ) ** in_MEMORY_IN_DATA_RC ;//[nb_inst_memory] 107 public : SC_IN (Tcontrol_t ) ** in_MEMORY_IN_WRITE_RD ;//[nb_inst_memory] // = (operation==load) 108 public : SC_IN (Tgeneral_address_t) ** in_MEMORY_IN_NUM_REG_RD ;//[nb_inst_memory] // destination (load) 109 public : SC_IN (Tcontrol_t ) ** in_MEMORY_IN_WRITE_RE ;//[nb_inst_memory] 110 public : SC_IN (Tspecial_address_t) ** in_MEMORY_IN_NUM_REG_RE ;//[nb_inst_memory] 111 111 112 112 // ~~~~~[ Interface "memory_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 public : SC_OUT(Tcontrol_t ) * out_MEMORY_OUT_VAL ;114 public : SC_IN (Tcontrol_t ) * in_MEMORY_OUT_ACK ;115 public : SC_OUT(Tcontext_t ) * out_MEMORY_OUT_CONTEXT_ID;116 public : SC_OUT(Tcontext_t ) * out_MEMORY_OUT_FRONT_END_ID;117 public : SC_OUT(Tcontext_t ) * out_MEMORY_OUT_OOO_ENGINE_ID;118 public : SC_OUT(Tpacket_t ) * out_MEMORY_OUT_PACKET_ID ;119 //public : SC_OUT(Toperation_t ) * out_MEMORY_OUT_OPERATION ;120 public : SC_OUT(Ttype_t ) * out_MEMORY_OUT_TYPE ;121 public : SC_OUT(Tcontrol_t ) * out_MEMORY_OUT_WRITE_RD ;// = (operation==load)122 public : SC_OUT(Tgeneral_address_t) * out_MEMORY_OUT_NUM_REG_RD;// destination (load)123 public : SC_OUT(Tgeneral_data_t ) * out_MEMORY_OUT_DATA_RD ;// data (load)124 public : SC_OUT(Tcontrol_t ) * out_MEMORY_OUT_WRITE_RE ;125 public : SC_OUT(Tspecial_address_t) * out_MEMORY_OUT_NUM_REG_RE;126 public : SC_OUT(Tspecial_data_t ) * out_MEMORY_OUT_DATA_RE ;127 public : SC_OUT(Texception_t ) * out_MEMORY_OUT_EXCEPTION ;128 public : SC_OUT(Tcontrol_t ) * out_MEMORY_OUT_NO_SEQUENCE;129 public : SC_OUT(Tgeneral_data_t ) * out_MEMORY_OUT_ADDRESS ;113 public : SC_OUT(Tcontrol_t ) ** out_MEMORY_OUT_VAL ;//[nb_inst_memory] 114 public : SC_IN (Tcontrol_t ) ** in_MEMORY_OUT_ACK ;//[nb_inst_memory] 115 public : SC_OUT(Tcontext_t ) ** out_MEMORY_OUT_CONTEXT_ID ;//[nb_inst_memory] 116 public : SC_OUT(Tcontext_t ) ** out_MEMORY_OUT_FRONT_END_ID ;//[nb_inst_memory] 117 public : SC_OUT(Tcontext_t ) ** out_MEMORY_OUT_OOO_ENGINE_ID ;//[nb_inst_memory] 118 public : SC_OUT(Tpacket_t ) ** out_MEMORY_OUT_PACKET_ID ;//[nb_inst_memory] 119 //public : SC_OUT(Toperation_t ) ** out_MEMORY_OUT_OPERATION ;//[nb_inst_memory] 120 public : SC_OUT(Ttype_t ) ** out_MEMORY_OUT_TYPE ;//[nb_inst_memory] 121 public : SC_OUT(Tcontrol_t ) ** out_MEMORY_OUT_WRITE_RD ;//[nb_inst_memory] // = (operation==load) 122 public : SC_OUT(Tgeneral_address_t) ** out_MEMORY_OUT_NUM_REG_RD ;//[nb_inst_memory] // destination (load) 123 public : SC_OUT(Tgeneral_data_t ) ** out_MEMORY_OUT_DATA_RD ;//[nb_inst_memory] // data (load) 124 public : SC_OUT(Tcontrol_t ) ** out_MEMORY_OUT_WRITE_RE ;//[nb_inst_memory] 125 public : SC_OUT(Tspecial_address_t) ** out_MEMORY_OUT_NUM_REG_RE ;//[nb_inst_memory] 126 public : SC_OUT(Tspecial_data_t ) ** out_MEMORY_OUT_DATA_RE ;//[nb_inst_memory] 127 public : SC_OUT(Texception_t ) ** out_MEMORY_OUT_EXCEPTION ;//[nb_inst_memory] 128 public : SC_OUT(Tcontrol_t ) ** out_MEMORY_OUT_NO_SEQUENCE ;//[nb_inst_memory] 129 public : SC_OUT(Tgeneral_data_t ) ** out_MEMORY_OUT_ADDRESS ;//[nb_inst_memory] 130 130 131 132 131 // ~~~~~[ Interface "dcache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 public : SC_OUT(Tcontrol_t ) * out_DCACHE_REQ_VAL ;134 public : SC_IN (Tcontrol_t ) * in_DCACHE_REQ_ACK ;135 public : SC_OUT(Tcontext_t ) * out_DCACHE_REQ_CONTEXT_ID;136 public : SC_OUT(Tpacket_t ) * out_DCACHE_REQ_PACKET_ID ;137 public : SC_OUT(Tdcache_address_t ) * out_DCACHE_REQ_ADDRESS ;138 public : SC_OUT(Tdcache_type_t ) * out_DCACHE_REQ_TYPE ;139 public : SC_OUT(Tdcache_data_t ) * out_DCACHE_REQ_WDATA ;132 public : SC_OUT(Tcontrol_t ) ** out_DCACHE_REQ_VAL ;//[nb_cache_port] 133 public : SC_IN (Tcontrol_t ) ** in_DCACHE_REQ_ACK ;//[nb_cache_port] 134 public : SC_OUT(Tcontext_t ) ** out_DCACHE_REQ_CONTEXT_ID ;//[nb_cache_port] 135 public : SC_OUT(Tpacket_t ) ** out_DCACHE_REQ_PACKET_ID ;//[nb_cache_port] 136 public : SC_OUT(Tdcache_address_t ) ** out_DCACHE_REQ_ADDRESS ;//[nb_cache_port] 137 public : SC_OUT(Tdcache_type_t ) ** out_DCACHE_REQ_TYPE ;//[nb_cache_port] 138 public : SC_OUT(Tdcache_data_t ) ** out_DCACHE_REQ_WDATA ;//[nb_cache_port] 140 139 141 140 // ~~~~~[ Interface "dcache_rsp" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 public : SC_IN (Tcontrol_t ) * in_DCACHE_RSP_VAL ;143 public : SC_OUT(Tcontrol_t ) * out_DCACHE_RSP_ACK ;144 public : SC_IN (Tcontext_t ) * in_DCACHE_RSP_CONTEXT_ID;145 public : SC_IN (Tpacket_t ) * in_DCACHE_RSP_PACKET_ID ;146 public : SC_IN (Tdcache_data_t ) * in_DCACHE_RSP_RDATA ;147 public : SC_IN (Tdcache_error_t ) * in_DCACHE_RSP_ERROR ;141 public : SC_IN (Tcontrol_t ) ** in_DCACHE_RSP_VAL ;//[nb_cache_port] 142 public : SC_OUT(Tcontrol_t ) ** out_DCACHE_RSP_ACK ;//[nb_cache_port] 143 public : SC_IN (Tcontext_t ) ** in_DCACHE_RSP_CONTEXT_ID ;//[nb_cache_port] 144 public : SC_IN (Tpacket_t ) ** in_DCACHE_RSP_PACKET_ID ;//[nb_cache_port] 145 public : SC_IN (Tdcache_data_t ) ** in_DCACHE_RSP_RDATA ;//[nb_cache_port] 146 public : SC_IN (Tdcache_error_t ) ** in_DCACHE_RSP_ERROR ;//[nb_cache_port] 148 147 149 148 // ~~~~~[ Interface "bypass_memory" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 public : SC_OUT(Tcontrol_t ) ** out_BYPASS_MEMORY_VAL ;151 public : SC_OUT(Tcontext_t ) ** out_BYPASS_MEMORY_OOO_ENGINE_ID; 152 public : SC_OUT(Tgeneral_address_t) ** out_BYPASS_MEMORY_NUM_REG ;153 public : SC_OUT(Tgeneral_data_t ) ** out_BYPASS_MEMORY_DATA ;149 public : SC_OUT(Tcontrol_t ) ** out_BYPASS_MEMORY_VAL ; //[nb_bypass_memory] 150 public : SC_OUT(Tcontext_t ) ** out_BYPASS_MEMORY_OOO_ENGINE_ID; //[nb_bypass_memory] 151 public : SC_OUT(Tgeneral_address_t) ** out_BYPASS_MEMORY_NUM_REG ; //[nb_bypass_memory] 152 public : SC_OUT(Tgeneral_data_t ) ** out_BYPASS_MEMORY_DATA ; //[nb_bypass_memory] 154 153 155 154 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 177 176 // signal 178 177 public : Tlsq_ptr_t internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ ; 179 180 private : Tcontrol_t internal_MEMORY_IN_ACK; 181 private : Tcontrol_t internal_MEMORY_OUT_VAL; 178 179 private : Tcontrol_t internal_MEMORY_IN_ACK ; 180 private : uint32_t internal_MEMORY_IN_PORT ; 181 182 private : Tcontrol_t internal_MEMORY_OUT_VAL ; 182 183 private : Tselect_queue_t internal_MEMORY_OUT_SELECT_QUEUE; 183 p ublic : Tlsq_ptr_t internal_MEMORY_OUT_PTR;184 185 private : Tcontrol_t internal_DCACHE_RSP_ACK ;186 private : Tcontrol_t internal_DCACHE_REQ_VAL ;184 private : Tlsq_ptr_t internal_MEMORY_OUT_PTR ; 185 186 private : Tcontrol_t internal_DCACHE_RSP_ACK ; 187 private : Tcontrol_t internal_DCACHE_REQ_VAL ; 187 188 private : Tselect_queue_t internal_DCACHE_REQ_SELECT_QUEUE; 188 189 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Parameters.h
r81 r88 27 27 { 28 28 //-----[ fields ]------------------------------------------------------------ 29 public : const uint32_t _size_store_queue ; 30 public : const uint32_t _size_load_queue ; 31 public : const uint32_t _size_speculative_access_queue; 32 public : const uint32_t _nb_port_check ; 33 public : const Tspeculative_load_t _speculative_load ; 34 public : const uint32_t _nb_bypass_memory ; 35 //public : const uint32_t _nb_cache_port ; 36 public : const uint32_t _nb_context ; 37 public : const uint32_t _nb_front_end ; 38 public : const uint32_t _nb_ooo_engine ; 39 public : const uint32_t _nb_packet ; 40 public : const uint32_t _size_general_data ; 41 public : const uint32_t _size_special_data ; 42 public : const uint32_t _nb_general_register ; 43 public : const uint32_t _nb_special_register ; 29 public : uint32_t _size_store_queue ; 30 public : uint32_t _size_load_queue ; 31 public : uint32_t _size_speculative_access_queue; 32 public : uint32_t _nb_port_check ; 33 public : Tspeculative_load_t _speculative_load ; 34 public : uint32_t _nb_bypass_memory ; 35 public : uint32_t _nb_cache_port ; 36 public : uint32_t _nb_inst_memory ; 37 public : uint32_t _nb_context ; 38 public : uint32_t _nb_front_end ; 39 public : uint32_t _nb_ooo_engine ; 40 public : uint32_t _nb_packet ; 41 //public : uint32_t _size_general_data ; 42 //public : uint32_t _size_special_data ; 43 public : uint32_t _nb_general_register ; 44 public : uint32_t _nb_special_register ; 44 45 45 public : constuint32_t _size_address_store_queue ;46 public : constuint32_t _size_address_load_queue ;47 public : const uint32_t _size_address_speculative_access_queue;48 public : constuint32_t _size_context_id ;49 public : constuint32_t _size_front_end_id ;50 public : constuint32_t _size_ooo_engine_id ;51 public : constuint32_t _size_packet_id ;52 public : constuint32_t _size_general_register ;53 public : constuint32_t _size_special_register ;54 public : constuint32_t _size_dcache_context_id ;55 public : constuint32_t _size_dcache_packet_id ;46 //public : uint32_t _size_address_store_queue ; 47 //public : uint32_t _size_address_load_queue ; 48 public : uint32_t _size_speculative_access_queue_ptr ; 49 //public : uint32_t _size_context_id ; 50 //public : uint32_t _size_front_end_id ; 51 //public : uint32_t _size_ooo_engine_id ; 52 //public : uint32_t _size_packet_id ; 53 //public : uint32_t _size_general_register ; 54 //public : uint32_t _size_special_register ; 55 public : uint32_t _size_dcache_context_id ; 56 public : uint32_t _size_dcache_packet_id ; 56 57 57 public : constbool _have_port_context_id ;58 public : constbool _have_port_front_end_id ;59 public : constbool _have_port_ooo_engine_id ;60 public : constbool _have_port_packet_id ;61 public : constbool _have_port_dcache_context_id ;62 public : constbool _have_port_load_queue_ptr ;58 //public : bool _have_port_context_id ; 59 //public : bool _have_port_front_end_id ; 60 //public : bool _have_port_ooo_engine_id ; 61 //public : bool _have_port_packet_id ; 62 public : bool _have_port_dcache_context_id ; 63 //public : bool _have_port_load_queue_ptr ; 63 64 64 public : constTdcache_address_t _mask_address_lsb ;65 public : constTdcache_address_t _mask_address_msb ;65 public : Tdcache_address_t _mask_address_lsb ; 66 public : Tdcache_address_t _mask_address_msb ; 66 67 67 68 //-----[ methods ]----------------------------------------------------------- … … 72 73 Tspeculative_load_t speculative_load , 73 74 uint32_t nb_bypass_memory , 75 uint32_t nb_cache_port , 76 uint32_t nb_inst_memory , 74 77 uint32_t nb_context , 75 78 uint32_t nb_front_end , … … 79 82 uint32_t size_special_data , 80 83 uint32_t nb_general_register , 81 uint32_t nb_special_register ); 84 uint32_t nb_special_register , 85 bool is_toplevel=false); 82 86 83 public : Parameters (Parameters & param) ; 87 // public : Parameters (Parameters & param) ; 88 84 89 public : ~Parameters () ; 90 91 public : void copy (void); 85 92 86 93 public : Parameters_test msg_error (void);
Note: See TracChangeset
for help on using the changeset viewer.