Response queue overflow error

Hi

I am getting following error even though I am not using the Response transactions in sequence-driver handshake. My sequencer is default ovm_sequencer.

How to solve this?

OVM_ERROR @ 2050: reporter [ovm_test_top.pif_env_inst.master_agent.master_sequencer.my_seq] Response queue overflow, response was dropped

Thanks.

If the driver sends responses back to the sequence then the sequence has to use get_response() to read back from the response queue. Did you write the driver? If so, then you’ll need to fix the driver. See the link below for more information:

http://verificationacademy.com/uvm-ovm/Driver/Sequence_API

If not and since you’re not using the responses, you could enable the response handler and implement a dummy response handling method.

use_response_handler(1);

Then implement:

function void response_handler( ovm_sequence_item response );

endfunction

In reply to mperyer:

Hi mperyer,

Thanks a lot for your response. I wrote my driver but used get_next_item() & item_done() API. I don’t use responses anywhere. So driver doesn’t need to send back the response. This is exactly as suggested. Then why should I get this error?

Just by calling get_response() at the end of the sequence got rid of my error. Does the driver send the response back to sequence by default? Is my solution correct?

Do I need to implement dummy response handler? Where should I do it? In the driver or in sequence? Don’t I have to call that method?

Thanks,

When you call item_done() in the driver do you return a response handle or a null handle?

seq_item_port.item_done(); or
seq_item_port.item_done(rsp);

If you’re returning a response handle, which is unnecessary, then you will get the problem you are reporting.