Changeset 58 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp
- Timestamp:
- Oct 1, 2007, 1:36:39 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp
r57 r58 98 98 * Simulation - Begin 99 99 ********************************************************/ 100 const bool simulate_read = false;101 100 const uint32_t nb_request = _param->_nb_word; 102 101 // random init … … 177 176 178 177 179 if (simulate_read == true) 180 { 181 cout << "<" << name << "> 2) Read the RegisterFile (no write)" << endl; 182 183 nb_val = 0; 184 nb_ack = 0; 185 Tdata_t read_address [_param->_nb_port_read]; 186 187 while (nb_ack < nb_request) 188 { 189 cout << "cycle : " << static_cast<uint32_t> (sc_simulation_time()) << endl; 178 { 179 cout << "<" << name << "> 2) Read the RegisterFile (no write)" << endl; 180 181 nb_val = 0; 182 nb_ack = 0; 183 Tdata_t read_address [_param->_nb_port_read]; 184 185 while (nb_ack < nb_request) 186 { 187 cout << "cycle : " << static_cast<uint32_t> (sc_simulation_time()) << endl; 188 189 for (uint32_t num_port=0; num_port < _param->_nb_port_read; num_port ++) 190 { 191 if ((nb_val < nb_request) and 192 (READ_VAL [num_port].read() == 0)) 193 { 194 read_address [num_port] = tab_address[nb_val]; 195 READ_VAL [num_port].write(1); 196 READ_ADDRESS [num_port].write(read_address [num_port]); 197 198 nb_val ++; 199 200 if (nb_val >= nb_request) 201 break; 202 } 203 } 190 204 191 for (uint32_t num_port=0; num_port < _param->_nb_port_read; num_port ++) 192 { 193 if ((nb_val < nb_request) and 194 (READ_VAL [num_port].read() == 0)) 195 { 196 read_address [num_port] = tab_address[nb_val]; 197 READ_VAL [num_port].write(1); 198 READ_ADDRESS [num_port].write(read_address [num_port]); 199 200 nb_val ++; 201 202 if (nb_val >= nb_request) 203 break; 204 } 205 } 206 207 SC_START(1); 208 209 // reset write_val port 210 for (uint32_t num_port=0; num_port < _param->_nb_port_read; num_port ++) 211 { 212 if ((READ_ACK [num_port].read() == 1) and 213 (READ_VAL [num_port].read() == 1)) 214 { 215 READ_VAL [num_port] .write(0); 216 217 cout << "(" << num_port << ") [" << read_address [num_port] << "] => " << READ_DATA [num_port].read() << endl; 218 219 TEST(Tdata_t,READ_DATA [num_port].read(), tab_data[read_address [num_port]]); 220 nb_ack ++; 221 } 222 } 223 224 SC_START(0); 225 } 226 } 205 SC_START(1); 206 207 // reset write_val port 208 for (uint32_t num_port=0; num_port < _param->_nb_port_read; num_port ++) 209 { 210 if ((READ_ACK [num_port].read() == 1) and 211 (READ_VAL [num_port].read() == 1)) 212 { 213 READ_VAL [num_port] .write(0); 214 215 cout << "(" << num_port << ") [" << read_address [num_port] << "] => " << READ_DATA [num_port].read() << endl; 216 217 TEST(Tdata_t,READ_DATA [num_port].read(), tab_data[read_address [num_port]]); 218 nb_ack ++; 219 } 220 } 221 222 SC_START(0); 223 } 224 } 227 225 } 228 226
Note: See TracChangeset
for help on using the changeset viewer.