Changeset 98 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/SelfTest/src/test.cpp
- Timestamp:
- Dec 31, 2008, 11:18:08 AM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/SelfTest/src/test.cpp
r97 r98 27 27 Tcontrol_t take_good ; 28 28 Tcontrol_t flag ; 29 Tcontrol_t no_sequence ; 29 30 Tcontrol_t is_accurate ; 30 31 Thistory_t history ; … … 104 105 ALLOC1_SC_SIGNAL( in_BRANCH_COMPLETE_DEPTH ," in_BRANCH_COMPLETE_DEPTH ",Tdepth_t ,_param->_nb_inst_branch_complete); 105 106 ALLOC1_SC_SIGNAL( in_BRANCH_COMPLETE_ADDRESS ," in_BRANCH_COMPLETE_ADDRESS ",Taddress_t ,_param->_nb_inst_branch_complete); 106 ALLOC1_SC_SIGNAL( in_BRANCH_COMPLETE_ FLAG ," in_BRANCH_COMPLETE_FLAG",Tcontrol_t ,_param->_nb_inst_branch_complete);107 ALLOC1_SC_SIGNAL( in_BRANCH_COMPLETE_NO_SEQUENCE ," in_BRANCH_COMPLETE_NO_SEQUENCE ",Tcontrol_t ,_param->_nb_inst_branch_complete); 107 108 ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_MISS_PREDICTION,"out_BRANCH_COMPLETE_MISS_PREDICTION",Tcontrol_t ,_param->_nb_inst_branch_complete); 108 109 ALLOC1_SC_SIGNAL(out_BRANCH_COMPLETE_TAKE ,"out_BRANCH_COMPLETE_TAKE ",Tcontrol_t ,_param->_nb_inst_branch_complete); … … 112 113 ALLOC1_SC_SIGNAL(out_BRANCH_EVENT_VAL ,"out_BRANCH_EVENT_VAL ",Tcontrol_t ,_param->_nb_context); 113 114 ALLOC1_SC_SIGNAL( in_BRANCH_EVENT_ACK ," in_BRANCH_EVENT_ACK ",Tcontrol_t ,_param->_nb_context); 114 // ALLOC1_SC_SIGNAL( in_BRANCH_EVENT_CONTEXT_ID ," in_BRANCH_EVENT_CONTEXT_ID ",Tcontext_t ,_param->_nb_context);115 // ALLOC1_SC_SIGNAL( in_BRANCH_EVENT_DEPTH ," in_BRANCH_EVENT_DEPTH ",Tdepth_t ,_param->_nb_context);115 // ALLOC1_SC_SIGNAL(out_BRANCH_EVENT_CONTEXT_ID ,"out_BRANCH_EVENT_CONTEXT_ID ",Tcontext_t ,_param->_nb_context); 116 ALLOC1_SC_SIGNAL(out_BRANCH_EVENT_DEPTH ,"out_BRANCH_EVENT_DEPTH ",Tdepth_t ,_param->_nb_context); 116 117 // ALLOC1_SC_SIGNAL(out_BRANCH_EVENT_MISS_PREDICTION,"out_BRANCH_EVENT_MISS_PREDICTION",Tcontrol_t ,_param->_nb_context); 117 118 ALLOC1_SC_SIGNAL(out_BRANCH_EVENT_ADDRESS_SRC ,"out_BRANCH_EVENT_ADDRESS_SRC ",Taddress_t ,_param->_nb_context); … … 194 195 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_BRANCH_COMPLETE_DEPTH ,_param->_nb_inst_branch_complete); 195 196 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_BRANCH_COMPLETE_ADDRESS ,_param->_nb_inst_branch_complete); 196 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_BRANCH_COMPLETE_ FLAG,_param->_nb_inst_branch_complete);197 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_BRANCH_COMPLETE_NO_SEQUENCE ,_param->_nb_inst_branch_complete); 197 198 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_BRANCH_COMPLETE_MISS_PREDICTION,_param->_nb_inst_branch_complete); 198 199 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_BRANCH_COMPLETE_TAKE ,_param->_nb_inst_branch_complete); … … 202 203 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_BRANCH_EVENT_VAL ,_param->_nb_context); 203 204 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_BRANCH_EVENT_ACK ,_param->_nb_context); 204 // if (_param->_have_port_context_id) 205 // INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_BRANCH_EVENT_CONTEXT_ID ,_param->_nb_context); 206 // if (_param->_have_port_depth) 207 // INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_BRANCH_EVENT_DEPTH ,_param->_nb_context); 208 // INSTANCE1_SC_SIGNAL(_Update_Prediction_Table, in_BRANCH_EVENT_ADDRESS ,_param->_nb_context); 209 // INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_BRANCH_EVENT_MISS_PREDICTION,_param->_nb_context); 205 //if (_param->_have_port_context_id) 206 //INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_BRANCH_EVENT_CONTEXT_ID ,_param->_nb_context); 207 if (_param->_have_port_depth) 208 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_BRANCH_EVENT_DEPTH ,_param->_nb_context); 209 //INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_BRANCH_EVENT_MISS_PREDICTION,_param->_nb_context); 210 210 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_BRANCH_EVENT_ADDRESS_SRC ,_param->_nb_context); 211 211 INSTANCE1_SC_SIGNAL(_Update_Prediction_Table,out_BRANCH_EVENT_ADDRESS_DEST_VAL,_param->_nb_context); … … 347 347 request.take_good = 1; 348 348 request.flag = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.take_good:(not request.take_good); 349 request.no_sequence = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.flag:not request.flag; 349 350 request.is_accurate = true; 350 351 request.miss_ifetch = false; … … 486 487 in_BRANCH_COMPLETE_DEPTH [port]->write(it_upt->upt_ptr ); 487 488 in_BRANCH_COMPLETE_ADDRESS [port]->write(it_upt->address_good); 488 in_BRANCH_COMPLETE_ FLAG [port]->write(it_upt->flag);489 in_BRANCH_COMPLETE_NO_SEQUENCE[port]->write(it_upt->no_sequence ); 489 490 490 491 if (_param->_have_port_depth) … … 627 628 request.take_good = 1; 628 629 request.flag = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.take_good:(not request.take_good); 630 request.no_sequence = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.flag:not request.flag; 629 631 request.is_accurate = true; 630 632 request.miss_ifetch = false; … … 704 706 request.take_good = 0; 705 707 request.flag = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.take_good:(not request.take_good); 708 request.no_sequence = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.flag:not request.flag; 706 709 request.is_accurate = true; 707 710 request.miss_ifetch = false; … … 712 715 request.ras_index = (0x87654321)%_param->_size_ras_index[context]; 713 716 request.ufpt_ptr = ufpt_top [context]; 717 request.upt_ptr = upt_top [context]; 714 718 715 719 event = request; … … 786 790 in_BRANCH_COMPLETE_DEPTH [port]->write(it_upt->upt_ptr ); 787 791 in_BRANCH_COMPLETE_ADDRESS [port]->write(it_upt->address_good); 788 in_BRANCH_COMPLETE_ FLAG [port]->write(it_upt->flag);792 in_BRANCH_COMPLETE_NO_SEQUENCE[port]->write(it_upt->no_sequence ); 789 793 790 794 if (_param->_have_port_depth) … … 910 914 LABEL("BRANCH_EVENT [%d] - Transaction accepted",port); 911 915 have_transaction = true; 912 916 917 TEST(Tdepth_t ,out_BRANCH_EVENT_DEPTH [port]->read(),event.upt_ptr); 913 918 TEST(Taddress_t,out_BRANCH_EVENT_ADDRESS_SRC [port]->read(),event.address_src); 914 919 TEST(Tcontrol_t,out_BRANCH_EVENT_ADDRESS_DEST_VAL [port]->read(),event.take); … … 982 987 request.take_good = 1; 983 988 request.flag = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.take_good:(not request.take_good); 989 request.no_sequence = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.flag:not request.flag; 984 990 request.is_accurate = true; 985 991 request.miss_ifetch = false; … … 1059 1065 request.take_good = 0; 1060 1066 request.flag = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.take_good:(not request.take_good); 1067 request.no_sequence = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.flag:not request.flag; 1061 1068 request.is_accurate = true; 1062 1069 request.miss_ifetch = false; … … 1067 1074 request.ras_index = (0x87654321)%_param->_size_ras_index[context]; 1068 1075 request.ufpt_ptr = ufpt_top [context]; 1076 request.upt_ptr = upt_top [context]; 1069 1077 1070 1078 event = request; … … 1141 1149 in_BRANCH_COMPLETE_DEPTH [port]->write(it_upt->upt_ptr ); 1142 1150 in_BRANCH_COMPLETE_ADDRESS [port]->write(it_upt->address_good); 1143 in_BRANCH_COMPLETE_ FLAG [port]->write(it_upt->flag);1151 in_BRANCH_COMPLETE_NO_SEQUENCE[port]->write(it_upt->no_sequence ); 1144 1152 1145 1153 if (_param->_have_port_depth) … … 1345 1353 have_transaction = true; 1346 1354 1355 TEST(Tdepth_t ,out_BRANCH_EVENT_DEPTH [port]->read(),event.upt_ptr); 1347 1356 TEST(Taddress_t,out_BRANCH_EVENT_ADDRESS_SRC [port]->read(),event.address_src); 1348 1357 TEST(Tcontrol_t,out_BRANCH_EVENT_ADDRESS_DEST_VAL [port]->read(),event.take); … … 1415 1424 request.take_good = 1; 1416 1425 request.flag = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.take_good:(not request.take_good); 1426 request.no_sequence = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.flag:not request.flag; 1417 1427 request.is_accurate = true ; 1418 1428 request.miss_ifetch = false; … … 1557 1567 request.take_good = 1; 1558 1568 request.flag = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.take_good:(not request.take_good); 1569 request.no_sequence = (request.condition == BRANCH_CONDITION_FLAG_SET)?request.flag:not request.flag; 1559 1570 request.is_accurate = true ; 1560 1571 request.miss_ifetch = false; … … 1644 1655 it_event->address_good = it_event->address_dest; 1645 1656 it_event->flag = not it_event->flag; 1657 it_event->no_sequence = not it_event->no_sequence; 1646 1658 it_event->take_good = not it_event->take_good; 1647 1659 } … … 1662 1674 in_BRANCH_COMPLETE_DEPTH [port]->write(it_event->upt_ptr ); 1663 1675 in_BRANCH_COMPLETE_ADDRESS [port]->write(it_event->address_good); 1664 in_BRANCH_COMPLETE_ FLAG [port]->write(it_event->flag);1676 in_BRANCH_COMPLETE_NO_SEQUENCE[port]->write(it_event->no_sequence ); 1665 1677 1666 1678 if (_param->_have_port_depth) … … 1675 1687 { 1676 1688 LABEL("BRANCH_COMPLETE [%d] - Transaction accepted",port); 1677 LABEL(" * CONTEXT_ID %d" ,it_event->context ); 1678 LABEL(" * DEPTH %d" ,it_event->upt_ptr ); 1679 LABEL(" * CONDITION %d" ,it_event->condition ); 1680 LABEL(" * ADDRESS %.8x",it_event->address_good); 1681 LABEL(" * FLAG %d" ,it_event->flag ); 1689 LABEL(" * CONTEXT_ID : %d" ,it_event->context ); 1690 LABEL(" * DEPTH : %d" ,it_event->upt_ptr ); 1691 LABEL(" * CONDITION : %d" ,it_event->condition ); 1692 LABEL(" * ADDRESS : %.8x",it_event->address_good); 1693 LABEL(" * FLAG : %d" ,it_event->flag ); 1694 LABEL(" * NO_SEQUENCE : %d" ,it_event->no_sequence ); 1682 1695 1683 1696 have_transaction = true; … … 1722 1735 in_BRANCH_COMPLETE_DEPTH [port]->write(it_upt->upt_ptr ); 1723 1736 in_BRANCH_COMPLETE_ADDRESS [port]->write(it_upt->address_dest); 1724 in_BRANCH_COMPLETE_ FLAG [port]->write(it_upt->flag);1737 in_BRANCH_COMPLETE_NO_SEQUENCE[port]->write(it_upt->no_sequence ); 1725 1738 1726 1739 if (_param->_have_port_depth) … … 1735 1748 { 1736 1749 LABEL("BRANCH_COMPLETE [%d] - Transaction accepted",port); 1737 LABEL(" * CONTEXT_ID %d" ,it_upt->context ); 1738 LABEL(" * DEPTH %d" ,it_upt->upt_ptr ); 1739 LABEL(" * CONDITION %d" ,it_upt->condition ); 1740 LABEL(" * ADDRESS %.8x",it_upt->address_dest); 1741 LABEL(" * FLAG %d" ,it_upt->flag ); 1750 LABEL(" * CONTEXT_ID : %d" ,it_upt->context ); 1751 LABEL(" * DEPTH : %d" ,it_upt->upt_ptr ); 1752 LABEL(" * CONDITION : %d" ,it_upt->condition ); 1753 LABEL(" * ADDRESS : %.8x",it_upt->address_dest); 1754 LABEL(" * FLAG : %d" ,it_upt->flag ); 1755 LABEL(" * NO_SEQUENCE : %d" ,it_event->no_sequence ); 1742 1756 1743 1757 have_transaction = true; … … 1953 1967 LABEL(" * event.take : %.8x,",event.take ); 1954 1968 1969 TEST(Tdepth_t ,out_BRANCH_EVENT_DEPTH [port]->read(),event.upt_ptr); 1955 1970 TEST(Taddress_t,out_BRANCH_EVENT_ADDRESS_SRC [port]->read(),event.address_src); 1956 1971 TEST(Tcontrol_t,out_BRANCH_EVENT_ADDRESS_DEST_VAL [port]->read(),event.take_good); … … 2120 2135 delete [] in_BRANCH_COMPLETE_DEPTH ; 2121 2136 delete [] in_BRANCH_COMPLETE_ADDRESS ; 2122 delete [] in_BRANCH_COMPLETE_ FLAG;2137 delete [] in_BRANCH_COMPLETE_NO_SEQUENCE ; 2123 2138 delete [] out_BRANCH_COMPLETE_MISS_PREDICTION; 2124 2139 delete [] out_BRANCH_COMPLETE_TAKE ; … … 2129 2144 delete [] out_BRANCH_EVENT_VAL ; 2130 2145 delete [] in_BRANCH_EVENT_ACK ; 2131 //delete [] in_BRANCH_EVENT_CONTEXT_ID ;2132 //delete [] in_BRANCH_EVENT_DEPTH ;2146 //delete [] out_BRANCH_EVENT_CONTEXT_ID ; 2147 delete [] out_BRANCH_EVENT_DEPTH ; 2133 2148 //delete [] out_BRANCH_EVENT_MISS_PREDICTION; 2134 2149 delete [] out_BRANCH_EVENT_ADDRESS_SRC ;
Note: See TracChangeset
for help on using the changeset viewer.