Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp
r84 r88 24 24 #endif 25 25 26 Tusage_t _usage = USE_ALL; 27 28 // _usage = usage_unset(_usage,USE_SYSTEMC ); 29 // _usage = usage_unset(_usage,USE_VHDL ); 30 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH ); 31 // _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT); 32 // _usage = usage_unset(_usage,USE_POSITION ); 33 // _usage = usage_unset(_usage,USE_STATISTICS ); 34 // _usage = usage_unset(_usage,USE_INFORMATION ); 35 26 36 Address_management * _Address_management = new Address_management 27 37 (name.c_str(), … … 30 40 #endif 31 41 _param, 32 USE_ALL);42 _usage); 33 43 34 44 #ifdef SYSTEMC … … 62 72 ALLOC_SC_SIGNAL (out_EVENT_ACK ,"out_EVENT_ACK ",Tcontrol_t ); 63 73 ALLOC_SC_SIGNAL ( in_EVENT_ADDRESS ," in_EVENT_ADDRESS ",Tgeneral_address_t); 74 ALLOC_SC_SIGNAL ( in_EVENT_ADDRESS_NEXT ," in_EVENT_ADDRESS_NEXT ",Tgeneral_address_t); 75 ALLOC_SC_SIGNAL ( in_EVENT_ADDRESS_NEXT_VAL ," in_EVENT_ADDRESS_NEXT_VAL ",Tcontrol_t ); 76 ALLOC_SC_SIGNAL ( in_EVENT_IS_DS_TAKE ," in_EVENT_IS_DS_TAKE ",Tcontrol_t ); 64 77 65 78 /******************************************************** … … 76 89 INSTANCE_SC_SIGNAL (_Address_management,out_ADDRESS_INSTRUCTION_ADDRESS ); 77 90 INSTANCE1_SC_SIGNAL(_Address_management,out_ADDRESS_INSTRUCTION_ENABLE ,_param->_nb_instruction); 78 if (_param->_have_port_inst ruction_ptr)91 if (_param->_have_port_inst_ifetch_ptr) 79 92 INSTANCE_SC_SIGNAL (_Address_management,out_ADDRESS_INST_IFETCH_PTR ); 80 93 INSTANCE_SC_SIGNAL (_Address_management,out_ADDRESS_BRANCH_STATE ); 81 if (_param->_have_port_ branch_update_prediction_id)94 if (_param->_have_port_depth) 82 95 INSTANCE_SC_SIGNAL (_Address_management,out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID); 83 96 INSTANCE_SC_SIGNAL (_Address_management,out_PREDICT_VAL ); … … 89 102 INSTANCE_SC_SIGNAL (_Address_management, in_PREDICT_PC_NEXT_IS_DS_TAKE ); 90 103 INSTANCE1_SC_SIGNAL(_Address_management, in_PREDICT_INSTRUCTION_ENABLE ,_param->_nb_instruction); 91 if (_param->_have_port_inst ruction_ptr)104 if (_param->_have_port_inst_ifetch_ptr) 92 105 INSTANCE_SC_SIGNAL (_Address_management, in_PREDICT_INST_IFETCH_PTR ); 93 106 INSTANCE_SC_SIGNAL (_Address_management, in_PREDICT_BRANCH_STATE ); 94 if (_param->_have_port_ branch_update_prediction_id)107 if (_param->_have_port_depth) 95 108 INSTANCE_SC_SIGNAL (_Address_management, in_PREDICT_BRANCH_UPDATE_PREDICTION_ID); 96 109 INSTANCE_SC_SIGNAL (_Address_management, in_EVENT_VAL ); 97 110 INSTANCE_SC_SIGNAL (_Address_management,out_EVENT_ACK ); 98 111 INSTANCE_SC_SIGNAL (_Address_management, in_EVENT_ADDRESS ); 112 INSTANCE_SC_SIGNAL (_Address_management, in_EVENT_ADDRESS_NEXT ); 113 INSTANCE_SC_SIGNAL (_Address_management, in_EVENT_ADDRESS_NEXT_VAL ); 114 INSTANCE_SC_SIGNAL (_Address_management, in_EVENT_IS_DS_TAKE ); 99 115 100 116 msg(_("<%s> : Start Simulation ............\n"),name.c_str()); … … 143 159 Tcontrol_t nn_val = false; 144 160 145 Tgeneral_data_t c_addr = 0x100 ;146 Tgeneral_data_t n_addr = 0x100 ;147 Tgeneral_data_t nn_addr = 0x100 ;161 Tgeneral_data_t c_addr = 0x100>>2; 162 Tgeneral_data_t n_addr = 0x100>>2; 163 Tgeneral_data_t nn_addr = 0x100>>2; 148 164 149 165 Tcontrol_t c_enable [_param->_nb_instruction]; … … 159 175 160 176 LABEL("Send Reset"); 161 do 162 { 163 in_EVENT_VAL ->write(1); 164 in_EVENT_ADDRESS->write(n_addr); 165 SC_START(1); 166 } while (out_EVENT_ACK->read() == false); 167 in_EVENT_VAL ->write(0); 177 // do 178 // { 179 // in_EVENT_VAL ->write(1); 180 // in_EVENT_ADDRESS ->write(n_addr); 181 // in_EVENT_ADDRESS_NEXT ->write(nn_addr); 182 // in_EVENT_ADDRESS_NEXT_VAL->write(0); 183 // in_EVENT_IS_DS_TAKE ->write(0); 184 // SC_START(1); 185 // } while (out_EVENT_ACK->read() == false); 186 // in_EVENT_VAL ->write(0); 168 187 169 188 n_val = 1; … … 206 225 } 207 226 208 in_EVENT_VAL ->write((rand()%100)<percent_transaction_event ); 209 in_EVENT_ADDRESS->write(0x100); 227 in_EVENT_VAL ->write((rand()%100)<percent_transaction_event ); 228 in_EVENT_ADDRESS ->write(0x77); 229 in_EVENT_ADDRESS_NEXT ->write(0x171); 230 Tcontrol_t next_val = rand()%2; 231 in_EVENT_ADDRESS_NEXT_VAL->write(next_val); 232 in_EVENT_IS_DS_TAKE ->write(next_val); 210 233 211 234 //------------------------------------------------- … … 238 261 for (uint32_t i=0; i<_param->_nb_instruction; i++) 239 262 TEST(Tcontrol_t ,out_ADDRESS_INSTRUCTION_ENABLE [i] ->read(),c_enable[i]); 240 if (_param->_have_port_inst ruction_ptr)263 if (_param->_have_port_inst_ifetch_ptr) 241 264 TEST(Tinst_ifetch_ptr_t,out_ADDRESS_INST_IFETCH_PTR ->read(),0); 242 265 TEST(Tbranch_state_t ,out_ADDRESS_BRANCH_STATE ->read(),0); 243 if (_param->_have_port_ branch_update_prediction_id)266 if (_param->_have_port_depth) 244 267 TEST(Tprediction_ptr_t ,out_ADDRESS_BRANCH_UPDATE_PREDICTION_ID->read(),0); 245 268 … … 272 295 LABEL("EVENT : Transaction accepted"); 273 296 274 c_val = false; 275 n_val = true; 276 nn_val = false; 277 278 n_addr = in_EVENT_ADDRESS->read(); 279 n_is_ds_take = 0; 297 c_val = false; 298 n_val = true; 299 n_addr = in_EVENT_ADDRESS ->read(); 300 n_is_ds_take = in_EVENT_IS_DS_TAKE ->read(); 301 nn_val = in_EVENT_ADDRESS_NEXT_VAL->read(); 302 nn_addr = in_EVENT_ADDRESS_NEXT ->read(); 303 nn_is_ds_take= false; 304 // nn_val = false; 305 // n_is_ds_take = 0; 280 306 281 307 n_enable [0] = 1; 282 283 308 for (uint32_t i=1; i<_param->_nb_instruction; i++) 309 n_enable [i] = 0; 284 310 } 285 311 … … 347 373 delete out_EVENT_ACK ; 348 374 delete in_EVENT_ADDRESS ; 375 delete in_EVENT_ADDRESS_NEXT ; 376 delete in_EVENT_ADDRESS_NEXT_VAL ; 377 delete in_EVENT_IS_DS_TAKE ; 349 378 #endif 350 379
Note: See TracChangeset
for help on using the changeset viewer.