Changeset 69 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/test.cpp
- Timestamp:
- Dec 12, 2007, 5:02:47 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/SelfTest/src/test.cpp
r55 r69 10 10 #include "Common/include/Test.h" 11 11 12 #define NB_ITERATION 1613 #define CYCLE_MAX ( 512*NB_ITERATION)12 #define NB_ITERATION 2 13 #define CYCLE_MAX (2048*NB_ITERATION) 14 14 15 15 #define LABEL(str) \ … … 64 64 sc_signal<Tcontrol_t> * in_NRESET = new sc_signal<Tcontrol_t> ("NRESET"); 65 65 66 sc_signal<Tcontrol_t > * in_RESERVATION_STATION_IN_VAL = new sc_signal<Tcontrol_t >; 67 sc_signal<Tcontrol_t > * out_RESERVATION_STATION_IN_ACK = new sc_signal<Tcontrol_t >; 68 sc_signal<Tcontext_t > * in_RESERVATION_STATION_IN_CONTEXT_ID = new sc_signal<Tcontext_t >; 69 sc_signal<Tpacket_t > * in_RESERVATION_STATION_IN_PACKET_ID = new sc_signal<Tpacket_t >; 70 sc_signal<Toperation_t > * in_RESERVATION_STATION_IN_OPERATION = new sc_signal<Toperation_t >; 71 sc_signal<Ttype_t > * in_RESERVATION_STATION_IN_TYPE = new sc_signal<Ttype_t >; 72 sc_signal<Tcontrol_t > * in_RESERVATION_STATION_IN_HAS_IMMEDIAT = new sc_signal<Tcontrol_t >; 73 sc_signal<Tgeneral_data_t > * in_RESERVATION_STATION_IN_IMMEDIAT = new sc_signal<Tgeneral_data_t >; 74 //sc_signal<Tcontrol_t > * in_RESERVATION_STATION_IN_READ_RA = new sc_signal<Tcontrol_t >; 75 sc_signal<Tgeneral_address_t> * in_RESERVATION_STATION_IN_NUM_REG_RA = new sc_signal<Tgeneral_address_t>; 76 sc_signal<Tcontrol_t > * in_RESERVATION_STATION_IN_DATA_RA_VAL = new sc_signal<Tcontrol_t >; 77 sc_signal<Tgeneral_data_t > * in_RESERVATION_STATION_IN_DATA_RA = new sc_signal<Tgeneral_data_t >; 78 //sc_signal<Tcontrol_t > * in_RESERVATION_STATION_IN_READ_RB = new sc_signal<Tcontrol_t >; 79 sc_signal<Tgeneral_address_t> * in_RESERVATION_STATION_IN_NUM_REG_RB = new sc_signal<Tgeneral_address_t>; 80 sc_signal<Tcontrol_t > * in_RESERVATION_STATION_IN_DATA_RB_VAL = new sc_signal<Tcontrol_t >; 81 sc_signal<Tgeneral_data_t > * in_RESERVATION_STATION_IN_DATA_RB = new sc_signal<Tgeneral_data_t >; 82 //sc_signal<Tcontrol_t > * in_RESERVATION_STATION_IN_READ_RC = new sc_signal<Tcontrol_t >; 83 sc_signal<Tspecial_address_t> * in_RESERVATION_STATION_IN_NUM_REG_RC = new sc_signal<Tspecial_address_t>; 84 sc_signal<Tcontrol_t > * in_RESERVATION_STATION_IN_DATA_RC_VAL = new sc_signal<Tcontrol_t >; 85 sc_signal<Tspecial_data_t > * in_RESERVATION_STATION_IN_DATA_RC = new sc_signal<Tspecial_data_t >; 86 sc_signal<Tcontrol_t > * in_RESERVATION_STATION_IN_WRITE_RD = new sc_signal<Tcontrol_t >; 87 sc_signal<Tgeneral_address_t> * in_RESERVATION_STATION_IN_NUM_REG_RD = new sc_signal<Tgeneral_address_t>; 88 sc_signal<Tcontrol_t > * in_RESERVATION_STATION_IN_WRITE_RE = new sc_signal<Tcontrol_t >; 89 sc_signal<Tspecial_address_t> * in_RESERVATION_STATION_IN_NUM_REG_RE = new sc_signal<Tspecial_address_t>; 90 91 sc_signal<Tcontrol_t > ** out_RESERVATION_STATION_OUT_VAL = new sc_signal<Tcontrol_t > * [_param->_size_queue]; 92 sc_signal<Tcontrol_t > ** in_RESERVATION_STATION_OUT_ACK = new sc_signal<Tcontrol_t > * [_param->_size_queue]; 93 sc_signal<Tcontext_t > ** out_RESERVATION_STATION_OUT_CONTEXT_ID = new sc_signal<Tcontext_t > * [_param->_size_queue]; 94 sc_signal<Tpacket_t > ** out_RESERVATION_STATION_OUT_PACKET_ID = new sc_signal<Tpacket_t > * [_param->_size_queue]; 95 sc_signal<Toperation_t > ** out_RESERVATION_STATION_OUT_OPERATION = new sc_signal<Toperation_t > * [_param->_size_queue]; 96 sc_signal<Ttype_t > ** out_RESERVATION_STATION_OUT_TYPE = new sc_signal<Ttype_t > * [_param->_size_queue]; 97 sc_signal<Tcontrol_t > ** out_RESERVATION_STATION_OUT_HAS_IMMEDIAT= new sc_signal<Tcontrol_t > * [_param->_size_queue]; 98 sc_signal<Tgeneral_data_t > ** out_RESERVATION_STATION_OUT_IMMEDIAT = new sc_signal<Tgeneral_data_t > * [_param->_size_queue]; 99 sc_signal<Tgeneral_data_t > ** out_RESERVATION_STATION_OUT_DATA_RA = new sc_signal<Tgeneral_data_t > * [_param->_size_queue]; 100 sc_signal<Tgeneral_data_t > ** out_RESERVATION_STATION_OUT_DATA_RB = new sc_signal<Tgeneral_data_t > * [_param->_size_queue]; 101 sc_signal<Tspecial_data_t > ** out_RESERVATION_STATION_OUT_DATA_RC = new sc_signal<Tspecial_data_t > * [_param->_size_queue]; 102 sc_signal<Tcontrol_t > ** out_RESERVATION_STATION_OUT_WRITE_RD = new sc_signal<Tcontrol_t > * [_param->_size_queue]; 103 sc_signal<Tgeneral_address_t> ** out_RESERVATION_STATION_OUT_NUM_REG_RD = new sc_signal<Tgeneral_address_t> * [_param->_size_queue]; 104 sc_signal<Tcontrol_t > ** out_RESERVATION_STATION_OUT_WRITE_RE = new sc_signal<Tcontrol_t > * [_param->_size_queue]; 105 sc_signal<Tspecial_address_t> ** out_RESERVATION_STATION_OUT_NUM_REG_RE = new sc_signal<Tspecial_address_t> * [_param->_size_queue]; 66 sc_signal<Tcontrol_t > * in_INSERT_VAL = new sc_signal<Tcontrol_t >; 67 sc_signal<Tcontrol_t > * out_INSERT_ACK = new sc_signal<Tcontrol_t >; 68 sc_signal<Tcontext_t > * in_INSERT_CONTEXT_ID = new sc_signal<Tcontext_t >; 69 sc_signal<Tcontext_t > * in_INSERT_FRONT_END_ID = new sc_signal<Tcontext_t >; 70 sc_signal<Tcontext_t > * in_INSERT_OOO_ENGINE_ID = new sc_signal<Tcontext_t >; 71 sc_signal<Tpacket_t > * in_INSERT_ROB_ID = new sc_signal<Tpacket_t >; 72 sc_signal<Toperation_t > * in_INSERT_OPERATION = new sc_signal<Toperation_t >; 73 sc_signal<Ttype_t > * in_INSERT_TYPE = new sc_signal<Ttype_t >; 74 sc_signal<Tcontrol_t > * in_INSERT_HAS_IMMEDIAT = new sc_signal<Tcontrol_t >; 75 sc_signal<Tgeneral_data_t > * in_INSERT_IMMEDIAT = new sc_signal<Tgeneral_data_t >; 76 //sc_signal<Tcontrol_t > * in_INSERT_READ_RA = new sc_signal<Tcontrol_t >; 77 sc_signal<Tgeneral_address_t> * in_INSERT_NUM_REG_RA = new sc_signal<Tgeneral_address_t>; 78 sc_signal<Tcontrol_t > * in_INSERT_DATA_RA_VAL = new sc_signal<Tcontrol_t >; 79 sc_signal<Tgeneral_data_t > * in_INSERT_DATA_RA = new sc_signal<Tgeneral_data_t >; 80 //sc_signal<Tcontrol_t > * in_INSERT_READ_RB = new sc_signal<Tcontrol_t >; 81 sc_signal<Tgeneral_address_t> * in_INSERT_NUM_REG_RB = new sc_signal<Tgeneral_address_t>; 82 sc_signal<Tcontrol_t > * in_INSERT_DATA_RB_VAL = new sc_signal<Tcontrol_t >; 83 sc_signal<Tgeneral_data_t > * in_INSERT_DATA_RB = new sc_signal<Tgeneral_data_t >; 84 //sc_signal<Tcontrol_t > * in_INSERT_READ_RC = new sc_signal<Tcontrol_t >; 85 sc_signal<Tspecial_address_t> * in_INSERT_NUM_REG_RC = new sc_signal<Tspecial_address_t>; 86 sc_signal<Tcontrol_t > * in_INSERT_DATA_RC_VAL = new sc_signal<Tcontrol_t >; 87 sc_signal<Tspecial_data_t > * in_INSERT_DATA_RC = new sc_signal<Tspecial_data_t >; 88 sc_signal<Tcontrol_t > * in_INSERT_WRITE_RD = new sc_signal<Tcontrol_t >; 89 sc_signal<Tgeneral_address_t> * in_INSERT_NUM_REG_RD = new sc_signal<Tgeneral_address_t>; 90 sc_signal<Tcontrol_t > * in_INSERT_WRITE_RE = new sc_signal<Tcontrol_t >; 91 sc_signal<Tspecial_address_t> * in_INSERT_NUM_REG_RE = new sc_signal<Tspecial_address_t>; 92 93 sc_signal<Tcontrol_t > ** out_RETIRE_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_inst_retire]; 94 sc_signal<Tcontrol_t > ** in_RETIRE_ACK = new sc_signal<Tcontrol_t > * [_param->_nb_inst_retire]; 95 sc_signal<Tcontext_t > ** out_RETIRE_CONTEXT_ID = new sc_signal<Tcontext_t > * [_param->_nb_inst_retire]; 96 sc_signal<Tcontext_t > ** out_RETIRE_FRONT_END_ID = new sc_signal<Tcontext_t > * [_param->_nb_inst_retire]; 97 sc_signal<Tcontext_t > ** out_RETIRE_OOO_ENGINE_ID = new sc_signal<Tcontext_t > * [_param->_nb_inst_retire]; 98 sc_signal<Tpacket_t > ** out_RETIRE_ROB_ID = new sc_signal<Tpacket_t > * [_param->_nb_inst_retire]; 99 sc_signal<Toperation_t > ** out_RETIRE_OPERATION = new sc_signal<Toperation_t > * [_param->_nb_inst_retire]; 100 sc_signal<Ttype_t > ** out_RETIRE_TYPE = new sc_signal<Ttype_t > * [_param->_nb_inst_retire]; 101 sc_signal<Tcontrol_t > ** out_RETIRE_HAS_IMMEDIAT = new sc_signal<Tcontrol_t > * [_param->_nb_inst_retire]; 102 sc_signal<Tgeneral_data_t > ** out_RETIRE_IMMEDIAT = new sc_signal<Tgeneral_data_t > * [_param->_nb_inst_retire]; 103 sc_signal<Tgeneral_data_t > ** out_RETIRE_DATA_RA = new sc_signal<Tgeneral_data_t > * [_param->_nb_inst_retire]; 104 sc_signal<Tgeneral_data_t > ** out_RETIRE_DATA_RB = new sc_signal<Tgeneral_data_t > * [_param->_nb_inst_retire]; 105 sc_signal<Tspecial_data_t > ** out_RETIRE_DATA_RC = new sc_signal<Tspecial_data_t > * [_param->_nb_inst_retire]; 106 sc_signal<Tcontrol_t > ** out_RETIRE_WRITE_RD = new sc_signal<Tcontrol_t > * [_param->_nb_inst_retire]; 107 sc_signal<Tgeneral_address_t> ** out_RETIRE_NUM_REG_RD = new sc_signal<Tgeneral_address_t> * [_param->_nb_inst_retire]; 108 sc_signal<Tcontrol_t > ** out_RETIRE_WRITE_RE = new sc_signal<Tcontrol_t > * [_param->_nb_inst_retire]; 109 sc_signal<Tspecial_address_t> ** out_RETIRE_NUM_REG_RE = new sc_signal<Tspecial_address_t> * [_param->_nb_inst_retire]; 106 110 107 for (uint32_t i=0; i<_param->_ size_queue; i++)111 for (uint32_t i=0; i<_param->_nb_inst_retire; i++) 108 112 { 109 out_RESERVATION_STATION_OUT_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 110 in_RESERVATION_STATION_OUT_ACK [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 111 out_RESERVATION_STATION_OUT_CONTEXT_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 112 out_RESERVATION_STATION_OUT_PACKET_ID [i] = new sc_signal<Tpacket_t > (rename.c_str()); 113 out_RESERVATION_STATION_OUT_OPERATION [i] = new sc_signal<Toperation_t > (rename.c_str()); 114 out_RESERVATION_STATION_OUT_TYPE [i] = new sc_signal<Ttype_t > (rename.c_str()); 115 out_RESERVATION_STATION_OUT_HAS_IMMEDIAT [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 116 out_RESERVATION_STATION_OUT_IMMEDIAT [i] = new sc_signal<Tgeneral_data_t > (rename.c_str()); 117 out_RESERVATION_STATION_OUT_DATA_RA [i] = new sc_signal<Tgeneral_data_t > (rename.c_str()); 118 out_RESERVATION_STATION_OUT_DATA_RB [i] = new sc_signal<Tgeneral_data_t > (rename.c_str()); 119 out_RESERVATION_STATION_OUT_DATA_RC [i] = new sc_signal<Tspecial_data_t > (rename.c_str()); 120 out_RESERVATION_STATION_OUT_WRITE_RD [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 121 out_RESERVATION_STATION_OUT_NUM_REG_RD [i] = new sc_signal<Tgeneral_address_t> (rename.c_str()); 122 out_RESERVATION_STATION_OUT_WRITE_RE [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 123 out_RESERVATION_STATION_OUT_NUM_REG_RE [i] = new sc_signal<Tspecial_address_t> (rename.c_str()); 113 out_RETIRE_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 114 in_RETIRE_ACK [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 115 out_RETIRE_CONTEXT_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 116 out_RETIRE_FRONT_END_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 117 out_RETIRE_OOO_ENGINE_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 118 out_RETIRE_ROB_ID [i] = new sc_signal<Tpacket_t > (rename.c_str()); 119 out_RETIRE_OPERATION [i] = new sc_signal<Toperation_t > (rename.c_str()); 120 out_RETIRE_TYPE [i] = new sc_signal<Ttype_t > (rename.c_str()); 121 out_RETIRE_HAS_IMMEDIAT [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 122 out_RETIRE_IMMEDIAT [i] = new sc_signal<Tgeneral_data_t > (rename.c_str()); 123 out_RETIRE_DATA_RA [i] = new sc_signal<Tgeneral_data_t > (rename.c_str()); 124 out_RETIRE_DATA_RB [i] = new sc_signal<Tgeneral_data_t > (rename.c_str()); 125 out_RETIRE_DATA_RC [i] = new sc_signal<Tspecial_data_t > (rename.c_str()); 126 out_RETIRE_WRITE_RD [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 127 out_RETIRE_NUM_REG_RD [i] = new sc_signal<Tgeneral_address_t> (rename.c_str()); 128 out_RETIRE_WRITE_RE [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 129 out_RETIRE_NUM_REG_RE [i] = new sc_signal<Tspecial_address_t> (rename.c_str()); 124 130 } 125 131 126 sc_signal<Tcontrol_t > ** in_GPR_WRITE_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_gpr_write];127 sc_signal<Tcontext_t > ** in_GPR_WRITE_ CONTEXT_ID = new sc_signal<Tcontext_t > * [_param->_nb_gpr_write];128 sc_signal<Tgeneral_address_t> ** in_GPR_WRITE_NUM_REG = new sc_signal<Tgeneral_address_t> * [_param->_nb_gpr_write];129 sc_signal<Tgeneral_data_t > ** in_GPR_WRITE_DATA = new sc_signal<Tgeneral_data_t > * [_param->_nb_gpr_write];132 sc_signal<Tcontrol_t > ** in_GPR_WRITE_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_gpr_write]; 133 sc_signal<Tcontext_t > ** in_GPR_WRITE_OOO_ENGINE_ID = new sc_signal<Tcontext_t > * [_param->_nb_gpr_write]; 134 sc_signal<Tgeneral_address_t> ** in_GPR_WRITE_NUM_REG = new sc_signal<Tgeneral_address_t> * [_param->_nb_gpr_write]; 135 sc_signal<Tgeneral_data_t > ** in_GPR_WRITE_DATA = new sc_signal<Tgeneral_data_t > * [_param->_nb_gpr_write]; 130 136 131 137 for (uint32_t i=0; i<_param->_nb_gpr_write; i++) 132 138 { 133 in_GPR_WRITE_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str());134 in_GPR_WRITE_ CONTEXT_ID [i] = new sc_signal<Tcontext_t > (rename.c_str());135 in_GPR_WRITE_NUM_REG [i] = new sc_signal<Tgeneral_address_t> (rename.c_str());136 in_GPR_WRITE_DATA [i] = new sc_signal<Tgeneral_data_t > (rename.c_str());139 in_GPR_WRITE_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 140 in_GPR_WRITE_OOO_ENGINE_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 141 in_GPR_WRITE_NUM_REG [i] = new sc_signal<Tgeneral_address_t> (rename.c_str()); 142 in_GPR_WRITE_DATA [i] = new sc_signal<Tgeneral_data_t > (rename.c_str()); 137 143 } 138 144 139 sc_signal<Tcontrol_t > ** in_SPR_WRITE_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_spr_write];140 sc_signal<Tcontext_t > ** in_SPR_WRITE_ CONTEXT_ID= new sc_signal<Tcontext_t > * [_param->_nb_spr_write];141 sc_signal<Tspecial_address_t> ** in_SPR_WRITE_NUM_REG = new sc_signal<Tspecial_address_t> * [_param->_nb_spr_write];142 sc_signal<Tspecial_data_t > ** in_SPR_WRITE_DATA = new sc_signal<Tspecial_data_t > * [_param->_nb_spr_write];145 sc_signal<Tcontrol_t > ** in_SPR_WRITE_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_spr_write]; 146 sc_signal<Tcontext_t > ** in_SPR_WRITE_OOO_ENGINE_ID= new sc_signal<Tcontext_t > * [_param->_nb_spr_write]; 147 sc_signal<Tspecial_address_t> ** in_SPR_WRITE_NUM_REG = new sc_signal<Tspecial_address_t> * [_param->_nb_spr_write]; 148 sc_signal<Tspecial_data_t > ** in_SPR_WRITE_DATA = new sc_signal<Tspecial_data_t > * [_param->_nb_spr_write]; 143 149 144 150 for (uint32_t i=0; i<_param->_nb_spr_write; i++) 145 151 { 146 in_SPR_WRITE_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str());147 in_SPR_WRITE_ CONTEXT_ID [i] = new sc_signal<Tcontext_t > (rename.c_str());148 in_SPR_WRITE_NUM_REG [i] = new sc_signal<Tspecial_address_t> (rename.c_str());149 in_SPR_WRITE_DATA [i] = new sc_signal<Tspecial_data_t > (rename.c_str());152 in_SPR_WRITE_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 153 in_SPR_WRITE_OOO_ENGINE_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 154 in_SPR_WRITE_NUM_REG [i] = new sc_signal<Tspecial_address_t> (rename.c_str()); 155 in_SPR_WRITE_DATA [i] = new sc_signal<Tspecial_data_t > (rename.c_str()); 150 156 } 151 157 152 sc_signal<Tcontext_t > ** in_BYPASS_WRITE_ CONTEXT_ID = new sc_signal<Tcontext_t > * [_param->_nb_bypass_write];153 sc_signal<Tcontrol_t > ** in_BYPASS_WRITE_GPR_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_bypass_write];154 sc_signal<Tgeneral_address_t> ** in_BYPASS_WRITE_GPR_NUM_REG = new sc_signal<Tgeneral_address_t> * [_param->_nb_bypass_write];155 sc_signal<Tgeneral_data_t > ** in_BYPASS_WRITE_GPR_DATA = new sc_signal<Tgeneral_data_t > * [_param->_nb_bypass_write];156 sc_signal<Tcontrol_t > ** in_BYPASS_WRITE_SPR_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_bypass_write];157 sc_signal<Tspecial_address_t> ** in_BYPASS_WRITE_SPR_NUM_REG = new sc_signal<Tspecial_address_t> * [_param->_nb_bypass_write];158 sc_signal<Tspecial_data_t > ** in_BYPASS_WRITE_SPR_DATA = new sc_signal<Tspecial_data_t > * [_param->_nb_bypass_write];158 sc_signal<Tcontext_t > ** in_BYPASS_WRITE_OOO_ENGINE_ID = new sc_signal<Tcontext_t > * [_param->_nb_bypass_write]; 159 sc_signal<Tcontrol_t > ** in_BYPASS_WRITE_GPR_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_bypass_write]; 160 sc_signal<Tgeneral_address_t> ** in_BYPASS_WRITE_GPR_NUM_REG = new sc_signal<Tgeneral_address_t> * [_param->_nb_bypass_write]; 161 sc_signal<Tgeneral_data_t > ** in_BYPASS_WRITE_GPR_DATA = new sc_signal<Tgeneral_data_t > * [_param->_nb_bypass_write]; 162 sc_signal<Tcontrol_t > ** in_BYPASS_WRITE_SPR_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_bypass_write]; 163 sc_signal<Tspecial_address_t> ** in_BYPASS_WRITE_SPR_NUM_REG = new sc_signal<Tspecial_address_t> * [_param->_nb_bypass_write]; 164 sc_signal<Tspecial_data_t > ** in_BYPASS_WRITE_SPR_DATA = new sc_signal<Tspecial_data_t > * [_param->_nb_bypass_write]; 159 165 160 166 for (uint32_t i=0; i<_param->_nb_bypass_write; i++) 161 167 { 162 in_BYPASS_WRITE_ CONTEXT_ID [i] = new sc_signal<Tcontext_t > (rename.c_str());163 in_BYPASS_WRITE_GPR_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str());164 in_BYPASS_WRITE_GPR_NUM_REG [i] = new sc_signal<Tgeneral_address_t> (rename.c_str());165 in_BYPASS_WRITE_GPR_DATA [i] = new sc_signal<Tgeneral_data_t > (rename.c_str());166 in_BYPASS_WRITE_SPR_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str());167 in_BYPASS_WRITE_SPR_NUM_REG [i] = new sc_signal<Tspecial_address_t> (rename.c_str());168 in_BYPASS_WRITE_SPR_DATA [i] = new sc_signal<Tspecial_data_t > (rename.c_str());168 in_BYPASS_WRITE_OOO_ENGINE_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 169 in_BYPASS_WRITE_GPR_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 170 in_BYPASS_WRITE_GPR_NUM_REG [i] = new sc_signal<Tgeneral_address_t> (rename.c_str()); 171 in_BYPASS_WRITE_GPR_DATA [i] = new sc_signal<Tgeneral_data_t > (rename.c_str()); 172 in_BYPASS_WRITE_SPR_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 173 in_BYPASS_WRITE_SPR_NUM_REG [i] = new sc_signal<Tspecial_address_t> (rename.c_str()); 174 in_BYPASS_WRITE_SPR_DATA [i] = new sc_signal<Tspecial_data_t > (rename.c_str()); 169 175 } 170 sc_signal<Tcontrol_t > ** in_BYPASS_MEMORY_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_bypass_memory];171 sc_signal<Tcontext_t > ** in_BYPASS_MEMORY_ CONTEXT_ID = new sc_signal<Tcontext_t > * [_param->_nb_bypass_memory];172 sc_signal<Tgeneral_address_t> ** in_BYPASS_MEMORY_NUM_REG = new sc_signal<Tgeneral_address_t> * [_param->_nb_bypass_memory];173 sc_signal<Tgeneral_data_t > ** in_BYPASS_MEMORY_DATA = new sc_signal<Tgeneral_data_t > * [_param->_nb_bypass_memory];176 sc_signal<Tcontrol_t > ** in_BYPASS_MEMORY_VAL = new sc_signal<Tcontrol_t > * [_param->_nb_bypass_memory]; 177 sc_signal<Tcontext_t > ** in_BYPASS_MEMORY_OOO_ENGINE_ID = new sc_signal<Tcontext_t > * [_param->_nb_bypass_memory]; 178 sc_signal<Tgeneral_address_t> ** in_BYPASS_MEMORY_NUM_REG = new sc_signal<Tgeneral_address_t> * [_param->_nb_bypass_memory]; 179 sc_signal<Tgeneral_data_t > ** in_BYPASS_MEMORY_DATA = new sc_signal<Tgeneral_data_t > * [_param->_nb_bypass_memory]; 174 180 175 181 for (uint32_t i=0; i<_param->_nb_bypass_memory; i++) 176 182 { 177 in_BYPASS_MEMORY_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str());178 in_BYPASS_MEMORY_ CONTEXT_ID [i] = new sc_signal<Tcontext_t > (rename.c_str());179 in_BYPASS_MEMORY_NUM_REG [i] = new sc_signal<Tgeneral_address_t> (rename.c_str());180 in_BYPASS_MEMORY_DATA [i] = new sc_signal<Tgeneral_data_t > (rename.c_str());183 in_BYPASS_MEMORY_VAL [i] = new sc_signal<Tcontrol_t > (rename.c_str()); 184 in_BYPASS_MEMORY_OOO_ENGINE_ID [i] = new sc_signal<Tcontext_t > (rename.c_str()); 185 in_BYPASS_MEMORY_NUM_REG [i] = new sc_signal<Tgeneral_address_t> (rename.c_str()); 186 in_BYPASS_MEMORY_DATA [i] = new sc_signal<Tgeneral_data_t > (rename.c_str()); 181 187 } 182 188 … … 190 196 (*(_Reservation_station->in_NRESET)) (*(in_NRESET)); 191 197 192 (*(_Reservation_station-> in_RESERVATION_STATION_IN_VAL )) (*( in_RESERVATION_STATION_IN_VAL )); 193 (*(_Reservation_station->out_RESERVATION_STATION_IN_ACK )) (*(out_RESERVATION_STATION_IN_ACK )); 194 (*(_Reservation_station-> in_RESERVATION_STATION_IN_CONTEXT_ID )) (*( in_RESERVATION_STATION_IN_CONTEXT_ID )); 195 (*(_Reservation_station-> in_RESERVATION_STATION_IN_PACKET_ID )) (*( in_RESERVATION_STATION_IN_PACKET_ID )); 196 (*(_Reservation_station-> in_RESERVATION_STATION_IN_OPERATION )) (*( in_RESERVATION_STATION_IN_OPERATION )); 197 (*(_Reservation_station-> in_RESERVATION_STATION_IN_TYPE )) (*( in_RESERVATION_STATION_IN_TYPE )); 198 (*(_Reservation_station-> in_RESERVATION_STATION_IN_HAS_IMMEDIAT )) (*( in_RESERVATION_STATION_IN_HAS_IMMEDIAT )); 199 (*(_Reservation_station-> in_RESERVATION_STATION_IN_IMMEDIAT )) (*( in_RESERVATION_STATION_IN_IMMEDIAT )); 200 // (*(_Reservation_station-> in_RESERVATION_STATION_IN_READ_RA )) (*( in_RESERVATION_STATION_IN_READ_RA )); 201 (*(_Reservation_station-> in_RESERVATION_STATION_IN_NUM_REG_RA )) (*( in_RESERVATION_STATION_IN_NUM_REG_RA )); 202 (*(_Reservation_station-> in_RESERVATION_STATION_IN_DATA_RA_VAL )) (*( in_RESERVATION_STATION_IN_DATA_RA_VAL )); 203 (*(_Reservation_station-> in_RESERVATION_STATION_IN_DATA_RA )) (*( in_RESERVATION_STATION_IN_DATA_RA )); 204 // (*(_Reservation_station-> in_RESERVATION_STATION_IN_READ_RB )) (*( in_RESERVATION_STATION_IN_READ_RB )); 205 (*(_Reservation_station-> in_RESERVATION_STATION_IN_NUM_REG_RB )) (*( in_RESERVATION_STATION_IN_NUM_REG_RB )); 206 (*(_Reservation_station-> in_RESERVATION_STATION_IN_DATA_RB_VAL )) (*( in_RESERVATION_STATION_IN_DATA_RB_VAL )); 207 (*(_Reservation_station-> in_RESERVATION_STATION_IN_DATA_RB )) (*( in_RESERVATION_STATION_IN_DATA_RB )); 208 // (*(_Reservation_station-> in_RESERVATION_STATION_IN_READ_RC )) (*( in_RESERVATION_STATION_IN_READ_RC )); 209 (*(_Reservation_station-> in_RESERVATION_STATION_IN_NUM_REG_RC )) (*( in_RESERVATION_STATION_IN_NUM_REG_RC )); 210 (*(_Reservation_station-> in_RESERVATION_STATION_IN_DATA_RC_VAL )) (*( in_RESERVATION_STATION_IN_DATA_RC_VAL )); 211 (*(_Reservation_station-> in_RESERVATION_STATION_IN_DATA_RC )) (*( in_RESERVATION_STATION_IN_DATA_RC )); 212 (*(_Reservation_station-> in_RESERVATION_STATION_IN_WRITE_RD )) (*( in_RESERVATION_STATION_IN_WRITE_RD )); 213 (*(_Reservation_station-> in_RESERVATION_STATION_IN_NUM_REG_RD )) (*( in_RESERVATION_STATION_IN_NUM_REG_RD )); 214 (*(_Reservation_station-> in_RESERVATION_STATION_IN_WRITE_RE )) (*( in_RESERVATION_STATION_IN_WRITE_RE )); 215 (*(_Reservation_station-> in_RESERVATION_STATION_IN_NUM_REG_RE )) (*( in_RESERVATION_STATION_IN_NUM_REG_RE )); 216 217 for (uint32_t i=0; i<_param->_size_queue; i++) 198 (*(_Reservation_station-> in_INSERT_VAL )) (*( in_INSERT_VAL )); 199 (*(_Reservation_station->out_INSERT_ACK )) (*(out_INSERT_ACK )); 200 if (_param->_have_port_context_id) 201 (*(_Reservation_station-> in_INSERT_CONTEXT_ID )) (*( in_INSERT_CONTEXT_ID )); 202 if (_param->_have_port_front_end_id) 203 (*(_Reservation_station-> in_INSERT_FRONT_END_ID )) (*( in_INSERT_FRONT_END_ID )); 204 if (_param->_have_port_ooo_engine_id) 205 (*(_Reservation_station-> in_INSERT_OOO_ENGINE_ID )) (*( in_INSERT_OOO_ENGINE_ID )); 206 if (_param->_have_port_rob_id) 207 (*(_Reservation_station-> in_INSERT_ROB_ID )) (*( in_INSERT_ROB_ID )); 208 (*(_Reservation_station-> in_INSERT_OPERATION )) (*( in_INSERT_OPERATION )); 209 (*(_Reservation_station-> in_INSERT_TYPE )) (*( in_INSERT_TYPE )); 210 (*(_Reservation_station-> in_INSERT_HAS_IMMEDIAT )) (*( in_INSERT_HAS_IMMEDIAT )); 211 (*(_Reservation_station-> in_INSERT_IMMEDIAT )) (*( in_INSERT_IMMEDIAT )); 212 // (*(_Reservation_station-> in_INSERT_READ_RA )) (*( in_INSERT_READ_RA )); 213 (*(_Reservation_station-> in_INSERT_NUM_REG_RA )) (*( in_INSERT_NUM_REG_RA )); 214 (*(_Reservation_station-> in_INSERT_DATA_RA_VAL )) (*( in_INSERT_DATA_RA_VAL )); 215 (*(_Reservation_station-> in_INSERT_DATA_RA )) (*( in_INSERT_DATA_RA )); 216 // (*(_Reservation_station-> in_INSERT_READ_RB )) (*( in_INSERT_READ_RB )); 217 (*(_Reservation_station-> in_INSERT_NUM_REG_RB )) (*( in_INSERT_NUM_REG_RB )); 218 (*(_Reservation_station-> in_INSERT_DATA_RB_VAL )) (*( in_INSERT_DATA_RB_VAL )); 219 (*(_Reservation_station-> in_INSERT_DATA_RB )) (*( in_INSERT_DATA_RB )); 220 // (*(_Reservation_station-> in_INSERT_READ_RC )) (*( in_INSERT_READ_RC )); 221 (*(_Reservation_station-> in_INSERT_NUM_REG_RC )) (*( in_INSERT_NUM_REG_RC )); 222 (*(_Reservation_station-> in_INSERT_DATA_RC_VAL )) (*( in_INSERT_DATA_RC_VAL )); 223 (*(_Reservation_station-> in_INSERT_DATA_RC )) (*( in_INSERT_DATA_RC )); 224 (*(_Reservation_station-> in_INSERT_WRITE_RD )) (*( in_INSERT_WRITE_RD )); 225 (*(_Reservation_station-> in_INSERT_NUM_REG_RD )) (*( in_INSERT_NUM_REG_RD )); 226 (*(_Reservation_station-> in_INSERT_WRITE_RE )) (*( in_INSERT_WRITE_RE )); 227 (*(_Reservation_station-> in_INSERT_NUM_REG_RE )) (*( in_INSERT_NUM_REG_RE )); 228 229 for (uint32_t i=0; i<_param->_nb_inst_retire; i++) 218 230 { 219 (*(_Reservation_station->out_RESERVATION_STATION_OUT_VAL [i])) (*(out_RESERVATION_STATION_OUT_VAL [i])); 220 (*(_Reservation_station-> in_RESERVATION_STATION_OUT_ACK [i])) (*( in_RESERVATION_STATION_OUT_ACK [i])); 221 (*(_Reservation_station->out_RESERVATION_STATION_OUT_CONTEXT_ID [i])) (*(out_RESERVATION_STATION_OUT_CONTEXT_ID [i])); 222 (*(_Reservation_station->out_RESERVATION_STATION_OUT_PACKET_ID [i])) (*(out_RESERVATION_STATION_OUT_PACKET_ID [i])); 223 (*(_Reservation_station->out_RESERVATION_STATION_OUT_OPERATION [i])) (*(out_RESERVATION_STATION_OUT_OPERATION [i])); 224 (*(_Reservation_station->out_RESERVATION_STATION_OUT_TYPE [i])) (*(out_RESERVATION_STATION_OUT_TYPE [i])); 225 (*(_Reservation_station->out_RESERVATION_STATION_OUT_HAS_IMMEDIAT [i])) (*(out_RESERVATION_STATION_OUT_HAS_IMMEDIAT [i])); 226 (*(_Reservation_station->out_RESERVATION_STATION_OUT_IMMEDIAT [i])) (*(out_RESERVATION_STATION_OUT_IMMEDIAT [i])); 227 (*(_Reservation_station->out_RESERVATION_STATION_OUT_DATA_RA [i])) (*(out_RESERVATION_STATION_OUT_DATA_RA [i])); 228 (*(_Reservation_station->out_RESERVATION_STATION_OUT_DATA_RB [i])) (*(out_RESERVATION_STATION_OUT_DATA_RB [i])); 229 (*(_Reservation_station->out_RESERVATION_STATION_OUT_DATA_RC [i])) (*(out_RESERVATION_STATION_OUT_DATA_RC [i])); 230 (*(_Reservation_station->out_RESERVATION_STATION_OUT_WRITE_RD [i])) (*(out_RESERVATION_STATION_OUT_WRITE_RD [i])); 231 (*(_Reservation_station->out_RESERVATION_STATION_OUT_NUM_REG_RD [i])) (*(out_RESERVATION_STATION_OUT_NUM_REG_RD [i])); 232 (*(_Reservation_station->out_RESERVATION_STATION_OUT_WRITE_RE [i])) (*(out_RESERVATION_STATION_OUT_WRITE_RE [i])); 233 (*(_Reservation_station->out_RESERVATION_STATION_OUT_NUM_REG_RE [i])) (*(out_RESERVATION_STATION_OUT_NUM_REG_RE [i])); 231 (*(_Reservation_station->out_RETIRE_VAL [i])) (*(out_RETIRE_VAL [i])); 232 (*(_Reservation_station-> in_RETIRE_ACK [i])) (*( in_RETIRE_ACK [i])); 233 if (_param->_have_port_context_id) 234 (*(_Reservation_station->out_RETIRE_CONTEXT_ID [i])) (*(out_RETIRE_CONTEXT_ID [i])); 235 if (_param->_have_port_front_end_id) 236 (*(_Reservation_station->out_RETIRE_FRONT_END_ID [i])) (*(out_RETIRE_FRONT_END_ID [i])); 237 if (_param->_have_port_ooo_engine_id) 238 (*(_Reservation_station->out_RETIRE_OOO_ENGINE_ID [i])) (*(out_RETIRE_OOO_ENGINE_ID [i])); 239 if (_param->_have_port_rob_id) 240 (*(_Reservation_station->out_RETIRE_ROB_ID [i])) (*(out_RETIRE_ROB_ID [i])); 241 (*(_Reservation_station->out_RETIRE_OPERATION [i])) (*(out_RETIRE_OPERATION [i])); 242 (*(_Reservation_station->out_RETIRE_TYPE [i])) (*(out_RETIRE_TYPE [i])); 243 (*(_Reservation_station->out_RETIRE_HAS_IMMEDIAT [i])) (*(out_RETIRE_HAS_IMMEDIAT [i])); 244 (*(_Reservation_station->out_RETIRE_IMMEDIAT [i])) (*(out_RETIRE_IMMEDIAT [i])); 245 (*(_Reservation_station->out_RETIRE_DATA_RA [i])) (*(out_RETIRE_DATA_RA [i])); 246 (*(_Reservation_station->out_RETIRE_DATA_RB [i])) (*(out_RETIRE_DATA_RB [i])); 247 (*(_Reservation_station->out_RETIRE_DATA_RC [i])) (*(out_RETIRE_DATA_RC [i])); 248 (*(_Reservation_station->out_RETIRE_WRITE_RD [i])) (*(out_RETIRE_WRITE_RD [i])); 249 (*(_Reservation_station->out_RETIRE_NUM_REG_RD [i])) (*(out_RETIRE_NUM_REG_RD [i])); 250 (*(_Reservation_station->out_RETIRE_WRITE_RE [i])) (*(out_RETIRE_WRITE_RE [i])); 251 (*(_Reservation_station->out_RETIRE_NUM_REG_RE [i])) (*(out_RETIRE_NUM_REG_RE [i])); 234 252 } 235 253 for (uint32_t i=0; i<_param->_nb_gpr_write; i++) 236 254 { 237 255 (*(_Reservation_station-> in_GPR_WRITE_VAL [i])) (*( in_GPR_WRITE_VAL [i])); 238 (*(_Reservation_station-> in_GPR_WRITE_CONTEXT_ID [i])) (*( in_GPR_WRITE_CONTEXT_ID [i])); 256 if (_param->_have_port_ooo_engine_id) 257 (*(_Reservation_station-> in_GPR_WRITE_OOO_ENGINE_ID [i])) (*( in_GPR_WRITE_OOO_ENGINE_ID [i])); 239 258 (*(_Reservation_station-> in_GPR_WRITE_NUM_REG [i])) (*( in_GPR_WRITE_NUM_REG [i])); 240 259 (*(_Reservation_station-> in_GPR_WRITE_DATA [i])) (*( in_GPR_WRITE_DATA [i])); … … 243 262 { 244 263 (*(_Reservation_station-> in_SPR_WRITE_VAL [i])) (*( in_SPR_WRITE_VAL [i])); 245 (*(_Reservation_station-> in_SPR_WRITE_CONTEXT_ID [i])) (*( in_SPR_WRITE_CONTEXT_ID [i])); 264 if (_param->_have_port_ooo_engine_id) 265 (*(_Reservation_station-> in_SPR_WRITE_OOO_ENGINE_ID [i])) (*( in_SPR_WRITE_OOO_ENGINE_ID [i])); 246 266 (*(_Reservation_station-> in_SPR_WRITE_NUM_REG [i])) (*( in_SPR_WRITE_NUM_REG [i])); 247 267 (*(_Reservation_station-> in_SPR_WRITE_DATA [i])) (*( in_SPR_WRITE_DATA [i])); … … 249 269 for (uint32_t i=0; i<_param->_nb_bypass_write; i++) 250 270 { 251 (*(_Reservation_station-> in_BYPASS_WRITE_CONTEXT_ID [i])) (*( in_BYPASS_WRITE_CONTEXT_ID [i])); 271 if (_param->_have_port_ooo_engine_id) 272 (*(_Reservation_station-> in_BYPASS_WRITE_OOO_ENGINE_ID [i])) (*( in_BYPASS_WRITE_OOO_ENGINE_ID [i])); 252 273 (*(_Reservation_station-> in_BYPASS_WRITE_GPR_VAL [i])) (*( in_BYPASS_WRITE_GPR_VAL [i])); 253 274 (*(_Reservation_station-> in_BYPASS_WRITE_GPR_NUM_REG [i])) (*( in_BYPASS_WRITE_GPR_NUM_REG [i])); … … 260 281 { 261 282 (*(_Reservation_station-> in_BYPASS_MEMORY_VAL [i])) (*( in_BYPASS_MEMORY_VAL [i])); 262 (*(_Reservation_station-> in_BYPASS_MEMORY_CONTEXT_ID [i])) (*( in_BYPASS_MEMORY_CONTEXT_ID [i])); 283 if (_param->_have_port_ooo_engine_id) 284 (*(_Reservation_station-> in_BYPASS_MEMORY_OOO_ENGINE_ID [i])) (*( in_BYPASS_MEMORY_OOO_ENGINE_ID [i])); 263 285 (*(_Reservation_station-> in_BYPASS_MEMORY_NUM_REG [i])) (*( in_BYPASS_MEMORY_NUM_REG [i])); 264 286 (*(_Reservation_station-> in_BYPASS_MEMORY_DATA [i])) (*( in_BYPASS_MEMORY_DATA [i])); … … 275 297 276 298 const uint32_t nb_request = _param->_nb_packet; 277 //const uint32_t seed = 0;278 299 const uint32_t seed = 0; 300 //const uint32_t seed = static_cast<uint32_t>(time(NULL)); 279 301 srand(seed); 280 302 281 Tcontext_t _ context_id [nb_request];303 Tcontext_t _ooo_engine_id [nb_request]; 282 304 Tcontrol_t _read_ra [nb_request]; 283 305 Tgeneral_address_t _num_reg_ra [nb_request]; … … 288 310 289 311 // emulation of registerFile 290 Tcontrol_t _gpr_val [_param->_nb_general_register][_param->_nb_ context];291 Tgeneral_data_t _gpr [_param->_nb_general_register][_param->_nb_ context];292 Tcontrol_t _spr_val [_param->_nb_special_register][_param->_nb_ context];293 Tspecial_data_t _spr [_param->_nb_special_register][_param->_nb_ context];312 Tcontrol_t _gpr_val [_param->_nb_general_register][_param->_nb_ooo_engine]; 313 Tgeneral_data_t _gpr [_param->_nb_general_register][_param->_nb_ooo_engine]; 314 Tcontrol_t _spr_val [_param->_nb_special_register][_param->_nb_ooo_engine]; 315 Tspecial_data_t _spr [_param->_nb_special_register][_param->_nb_ooo_engine]; 294 316 295 317 SC_START(0); 296 318 297 319 LABEL("Initialisation"); 298 in_ RESERVATION_STATION_IN_VAL ->write(0);299 for (uint32_t i=0; i<_param->_ size_queue; i++)300 in_RE SERVATION_STATION_OUT_ACK [i]->write(0);320 in_INSERT_VAL ->write(0); 321 for (uint32_t i=0; i<_param->_nb_inst_retire ; i++) 322 in_RETIRE_ACK [i]->write(0); 301 323 for (uint32_t i=0; i<_param->_nb_gpr_write ; i++) 302 324 in_GPR_WRITE_VAL [i]->write(0); … … 331 353 for (uint32_t i=0; i<nb_request; i++) 332 354 { 333 _ context_id [i] = rand()% _param->_nb_context;355 _ooo_engine_id [i] = rand()% _param->_nb_ooo_engine ; 334 356 _read_ra [i] = rand()% 2 ; 335 357 _num_reg_ra [i] = rand()% _param->_nb_general_register ; … … 341 363 342 364 // emulation of registerFile 343 for (uint32_t j=0; j<_param->_nb_ context; j++)365 for (uint32_t j=0; j<_param->_nb_ooo_engine; j++) 344 366 { 345 367 for (uint32_t i=0; i<_param->_nb_general_register; i++) 346 368 { 347 369 _gpr_val [i][j] = ((rand()%100) < percent_registerfile_valid); 348 _gpr [i][j] = rand()%( 1<<_param->_size_general_data);370 _gpr [i][j] = rand()%((1<<_param->_size_general_data)-1); 349 371 } 350 372 for (uint32_t i=0; i<_param->_nb_special_register; i++) … … 362 384 for (uint32_t i=0; i<nb_request; i++) 363 385 request_out_wait [i] = true; 386 387 bool can_gpr_use [_param->_nb_ooo_engine][_param->_nb_general_register]; 388 bool can_spr_use [_param->_nb_ooo_engine][_param->_nb_special_register]; 389 bool need_gpr [_param->_nb_ooo_engine][_param->_nb_general_register]; 390 bool need_spr [_param->_nb_ooo_engine][_param->_nb_special_register]; 391 392 393 for (uint32_t j=0; j<_param->_nb_ooo_engine; j++) 394 { 395 for (uint32_t i=0; i<_param->_nb_general_register; i++) 396 need_gpr [j][i] = false; 397 for (uint32_t i=0; i<_param->_nb_special_register; i++) 398 need_spr [j][i] = false; 399 } 364 400 365 401 while (request_out < nb_request) 366 402 { 367 if ((request_in < nb_request) and 368 ((rand()%100) < percent_transaction_queue_in)) 403 for (uint32_t j=0; j<_param->_nb_ooo_engine; j++) 404 { 405 for (uint32_t i=0; i<_param->_nb_general_register; i++) 406 can_gpr_use [j][i] = true; 407 for (uint32_t i=0; i<_param->_nb_special_register; i++) 408 can_spr_use [j][i] = true; 409 } 410 411 Tcontrol_t insert_val = (request_in < nb_request) and ((rand()%100) < percent_transaction_queue_in); 412 Tcontext_t insert_ooo_engine_id; 413 Tgeneral_address_t insert_num_reg_ra; 414 Tgeneral_address_t insert_num_reg_rb; 415 Tspecial_address_t insert_num_reg_rc; 416 417 in_INSERT_VAL ->write(insert_val); 418 if (insert_val) 369 419 { 370 420 bool data_val; 371 Tgeneral_address_t gpr_addr; 372 Tspecial_address_t spr_addr; 373 Tcontext_t ctxt = _context_id [request_in]; 374 in_RESERVATION_STATION_IN_VAL ->write(1); 375 in_RESERVATION_STATION_IN_CONTEXT_ID ->write(ctxt); 376 in_RESERVATION_STATION_IN_PACKET_ID ->write(request_in); 377 in_RESERVATION_STATION_IN_OPERATION ->write(0); 378 in_RESERVATION_STATION_IN_TYPE ->write(0); 379 in_RESERVATION_STATION_IN_HAS_IMMEDIAT->write(0); 380 in_RESERVATION_STATION_IN_IMMEDIAT ->write(0); 381 // in_RESERVATION_STATION_IN_READ_RA ->write(_read_ra[request_in]); 382 gpr_addr = _num_reg_ra [request_in]; 383 data_val = not(_read_ra[request_in]) or _gpr_val[gpr_addr][ctxt]; 384 in_RESERVATION_STATION_IN_NUM_REG_RA ->write(gpr_addr); 385 in_RESERVATION_STATION_IN_DATA_RA_VAL ->write(data_val); 386 in_RESERVATION_STATION_IN_DATA_RA ->write((data_val)?_gpr[gpr_addr][ctxt]:0); 387 // in_RESERVATION_STATION_IN_READ_RB ->write(_read_rb[request_in]); 388 gpr_addr = _num_reg_rb [request_in]; 389 data_val = not(_read_rb[request_in]) or _gpr_val[gpr_addr][ctxt]; 390 in_RESERVATION_STATION_IN_NUM_REG_RB ->write(gpr_addr); 391 in_RESERVATION_STATION_IN_DATA_RB_VAL ->write(data_val); 392 in_RESERVATION_STATION_IN_DATA_RB ->write((data_val)?_gpr[gpr_addr][ctxt]:0); 393 // in_RESERVATION_STATION_IN_READ_RC ->write(_read_rc[request_in]); 394 spr_addr = _num_reg_rc [request_in]; 395 data_val = not(_read_rc[request_in]) or _spr_val[spr_addr][ctxt]; 396 in_RESERVATION_STATION_IN_NUM_REG_RC ->write(spr_addr); 397 in_RESERVATION_STATION_IN_DATA_RC_VAL ->write(data_val); 398 in_RESERVATION_STATION_IN_DATA_RC ->write((data_val)?_spr[spr_addr][ctxt]:0); 399 in_RESERVATION_STATION_IN_WRITE_RD ->write(0); 400 in_RESERVATION_STATION_IN_NUM_REG_RD ->write(0); 401 in_RESERVATION_STATION_IN_WRITE_RE ->write(0); 402 in_RESERVATION_STATION_IN_NUM_REG_RE ->write(0); 403 } 404 else 405 { 406 in_RESERVATION_STATION_IN_VAL ->write(0); 407 } 408 409 for (uint32_t i=0; i<_param->_size_queue ; i++) 410 in_RESERVATION_STATION_OUT_ACK[i]->write((rand()%100)<percent_transaction_queue_out); 411 421 insert_ooo_engine_id = _ooo_engine_id [request_in]; 422 insert_num_reg_ra = _num_reg_ra [request_in]; 423 insert_num_reg_rb = _num_reg_rb [request_in]; 424 insert_num_reg_rc = _num_reg_rc [request_in]; 425 426 if (_param->_have_port_context_id) 427 in_INSERT_CONTEXT_ID ->write((2*insert_ooo_engine_id)%_param->_nb_context ); 428 if (_param->_have_port_front_end_id) 429 in_INSERT_FRONT_END_ID ->write((3*insert_ooo_engine_id)%_param->_nb_front_end); 430 if (_param->_have_port_ooo_engine_id) 431 in_INSERT_OOO_ENGINE_ID ->write(insert_ooo_engine_id); 432 if (_param->_have_port_rob_id) 433 in_INSERT_ROB_ID ->write(request_in); 434 in_INSERT_OPERATION ->write(0); 435 in_INSERT_TYPE ->write(0); 436 in_INSERT_HAS_IMMEDIAT->write(0); 437 in_INSERT_IMMEDIAT ->write(0); 438 // in_INSERT_READ_RA ->write(_read_ra[request_in]); 439 data_val = not(_read_ra[request_in]) or _gpr_val[insert_num_reg_ra][insert_ooo_engine_id]; 440 441 need_gpr [insert_ooo_engine_id][insert_num_reg_ra] |= not data_val; 442 443 in_INSERT_NUM_REG_RA ->write(insert_num_reg_ra); 444 in_INSERT_DATA_RA_VAL ->write(data_val); 445 in_INSERT_DATA_RA ->write((data_val)?_gpr[insert_num_reg_ra][insert_ooo_engine_id]:0); 446 // in_INSERT_READ_RB ->write(_read_rb[request_in]); 447 data_val = not(_read_rb[request_in]) or _gpr_val[insert_num_reg_rb][insert_ooo_engine_id]; 448 449 need_gpr [insert_ooo_engine_id][insert_num_reg_rb] |= not data_val; 450 451 in_INSERT_NUM_REG_RB ->write(insert_num_reg_rb); 452 in_INSERT_DATA_RB_VAL ->write(data_val); 453 in_INSERT_DATA_RB ->write((data_val)?_gpr[insert_num_reg_rb][insert_ooo_engine_id]:0); 454 // in_INSERT_READ_RC ->write(_read_rc[request_in]); 455 data_val = not(_read_rc[request_in]) or _spr_val[insert_num_reg_rc][insert_ooo_engine_id]; 456 457 need_spr [insert_ooo_engine_id][insert_num_reg_rc] |= not data_val; 458 459 in_INSERT_NUM_REG_RC ->write(insert_num_reg_rc); 460 in_INSERT_DATA_RC_VAL ->write(data_val); 461 in_INSERT_DATA_RC ->write((data_val)?_spr[insert_num_reg_rc][insert_ooo_engine_id]:0); 462 in_INSERT_WRITE_RD ->write(0); 463 in_INSERT_NUM_REG_RD ->write(0); 464 in_INSERT_WRITE_RE ->write(0); 465 in_INSERT_NUM_REG_RE ->write(0); 466 467 can_gpr_use [insert_ooo_engine_id][insert_num_reg_ra] = false; 468 can_gpr_use [insert_ooo_engine_id][insert_num_reg_rb] = false; 469 can_spr_use [insert_ooo_engine_id][insert_num_reg_rc] = false; 470 } 471 472 for (uint32_t i=0; i<_param->_nb_inst_retire; i++) 473 in_RETIRE_ACK[i]->write((rand()%100)<percent_transaction_queue_out); 412 474 413 475 LABEL("Bypass Network :"); … … 415 477 { 416 478 Tgeneral_address_t num_reg = rand()% _param->_nb_general_register; 417 Tcontext_t context = rand()% _param->_nb_context; 418 Tcontrol_t val = (_gpr_val [num_reg][context]== 0)?((rand()%100) < percent_transaction_registerfile):0; 419 Tgeneral_data_t data = rand()%(1<<_param->_size_general_data); 420 421 in_GPR_WRITE_VAL [i]->write(val); 422 in_GPR_WRITE_CONTEXT_ID [i]->write(context); 423 in_GPR_WRITE_NUM_REG [i]->write(num_reg); 424 in_GPR_WRITE_DATA [i]->write(data); 479 Tcontext_t ooo_engine = rand()% _param->_nb_ooo_engine; 480 Tcontrol_t val = (_gpr_val [num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_registerfile):0; 481 Tgeneral_data_t data = rand()%((1<<_param->_size_general_data)-1); 482 483 val = (val and can_gpr_use [ooo_engine][num_reg] and need_gpr [ooo_engine][num_reg]); 484 485 in_GPR_WRITE_VAL [i]->write(val); 486 if (_param->_have_port_ooo_engine_id) 487 in_GPR_WRITE_OOO_ENGINE_ID [i]->write(ooo_engine); 488 in_GPR_WRITE_NUM_REG [i]->write(num_reg); 489 in_GPR_WRITE_DATA [i]->write(data); 425 490 426 491 if (val) 427 492 { 428 LABEL(" * GPR_WRITE ["+toString(i)+"] - gpr["+toString(num_reg)+"]["+toString(context)+"] <- "+toString(data)); 429 _gpr [num_reg][context] = data; 430 _gpr_val [num_reg][context] = 1; 493 LABEL(" * GPR_WRITE ["+toString(i)+"] - gpr["+toString(num_reg)+"]["+toString(ooo_engine)+"] <- "+toString(data)); 494 can_gpr_use [ooo_engine][num_reg] = false; 495 need_gpr [ooo_engine][num_reg] = false; 496 497 498 _gpr [num_reg][ooo_engine] = data; 499 _gpr_val [num_reg][ooo_engine] = 1; 431 500 } 432 501 } … … 434 503 { 435 504 Tspecial_address_t num_reg = rand()% _param->_nb_special_register; 436 Tcontext_t context = rand()% _param->_nb_context;437 Tcontrol_t val = (_spr_val [num_reg][ context]== 0)?((rand()%100) < percent_transaction_registerfile):0;505 Tcontext_t ooo_engine = rand()% _param->_nb_ooo_engine; 506 Tcontrol_t val = (_spr_val [num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_registerfile):0; 438 507 Tspecial_data_t data = rand()%(1<<_param->_size_special_data); 439 440 in_SPR_WRITE_VAL [i]->write(val); 441 in_SPR_WRITE_CONTEXT_ID [i]->write(context); 442 in_SPR_WRITE_NUM_REG [i]->write(num_reg); 443 in_SPR_WRITE_DATA [i]->write(data); 508 509 val = (val and can_spr_use [ooo_engine][num_reg] and need_spr[ooo_engine][num_reg]); 510 511 in_SPR_WRITE_VAL [i]->write(val); 512 if (_param->_have_port_ooo_engine_id) 513 in_SPR_WRITE_OOO_ENGINE_ID [i]->write(ooo_engine); 514 in_SPR_WRITE_NUM_REG [i]->write(num_reg); 515 in_SPR_WRITE_DATA [i]->write(data); 444 516 445 517 if (val == 1) 446 518 { 447 LABEL(" * SPR_WRITE ["+toString(i)+"] - spr["+toString(num_reg)+"]["+toString(context)+"] <- "+toString(data)); 448 _spr [num_reg][context] = data; 449 _spr_val [num_reg][context] = 1; 519 LABEL(" * SPR_WRITE ["+toString(i)+"] - spr["+toString(num_reg)+"]["+toString(ooo_engine)+"] <- "+toString(data)); 520 can_spr_use [ooo_engine][num_reg] = false; 521 need_spr[ooo_engine][num_reg] = false; 522 523 _spr [num_reg][ooo_engine] = data; 524 _spr_val [num_reg][ooo_engine] = 1; 450 525 } 451 526 } … … 453 528 for (uint32_t i=0; i<_param->_nb_bypass_write; i++) 454 529 { 455 Tcontext_t context = rand()% _param->_nb_context; 456 in_BYPASS_WRITE_CONTEXT_ID [i]->write(context); 530 Tcontext_t ooo_engine = rand()% _param->_nb_ooo_engine; 531 if (_param->_have_port_ooo_engine_id) 532 in_BYPASS_WRITE_OOO_ENGINE_ID [i]->write(ooo_engine); 457 533 458 534 Tgeneral_address_t gpr_num_reg = rand()% _param->_nb_general_register; 459 Tcontrol_t gpr_val = (_gpr_val [gpr_num_reg][ context]== 0)?((rand()%100) < percent_transaction_bypass):0;460 Tgeneral_data_t gpr_data = rand()%( 1<<_param->_size_general_data);535 Tcontrol_t gpr_val = (_gpr_val [gpr_num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_bypass):0; 536 Tgeneral_data_t gpr_data = rand()%((1<<_param->_size_general_data)-1); 461 537 538 gpr_val = (gpr_val and can_gpr_use [ooo_engine][gpr_num_reg] and need_gpr[ooo_engine][gpr_num_reg]); 539 462 540 in_BYPASS_WRITE_GPR_VAL [i]->write(gpr_val); 463 541 in_BYPASS_WRITE_GPR_NUM_REG[i]->write(gpr_num_reg); … … 466 544 if (gpr_val) 467 545 { 468 LABEL(" * BYPASS_WRITE ["+toString(i)+"] - gpr["+toString(gpr_num_reg)+"]["+toString(context)+"] <- "+toString(gpr_data)); 469 _gpr [gpr_num_reg][context] = gpr_data; 470 _gpr_val [gpr_num_reg][context] = 1; 546 LABEL(" * BYPASS_WRITE ["+toString(i)+"] - gpr["+toString(gpr_num_reg)+"]["+toString(ooo_engine)+"] <- "+toString(gpr_data)); 547 can_gpr_use [ooo_engine][gpr_num_reg] = false; 548 need_gpr[ooo_engine][gpr_num_reg] = false; 549 550 _gpr [gpr_num_reg][ooo_engine] = gpr_data; 551 _gpr_val [gpr_num_reg][ooo_engine] = 1; 471 552 } 472 553 473 554 Tspecial_address_t spr_num_reg = rand()% _param->_nb_special_register; 474 Tcontrol_t spr_val = (_spr_val [spr_num_reg][ context]== 0)?((rand()%100) < percent_transaction_bypass):0;555 Tcontrol_t spr_val = (_spr_val [spr_num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_bypass):0; 475 556 Tspecial_data_t spr_data = rand()%(1<<_param->_size_special_data); 476 557 558 spr_val = (spr_val and can_spr_use [ooo_engine][spr_num_reg] and need_spr[ooo_engine][spr_num_reg]); 559 477 560 in_BYPASS_WRITE_SPR_VAL [i]->write(spr_val); 478 561 in_BYPASS_WRITE_SPR_NUM_REG[i]->write(spr_num_reg); … … 481 564 if (spr_val) 482 565 { 483 LABEL(" * BYPASS_WRITE ["+toString(i)+"] - spr["+toString(spr_num_reg)+"]["+toString(context)+"] <- "+toString(spr_data)); 484 _spr [spr_num_reg][context] = spr_data; 485 _spr_val [spr_num_reg][context] = 1; 566 LABEL(" * BYPASS_WRITE ["+toString(i)+"] - spr["+toString(spr_num_reg)+"]["+toString(ooo_engine)+"] <- "+toString(spr_data)); 567 can_spr_use [ooo_engine][spr_num_reg] = false; 568 need_spr[ooo_engine][spr_num_reg] = false; 569 570 _spr [spr_num_reg][ooo_engine] = spr_data; 571 _spr_val [spr_num_reg][ooo_engine] = 1; 486 572 } 487 573 … … 490 576 for (uint32_t i=0; i<_param->_nb_bypass_memory; i++) 491 577 { 492 Tcontext_t context = rand()% _param->_nb_context; 493 in_BYPASS_MEMORY_CONTEXT_ID [i]->write(context); 494 495 Tgeneral_address_t gpr_num_reg = rand()% _param->_nb_general_register; 496 Tcontrol_t gpr_val = (_gpr_val [gpr_num_reg][context]== 0)?((rand()%100) < percent_transaction_bypass):0; 497 Tgeneral_data_t gpr_data = rand()%(1<<_param->_size_general_data); 578 Tcontext_t ooo_engine = rand()% _param->_nb_ooo_engine; 579 if (_param->_have_port_ooo_engine_id) 580 in_BYPASS_MEMORY_OOO_ENGINE_ID [i]->write(ooo_engine); 581 582 Tgeneral_address_t num_reg = rand()% _param->_nb_general_register; 583 Tcontrol_t val = (_gpr_val [num_reg][ooo_engine]== 0)?((rand()%100) < percent_transaction_bypass):0; 584 Tgeneral_data_t data = rand()%((1<<_param->_size_general_data)-1); 498 585 499 in_BYPASS_MEMORY_VAL [i]->write(gpr_val); 500 in_BYPASS_MEMORY_NUM_REG[i]->write(gpr_num_reg); 501 in_BYPASS_MEMORY_DATA [i]->write(gpr_data); 502 503 if (gpr_val) 586 val = (val and can_gpr_use [ooo_engine][num_reg] and need_gpr [ooo_engine][num_reg]); 587 588 in_BYPASS_MEMORY_VAL [i]->write(val); 589 in_BYPASS_MEMORY_NUM_REG[i]->write(num_reg); 590 in_BYPASS_MEMORY_DATA [i]->write(data); 591 592 if (val) 504 593 { 505 LABEL(" * BYPASS_MEMORY ["+toString(i)+"] - gpr["+toString(gpr_num_reg)+"]["+toString(context)+"] <- "+toString(gpr_data)); 506 _gpr [gpr_num_reg][context] = gpr_data; 507 _gpr_val [gpr_num_reg][context] = 1; 594 LABEL(" * BYPASS_MEMORY ["+toString(i)+"] - gpr["+toString(num_reg)+"]["+toString(ooo_engine)+"] <- "+toString(data)); 595 can_gpr_use [ooo_engine][num_reg] = false; 596 need_gpr [ooo_engine][num_reg] = false; 597 598 _gpr [num_reg][ooo_engine] = data; 599 _gpr_val [num_reg][ooo_engine] = 1; 508 600 } 509 601 } 510 602 SC_START(0); // to mealy function 511 603 512 // LABEL("Test RESERVATION_STATION_IN : "+toString(in_RESERVATION_STATION_IN_VAL->read())+","+toString(out_RESERVATION_STATION_IN_ACK->read()));513 if (( in_ RESERVATION_STATION_IN_VAL->read() == 1) and514 (out_ RESERVATION_STATION_IN_ACK->read() == 1))515 { 516 LABEL("Accepted RESERVATION_STATION_IN n°"+toString(request_in));604 // LABEL("Test INSERT : "+toString(in_INSERT_VAL->read())+","+toString(out_INSERT_ACK->read())); 605 if (( in_INSERT_VAL->read() == 1) and 606 (out_INSERT_ACK->read() == 1)) 607 { 608 LABEL("Accepted INSERT number : "+toString(request_in)); 517 609 request_in ++; 518 610 } 519 611 520 for (uint32_t i=0; i<_param->_ size_queue; i++)521 { 522 LABEL("Test RE SERVATION_STATION_OUT "+toString(i)+" : "+toString(out_RESERVATION_STATION_OUT_VAL[i]->read())+","+toString(in_RESERVATION_STATION_OUT_ACK[i]->read()));523 if ((out_RE SERVATION_STATION_OUT_VAL [i]->read() == 1) and524 ( in_RE SERVATION_STATION_OUT_ACK [i]->read() == 1))612 for (uint32_t i=0; i<_param->_nb_inst_retire; i++) 613 { 614 LABEL("Test RETIRE "+toString(i)+" : "+toString(out_RETIRE_VAL[i]->read())+","+toString(in_RETIRE_ACK[i]->read())); 615 if ((out_RETIRE_VAL [i]->read() == 1) and 616 ( in_RETIRE_ACK [i]->read() == 1)) 525 617 { 526 Tpacket_t packet_id = out_RESERVATION_STATION_OUT_PACKET_ID [i]->read(); 527 528 LABEL("Accepted RESERVATION_STATION_OUT ["+toString(i)+"] n°"+toString(packet_id)+", request n°"+toString(request_out)); 529 TEST(bool, request_out_wait [packet_id] , true); 618 Tpacket_t rob_id; 619 if (_param->_have_port_rob_id) 620 rob_id = out_RETIRE_ROB_ID [i]->read(); 621 else 622 rob_id = 0; 623 LABEL("Accepted RETIRE ["+toString(i)+"] number : "+toString(rob_id)+", request number : "+toString(request_out)); 624 TEST(bool, request_out_wait [rob_id] , true); 530 625 531 626 request_out ++; 532 request_out_wait [ packet_id] = false;533 534 Tcontext_t context_id = _context_id [packet_id];627 request_out_wait [rob_id] = false; 628 629 Tcontext_t ooo_engine_id = _ooo_engine_id [rob_id]; 535 630 536 TEST(Tcontext_t ,out_RESERVATION_STATION_OUT_CONTEXT_ID[i]->read(),context_id); 537 if (_read_ra [packet_id]) 538 TEST(Tgeneral_data_t ,out_RESERVATION_STATION_OUT_DATA_RA [i]->read(),_gpr[_num_reg_ra[packet_id]][context_id]); 631 if (_param->_have_port_context_id) 632 TEST(Tcontext_t ,out_RETIRE_CONTEXT_ID [i]->read(),(2*ooo_engine_id)%_param->_nb_context ); 633 if (_param->_have_port_front_end_id) 634 TEST(Tcontext_t ,out_RETIRE_FRONT_END_ID [i]->read(),(3*ooo_engine_id)%_param->_nb_front_end); 635 if (_param->_have_port_ooo_engine_id) 636 TEST(Tcontext_t ,out_RETIRE_OOO_ENGINE_ID[i]->read(),ooo_engine_id); 637 638 if (_read_ra [rob_id]) 639 TEST(Tgeneral_data_t ,out_RETIRE_DATA_RA [i]->read(),_gpr[_num_reg_ra[rob_id]][ooo_engine_id]); 539 640 540 if (_read_rb [ packet_id])541 TEST(Tgeneral_data_t ,out_RE SERVATION_STATION_OUT_DATA_RB [i]->read(),_gpr[_num_reg_rb[packet_id]][context_id]);641 if (_read_rb [rob_id]) 642 TEST(Tgeneral_data_t ,out_RETIRE_DATA_RB [i]->read(),_gpr[_num_reg_rb[rob_id]][ooo_engine_id]); 542 643 543 if (_read_rc [packet_id]) 544 TEST(Tspecial_data_t ,out_RESERVATION_STATION_OUT_DATA_RC [i]->read(),_spr[_num_reg_rc[packet_id]][context_id]); 644 if (_read_rc [rob_id]) 645 TEST(Tspecial_data_t ,out_RETIRE_DATA_RC [i]->read(),_spr[_num_reg_rc[rob_id]][ooo_engine_id]); 646 647 // need_gpr [ooo_engine_id][_num_reg_ra[rob_id]]= true; 648 // need_gpr [ooo_engine_id][_num_reg_rb[rob_id]]= true; 649 // need_spr [ooo_engine_id][_num_reg_rc[rob_id]]= true; 545 650 } 546 651 } … … 561 666 delete in_NRESET; 562 667 563 delete in_RESERVATION_STATION_IN_VAL ; 564 delete out_RESERVATION_STATION_IN_ACK ; 565 delete in_RESERVATION_STATION_IN_CONTEXT_ID ; 566 delete in_RESERVATION_STATION_IN_PACKET_ID ; 567 delete in_RESERVATION_STATION_IN_OPERATION ; 568 delete in_RESERVATION_STATION_IN_TYPE ; 569 delete in_RESERVATION_STATION_IN_HAS_IMMEDIAT; 570 delete in_RESERVATION_STATION_IN_IMMEDIAT ; 571 //delete in_RESERVATION_STATION_IN_READ_RA ; 572 delete in_RESERVATION_STATION_IN_NUM_REG_RA ; 573 delete in_RESERVATION_STATION_IN_DATA_RA_VAL ; 574 delete in_RESERVATION_STATION_IN_DATA_RA ; 575 //delete in_RESERVATION_STATION_IN_READ_RB ; 576 delete in_RESERVATION_STATION_IN_NUM_REG_RB ; 577 delete in_RESERVATION_STATION_IN_DATA_RB_VAL ; 578 delete in_RESERVATION_STATION_IN_DATA_RB ; 579 //delete in_RESERVATION_STATION_IN_READ_RC ; 580 delete in_RESERVATION_STATION_IN_NUM_REG_RC ; 581 delete in_RESERVATION_STATION_IN_DATA_RC_VAL ; 582 delete in_RESERVATION_STATION_IN_DATA_RC ; 583 delete in_RESERVATION_STATION_IN_WRITE_RD ; 584 delete in_RESERVATION_STATION_IN_NUM_REG_RD ; 585 delete in_RESERVATION_STATION_IN_WRITE_RE ; 586 delete in_RESERVATION_STATION_IN_NUM_REG_RE ; 587 588 delete [] out_RESERVATION_STATION_OUT_VAL ; 589 delete [] in_RESERVATION_STATION_OUT_ACK ; 590 delete [] out_RESERVATION_STATION_OUT_CONTEXT_ID ; 591 delete [] out_RESERVATION_STATION_OUT_PACKET_ID ; 592 delete [] out_RESERVATION_STATION_OUT_OPERATION ; 593 delete [] out_RESERVATION_STATION_OUT_TYPE ; 594 delete [] out_RESERVATION_STATION_OUT_HAS_IMMEDIAT; 595 delete [] out_RESERVATION_STATION_OUT_IMMEDIAT ; 596 delete [] out_RESERVATION_STATION_OUT_DATA_RA ; 597 delete [] out_RESERVATION_STATION_OUT_DATA_RB ; 598 delete [] out_RESERVATION_STATION_OUT_DATA_RC ; 599 delete [] out_RESERVATION_STATION_OUT_WRITE_RD ; 600 delete [] out_RESERVATION_STATION_OUT_NUM_REG_RD ; 601 delete [] out_RESERVATION_STATION_OUT_WRITE_RE ; 602 delete [] out_RESERVATION_STATION_OUT_NUM_REG_RE ; 668 delete in_INSERT_VAL ; 669 delete out_INSERT_ACK ; 670 if (_param->_have_port_context_id) 671 delete in_INSERT_CONTEXT_ID ; 672 if (_param->_have_port_front_end_id) 673 delete in_INSERT_FRONT_END_ID ; 674 if (_param->_have_port_ooo_engine_id) 675 delete in_INSERT_OOO_ENGINE_ID ; 676 if (_param->_have_port_rob_id) 677 delete in_INSERT_ROB_ID ; 678 delete in_INSERT_OPERATION ; 679 delete in_INSERT_TYPE ; 680 delete in_INSERT_HAS_IMMEDIAT; 681 delete in_INSERT_IMMEDIAT ; 682 //delete in_INSERT_READ_RA ; 683 delete in_INSERT_NUM_REG_RA ; 684 delete in_INSERT_DATA_RA_VAL ; 685 delete in_INSERT_DATA_RA ; 686 //delete in_INSERT_READ_RB ; 687 delete in_INSERT_NUM_REG_RB ; 688 delete in_INSERT_DATA_RB_VAL ; 689 delete in_INSERT_DATA_RB ; 690 //delete in_INSERT_READ_RC ; 691 delete in_INSERT_NUM_REG_RC ; 692 delete in_INSERT_DATA_RC_VAL ; 693 delete in_INSERT_DATA_RC ; 694 delete in_INSERT_WRITE_RD ; 695 delete in_INSERT_NUM_REG_RD ; 696 delete in_INSERT_WRITE_RE ; 697 delete in_INSERT_NUM_REG_RE ; 698 699 delete [] out_RETIRE_VAL ; 700 delete [] in_RETIRE_ACK ; 701 if (_param->_have_port_context_id) 702 delete [] out_RETIRE_CONTEXT_ID ; 703 if (_param->_have_port_front_end_id) 704 delete [] out_RETIRE_FRONT_END_ID; 705 if (_param->_have_port_ooo_engine_id) 706 delete [] out_RETIRE_OOO_ENGINE_ID ; 707 if (_param->_have_port_rob_id) 708 delete [] out_RETIRE_ROB_ID ; 709 delete [] out_RETIRE_OPERATION ; 710 delete [] out_RETIRE_TYPE ; 711 delete [] out_RETIRE_HAS_IMMEDIAT; 712 delete [] out_RETIRE_IMMEDIAT ; 713 delete [] out_RETIRE_DATA_RA ; 714 delete [] out_RETIRE_DATA_RB ; 715 delete [] out_RETIRE_DATA_RC ; 716 delete [] out_RETIRE_WRITE_RD ; 717 delete [] out_RETIRE_NUM_REG_RD ; 718 delete [] out_RETIRE_WRITE_RE ; 719 delete [] out_RETIRE_NUM_REG_RE ; 603 720 604 721 delete [] in_GPR_WRITE_VAL ; 605 delete [] in_GPR_WRITE_CONTEXT_ID; 722 if (_param->_have_port_ooo_engine_id) 723 delete [] in_GPR_WRITE_OOO_ENGINE_ID; 606 724 delete [] in_GPR_WRITE_NUM_REG ; 607 725 delete [] in_GPR_WRITE_DATA ; 608 726 609 727 delete [] in_SPR_WRITE_VAL ; 610 delete [] in_SPR_WRITE_CONTEXT_ID; 728 if (_param->_have_port_ooo_engine_id) 729 delete [] in_SPR_WRITE_OOO_ENGINE_ID; 611 730 delete [] in_SPR_WRITE_NUM_REG ; 612 731 delete [] in_SPR_WRITE_DATA ; 613 732 614 delete [] in_BYPASS_WRITE_CONTEXT_ID ; 733 if (_param->_have_port_ooo_engine_id) 734 delete [] in_BYPASS_WRITE_OOO_ENGINE_ID ; 615 735 delete [] in_BYPASS_WRITE_GPR_VAL ; 616 736 delete [] in_BYPASS_WRITE_GPR_NUM_REG; … … 621 741 622 742 delete [] in_BYPASS_MEMORY_VAL ; 623 delete [] in_BYPASS_MEMORY_CONTEXT_ID; 743 if (_param->_have_port_ooo_engine_id) 744 delete [] in_BYPASS_MEMORY_OOO_ENGINE_ID; 624 745 delete [] in_BYPASS_MEMORY_NUM_REG ; 625 746 delete [] in_BYPASS_MEMORY_DATA ;
Note: See TracChangeset
for help on using the changeset viewer.