Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src
- 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_Write_unit/Write_unit/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Parameters.cpp
r81 r88 29 29 uint32_t size_special_data , 30 30 uint32_t nb_special_register, 31 uint32_t nb_bypass_write ): 32 _size_write_queue (size_write_queue ), 33 _size_execute_queue (size_execute_queue ), 34 _nb_context (nb_context ), 35 _nb_front_end (nb_front_end ), 36 _nb_ooo_engine (nb_ooo_engine ), 37 _nb_packet (nb_packet ), 38 _size_general_data (size_general_data ), 39 _nb_general_register (nb_general_register), 40 _size_special_data (size_special_data ), 41 _nb_special_register (nb_special_register), 42 _nb_bypass_write (nb_bypass_write ), 43 44 _nb_gpr_write (1), 45 _nb_spr_write (1), 46 47 _size_context_id (log2(_nb_context )), 48 _size_front_end_id (log2(_nb_front_end )), 49 _size_ooo_engine_id (log2(_nb_ooo_engine )), 50 _size_packet_id (log2(_nb_packet )), 51 _size_general_register (log2(_nb_general_register)), 52 _size_special_register (log2(_nb_special_register)), 53 54 _have_component_execute_queue (_size_execute_queue > 0), 55 _have_port_context_id (_size_context_id > 0), 56 _have_port_front_end_id (_size_front_end_id > 0), 57 _have_port_ooo_engine_id (_size_ooo_engine_id > 0), 58 _have_port_packet_id (_size_packet_id > 0) 31 uint32_t nb_bypass_write , 32 bool is_toplevel ) 59 33 { 60 34 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); 61 35 62 _param_write_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue ::Parameters(size_write_queue , 63 nb_context , 64 nb_front_end , 65 nb_ooo_engine , 66 nb_packet , 67 size_general_data , 68 nb_general_register, 69 size_special_data , 70 nb_special_register, 71 nb_bypass_write ); 36 _size_write_queue = size_write_queue ; 37 _size_execute_queue = size_execute_queue ; 38 _nb_context = nb_context ; 39 _nb_front_end = nb_front_end ; 40 _nb_ooo_engine = nb_ooo_engine ; 41 _nb_packet = nb_packet ; 42 _nb_general_register = nb_general_register; 43 _nb_special_register = nb_special_register; 44 _nb_bypass_write = nb_bypass_write ; 45 46 _nb_gpr_write = 1; 47 _nb_spr_write = 1; 48 49 _have_component_execute_queue = _size_execute_queue > 0; 50 51 _param_write_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue ::Parameters(_size_write_queue , 52 _nb_context , 53 _nb_front_end , 54 _nb_ooo_engine , 55 _nb_packet , 56 size_general_data , 57 _nb_general_register, 58 size_special_data , 59 _nb_special_register, 60 _nb_bypass_write ); 72 61 73 62 if (_have_component_execute_queue) 74 _param_execute_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters( size_execute_queue ,75 nb_context ,76 nb_front_end ,77 nb_ooo_engine ,78 nb_packet ,79 size_general_data ,80 size_special_data );63 _param_execute_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Parameters(_size_execute_queue , 64 _nb_context , 65 _nb_front_end , 66 _nb_ooo_engine , 67 _nb_packet , 68 size_general_data , 69 size_special_data ); 81 70 82 71 test(); 72 73 if (is_toplevel) 74 { 75 _size_context_id = log2(_nb_context ); 76 _size_front_end_id = log2(_nb_front_end ); 77 _size_ooo_engine_id = log2(_nb_ooo_engine ); 78 _size_rob_ptr = log2(_nb_packet ); 79 _size_general_register = log2(_nb_general_register); 80 _size_special_register = log2(_nb_special_register); 81 _size_general_data = size_general_data ; 82 _size_special_data = size_special_data ; 83 84 _have_port_context_id = _size_context_id > 0; 85 _have_port_front_end_id = _size_front_end_id > 0; 86 _have_port_ooo_engine_id = _size_ooo_engine_id > 0; 87 _have_port_rob_ptr = _size_rob_ptr > 0; 88 89 copy(); 90 } 83 91 84 92 log_printf(FUNC,Write_unit,FUNCTION,"End"); 85 93 }; 86 94 87 #undef FUNCTION88 #define FUNCTION "Write_unit::Parameters (copy)"89 Parameters::Parameters (Parameters & param):90 _size_write_queue (param._size_write_queue ),91 _size_execute_queue (param._size_execute_queue ),92 _nb_context (param._nb_context ),93 _nb_front_end (param._nb_front_end ),94 _nb_ooo_engine (param._nb_ooo_engine ),95 _nb_packet (param._nb_packet ),96 _size_general_data (param._size_general_data ),97 _nb_general_register (param._nb_general_register ),98 _size_special_data (param._size_special_data ),99 _nb_special_register (param._nb_special_register ),100 _nb_bypass_write (param._nb_bypass_write ),95 // #undef FUNCTION 96 // #define FUNCTION "Write_unit::Parameters (copy)" 97 // Parameters::Parameters (Parameters & param): 98 // _size_write_queue (param._size_write_queue ), 99 // _size_execute_queue (param._size_execute_queue ), 100 // _nb_context (param._nb_context ), 101 // _nb_front_end (param._nb_front_end ), 102 // _nb_ooo_engine (param._nb_ooo_engine ), 103 // _nb_packet (param._nb_packet ), 104 // _size_general_data (param._size_general_data ), 105 // _nb_general_register (param._nb_general_register ), 106 // _size_special_data (param._size_special_data ), 107 // _nb_special_register (param._nb_special_register ), 108 // _nb_bypass_write (param._nb_bypass_write ), 101 109 102 _nb_gpr_write (param._nb_gpr_write ),103 _nb_spr_write (param._nb_spr_write ),110 // _nb_gpr_write (param._nb_gpr_write ), 111 // _nb_spr_write (param._nb_spr_write ), 104 112 105 _size_context_id (param._size_context_id ),106 _size_front_end_id (param._size_front_end_id ),107 _size_ooo_engine_id (param._size_ooo_engine_id ),108 _size_packet_id (param._size_packet_id ),109 _size_general_register (param._size_general_register ),110 _size_special_register (param._size_special_register ),113 // _size_context_id (param._size_context_id ), 114 // _size_front_end_id (param._size_front_end_id ), 115 // _size_ooo_engine_id (param._size_ooo_engine_id ), 116 // _size_packet_id (param._size_packet_id ), 117 // _size_general_register (param._size_general_register ), 118 // _size_special_register (param._size_special_register ), 111 119 112 _have_component_execute_queue (param._have_component_execute_queue),113 _have_port_context_id (param._have_port_context_id ),114 _have_port_front_end_id (param._have_port_front_end_id ),115 _have_port_ooo_engine_id (param._have_port_ooo_engine_id ),116 _have_port_packet_id (param._have_port_packet_id )117 {118 log_printf(FUNC,Write_unit,FUNCTION,"Begin");120 // _have_component_execute_queue (param._have_component_execute_queue), 121 // _have_port_context_id (param._have_port_context_id ), 122 // _have_port_front_end_id (param._have_port_front_end_id ), 123 // _have_port_ooo_engine_id (param._have_port_ooo_engine_id ), 124 // _have_port_packet_id (param._have_port_packet_id ) 125 // { 126 // log_printf(FUNC,Write_unit,FUNCTION,"Begin"); 119 127 120 _param_write_queue = param._param_write_queue ;121 _param_execute_queue = param._param_execute_queue;128 // _param_write_queue = param._param_write_queue ; 129 // _param_execute_queue = param._param_execute_queue; 122 130 123 test();124 log_printf(FUNC,Write_unit,FUNCTION,"End");125 };131 // test(); 132 // log_printf(FUNC,Write_unit,FUNCTION,"End"); 133 // }; 126 134 127 135 #undef FUNCTION 128 136 #define FUNCTION "Write_unit::~Parameters" 129 Parameters::~Parameters ( )137 Parameters::~Parameters (void) 130 138 { 131 139 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); … … 139 147 }; 140 148 149 #undef FUNCTION 150 #define FUNCTION "Write_unit::copy" 151 void Parameters::copy (void) 152 { 153 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); 154 155 COPY(_param_write_queue); 156 if (_have_component_execute_queue) 157 COPY(_param_execute_queue); 158 159 log_printf(FUNC,Write_unit,FUNCTION,"End"); 160 }; 161 141 162 }; // end namespace write_unit 142 163 }; // end namespace multi_write_unit … … 144 165 }; // end namespace multi_execute_loop 145 166 }; // end namespace core 146 147 167 }; // end namespace behavioural 148 168 }; // end namespace morpheo -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit.cpp
r81 r88 38 38 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); 39 39 40 #if DEBUG_Write_unit == true 41 log_printf(INFO,Write_unit,FUNCTION,_("<%s> Parameters"),_name.c_str()); 42 43 std::cout << *param << std::endl; 44 #endif 45 40 46 log_printf(INFO,Write_unit,FUNCTION,"Allocation"); 41 47 … … 47 53 48 54 #ifdef STATISTICS 49 if ( _usage & USE_STATISTICS)55 if (usage_is_set(_usage,USE_STATISTICS)) 50 56 { 51 57 log_printf(INFO,Write_unit,FUNCTION,"Allocation of statistics"); … … 56 62 57 63 #ifdef VHDL 58 if ( _usage & USE_VHDL)64 if (usage_is_set(_usage,USE_VHDL)) 59 65 { 60 66 // generate the vhdl … … 66 72 67 73 #ifdef SYSTEMC 68 if ( _usage & USE_SYSTEMC)74 if (usage_is_set(_usage,USE_SYSTEMC)) 69 75 { 70 76 log_printf(INFO,Write_unit,FUNCTION,"Method - transition"); … … 90 96 91 97 #ifdef STATISTICS 92 if ( _usage & USE_STATISTICS)98 if (usage_is_set(_usage,USE_STATISTICS)) 93 99 { 94 100 log_printf(INFO,Write_unit,FUNCTION,"Generate Statistics file"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_allocation.cpp
r82 r88 23 23 void Write_unit::allocation ( 24 24 #ifdef STATISTICS 25 25 morpheo::behavioural::Parameters_Statistics * param_statistics 26 26 #else 27 28 #endif 29 27 void 28 #endif 29 ) 30 30 { 31 31 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); … … 34 34 35 35 Entity * entity = _component->set_entity (_name 36 37 #ifdef POSITION 38 39 #endif 40 36 ,"Write_unit" 37 #ifdef POSITION 38 ,COMBINATORY 39 #endif 40 ); 41 41 42 42 _interfaces = entity->set_interfaces(); … … 46 46 Interface * interface = _interfaces->set_interface("" 47 47 #ifdef POSITION 48 49 50 51 #endif 52 48 ,IN 49 ,SOUTH, 50 "Generalist interface" 51 #endif 52 ); 53 53 54 54 in_CLOCK = interface->set_signal_clk ("clock" ,1, CLOCK_VHDL_YES); … … 64 64 ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 65 65 ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id ); 66 ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_ packet_id);66 ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 67 67 // ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 68 68 ALLOC_SIGNAL_IN ( in_WRITE_UNIT_IN_TYPE ,"type" ,Ttype_t ,_param->_size_type ); … … 87 87 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_FRONT_END_ID ,"front_end_id" ,Tcontext_t ,_param->_size_front_end_id ); 88 88 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_OOO_ENGINE_ID,"ooo_engine_id",Tcontext_t ,_param->_size_ooo_engine_id); 89 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_ packet_id);89 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_PACKET_ID ,"packet_id" ,Tpacket_t ,_param->_size_rob_ptr ); 90 90 // ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ); 91 91 // ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_TYPE ,"type" ,Ttype_t ,_param->_size_type ); … … 94 94 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_NO_SEQUENCE ,"no_sequence" ,Tcontrol_t ,1 ); 95 95 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_ADDRESS ,"address" ,Tgeneral_data_t,_param->_size_general_data ); 96 ALLOC_SIGNAL_OUT(out_WRITE_UNIT_OUT_DATA ,"data" ,Tgeneral_data_t,_param->_size_general_data ); 96 97 } 97 98 … … 138 139 { 139 140 name = _name+"_write_queue"; 140 141 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 142 141 143 component_write_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::write_queue::Write_queue 142 144 (name.c_str() 143 145 #ifdef STATISTICS 144 145 #endif 146 147 146 ,param_statistics 147 #endif 148 ,_param->_param_write_queue 149 ,_usage); 148 150 149 151 _component->set_component (component_write_queue->_component 150 152 #ifdef POSITION 151 152 #endif 153 153 , 50, 50, 10, 10 154 #endif 155 ); 154 156 } 155 157 … … 157 159 { 158 160 name = _name+"_execute_queue"; 161 log_printf(INFO,Core,FUNCTION,_("Create : %s"),name.c_str()); 159 162 160 163 component_execute_queue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_write_unit::write_unit::execute_queue::Execute_queue 161 164 (name.c_str() 162 165 #ifdef STATISTICS 163 164 #endif 165 166 166 ,param_statistics 167 #endif 168 ,_param->_param_execute_queue 169 ,_usage); 167 170 168 171 _component->set_component (component_execute_queue->_component 169 172 #ifdef POSITION 170 171 #endif 172 173 , 50, 50, 10, 10 174 #endif 175 ); 173 176 } 174 177 … … 176 179 { 177 180 name = _name+"_write_queue"; 178 std::cout << "Instance : " << name << std::endl;179 181 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),name.c_str()); 182 180 183 #ifdef POSITION 181 184 _component->interface_map (name ,"", 182 185 _name,""); 183 186 #endif 184 187 … … 189 192 #ifdef POSITION 190 193 _component->interface_map (name ,"write_queue_in", 191 194 _name,"write_unit_in"); 192 195 #endif 193 196 … … 200 203 if (_param->_have_port_ooo_engine_id) 201 204 _component->port_map(name, "in_WRITE_QUEUE_IN_OOO_ENGINE_ID", _name, "in_WRITE_UNIT_IN_OOO_ENGINE_ID"); 202 if (_param->_have_port_ packet_id)205 if (_param->_have_port_rob_ptr) 203 206 _component->port_map(name, "in_WRITE_QUEUE_IN_PACKET_ID" , _name, "in_WRITE_UNIT_IN_PACKET_ID" ); 204 207 //_component->port_map(name, "in_WRITE_QUEUE_IN_OPERATION" , _name, "in_WRITE_UNIT_IN_OPERATION" ); … … 216 219 217 220 if (_param->_have_component_execute_queue) 218 { 219 #ifdef POSITION 220 _component->interface_map (name ,"write_queue_out", 221 _name+"_execute_queue", "execute_queue_in"); 222 #endif 223 224 _component->port_map(name,"out_WRITE_QUEUE_OUT_VAL" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_VAL" ); 225 _component->port_map(name, "in_WRITE_QUEUE_OUT_ACK" , _name+"_execute_queue","out_EXECUTE_QUEUE_IN_ACK" ); 226 if (_param->_have_port_context_id) 227 _component->port_map(name,"out_WRITE_QUEUE_OUT_CONTEXT_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_CONTEXT_ID" ); 228 if (_param->_have_port_front_end_id) 229 _component->port_map(name,"out_WRITE_QUEUE_OUT_FRONT_END_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_FRONT_END_ID" ); 230 if (_param->_have_port_ooo_engine_id) 231 _component->port_map(name,"out_WRITE_QUEUE_OUT_OOO_ENGINE_ID", _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID"); 232 if (_param->_have_port_packet_id) 233 _component->port_map(name,"out_WRITE_QUEUE_OUT_PACKET_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_PACKET_ID" ); 234 //_component->port_map(name,"out_WRITE_QUEUE_OUT_OPERATION" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_OPERATION" ); 235 //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_TYPE" ); 236 _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_FLAGS" ); 237 _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_EXCEPTION" ); 238 _component->port_map(name,"out_WRITE_QUEUE_OUT_NO_SEQUENCE" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_NO_SEQUENCE" ); 239 _component->port_map(name,"out_WRITE_QUEUE_OUT_ADDRESS" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_ADDRESS" ); 240 } 221 { 222 #ifdef POSITION 223 _component->interface_map (name ,"write_queue_out", 224 _name+"_execute_queue", "execute_queue_in"); 225 #endif 226 227 _component->port_map(name,"out_WRITE_QUEUE_OUT_VAL" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_VAL" ); 228 _component->port_map(name, "in_WRITE_QUEUE_OUT_ACK" , _name+"_execute_queue","out_EXECUTE_QUEUE_IN_ACK" ); 229 if (_param->_have_port_context_id) 230 _component->port_map(name,"out_WRITE_QUEUE_OUT_CONTEXT_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_CONTEXT_ID" ); 231 if (_param->_have_port_front_end_id) 232 _component->port_map(name,"out_WRITE_QUEUE_OUT_FRONT_END_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_FRONT_END_ID" ); 233 if (_param->_have_port_ooo_engine_id) 234 _component->port_map(name,"out_WRITE_QUEUE_OUT_OOO_ENGINE_ID", _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID"); 235 if (_param->_have_port_rob_ptr) 236 _component->port_map(name,"out_WRITE_QUEUE_OUT_PACKET_ID" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_PACKET_ID" ); 237 //_component->port_map(name,"out_WRITE_QUEUE_OUT_OPERATION" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_OPERATION" ); 238 //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_TYPE" ); 239 _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_FLAGS" ); 240 _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_EXCEPTION" ); 241 _component->port_map(name,"out_WRITE_QUEUE_OUT_NO_SEQUENCE" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_NO_SEQUENCE" ); 242 _component->port_map(name,"out_WRITE_QUEUE_OUT_ADDRESS" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_ADDRESS" ); 243 _component->port_map(name,"out_WRITE_QUEUE_OUT_DATA" , _name+"_execute_queue", "in_EXECUTE_QUEUE_IN_DATA" ); 244 } 241 245 else 242 { 243 #ifdef POSITION 244 _component->interface_map (name ,"write_queue_out", 245 _name,"write_unit_out"); 246 #endif 247 248 _component->port_map(name,"out_WRITE_QUEUE_OUT_VAL" , _name,"out_WRITE_UNIT_OUT_VAL" ); 249 _component->port_map(name, "in_WRITE_QUEUE_OUT_ACK" , _name, "in_WRITE_UNIT_OUT_ACK" ); 250 if (_param->_have_port_context_id) 251 _component->port_map(name,"out_WRITE_QUEUE_OUT_CONTEXT_ID" , _name,"out_WRITE_UNIT_OUT_CONTEXT_ID" ); 252 if (_param->_have_port_front_end_id) 253 _component->port_map(name,"out_WRITE_QUEUE_OUT_FRONT_END_ID" , _name,"out_WRITE_UNIT_OUT_FRONT_END_ID" ); 254 if (_param->_have_port_ooo_engine_id) 255 _component->port_map(name,"out_WRITE_QUEUE_OUT_OOO_ENGINE_ID", _name,"out_WRITE_UNIT_OUT_OOO_ENGINE_ID"); 256 if (_param->_have_port_packet_id) 257 _component->port_map(name,"out_WRITE_QUEUE_OUT_PACKET_ID" , _name,"out_WRITE_UNIT_OUT_PACKET_ID" ); 258 //_component->port_map(name,"out_WRITE_QUEUE_OUT_OPERATION" , _name,"out_WRITE_UNIT_OUT_OPERATION" ); 259 //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE" , _name,"out_WRITE_UNIT_OUT_TYPE" ); 260 _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS" , _name,"out_WRITE_UNIT_OUT_FLAGS" ); 261 _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION" , _name,"out_WRITE_UNIT_OUT_EXCEPTION" ); 262 _component->port_map(name,"out_WRITE_QUEUE_OUT_NO_SEQUENCE" , _name,"out_WRITE_UNIT_OUT_NO_SEQUENCE" ); 263 _component->port_map(name,"out_WRITE_QUEUE_OUT_ADDRESS" , _name,"out_WRITE_UNIT_OUT_ADDRESS" ); 264 } 246 { 247 #ifdef POSITION 248 _component->interface_map (name ,"write_queue_out", 249 _name,"write_unit_out"); 250 #endif 251 252 _component->port_map(name,"out_WRITE_QUEUE_OUT_VAL" , _name,"out_WRITE_UNIT_OUT_VAL" ); 253 _component->port_map(name, "in_WRITE_QUEUE_OUT_ACK" , _name, "in_WRITE_UNIT_OUT_ACK" ); 254 if (_param->_have_port_context_id) 255 _component->port_map(name,"out_WRITE_QUEUE_OUT_CONTEXT_ID" , _name,"out_WRITE_UNIT_OUT_CONTEXT_ID" ); 256 if (_param->_have_port_front_end_id) 257 _component->port_map(name,"out_WRITE_QUEUE_OUT_FRONT_END_ID" , _name,"out_WRITE_UNIT_OUT_FRONT_END_ID" ); 258 if (_param->_have_port_ooo_engine_id) 259 _component->port_map(name,"out_WRITE_QUEUE_OUT_OOO_ENGINE_ID", _name,"out_WRITE_UNIT_OUT_OOO_ENGINE_ID"); 260 if (_param->_have_port_rob_ptr) 261 _component->port_map(name,"out_WRITE_QUEUE_OUT_PACKET_ID" , _name,"out_WRITE_UNIT_OUT_PACKET_ID" ); 262 //_component->port_map(name,"out_WRITE_QUEUE_OUT_OPERATION" , _name,"out_WRITE_UNIT_OUT_OPERATION" ); 263 //_component->port_map(name,"out_WRITE_QUEUE_OUT_TYPE" , _name,"out_WRITE_UNIT_OUT_TYPE" ); 264 _component->port_map(name,"out_WRITE_QUEUE_OUT_FLAGS" , _name,"out_WRITE_UNIT_OUT_FLAGS" ); 265 _component->port_map(name,"out_WRITE_QUEUE_OUT_EXCEPTION" , _name,"out_WRITE_UNIT_OUT_EXCEPTION" ); 266 _component->port_map(name,"out_WRITE_QUEUE_OUT_NO_SEQUENCE" , _name,"out_WRITE_UNIT_OUT_NO_SEQUENCE" ); 267 _component->port_map(name,"out_WRITE_QUEUE_OUT_ADDRESS" , _name,"out_WRITE_UNIT_OUT_ADDRESS" ); 268 _component->port_map(name,"out_WRITE_QUEUE_OUT_DATA" , _name,"out_WRITE_UNIT_OUT_DATA" ); 269 } 265 270 266 271 for (uint32_t i=0; i<_param->_nb_gpr_write; i++) 267 268 #ifdef POSITION 269 270 271 #endif 272 273 274 275 276 277 278 279 272 { 273 #ifdef POSITION 274 _component->interface_map (name ,"gpr_write_"+toString(i), 275 _name,"gpr_write_"+toString(i)); 276 #endif 277 278 _component->port_map(name,"out_GPR_WRITE_"+toString(i)+"_VAL" ,_name,"out_GPR_WRITE_"+toString(i)+"_VAL" ); 279 _component->port_map(name, "in_GPR_WRITE_"+toString(i)+"_ACK" ,_name, "in_GPR_WRITE_"+toString(i)+"_ACK" ); 280 if (_param->_have_port_ooo_engine_id) 281 _component->port_map(name,"out_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",_name,"out_GPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID"); 282 _component->port_map(name,"out_GPR_WRITE_"+toString(i)+"_NUM_REG" ,_name,"out_GPR_WRITE_"+toString(i)+"_NUM_REG" ); 283 _component->port_map(name,"out_GPR_WRITE_"+toString(i)+"_DATA" ,_name,"out_GPR_WRITE_"+toString(i)+"_DATA" ); 284 } 280 285 281 286 for (uint32_t i=0; i<_param->_nb_spr_write; i++) 282 283 #ifdef POSITION 284 285 286 #endif 287 288 289 290 291 292 293 294 287 { 288 #ifdef POSITION 289 _component->interface_map (name ,"spr_write_"+toString(i), 290 _name,"spr_write_"+toString(i)); 291 #endif 292 293 _component->port_map(name,"out_SPR_WRITE_"+toString(i)+"_VAL" ,_name,"out_SPR_WRITE_"+toString(i)+"_VAL" ); 294 _component->port_map(name, "in_SPR_WRITE_"+toString(i)+"_ACK" ,_name, "in_SPR_WRITE_"+toString(i)+"_ACK" ); 295 if (_param->_have_port_ooo_engine_id) 296 _component->port_map(name,"out_SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID",_name,"out_SPR_WRITE_"+toString(i)+"_OOO_ENGINE_ID"); 297 _component->port_map(name,"out_SPR_WRITE_"+toString(i)+"_NUM_REG" ,_name,"out_SPR_WRITE_"+toString(i)+"_NUM_REG" ); 298 _component->port_map(name,"out_SPR_WRITE_"+toString(i)+"_DATA" ,_name,"out_SPR_WRITE_"+toString(i)+"_DATA" ); 299 } 295 300 296 301 297 302 for (uint32_t i=0; i<_param->_nb_bypass_write; i++) 298 299 #ifdef POSITION 300 301 302 #endif 303 304 305 306 307 308 309 310 311 312 303 { 304 #ifdef POSITION 305 _component->interface_map (name ,"bypass_write_"+toString(i), 306 _name,"bypass_write_"+toString(i)); 307 #endif 308 309 if (_param->_have_port_ooo_engine_id) 310 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_OOO_ENGINE_ID",_name,"out_BYPASS_WRITE_"+toString(i)+"_OOO_ENGINE_ID"); 311 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_VAL" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_VAL" ); 312 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_NUM_REG" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_NUM_REG" ); 313 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_DATA" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_GPR_DATA" ); 314 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_VAL" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_VAL" ); 315 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_NUM_REG" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_NUM_REG" ); 316 _component->port_map(name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_DATA" ,_name,"out_BYPASS_WRITE_"+toString(i)+"_SPR_DATA" ); 317 } 313 318 } 314 319 315 320 if (_param->_have_component_execute_queue) 316 321 { 317 318 std::cout << "Instance : " << name << std::endl;319 320 #ifdef POSITION 321 322 323 #endif 324 325 326 327 328 329 #ifdef POSITION 330 331 322 name = _name+"_execute_queue"; 323 log_printf(INFO,Core,FUNCTION,_("Instance : %s"),name.c_str()); 324 325 #ifdef POSITION 326 _component->interface_map (name ,"", 327 _name,""); 328 #endif 329 330 _component->port_map(name,"in_CLOCK" , _name, "in_CLOCK"); 331 _component->port_map(name,"in_NRESET", _name, "in_NRESET"); 332 333 334 #ifdef POSITION 335 _component->interface_map (name ,"execute_queue_in", 336 _name+"_write_queue","write_queue_in"); 332 337 #endif 333 338 … … 340 345 if (_param->_have_port_ooo_engine_id) 341 346 _component->port_map(name, "in_EXECUTE_QUEUE_IN_OOO_ENGINE_ID", _name+"_write_queue","out_WRITE_QUEUE_OUT_OOO_ENGINE_ID"); 342 if (_param->_have_port_ packet_id)347 if (_param->_have_port_rob_ptr) 343 348 _component->port_map(name, "in_EXECUTE_QUEUE_IN_PACKET_ID" , _name+"_write_queue","out_WRITE_QUEUE_OUT_PACKET_ID" ); 344 349 //_component->port_map(name, "in_EXECUTE_QUEUE_IN_OPERATION" , _name+"_write_queue","out_WRITE_QUEUE_OUT_OPERATION" ); … … 348 353 _component->port_map(name, "in_EXECUTE_QUEUE_IN_NO_SEQUENCE" , _name+"_write_queue","out_WRITE_QUEUE_OUT_NO_SEQUENCE" ); 349 354 _component->port_map(name, "in_EXECUTE_QUEUE_IN_ADDRESS" , _name+"_write_queue","out_WRITE_QUEUE_OUT_ADDRESS" ); 350 351 #ifdef POSITION 352 _component->interface_map (name ,"execute_queue_out", 353 _name,"write_unit_out"); 354 #endif 355 356 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_VAL" , _name,"out_WRITE_UNIT_OUT_VAL" ); 357 _component->port_map(name, "in_EXECUTE_QUEUE_OUT_ACK" , _name, "in_WRITE_UNIT_OUT_ACK" ); 358 if (_param->_have_port_context_id) 359 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID" , _name,"out_WRITE_UNIT_OUT_CONTEXT_ID" ); 360 if (_param->_have_port_front_end_id) 361 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID" , _name,"out_WRITE_UNIT_OUT_FRONT_END_ID" ); 362 if (_param->_have_port_ooo_engine_id) 363 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID", _name,"out_WRITE_UNIT_OUT_OOO_ENGINE_ID"); 364 if (_param->_have_port_packet_id) 365 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_PACKET_ID" , _name,"out_WRITE_UNIT_OUT_PACKET_ID" ); 366 //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_OPERATION" , _name,"out_WRITE_UNIT_OUT_OPERATION" ); 367 //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_TYPE" , _name,"out_WRITE_UNIT_OUT_TYPE" ); 368 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_FLAGS" , _name,"out_WRITE_UNIT_OUT_FLAGS" ); 369 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_EXCEPTION" , _name,"out_WRITE_UNIT_OUT_EXCEPTION" ); 370 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE" , _name,"out_WRITE_UNIT_OUT_NO_SEQUENCE" ); 371 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_ADDRESS" , _name,"out_WRITE_UNIT_OUT_ADDRESS" ); 355 _component->port_map(name, "in_EXECUTE_QUEUE_IN_DATA" , _name+"_write_queue","out_WRITE_QUEUE_OUT_DATA" ); 356 357 #ifdef POSITION 358 _component->interface_map (name ,"execute_queue_out", 359 _name,"write_unit_out"); 360 #endif 361 362 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_VAL" , _name,"out_WRITE_UNIT_OUT_VAL" ); 363 _component->port_map(name, "in_EXECUTE_QUEUE_OUT_ACK" , _name, "in_WRITE_UNIT_OUT_ACK" ); 364 if (_param->_have_port_context_id) 365 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_CONTEXT_ID" , _name,"out_WRITE_UNIT_OUT_CONTEXT_ID" ); 366 if (_param->_have_port_front_end_id) 367 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_FRONT_END_ID" , _name,"out_WRITE_UNIT_OUT_FRONT_END_ID" ); 368 if (_param->_have_port_ooo_engine_id) 369 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_OOO_ENGINE_ID", _name,"out_WRITE_UNIT_OUT_OOO_ENGINE_ID"); 370 if (_param->_have_port_rob_ptr) 371 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_PACKET_ID" , _name,"out_WRITE_UNIT_OUT_PACKET_ID" ); 372 //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_OPERATION" , _name,"out_WRITE_UNIT_OUT_OPERATION" ); 373 //_component->port_map(name,"out_EXECUTE_QUEUE_OUT_TYPE" , _name,"out_WRITE_UNIT_OUT_TYPE" ); 374 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_FLAGS" , _name,"out_WRITE_UNIT_OUT_FLAGS" ); 375 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_EXCEPTION" , _name,"out_WRITE_UNIT_OUT_EXCEPTION" ); 376 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_NO_SEQUENCE" , _name,"out_WRITE_UNIT_OUT_NO_SEQUENCE" ); 377 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_ADDRESS" , _name,"out_WRITE_UNIT_OUT_ADDRESS" ); 378 _component->port_map(name,"out_EXECUTE_QUEUE_OUT_DATA" , _name,"out_WRITE_UNIT_OUT_DATA" ); 372 379 } 373 380 374 381 #ifdef POSITION 375 _component->generate_file(); 382 if (usage_is_set(_usage,USE_POSITION)) 383 _component->generate_file(); 376 384 #endif 377 385 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_deallocation.cpp
r81 r88 23 23 log_printf(FUNC,Write_unit,FUNCTION,"Begin"); 24 24 25 if ( _usage & USE_SYSTEMC)25 if (usage_is_set(_usage,USE_SYSTEMC)) 26 26 { 27 27 delete in_CLOCK ; … … 37 37 if (_param->_have_port_ooo_engine_id) 38 38 delete in_WRITE_UNIT_IN_OOO_ENGINE_ID; 39 if (_param->_have_port_ packet_id)39 if (_param->_have_port_rob_ptr) 40 40 delete in_WRITE_UNIT_IN_PACKET_ID ; 41 41 // delete in_WRITE_UNIT_IN_OPERATION ; … … 60 60 if (_param->_have_port_ooo_engine_id) 61 61 delete out_WRITE_UNIT_OUT_OOO_ENGINE_ID; 62 if (_param->_have_port_ packet_id)62 if (_param->_have_port_rob_ptr) 63 63 delete out_WRITE_UNIT_OUT_PACKET_ID ; 64 64 // delete out_WRITE_UNIT_OUT_OPERATION ; … … 68 68 delete out_WRITE_UNIT_OUT_NO_SEQUENCE ; 69 69 delete out_WRITE_UNIT_OUT_ADDRESS ; 70 delete out_WRITE_UNIT_OUT_DATA ; 70 71 71 72 // -----[ Interface "gpr_write" ]------------------------------------- -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Write_unit/Write_unit/src/Write_unit_end_cycle.cpp
r81 r88 25 25 26 26 #ifdef STATISTICS 27 _stat->end_cycle(); 27 if (usage_is_set(_usage,USE_STATISTICS)) 28 _stat->end_cycle(); 28 29 #endif 29 30 … … 31 32 // Evaluation before read the ouput signal 32 33 // sc_start(0); 33 _interfaces->testbench(); 34 if (usage_is_set(_usage,USE_VHDL_TESTBENCH)) 35 _interfaces->testbench(); 34 36 #endif 35 37
Note: See TracChangeset
for help on using the changeset viewer.