libsystemctlm-soc icon indicating copy to clipboard operation
libsystemctlm-soc copied to clipboard

setting m_gotRspSepData=true in HandleRxDat result in TLM_GENERIC_ERROR_RESPONSE?

Open gxflying opened this issue 11 months ago • 1 comments

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);
	}

gxflying avatar Mar 19 '24 07:03 gxflying