Changeset 146 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.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/RegisterFile_Monolithic/SelfTest/src/test.cpp
r131 r146 73 73 sc_signal<Tdata_t> WRITE_DATA [_param->_nb_port_write]; 74 74 75 sc_signal<Tcontrol_t> READ_WRITE_VAL [_param->_nb_port_read_write];76 sc_signal<Tcontrol_t> READ_WRITE_ACK [_param->_nb_port_read_write];77 sc_signal<Tcontrol_t> READ_WRITE_RW [_param->_nb_port_read_write];78 sc_signal<Taddress_t> READ_WRITE_ADDRESS [_param->_nb_port_read_write];79 sc_signal<Tdata_t> READ_WRITE_RDATA [_param->_nb_port_read_write];80 sc_signal<Tdata_t> READ_WRITE_WDATA [_param->_nb_port_read_write];81 82 75 /******************************************************** 83 76 * Instanciation … … 105 98 (*(registerfile-> in_WRITE_DATA [i])) (WRITE_DATA [i]); 106 99 } 107 for (uint32_t i=0; i<_param->_nb_port_read_write; i++)108 {109 (*(registerfile-> in_READ_WRITE_VAL [i])) (READ_WRITE_VAL [i]);110 (*(registerfile->out_READ_WRITE_ACK [i])) (READ_WRITE_ACK [i]);111 (*(registerfile-> in_READ_WRITE_RW [i])) (READ_WRITE_RW [i]);112 if (_param->_have_port_address)113 (*(registerfile-> in_READ_WRITE_ADDRESS [i])) (READ_WRITE_ADDRESS [i]);114 (*(registerfile-> in_READ_WRITE_WDATA [i])) (READ_WRITE_WDATA [i]);115 (*(registerfile->out_READ_WRITE_RDATA [i])) (READ_WRITE_RDATA [i]);116 }117 100 118 101 cout << "<" << name << "> Start Simulation ............" << endl; … … 131 114 for (uint32_t i=0; i<_param->_nb_port_read; i++) 132 115 READ_VAL [i] .write (0); 133 for (uint32_t i=0; i<_param->_nb_port_read_write; i++)134 READ_WRITE_VAL [i] .write (0);135 116 136 117 NRESET.write(0); … … 144 125 for (uint32_t i=0; i<_param->_nb_port_read; i++) 145 126 TEST(Tcontrol_t,READ_ACK [i],1); 146 for (uint32_t i=0; i<_param->_nb_port_read_write; i++)147 TEST(Tcontrol_t,READ_WRITE_ACK [i],1);148 127 149 128 for (uint32_t nb_iteration=0; nb_iteration < NB_ITERATION; nb_iteration ++) … … 187 166 } 188 167 189 for (uint32_t num_port=0; num_port < _param->_nb_port_read_write; num_port ++)190 {191 if ((address_next < _param->_nb_word) and192 (READ_WRITE_VAL [num_port].read() == 0))193 {194 cout << "(" << num_port << ") [" << address_next << "] <= " << tab[address_next] << endl;195 196 READ_WRITE_VAL [num_port] .write(1);197 READ_WRITE_RW [num_port] .write(RW_WRITE);198 READ_WRITE_WDATA [num_port] .write(tab[address_next]);199 READ_WRITE_ADDRESS [num_port] .write(address_next++);200 201 // Address can be not a multiple of nb_port_write202 if (address_next >= _param->_nb_word)203 break;204 }205 }206 207 168 SC_START(1); 208 169 … … 217 178 } 218 179 } 219 // reset write_val port220 for (uint32_t num_port=0; num_port < _param->_nb_port_read_write; num_port ++)221 {222 if ((READ_WRITE_ACK [num_port].read() == 1) and223 (READ_WRITE_VAL [num_port].read() == 1))224 {225 READ_WRITE_VAL [num_port] .write(0);226 nb_ack ++;227 }228 }229 180 230 181 // SC_START(0); … … 237 188 238 189 Tdata_t read_address [_param->_nb_port_read]; 239 Tdata_t read_write_address [_param->_nb_port_read_write];240 190 241 191 while (nb_ack < _param->_nb_word) … … 258 208 } 259 209 260 for (uint32_t num_port=0; num_port < _param->_nb_port_read_write; num_port ++)261 {262 if ((address_next < _param->_nb_word) and263 (READ_WRITE_VAL [num_port].read() == 0))264 {265 read_write_address [num_port] = address_next++;266 267 READ_WRITE_VAL [num_port].write(1);268 READ_WRITE_RW [num_port].write(RW_READ);269 READ_WRITE_ADDRESS [num_port].write(read_write_address [num_port]);270 271 if (address_next >= _param->_nb_word)272 break;273 }274 }275 276 210 277 211 SC_START(1); … … 288 222 289 223 TEST(Tdata_t,READ_DATA [num_port].read(), tab[read_address [num_port]]); 290 nb_ack ++;291 }292 }293 294 for (uint32_t num_port=0; num_port < _param->_nb_port_read_write; num_port ++)295 {296 if ((READ_WRITE_ACK [num_port].read() == 1) and297 (READ_WRITE_VAL [num_port].read() == 1))298 {299 READ_WRITE_VAL [num_port] .write(0);300 301 cout << "(" << num_port << ") [" << read_write_address [num_port] << "] => " << READ_WRITE_RDATA [num_port].read() << endl;302 303 TEST(Tdata_t,READ_WRITE_RDATA [num_port].read(), tab[read_write_address [num_port]]);304 224 nb_ack ++; 305 225 }
Note: See TracChangeset
for help on using the changeset viewer.