| 501 | | { |
| 502 | | |
| 503 | | payload.set_response_status(soclib::tlm::TLM_OK_RESPONSE); |
| 504 | | phase = soclib::tlmt::TLMT_RSP; |
| 505 | | time = time + (nwords * UNIT_TIME); |
| 506 | | |
| 507 | | #if MY_TARGET_DEBUG |
| 508 | | std::cout << "[RAM " << m_targetid << "] Send to source "<< payload.get_src_id() << " a anwser packet " << payload.get_pkt_id() << " Time = " << time.value() << std::endl; |
| 509 | | #endif |
| 510 | | |
| 511 | | p_vci_target->nb_transport_bw(payload, phase, time); |
| 512 | | return tlm::TLM_COMPLETED; |
| 513 | | } |
| 514 | | break; |
| 515 | | default: |
| | 501 | payload.set_response_status(tlm::TLM_OK_RESPONSE); |
| | 502 | break; |
| | 503 | default: |
| | 504 | payload.set_response_status(tlm::TLM_GENERIC_ERROR_RESPONSE); |
| 518 | | |
| 519 | | //send error message |
| 520 | | payload.set_response_status(soclib::tlmt::TLMT_ERROR_RESPONSE); |
| 521 | | |
| 522 | | phase = soclib::tlmt::TLMT_RSP; |
| 523 | | time = time + nwords * UNIT_TIME; |
| 524 | | |
| 525 | | #if MY_TARGET_DEBUG |
| 526 | | std::cout << "[RAM " << m_targetid << "] Address " << payload.get_address() << " does not match any segment " << std::endl; |
| 527 | | std::cout << "[RAM " << m_targetid << "] Send to source "<< payload.get_src_id() << " a error packet with time = " << time.value() << std::endl; |
| 528 | | #endif |
| 529 | | p_vci_target->nb_transport_bw(payload, phase, time); |
| 530 | | return tlm::TLM_COMPLETED; |
| | 507 | phase = soclib::tlmt::TLMT_RSP |
| | 508 | time = time + (nwords * UNIT_TIME); |
| | 509 | p_vci_target->nb_transport_bw(payload, phase, time); |
| | 510 | return tlm::TLM_COMPLETED; |