Skip to content

setting m_gotRspSepData=true in HandleRxDat result in TLM_GENERIC_ERROR_RESPONSE? #23

@gxflying

Description

@gxflying

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 ?

m_gotRspSepData = true;

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions