Changeset 146 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp
- Timestamp:
- Feb 1, 2011, 9:57:54 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp
r131 r146 15 15 namespace registerfile { 16 16 17 void RegisterFile::allocation ( 18 #ifdef STATISTICS 19 morpheo::behavioural::Parameters_Statistics * param_statistics 20 #else 21 void 22 #endif 23 ) 17 void RegisterFile::allocation 18 ( 19 #ifdef STATISTICS 20 morpheo::behavioural::Parameters_Statistics * param_statistics 21 #else 22 void 23 #endif 24 ) 24 25 { 25 26 std::string rename; … … 60 61 #endif 61 62 62 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 63 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 64 63 65 if (_param->_instance == instance_RegisterFile_Monolithic) 64 66 // =====[ component_RegisterFile_Monolithic ]========================= 65 67 { 66 component_RegisterFile_Monolithic = new morpheo::behavioural::generic::registerfile::registerfile_monolithic ::RegisterFile_Monolithic ::RegisterFile_Monolithic (_name.c_str()67 #ifdef STATISTICS 68 ,param_statistics 69 #endif 70 ,_param->_param_registerfile_monolithic 71 ,_usage);72 68 component_RegisterFile_Monolithic = new morpheo::behavioural::generic::registerfile::registerfile_monolithic ::RegisterFile_Monolithic ::RegisterFile_Monolithic 69 (_name.c_str() 70 #ifdef STATISTICS 71 ,param_statistics 72 #endif 73 ,_param->_param_registerfile_monolithic 74 ,_usage); 73 75 } 74 76 else 75 // =====[ component_RegisterFile_Multi_Banked ]======================= 76 { 77 component_RegisterFile_Multi_Banked = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked (_name.c_str() 78 #ifdef STATISTICS 79 ,param_statistics 80 #endif 81 ,_param->_param_registerfile_multi_banked 82 ,_usage); 83 77 { 78 if (_param->_instance == instance_RegisterFile_Internal_Banked) 79 // =====[ component_RegisterFile_Internal_Banked ]========================= 80 { 81 component_RegisterFile_Internal_Banked = new morpheo::behavioural::generic::registerfile::registerfile_internal_banked ::RegisterFile_Internal_Banked ::RegisterFile_Internal_Banked 82 (_name.c_str() 83 #ifdef STATISTICS 84 ,param_statistics 85 #endif 86 ,_param->_param_registerfile_internal_banked 87 ,_usage); 88 } 89 else 90 { 91 // =====[ component_RegisterFile_Multi_Banked ]======================= 92 component_RegisterFile_Multi_Banked = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked 93 (_name.c_str() 94 #ifdef STATISTICS 95 ,param_statistics 96 #endif 97 ,_param->_param_registerfile_multi_banked 98 ,_usage); 99 } 84 100 } 85 101 // ~~~~~[ Component - Instanciation ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ … … 125 141 } 126 142 else 127 // =====[ Component_RegisterFile_Multi_Banked - Instanciation ]======= 128 { 129 #ifdef SYSTEMCASS_SPECIFIC 130 (*(component_RegisterFile_Multi_Banked->in_CLOCK )) (*(in_CLOCK )); 131 (*(component_RegisterFile_Multi_Banked->in_NRESET)) (*(in_NRESET)); 132 133 for (uint32_t i=0; i<_param->_nb_port_read; i++) 134 { 135 (*(component_RegisterFile_Multi_Banked-> in_READ_VAL [i])) (*( in_READ_VAL [i])); 136 (*(component_RegisterFile_Multi_Banked->out_READ_ACK [i])) (*(out_READ_ACK [i])); 137 if (_param->_have_port_address == true) 138 (*(component_RegisterFile_Multi_Banked-> in_READ_ADDRESS [i])) (*( in_READ_ADDRESS [i])); 139 (*(component_RegisterFile_Multi_Banked->out_READ_DATA [i])) (*(out_READ_DATA [i])); 140 } 141 142 for (uint32_t i=0; i<_param->_nb_port_write; i++) 143 { 144 (*(component_RegisterFile_Multi_Banked-> in_WRITE_VAL [i])) (*( in_WRITE_VAL [i])); 145 (*(component_RegisterFile_Multi_Banked->out_WRITE_ACK [i])) (*(out_WRITE_ACK [i])); 146 if (_param->_have_port_address == true) 147 (*(component_RegisterFile_Multi_Banked-> in_WRITE_ADDRESS [i])) (*( in_WRITE_ADDRESS [i])); 148 (*(component_RegisterFile_Multi_Banked-> in_WRITE_DATA [i])) (*( in_WRITE_DATA [i])); 149 } 150 #else 151 in_CLOCK = component_RegisterFile_Multi_Banked-> in_CLOCK ; 152 in_NRESET = component_RegisterFile_Multi_Banked-> in_NRESET ; 153 154 in_READ_VAL = component_RegisterFile_Multi_Banked-> in_READ_VAL ; 155 out_READ_ACK = component_RegisterFile_Multi_Banked->out_READ_ACK ; 156 in_READ_ADDRESS = component_RegisterFile_Multi_Banked-> in_READ_ADDRESS ; 157 out_READ_DATA = component_RegisterFile_Multi_Banked->out_READ_DATA ; 158 159 in_WRITE_VAL = component_RegisterFile_Multi_Banked-> in_WRITE_VAL ; 160 out_WRITE_ACK = component_RegisterFile_Multi_Banked->out_WRITE_ACK ; 161 in_WRITE_ADDRESS = component_RegisterFile_Multi_Banked-> in_WRITE_ADDRESS; 162 in_WRITE_DATA = component_RegisterFile_Multi_Banked-> in_WRITE_DATA ; 163 #endif 164 143 { 144 if (_param->_instance == instance_RegisterFile_Internal_Banked) 145 // =====[ Component_RegisterFile_Internal_Banked - Instanciation ]========= 146 { 147 #ifdef SYSTEMCASS_SPECIFIC 148 (*(component_RegisterFile_Internal_Banked ->in_CLOCK )) (*(in_CLOCK )); 149 (*(component_RegisterFile_Internal_Banked ->in_NRESET)) (*(in_NRESET)); 150 151 for (uint32_t i=0; i<_param->_nb_port_read; i++) 152 { 153 (*(component_RegisterFile_Internal_Banked -> in_READ_VAL [i])) (*( in_READ_VAL [i])); 154 (*(component_RegisterFile_Internal_Banked ->out_READ_ACK [i])) (*(out_READ_ACK [i])); 155 if (_param->_have_port_address == true) 156 (*(component_RegisterFile_Internal_Banked -> in_READ_ADDRESS [i])) (*( in_READ_ADDRESS [i])); 157 (*(component_RegisterFile_Internal_Banked ->out_READ_DATA [i])) (*(out_READ_DATA [i])); 158 } 159 160 for (uint32_t i=0; i<_param->_nb_port_write; i++) 161 { 162 (*(component_RegisterFile_Internal_Banked -> in_WRITE_VAL [i])) (*( in_WRITE_VAL [i])); 163 (*(component_RegisterFile_Internal_Banked ->out_WRITE_ACK [i])) (*(out_WRITE_ACK [i])); 164 if (_param->_have_port_address == true) 165 (*(component_RegisterFile_Internal_Banked -> in_WRITE_ADDRESS [i])) (*( in_WRITE_ADDRESS [i])); 166 (*(component_RegisterFile_Internal_Banked -> in_WRITE_DATA [i])) (*( in_WRITE_DATA [i])); 167 } 168 #else 169 in_CLOCK = component_RegisterFile_Internal_Banked-> in_CLOCK ; 170 in_NRESET = component_RegisterFile_Internal_Banked-> in_NRESET ; 171 172 in_READ_VAL = component_RegisterFile_Internal_Banked-> in_READ_VAL ; 173 out_READ_ACK = component_RegisterFile_Internal_Banked->out_READ_ACK ; 174 in_READ_ADDRESS = component_RegisterFile_Internal_Banked-> in_READ_ADDRESS ; 175 out_READ_DATA = component_RegisterFile_Internal_Banked->out_READ_DATA ; 176 177 in_WRITE_VAL = component_RegisterFile_Internal_Banked-> in_WRITE_VAL ; 178 out_WRITE_ACK = component_RegisterFile_Internal_Banked->out_WRITE_ACK ; 179 in_WRITE_ADDRESS = component_RegisterFile_Internal_Banked-> in_WRITE_ADDRESS; 180 in_WRITE_DATA = component_RegisterFile_Internal_Banked-> in_WRITE_DATA ; 181 #endif 182 } 183 else 184 // =====[ Component_RegisterFile_Multi_Banked - Instanciation ]======= 185 { 186 #ifdef SYSTEMCASS_SPECIFIC 187 (*(component_RegisterFile_Multi_Banked->in_CLOCK )) (*(in_CLOCK )); 188 (*(component_RegisterFile_Multi_Banked->in_NRESET)) (*(in_NRESET)); 189 190 for (uint32_t i=0; i<_param->_nb_port_read; i++) 191 { 192 (*(component_RegisterFile_Multi_Banked-> in_READ_VAL [i])) (*( in_READ_VAL [i])); 193 (*(component_RegisterFile_Multi_Banked->out_READ_ACK [i])) (*(out_READ_ACK [i])); 194 if (_param->_have_port_address == true) 195 (*(component_RegisterFile_Multi_Banked-> in_READ_ADDRESS [i])) (*( in_READ_ADDRESS [i])); 196 (*(component_RegisterFile_Multi_Banked->out_READ_DATA [i])) (*(out_READ_DATA [i])); 197 } 198 199 for (uint32_t i=0; i<_param->_nb_port_write; i++) 200 { 201 (*(component_RegisterFile_Multi_Banked-> in_WRITE_VAL [i])) (*( in_WRITE_VAL [i])); 202 (*(component_RegisterFile_Multi_Banked->out_WRITE_ACK [i])) (*(out_WRITE_ACK [i])); 203 if (_param->_have_port_address == true) 204 (*(component_RegisterFile_Multi_Banked-> in_WRITE_ADDRESS [i])) (*( in_WRITE_ADDRESS [i])); 205 (*(component_RegisterFile_Multi_Banked-> in_WRITE_DATA [i])) (*( in_WRITE_DATA [i])); 206 } 207 #else 208 in_CLOCK = component_RegisterFile_Multi_Banked-> in_CLOCK ; 209 in_NRESET = component_RegisterFile_Multi_Banked-> in_NRESET ; 210 211 in_READ_VAL = component_RegisterFile_Multi_Banked-> in_READ_VAL ; 212 out_READ_ACK = component_RegisterFile_Multi_Banked->out_READ_ACK ; 213 in_READ_ADDRESS = component_RegisterFile_Multi_Banked-> in_READ_ADDRESS ; 214 out_READ_DATA = component_RegisterFile_Multi_Banked->out_READ_DATA ; 215 216 in_WRITE_VAL = component_RegisterFile_Multi_Banked-> in_WRITE_VAL ; 217 out_WRITE_ACK = component_RegisterFile_Multi_Banked->out_WRITE_ACK ; 218 in_WRITE_ADDRESS = component_RegisterFile_Multi_Banked-> in_WRITE_ADDRESS; 219 in_WRITE_DATA = component_RegisterFile_Multi_Banked-> in_WRITE_DATA ; 220 #endif 221 } 165 222 } 166 223 167 224 if (_param->_instance == instance_RegisterFile_Monolithic) 168 _component = component_RegisterFile_Monolithic 225 _component = component_RegisterFile_Monolithic->_component; 169 226 else 170 _component = component_RegisterFile_Multi_Banked->_component; 171 227 { 228 if (_param->_instance == instance_RegisterFile_Internal_Banked) 229 _component = component_RegisterFile_Internal_Banked->_component; 230 else 231 _component = component_RegisterFile_Multi_Banked->_component; 232 } 172 233 log_printf(FUNC,RegisterFile,"allocation","End"); 173 234 };
Note: See TracChangeset
for help on using the changeset viewer.