libsystemctlm-soc
libsystemctlm-soc copied to clipboard
setting m_gotRspSepData=true in HandleRxDat result in TLM_GENERIC_ERROR_RESPONSE?
Hi sir: I am trying to integrated the chi here into a system, while I readed the implementation of the chi protocol , I found for a read transaction with seperate response (which is RespSepData and DataSepResp), if the DataSepResp comes first and we get all the data the transaction requested , the m_gotRspSepData will be set to true in HandleRxDat. this may result in a TLM_GENERIC_ERROR_RESPONSE response when the RespSepData came sometime later after the DataSepResp in cache_chi::b_transport_rxrsp ?
https://github.com/Xilinx/libsystemctlm-soc/blob/42aa8ed780cb9eef3a61bc50ea35ff079a7e6284/tlm-modules/private/chi/txns-rn.h#L477
virtual void b_transport_rxrsp(tlm::tlm_generic_payload& trans, sc_time& delay)
{
trans.set_response_status(tlm::TLM_GENERIC_ERROR_RESPONSE);
.....
ret = t->HandleRxRsp(trans, chiattr); // return false. see the comment blow
m_transmitter.Process(t);
}
// false here, so the trans respoonse will he TLM_GENERIC_ERROR_RESPONSE
// which is set at the first line of b_transport_rxrsp
if (ret) {
trans.set_response_status(
tlm::TLM_OK_RESPONSE);
}